I remember this game i think i have it on tape. is a speccy port.
Not exist a guide because every game and cracker is different.
Anyway if you use the bmc version is uncompressed.
http://cpcrulez.fr/GamesDL_arc/index.php?download=dLXnzdK8jbfUv9XDk7vp38S5Y5-4mt_DkQ==&p=aLPi0diuhsXpm9i9k7PiztG_gMXl1dfDlcWj1NnHwith the winape debug breakpoing->add input/output breakpoint "keyboard read".
the breakpoint reveals in(A),c in a &08f2
folowing A route its load to l and later its return to register a inm &08ff
The instruction in &900 bit x,a sounds familiar to comparing the bit x of x line of the keyboard.
Programming:Keyboard scanning - CPCWikiSo go to the ret in 0904 and made step in to make the program return the direction where the call is called.
That reveals a structure tipe ld A,x call &085c from &5a31-5a56.
Taking the picture:

For example:
&5a31 ld a,26
&5a33 call &08c5
26= hexadecimal number in decimal (use windows calculator to convert it easy).=38
38 in the picture is the :

38 is the "M".
As cpcpower tells :
"* CHEAT MODE (Invulnérable) :
A l'écran du choix des contrôles pour le Player1 et Player2 enfoncer simultanément les touches O+M (Clavier QWERTY - aucun son ou message ne viendra confirmer la bonne activation du cheat mode)"
Probably is the M of the cheat code.
So to change a key to joypad
1º localize the key you want to change
2º calculate the new code of keypad from the picture.(48,49,4a,4b,4c,4d)
3º Open the dsk wth a hexadecimal editor:
HxD - Freeware Hex Editor and Disk Editor | mh-nexusSearch in the hex editor the hex code of the call and the a.
For example
Ld a,26 call &08c5= search 3e 26 cd c5 08
subtitute in the hex editor the 26 to 4c(joypad fire 1) for example.
save the dsk in the editor and try the changes.
early of that you can try the changes directly modifing the memory in the winape withouth the hex editor.
The Amstrad CPC Firmware Manual - Index-----------------------------------------------------------------------------------------------------
In the Y/N trainer selection. Make a breakpoint in &bb00 to bb4e(in all rst 08) view the first item stack(the direction where the calls return after finished)..
Reveals the firmware call bb06 is called in &a227
&BB06 | KM WAIT CHAR |
Action | Waits for the next character from the keyboard buffer |
Entry | No entry conditions |
Exit | Carry is true, A holds the character value, the other flags are corrupt, and all other registers are preserved |
So when a key is pressed it return the code to a register.
The subrutine use the ascii code so using this:

For example the &a22a cp 59 is =89 in decimal= "Y".
The keypad 1 fire 1 and two are interpreted by the firmware as "X" and "Z", so change the cp codes to these letters make the work.
-------------
In the crak intro, using the winape breakpoint keyboard.
Reveals the in(A),c is in 4cc1
Is a standalones subrutine. So.
In 4ccd looks to cp 7f=01111111 in binary.
space is in line 45 bit 7 in the keboard matrix.
Programming:Keyboard scanning - CPCWikiThe cpc interpret the keyboard presses as "0" in binary an "1" not pressed. A keyboard line is former with 8 bits. space is in bit 7 Thats the reason the space=7f
So is necesary change the cp to the pad1 fire 1 pressed. calculting it in binary and hex.
So: 11101111(bit 4 fire 1 pressed)=ef
But pad1 fire 1 is in line 9 not the line 5 where the space is .
So you need locate the 45 and change to 49.
This is located in &4cba ld bc,&f645