Показать сообщение отдельно
Старый Сегодня, 20:52   #111
iddqd
Фанат ArtMoney
Аватар для iddqd
По умолчанию Создание настроек эмуляторов - ч. 80. PolyGame Master — ч.1

Создадим настройку эмулятора PolyGame MasterMAMEUI32 0.146 с поиском нулевого адреса через встроенный в эмулятор отладчик с редактором памяти.
Карта памяти PolyGame Master:


http://mamedev.org/source/src/mame/drivers/pgm.c.html


Код:
AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) AM_SHARE("sram") /* Main Ram */
Рабочая область памяти MainRam 800000-81FFFF размером 128кб.



Хэш файла запуска эмулятора:


Искать нулевой адрес можно с любой работающей в эмуляторе игрой, здесь это DoDonPachi Dai-Ou-Jou V101 (2002.04.05.Master Ver) ddpdoj
Вначале нужно включить в эмуляторе отладчик для этой системы. Можно сделать это через главнео меню эмулятора: Options – Debug, как в статье по CPS3, или через Properties for pgm.c – Debug:


Включили. Далее запускаем игру, в появившемся окне дебаггера нажимаем Run, в игре доходим хотя бы до окна выбора игрока, затем ставим паузу (клавиша P). После этого в окне Debug открываем окно мемори вьювера: Debug - New Memory Window:

В открывшемся окне просмотра памяти перемещаемся на адрес 800000 (адрес начала RAM для PolyGame Master). (1) Для этого вводим 800000 в поле ввода адреса, один раз нажимаем Enter, затем один раз нажимаем Tab. (2) Видим, что по этому адресу сейчас значение 80D0h. Ищем это значение в ArtMoney по всей памяти эмулятора, тип 2 байта целое.

Далее изменяем значение по адресу 800000, для этого внизу главного окна отладчика печатаем в поле ввода команд w@800000=1234, затем нажимаем Enter. Тем самым мы записываем по адресу 800000 двухбайтовое значение 1234 в Hex. Разумеется, Вы можете записывать любые другие значения.

Возвращаемся в окно просмотра памяти, нажимаем Tab, видим, что значение изменилось на 1234h. Отсеиваем в ArtMoney на это значение.


Получаем сразу один адрес (если больше — повторяем процедуру еще раз, записывая в адрес 800000 другое значение), на него ищем указатель с учетом модульной адресации — отмечаем «Использовать модульную адресацию» и «только статические адреса в модулях» при поиске:

Такой указатель один. Нам нужен адрес в модуле (04464228h):

Получаем настройку


Код:
 MAMEUI32 0.146;MameUI32.exe;N;186eceda7f11b313fc5576fbb2d92678
 ;RAM 128kb;800000;MameUI32.exe+P04464228;20000
После этого проверяем ее на играх
Knights of Valour: Sangoku Senki (ver. 117) kov Windows 7 (после перезапуска!)
На скрине видно Hex значение по нулевому адресу в окне мемори вьювера в отладчике эмулятора и десятичное значение в правой таблице и окне редактирования адреса. Именно так и проверяется нулевой адрес при создании настроек эмуляторов.


The Killing Blade (ver. 109, Chinese Board) killbld


Статьи по Final Burn Alpha, FBA-Shuffle в процессе (ждем выхода новых версий).
__________________
Применение ArtMoney в эмуляторных играх 7.05.2012
Видео ArtMoney 10.10.2011
Всем кто помнит igoru.ru: http://igoru.ucoz.ru/blog
iddqd на форуме Добавить отзыв для iddqd Пожаловаться на это сообщение   Редактировать/удалить сообщение Ответить с цитированием