Have you got an tips on how to help find where controls are found like the space bar or n key etc, It could help get past some of the trainers or games where you need a key to start , these could be mapped to button two etc.
I know how to change stuff at poke address, just not to sure how to find stuff.
Thats happend to my After the wip arnlod era(i not tried it). I run the game to the moment yo need use the key so need change. Then pause it, and use f7f7f7f7f7f7f7 step into. Yo slowy the game at frame to frame. So you are 100% sure the game is in a bucle. Take a look at bc register where you push f7 f7 f7. And when you view. Some type of &f4xx,&f5 as described in grimware table:
http://www.grimware.org/doku.php/documentations/devices/io.devices (o search all in IN(C),in hex code make a breakpoint an examine it running)
The code is accessing to the ppi. Stop And examining the funcion. It should look you the example in cpc wiki.
Programming:Keyboard scanning - CPCWikiThe important is the part IN(A), and probably the next LD(HL),take look at the call with f7 and breakpoints, if HL read around 10 position. And save it in memory, you probaly found where the scan keyboard are saved. To be 100% sure push some in the keyboard, if is it you can see aschanges in memory you found it.
Now take a look at the table in the cpcwiki page,search the letter you need change. And found in what row are, count, and the position exact.
Now you have 2 options, f7f7f77f to found another site calls the keyboard array in memory looking at hl or use a litte imagination,you know the program need load the array to compare it. So maybe with luky you can found search in hexadecimal LD HL.#The first position of the row in the memory you found. Breakpoint all, and examinig who does after loads de numbers.where you are the where are called using the stack o go at finish of the funcion. Search if it use the exact position you know he need search. examine the variables and try changue what you thinking is code of the letter, try and probe.
In the case of kung fu. I search first part in bucle menu(because the loop is < that in game). And later ingame I sersch who calls the memory position, at the first i made it with f7f7^f7.Later i think in search in hex the LD HL#number(first position of the row in memory), and it works.
They release my into the calll,I view he read row in memory an the resoult is depending for the a external paremeter, and is called 5 times in the code.( i suspected joystick + fire+ space). Then he exits and i view a condition. I know the game use a joystick(and space). so I know he use the last position in the arrow and the p position in middle.So I cheked the call where i pulse joystick and space and i found who is the used to espace.
Now i examing where the parameter A is begining, I found its from a number (in the poke position you know). LD A,#28 , i try change it to 15 and i discover it change to intro.
But i not know how to found joystick 2 to remap it . I thinking and thinking. And then i think o.k is in hexadecimal, so if is the table converted from the decimal?. Then i go to the cpcwiki page and i count... To the intro. From left to right line a line. 0,1,2,3... retun in the table is in the position 21, i take the windows calculator pass it to hex and 15!!. I try wtih space and 28!!.
So i count to the joystick 2 in the table i convert it to hex.And you are the magic 4A

.
I think my experience can help you.
PD a new game.