Если нажать на 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.txtPhysical 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.
Читы для вшития в ром тоже бывают.
Добавлено позже:Я очень надеюсь, что кто-нибудь поделится дельным советом или подробной информацией, как ломать PCE ромы.
С RAM читами как и обычно: делаете RAM Search на изменение, а для вшития в ром изучаете код, чтобы изменить инструкцию.