Возможно подключить купюроприемник, монетоприемник к Dreamcast? - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: Sega Dreamcast (/forum-2.html) +--- Форум: Hardware (/forum-9.html) +--- Тема: Возможно подключить купюроприемник, монетоприемник к Dreamcast? (/thread-1532.html) |
RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - P@S@f - 14.01.2012 00:46 А в SH4 ассемблере есть подобие INT 3? По-моему легче (как для нас, так и для процессора) было бы джампом сделать в эти самые 32 пустых килобайта, сделать там свое черное дело (+ скопировать строки, которые мы затерли джампом) и вернуться обратно. Вот только.. если еще в PE я представляю себе как это сделать, так как под винду есть OllyDbg, то в SH-ELF бинарниках ууу....)) RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - cybdyn - 14.01.2012 01:49 в элфах для пс2 я спокойно правил код, т.к файл не динамический. в дриме я пока не знаю... в пс2 printf и подобные функции вывода отладочных собщений можно выводить подкоректировав код. т.к основная программа проверяет переменную типа debug ( или подобную) на 0 или другой код. в релизе он обычно занулён. пэтому либо отключить поверку либо в перемнную искусвенно записать что нужно... или нет кода инициализации SIO или кода вывода в этот самий порт, решается дописываенимем его в какенить заведомо ненужные участки элфа и соответвенно навдятся джампы или джлалы (j или jal ) RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - SWAT - 14.01.2012 11:28 Ну начнем с того что для дрима ты не найдешь elf файл игры, там только бинарник уже и он не динамический, уже заточено там все под конкретные адреса. Да и вообще у дрима такая система, там все программы не динамические, все всегда сидит в бинарнике, никакой прошивки как таковой нет, ну кроме работы GD-ROM и еще кое чего. По поводу дебага. Во первых, скорее всего при сборке релиза он вообще там не компилится и это правильно, зачем занимать место не нужным мусором. Во вторых, для дебага использовался спец. девайс, который цеплялся к G2 Bus (скорее всего он был просто встроен в Devkit), сериал порт же никогда в коммерческих играх не использовался для дебага, ну может если только единичные случаи о которых мало кому известно. RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - cybdyn - 14.01.2012 11:58 я првёл аналогию. если бинарник, то тем проще. я же написал глвное чтобы не динамич. ну бинарник это отдельный файл типа ехе или в образе игры гдето сидит и грузиться просто заливкой в память. хотяя чтото приоминаю например про IP.BIN ам в какойто стандартн адрес заливается. да, при релизе могли отключить все сообщения. действительно инфа в игре бепослезная , но по ней многие хакеры-крякеры могли чтонить отследить...)) RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - Rio - 14.01.2012 13:41 Цитата:По поводу дебага. Во первых, скорее всего при сборке релиза он вообще там не компилится и это правильно, зачем занимать место не нужным мусором.Короче Ayla на форуме dcemulation занимался тем, что переводил Shenmue на французкий язык. Так вот он мне рассказывал, как он адреса менял и заменял дебаг мэсседжи на свой код, ибо больше его никак втулить нельзя было. Т.е. там существует некая хрень, насколько я понял, связанная с форматом инструкций самого проца просто, адреса переходов и вообще все смещение они относительны адреса команды (либо программного счетчика). Поэтому просто взять и переместить кусок кода там как бы нельзя, а в конец нельзя лепить потому что там некая секция .bss, в которую тоже запрещена запись. Одним словом, пространство для своих кодов остается только в debug-сообщениях. Хотя если честно, как по мне, мне кажется что он где-то привирает. Допустим, что у нас даже такой формат команды, очень сложный и замороченный, и зависящий от PC (т.е. от текущего положения вызывающей команды): http://s1.ipicture.ru/uploads/20120114/1AK2GI3B.jpg Что мешает нам, скажем, в зависимости от изменившегося PC, просто изменить displacement так, чтобы наше результирующее смещение не указывало в точности на наши данные? Ну и т.п., вы меня поняли. {....} далi буде.... RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - SWAT - 14.01.2012 14:55 IP.BIN и "BOOT.BIN" грузятся всегда в одни и те же определенные адреса. Да действительно конкретно встроить в код (т.е. прям в бинарник с игрой) свой кусок, наверное возможно только в места под ресурсы (важность которых может быть игнорированна) или в места под текстовые сообщение, которые не используются или их можно усечь. Потом уже в бинарнике ставить просто прыжок в ту область, тем самым не вызывать смещение кода. RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - Rio - 14.01.2012 15:12 Ну да, все верно. Не знаю, мне кажется было бы неплохо иметь какой-либо автоматизированный дебаггер\дизассемблер, который умел бы распознавать код вызовов Katana (99% игр на дрим были написаны именно под нее, насколько я понимаю), это бы существенно упростило понимание программ. Так конечно в куче асма понять что-то очень затруднительно. RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - P@S@f - 14.01.2012 16:59 Вот тебе пожалуйста дизасм бинарников Dreamcast с возможностью подхвата MAP-файлов KATANA: http://www.mediafire.com/?z9ijh9qjvd3ji8j Хотя мне он лично ничего не дает Я дебажил Win32 PE бинарники (ну еще немного (совсем немного) dotNET). Но это был совсем другой уровень, учитывая наличие и функционал программ для этого. Более высокий уровень (нежели та консольная программка) предоставляют дебаггеры в эмуляторах. Но вот SWAT к примеру говорит, что там мало что соответствует действительности (то-есть реальному выполнению кода на SH4 в Dreamcast), и единственный нормальный эмулятор с более-менее правдоподобным дебаггером - это lxdream, но он написан под Linux Нам удалось запустить его под cygwin, но скорость его работы с включенным opengl рендерингом (который кстати не нативный, а тоже портированный под cygwin - Mesa 3D) через X сервер оставляет желать лучшего, намного лучшего RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - Rio - 14.01.2012 17:17 В смысле, почему мало соответствует? RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - SWAT - 14.01.2012 17:33 Я имел ввиду не выполнение кода, а эмуляцию железа. Железо в эмуляторах не эмулируется на низком уровне, кроме как в lxdream, но в нем конечно тоже далеко не все есть. Эмуляторы склонны и к поглощению ошибок в коде, так как они сами их могут порождать тоже, а вылетать сразу не очень то весело для пользователя. Я лично сталкивался не раз когда один и тот же код работал в эмуле, а на дриме нет. RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - cybdyn - 14.01.2012 23:01 ну... найти место вписывать свой код это не такая уж и проблема. можно дописать в конец файла. и потом сместить указатель на HEAP... я как то же искал эмкль который может пошагам показать как пашет SH4 при работе эмуля дрима... но както так и не понял верно ли он работает... так BOOT.BIN это и есть екзешник игры? для пс2 есть визуализаторы-дисасемблеры. конечно кот в асме видить трудно... но прикол в том что при компиляция си кода компиль делает похожие весчи. например а вызов функции JAL , потом можно предзагрузить адреса регов RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - SWAT - 15.01.2012 09:32 Да BOOT.BIN это и есть исполняемый файл, название правда условное, как правило он называется 1ST_READ.BIN RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - Ukushuka - 15.01.2012 18:32 Может не в тему но... http://emdkay.net/bartop/dreamcast10arcade5.jpg RE: Возможно подключить купюроприемник, монетоприемник к Dreamcast? - shadow - 15.01.2012 19:33 Дак это не NAOMI ? Просто сверху плата SEGA, и там видно процессор от Dreamcasta |