Автор Тема: [Видео] Отладка игр с помощью Gensida (SMD)  (Прочитано 4694 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Неправильный vimeo url
В этом видео показаны основные возможности специального дебагер-плагина для IDA, позволяющего отлаживать игры для Sega Mega Drive / Genesis. Если вы еще стеснялись использовать Gensida, то вот Вам отличная возможность начать.

Сссылка на тему по Gensida: http://www.emu-land.net/forum/index.php/topic,74337.0.html
« Последнее редактирование: 29 Ноябрь 2015, 15:25:28 от DrMefistO »

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
Re: [Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #1 : 30 Ноябрь 2015, 00:11:46 »
В дебагере важны две вещи:
1: Больше функций.
2: Удобства в использовании тех же функций.

Оффлайн Doomguard45

  • Пользователь
  • Сообщений: 237
    • Просмотр профиля
Re: [Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #2 : 30 Ноябрь 2015, 05:41:19 »
Заметил, что дебаггер не всегда запускает игру, останавливал дебаггер и запускал вновь - и всё работает, не понял с чем это связано

Оффлайн Lin

  • Пользователь
  • Сообщений: 641
  • Пол: Мужской
    • Просмотр профиля
Re: [Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #3 : 30 Ноябрь 2015, 06:00:55 »
Скажите, чем отлаживать игры Sega/Mega CD?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: [Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #4 : 30 Ноябрь 2015, 09:47:51 »
Цитата: Doomguard45
Заметил, что дебаггер не всегда запускает игру, останавливал дебаггер и запускал вновь - и всё работает, не понял с чем это связано

Да, известная трабла. Бывает, если останавливать эмуляцию, а затем снова ее запускать. Постараюсь ее пофиксить в одном из будущих релизов.
Цитата: Lin
Скажите, чем отлаживать игры Sega/Mega CD?

Теоретически, можно с помощью Gensida. Только Loader'а нет для анализа внутренностей. А так - как отладчик оно будет работать.

P.S. Позже залью на youtube, правда разбив на части.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2483
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Re: [Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #5 : 04 Декабрь 2015, 19:53:27 »
не программист, французским не владею: а тут можно как-то получать некий... эээ... лог команд для звукового процессора?

Оффлайн shadwolf21

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #6 : 02 Март 2018, 22:12:12 »
 :wow: Ого!очень крутая штука! :D Спасибо большое автору за то, что создает такие полезные вещи и причем за просто так :) очень сильно помогает при отладке. Но есть вопрос. Я может чего то не догоняю, как можно просмотреть значения регистров $0C00000, $0C00004, или там к примеру $0A10000, $0A10002 ,$0A10004 - Gensida я так понимаю распознает их, и помечает именами как в следующей команде:
 lea     (VDP_DATA).l,a4
если я к примеру захочу посмотреть значение регистра VDP_DATA ($0C00000) - меня пересылают на следующую строчку:
VDP:00C00000 extern VDP_DATA
Я думал что все эти регистры копируются на какую то область данных, в которой потом спокойно можно смотреть текущие значения, но данная запись ссылается на внешнюю переменную.Вот и возник вопрос как посмотреть текущие значения таких вот регистров

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #7 : 04 Март 2018, 00:04:59 »
shadwolf21, спасибо за интерес к отладчику)

Если нужно, могу добавить чтение данных регистров. Просто по сути, это регистры-статуса, либо же, результат чтения будет зависеть от ранее записанной в командный порт команды.
Например, записав в VDP_CTRL команду чтения VRAM, то в VDP_DATA будет находиться текущий word читаемых из VRAM данных.

С регистрами версии и статуса VDP проще, если их только на чтение опрашивать.

Насчёт чтения регистров джойстиков - не могу понять, что даст знание последних записанных туда данных.

В общем, с какой целью тебе нужно знать значения по данным адресам?

Оффлайн shadwolf21

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #8 : 04 Март 2018, 12:04:41 »
DrMefistO,  да, я с тобой согласен в плане того, что в эти регистры только пишется инфа, а если что то нужно с них получить, то существуют специальные механизмы для этого - как ты говорил чтение из VRAM памяти. Просто при отладке всякие ситуации могут случиться и как бы хочется контролировать что по факту туда записывается и вообще что там есть. Вот для чего эта штука была бы полезна  :)  .Нууу я так считаю)
« Последнее редактирование: 04 Март 2018, 12:24:53 от shadwolf21 »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #9 : 05 Март 2018, 22:37:25 »
DrMefistO,  да, я с тобой согласен в плане того, что в эти регистры только пишется инфа, а если что то нужно с них получить, то существуют специальные механизмы для этого - как ты говорил чтение из VRAM памяти. Просто при отладке всякие ситуации могут случиться и как бы хочется контролировать что по факту туда записывается и вообще что там есть. Вот для чего эта штука была бы полезна  :)  .Нууу я так считаю)
К примеру, запись в VDP_DATA регистр: записанное будет либо в VRAM, либо в CRAM, либо в VSRAM.
Запись в VDP_CTRL отслеживать полезно только при пошаговой отладке, но функционал по отслеживанию работы с VDP уже есть в меню Tool->VDP RAM. А там две вкладки с необходимой фигнёй.

Какие ещё реальные примеры необходимой инфы есть? Просто я хочу понять, что реально нужно, чтобы добавлять.

Оффлайн shadwolf21

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #10 : 10 Март 2018, 10:10:59 »
DrMefistO, я просто спросил, можно ли так такого добиться в твоей наработке и ответ на свой вопрос получил. То что касается добавлять или нет - я тебя не заставляю этого делать, тут уж тебе решать. То что касается целесообразности)да ты меня почти убедил что вроде как этого делать не стоит, но я тебе еще раз повторяю - ситуации при отладке разные бывают, и тут я считаю что такой контроль через прямой просмотр данных регистров был бы не лишним. Но все равно спасибо что продолжаешь заниматься данным продуктом, и не забрасываешь его оказывая обратную связь  :)

Оффлайн mr287cc

  • Пользователь
  • Сообщений: 68
  • Пол: Мужской
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #11 : 28 Апрель 2021, 17:04:00 »
Апну некротопик.
Просто мысли вслух. Хотелось бы поиметь выгрузку, готовую к компиляции vasm'ом, например. На данный момент у компилятора есть вопросы к выгруженным данным.

1. Это, похоже что ненужная компилятору инфа, я выпилил описание структуры из исходника, ошибки исчезли.


2. Компилятору не нравится "extern". Можно решить скрытием данных сегментов перед выгрузкой дизасма, но тогда придётся ручками набивать include файл с дефайнами регистров.

3. Это, я так понимаю, данные, которые почему-то пометились как код, ничего не поделать, придётся идти в Ida и переразмечать.


Может есть что-то ещё.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Видео] Отладка игр с помощью Gensida (SMD)
« Ответ #12 : 28 Апрель 2021, 18:02:31 »
Про портирование исходников я делал несколько видео. Советую посмотреть тут:
http://www.emu-land.net/forum/index.php/topic,81112.0.html