Thanks for a great PSX emulator!
I don't know how you programmed the cheat functionality built into FPSE for android, but on the gameshark, codes beginning with 80 or 30 are meant to be constantly rewritten, and for anyone else reading, the only difference between 80 and 30 has to due with whether the value to be written is 1 byte (0-255, for starting with 30) or 2 bytes (0-65,535, for starting with 80.) I'm not familiar with gameshark hardware or how it interfaces with the PSX, so it may have the ability to force addresses designated with an 80 or 30 as read only after it inserts the code. However, popular applications like 'playstation emulation cheater' (PEC) for epsxe work by reinjecting all 80/30 codes every X number of frames. It's an option in the software for how often the codes are updated, and there is a warning that too often of an update can cause problems, while too slow of one may cause the code to not work.
The D0 codes you were talking about always come in multiples of two. They wait for the value you enter at the D0 address to appear, then execute whatever code you have immediately below it when it see's that value.
There is an excellent break down of PSX gameshark code format here if anyone is interested:http://www.underground-gamer.com/wiki/i ... hark_Guide
(hopefully I won't get in trouble for posting a link to an external site)
Schtruck, just out of personal interest, how are you making the 80/30 codes permanent in the programming? Are you denying the game the ability to make further changes to the entered addresses after a user presses the "Apply Cheat codes" button, or do you run a loop that constantly reinjects the specified values?