Разработка и ромхакинг > Ромхакинг и программирование
Turbo Grafx 16 / PC Engine - GAME HACK
(1/1)
ZXAWFD:
Всем привет!
Кто подскажет как ломать игры данной консоли? Коды Game Genie на данную консоль Я найти не могу, только какие-то RAW и Physical Address. Как с ними работать не имею понятия. Может кто подскажет или что посоветует?  :blush:
Cyneprepou4uk:
Raw это адреса оперативной памяти. Можно фризить нужное значение через эмуляторы, или брейкпоинты ставить в дебаггере и изучать код.

Physical это адрес файла, открываешь ром хекс редактором и переходишь на него, меняешь что надо и сохраняешь
ZXAWFD:

--- Цитата: Cyneprepou4uk от 06 Май 2020, 20:44:05 ---Raw это адреса оперативной памяти. Можно фризить нужное значение через эмуляторы, или брейкпоинты ставить в дебаггере и изучать код.

Physical это адрес файла, открываешь ром хекс редактором и переходишь на него, меняешь что надо и сохраняешь

--- Конец цитаты ---

Ну Я так и думал) Хорошо, допустим есть игра Magical Chase и вот на сайте есть физические адреса: https://gamehacking.org/game/40447
Загвоздка в том, что там адреса начинаются на F8XXXX:XX. Я не понимаю, как данный код мне отразить в HEX-редакторе.
lupus:

--- Код: --- f82e40:10
--- Конец кода ---
Я понимаю, что по hF82E40 надо вписать 0х10
ZXAWFD:

--- Цитата: lupus от 06 Май 2020, 21:05:41 ---
--- Код: --- f82e40:10
--- Конец кода ---
Я понимаю, что по hF82E40 надо вписать 0х10

--- Конец цитаты ---

Разъясни подробнее пожалуйста.
Rumata:

--- Цитата: ZXAWFD от 06 Май 2020, 19:59:14 ---Коды Game Genie на данную консоль Я найти не могу
--- Конец цитаты ---
Естественно. Game Genie на данную консоль не выпускался.


--- Цитата: ZXAWFD от 06 Май 2020, 19:59:14 ---только какие-то RAW и Physical Address
--- Конец цитаты ---
Мне почему-то кажется, что RAW - это в самой игре, а вот Physical Address - это в ОЗУ приставки. То есть первым патчить игру, второе загонять в эмулятор.
ZXAWFD:
Я очень надеюсь, что кто-нибудь поделится дельным советом или подробной информацией, как ломать PCE ромы. В инете пока ничего толкового найти не могу, как и на форуме EMU-LANDa.
Sharpnull:
Если нажать на Info чита: RAM Write - Constantly writes 0x10 to the RAM address 0x1F0E40. Причём для этого чита будет Raw - 1F0E40:10 и Physical Address - F82E40:10, это простое преобразование, которое можно сделать на их сайте (https://gamehacking.org/system/pce).
http://shu.sheldows.com/shu/download/pcedocs/pce_memory.html:

--- Цитата ---The HuC6280 has a 64 KB logical address space and a 2 MB physical address space.
--- Конец цитаты ---

--- Цитата ---F8   Base RAM normal PC-Engine (8KB)
--- Конец цитаты ---
https://patpend.net/technical/tg16/memmap.txt

--- Код: ---Physical Addresses          Segment #          Description          Chip Enable Signal
...
1F0200 - 1F1FFF            F8              Base "scratchpad" RAM              "
1F0100 - 1F01FF             "                  Stack Page                     "
1F0000 - 1F00FF             "                  Zero Page                      "
--- Конец кода ---
Здесь есть некоторая путаница с названием, но 000000 - 1FFFFF - в железе, а F8xxxx - сегмент RAM.

--- Цитата --- the first instructions map segment $FF to $0000 and segment $F8 to $2000
--- Конец цитаты ---
Получается 0xF82E40 = (0x1F0E40 - 0x1F0000 + 0x2000) | 0xF80000, то есть на сайте gamehacking - Physical Address = (Raw - 0x1F0000 + 0x2000) | 0xF80000.
UPD: Значит, обычный RAM адрес (0000 - 1FFF, 8КБ, Main Memory в BizHawk) получается отбрасыванием битов: 0xF82E40 & 0x001FFF или 0x1F0E40 & 0x001FFF.
Для получения адреса в logical address space (64KB, System Bus в BizHawk) нужно добавить 0x2000 для RAM адреса (0xF82E40 & 0x00FFFF) или (0x1F0E40 & 0x001FFF) + 0x2000, потому что в PC-Engine в $2000 - $3FFF (MPR page 1) должно соответствовать базовой RAM.   

Читы для вшития в ром тоже бывают.

Добавлено позже:

--- Цитата: ZXAWFD от 07 Май 2020, 09:59:01 ---Я очень надеюсь, что кто-нибудь поделится дельным советом или подробной информацией, как ломать PCE ромы.
--- Конец цитаты ---
С RAM читами как и обычно: делаете RAM Search на изменение, а для вшития в ром изучаете код, чтобы изменить инструкцию.
Sharpnull:
Как вводить читы в BizHawk
Взять чит начинающийся с 1F (нажать Info на gamehacking.org), например 1F0E40:10.
Открыть Tools -> Cheats. Выбрать Domain: System Bus (21bit), в Address: 1F0E40, Value: 10. Нажать Add.


Добавлено позже:
На gamehacking.org можно сгенерировать файлы с читами для MAME и Mednafen, останется разобраться как включать нужные.
Навигация
Главная страница сообщений

Перейти к полной версии