| Разработка и ромхакинг > Ромхакинг и программирование |
| [Видео] Отладка игр с помощью Gensida (SMD) |
| (1/1) |
| DrMefistO:
Неправильный vimeo url В этом видео показаны основные возможности специального дебагер-плагина для IDA, позволяющего отлаживать игры для Sega Mega Drive / Genesis. Если вы еще стеснялись использовать Gensida, то вот Вам отличная возможность начать. Сссылка на тему по Gensida: http://www.emu-land.net/forum/index.php/topic,74337.0.html |
| krocki:
В дебагере важны две вещи: 1: Больше функций. 2: Удобства в использовании тех же функций. |
| Doomguard45:
Заметил, что дебаггер не всегда запускает игру, останавливал дебаггер и запускал вновь - и всё работает, не понял с чем это связано |
| Lin:
Скажите, чем отлаживать игры Sega/Mega CD? |
| DrMefistO:
--- Цитата: Doomguard45 ---Заметил, что дебаггер не всегда запускает игру, останавливал дебаггер и запускал вновь - и всё работает, не понял с чем это связано --- Конец цитаты --- Да, известная трабла. Бывает, если останавливать эмуляцию, а затем снова ее запускать. Постараюсь ее пофиксить в одном из будущих релизов. --- Цитата: Lin ---Скажите, чем отлаживать игры Sega/Mega CD? --- Конец цитаты --- Теоретически, можно с помощью Gensida. Только Loader'а нет для анализа внутренностей. А так - как отладчик оно будет работать. P.S. Позже залью на youtube, правда разбив на части. |
| SeregaZ:
не программист, французским не владею: а тут можно как-то получать некий... эээ... лог команд для звукового процессора? |
| shadwolf21:
:wow: Ого!очень крутая штука! :D Спасибо большое автору за то, что создает такие полезные вещи и причем за просто так :) очень сильно помогает при отладке. Но есть вопрос. Я может чего то не догоняю, как можно просмотреть значения регистров $0C00000, $0C00004, или там к примеру $0A10000, $0A10002 ,$0A10004 - Gensida я так понимаю распознает их, и помечает именами как в следующей команде: lea (VDP_DATA).l,a4 если я к примеру захочу посмотреть значение регистра VDP_DATA ($0C00000) - меня пересылают на следующую строчку: VDP:00C00000 extern VDP_DATA Я думал что все эти регистры копируются на какую то область данных, в которой потом спокойно можно смотреть текущие значения, но данная запись ссылается на внешнюю переменную.Вот и возник вопрос как посмотреть текущие значения таких вот регистров |
| DrMefistO:
shadwolf21, спасибо за интерес к отладчику) Если нужно, могу добавить чтение данных регистров. Просто по сути, это регистры-статуса, либо же, результат чтения будет зависеть от ранее записанной в командный порт команды. Например, записав в VDP_CTRL команду чтения VRAM, то в VDP_DATA будет находиться текущий word читаемых из VRAM данных. С регистрами версии и статуса VDP проще, если их только на чтение опрашивать. Насчёт чтения регистров джойстиков - не могу понять, что даст знание последних записанных туда данных. В общем, с какой целью тебе нужно знать значения по данным адресам? |
| shadwolf21:
DrMefistO, да, я с тобой согласен в плане того, что в эти регистры только пишется инфа, а если что то нужно с них получить, то существуют специальные механизмы для этого - как ты говорил чтение из VRAM памяти. Просто при отладке всякие ситуации могут случиться и как бы хочется контролировать что по факту туда записывается и вообще что там есть. Вот для чего эта штука была бы полезна :) .Нууу я так считаю) |
| DrMefistO:
--- Цитата: shadwolf21 от 04 Март 2018, 12:04:41 ---DrMefistO, да, я с тобой согласен в плане того, что в эти регистры только пишется инфа, а если что то нужно с них получить, то существуют специальные механизмы для этого - как ты говорил чтение из VRAM памяти. Просто при отладке всякие ситуации могут случиться и как бы хочется контролировать что по факту туда записывается и вообще что там есть. Вот для чего эта штука была бы полезна :) .Нууу я так считаю) --- Конец цитаты --- К примеру, запись в VDP_DATA регистр: записанное будет либо в VRAM, либо в CRAM, либо в VSRAM. Запись в VDP_CTRL отслеживать полезно только при пошаговой отладке, но функционал по отслеживанию работы с VDP уже есть в меню Tool->VDP RAM. А там две вкладки с необходимой фигнёй. Какие ещё реальные примеры необходимой инфы есть? Просто я хочу понять, что реально нужно, чтобы добавлять. |
| shadwolf21:
DrMefistO, я просто спросил, можно ли так такого добиться в твоей наработке и ответ на свой вопрос получил. То что касается добавлять или нет - я тебя не заставляю этого делать, тут уж тебе решать. То что касается целесообразности)да ты меня почти убедил что вроде как этого делать не стоит, но я тебе еще раз повторяю - ситуации при отладке разные бывают, и тут я считаю что такой контроль через прямой просмотр данных регистров был бы не лишним. Но все равно спасибо что продолжаешь заниматься данным продуктом, и не забрасываешь его оказывая обратную связь :) |
| mr287cc:
Апну некротопик. Просто мысли вслух. Хотелось бы поиметь выгрузку, готовую к компиляции vasm'ом, например. На данный момент у компилятора есть вопросы к выгруженным данным. 1. Это, похоже что ненужная компилятору инфа, я выпилил описание структуры из исходника, ошибки исчезли. --- Код: ---struct_sprite struc ; (sizeof=0x8) y: dc.w ? ; ------yy yyyyyyyy (Vertical coordinate of sprite) hsize_vsize: dc.b ? ; ----hhvv (HSize and VSize in cells) link: dc.b ? ; -lllllll (Link field) pcvhn: dc.w ? ; pccvhnnn nnnnnnnn ; (p - Priority, cc - Color palette, ; v - VF, h - HF, n - Start tile index) x: dc.w ? ; ------xx xxxxxxxx (Horizontal coordinate of sprite) struct_sprite ends --- Конец кода --- 2. Компилятору не нравится "extern". Можно решить скрытием данных сегментов перед выгрузкой дизасма, но тогда придётся ручками набивать include файл с дефайнами регистров. 3. Это, я так понимаю, данные, которые почему-то пометились как код, ничего не поделать, придётся идти в Ida и переразмечать. --- Код: ---error 9 in line 70874 of "Fantastic Dizzy.gen.asm": instruction not supported on selected architecture > addi.w #$96A,a0 error 9 in line 70875 of "Fantastic Dizzy.gen.asm": instruction not supported on selected architecture > cmpi.l #$FAB12C8,a4 error 9 in line 70882 of "Fantastic Dizzy.gen.asm": instruction not supported on selected architecture > move.w dword_0(pc) error 9 in line 70888 of "Fantastic Dizzy.gen.asm": instruction not supported on selected architecture > chk error 1 in line 70892 of "Fantastic Dizzy.gen.asm": illegal operand types > jsr --- Конец кода --- Может есть что-то ещё. |
| DrMefistO:
Про портирование исходников я делал несколько видео. Советую посмотреть тут: http://www.emu-land.net/forum/index.php/topic,81112.0.html |
| Навигация |
| Главная страница сообщений |