Patching a Palm PRC. Gobble!

Got my PalmIII for a while now with my own USB serial and expansion “port”. Surely made things lot easier. Installed one of my fav Pacman clones called Gobble! which is a freeware. But one big gripe that i had was that the game couldn’t be paused! Looking away from the game could result in losing a life point.

While patching PRCs can be done, and i have studied it before, i have not done it for a long time. But this “lack of pause” in Gobble finally pissed me enough to try to do something about it. So i broke open my decompiler and looked for the right place to patch such that i wouldn’t lose a point in some way.

Did some mapping around in assembly and finally found a good place to patch so that if no button is registered, you wouldn’t lose a life point.

Patch locations are 0x908 and 0x90a. Changing the instructions from 0x5350 and 0x544f to 0x4e71 and 0x4e71 respectively.

Some learnings are
– BRA = 6000
– NOOP = 4e71
– BLS = 6304
– BHS = 6216?620c?6228?

Effectively, this acts like a “Pause” function where if you don’t press the buttons for a while, and the ghost doesn’t get you in the meantime, you wouldn’t lose a point. Don’t care about how its done? The PRC file is below. It was freeware but i couldn’t find the source to do a clean fix. So here is the patched version.