Автор Тема: Turbo Grafx 16 / PC Engine - GAME HACK  (Прочитано 1637 раз)

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

Оффлайн ZXAWFD

  • Пользователь
  • Сообщений: 40
  • Пол: Мужской
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« : 06 Май 2020, 19:59:14 »
Всем привет!
Кто подскажет как ломать игры данной консоли? Коды Game Genie на данную консоль Я найти не могу, только какие-то RAW и Physical Address. Как с ними работать не имею понятия. Может кто подскажет или что посоветует?  :blush:

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #1 : 06 Май 2020, 20:44:05 »
Raw это адреса оперативной памяти. Можно фризить нужное значение через эмуляторы, или брейкпоинты ставить в дебаггере и изучать код.

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

Оффлайн ZXAWFD

  • Пользователь
  • Сообщений: 40
  • Пол: Мужской
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #2 : 06 Май 2020, 20:48:36 »
Raw это адреса оперативной памяти. Можно фризить нужное значение через эмуляторы, или брейкпоинты ставить в дебаггере и изучать код.

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

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

Оффлайн lupus

  • Пользователь
  • Сообщений: 3812
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #3 : 06 Май 2020, 21:05:41 »
f82e40:10Я понимаю, что по hF82E40 надо вписать 0х10

Оффлайн ZXAWFD

  • Пользователь
  • Сообщений: 40
  • Пол: Мужской
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #4 : 06 Май 2020, 21:34:38 »
f82e40:10Я понимаю, что по hF82E40 надо вписать 0х10

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

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24644
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #5 : 06 Май 2020, 22:04:49 »
Коды Game Genie на данную консоль Я найти не могу
Естественно. Game Genie на данную консоль не выпускался.

только какие-то RAW и Physical Address
Мне почему-то кажется, что RAW - это в самой игре, а вот Physical Address - это в ОЗУ приставки. То есть первым патчить игру, второе загонять в эмулятор.

Оффлайн ZXAWFD

  • Пользователь
  • Сообщений: 40
  • Пол: Мужской
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #6 : 07 Май 2020, 09:59:01 »
Я очень надеюсь, что кто-нибудь поделится дельным советом или подробной информацией, как ломать PCE ромы. В инете пока ничего толкового найти не могу, как и на форуме EMU-LANDa.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4999
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #7 : 07 Май 2020, 14:03:34 »
Если нажать на 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.   

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

Добавлено позже:
Я очень надеюсь, что кто-нибудь поделится дельным советом или подробной информацией, как ломать PCE ромы.
С RAM читами как и обычно: делаете RAM Search на изменение, а для вшития в ром изучаете код, чтобы изменить инструкцию.
« Последнее редактирование: 07 Май 2020, 15:32:13 от Sharpnull »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4999
    • Просмотр профиля
Turbo Grafx 16 / PC Engine - GAME HACK
« Ответ #8 : 07 Май 2020, 14:16:11 »
Как вводить читы в BizHawk
Взять чит начинающийся с 1F (нажать Info на gamehacking.org), например 1F0E40:10.
Открыть Tools -> Cheats. Выбрать Domain: System Bus (21bit), в Address: 1F0E40, Value: 10. Нажать Add.


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