Romhacking.net

Romhacking => Newcomer's Board => Topic started by: kruuth on April 03, 2020, 10:38:40 pm

Title: Hacking/patching cheats into PC Engine/Turbografx CD games?
Post by: kruuth on April 03, 2020, 10:38:40 pm
Is there a guide or something out there that has any information on patching a PC Engine CD game with cheat codes(infinite lives, etc)
Title: Re: Hacking/patching cheats into PC Engine/Turbografx CD games?
Post by: PolishedTurd on April 04, 2020, 11:30:58 am
I was able to do this in a rudimentary way using Mednafen. Not being familiar with the program, it was a manual process of watching the RAM with my eyeballs until I found the lives counter. Then I set a write breakpoint on that register and overwrote the value set at the start of the game (Galaga '90).

But I didn't make a patch for it, because it's not within submission guidelines.
Title: Re: Hacking/patching cheats into PC Engine/Turbografx CD games?
Post by: kruuth on April 06, 2020, 08:19:20 pm
I'm going to need to patch the CD image in this case
Title: Re: Hacking/patching cheats into PC Engine/Turbografx CD games?
Post by: FAST6191 on April 07, 2020, 04:44:21 am
Same as any other system in that you have a choice

1) You recreate what a cheat engine would do and put a bit of code to constantly write to the location you found. Most people typically use the vblank routine

2) You find the thing changing your value (or all the things if multiple things reach out and touch it -- we do normally use the idea of lives for this one as an example if many things cause it) and change it to not do that (either a NOP, turning a subtraction into setting, stopping it from taking the less desired path).
https://www.chibiakumas.com/6502/advanced.php notes that the PCE/TG16 65c02 has inc and dec commands so less messing with the accumulator than other 6502 stuff might have.
https://www.chibiakumas.com/6502/pcengine.php is also a nice overview of the PCE hardware.

If you need a button combo for it to happen both of those can do it, though 1) might be easier there if you have limited space in 2).