Создадим настройку эмулятора Capcom Play System 3 – MAMEUIFX32 0.145. Скачать его можно с офсайта:
http://mame32fx.altervista.org/download.htm
Или сразу по этой ссылке:
http://www.mediafire.com/?jsu4e8ehjmaq3yh
Карта памяти CPS3 в исходнике драйвера MAME:
http://git.redump.net/mame/tree/src/mame/drivers/cps3.c
Код:
AM_RANGE(0x02000000, 0x0207ffff) AM_RAM AM_BASE(&cps3_mainram) // Main RAM
MainRAM 02000000-0207FFFF (512 kb)
Нулевой адрес искать будем через встроенный в MAME редактор памяти. В
ArtMoney настройка CPS3 для MAME получается с автонахождением нулевого
адреса эмуляции по размеру блока. Ранее такие настройки были сделаны для
эмуляторов Nestopia (Nes), MagicEngine (PC-Engine/Turbografx/CD) и
Project Tempest (Atari Jaguar).
Запускаем эмулятор. Для начала включим отладчик в эмуляторе.
(1) В главном меню эмулятора Options – Default Game Options – Debug,
(2) отмечаем Activate Integrated Debugger:
В ArtMoney копируем MD5 файла запуска эмулятора.

Далее запускаем одну из игр CPS3, я запускаю Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD) [sfiii2n]:

Сразу включился отладчик (см. скриншот). Нажимаем Run (F9)
Ждем, пока игра дойдет хотя бы до экрана выбора персонажа, дальше ставим
паузу (P), возвращаемся в отладчик и нажимаем кнопку New Memory Window.
Тем самым мы открываем редактор памяти.

В окно ввода адреса вводим 02000000,
(1) затем нажимаем Enter, после этого нажимаем Tab.
(2) Теперь мы видим нужный нам адрес 02000000. Как мы видим, сейчас его значение равно нулю.
Теперь нужно записать в этот адрес ненулевое значение. В сама низу
отладчика есть поле ввода команд. Печатаем туда d@02000000=11222211 и
нажимаем клавишу Enter. Таким образом записываем по адресу 02000000
значение 11222211h

Теперь переходим в окно редактора памяти
(1) Необходимо нажать клавишу Tab, чтобы обновить значения в окне редактора.
(2) Нажали, видим по адресу 02000000 значение 11222211h
Теперь в ArtMoney ищем последовательность из пяти четырехбайтовых значений, начиная от адреса 02000000.

Не забываем в ArtMoney в поле ввода значения добавлять в конце букву h, если в значениях нет буквенных символов.

Выполнили поиск, получаем одну такую последовательность. Первый из
адресов в этой последовательности — текущий нулевой адрес эмуляции
(1A5A1000).

Теперь в ArtMoney
(1) открываем карту процесса и смотрим,
(2) в каком блоке памяти находятся эти адреса.

Получается, что размер блока 82000, это блок начинается с адреса
1A5A0000, нулевой адрес эмуляции находится по адресу 1A5A1000, т. е.
смещение от адреса начала блока до нулевого адреса эмуляции CPS3 равно
1000h.
Получаем настройку:
Код:
MAMEUIFX32 0.145;mameuifx32.exe;bc8a38b6e762ba217d7279218ef63e03
;RAM 512кb;2000000;S00082000,1000h;80000
Нужно проверить ее на играх в двух разных версиях Windows.
Скриншот игры
JoJo's Venture (USA 990108) [jojo], Windows 7

Скриншот игры
Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD) [sfiii2n], Windows 7
Скриншот игры
Street Fighter III- New Generation (USA 970204) [sfiii], Windows 7
Скрины из Windows XP в процессе.
В заключение скажу, что в эмуляторе Final Burn Alpha в режиме эмуляции
CPS3 используется обычный указатель на нулевой адрес, в модуле EXE.
