First of all, this game has in-game ROM check. Many ROM codes cause the game crash/freeze unless you set "skip in-game rom error".
psychic5.xml
Code: Select all
<!-- Psychic 5 (World) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2014 = 18</action> <!-- pressed left body -->
<action>maincpu.mb@2049 = 18</action> <!-- pressed right body -->
<action>maincpu.mb@2084 = 18</action> <!-- pressed foot -->
<action>maincpu.mb@20F1 = 18</action> <!-- pressed head -->
<action>maincpu.mb@2F2F = C9</action> <!-- flame -->
<action>maincpu.mb@4CE9 = 18</action> <!-- enemy -->
<action>maincpu.mb@5B4E = 18</action> <!-- fire ball -->
</script>
<script state="off">
<action>maincpu.mb@2014 = 28</action>
<action>maincpu.mb@2049 = 28</action>
<action>maincpu.mb@2084 = 28</action>
<action>maincpu.mb@20F1 = 28</action>
<action>maincpu.mb@2F2F = C0</action>
<action>maincpu.mb@4CE9 = 30</action>
<action>maincpu.mb@5B4E = 30</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@156C = 83</action>
<action>maincpu.mb@1570 = 28</action>
</script>
<script state="off">
<action>maincpu.mb@156C = 82</action>
<action>maincpu.mb@1570 = 20</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.md@1646 = 32000021</action>
</script>
<script state="change">
<action>maincpu.mb@1648 = param</action>
</script>
<script state="off">
<action>maincpu.md@1646 = 32190016</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>maincpu.mb@15BE = 00</action>
</script>
<script state="off">
<action>maincpu.mb@15BE = 30</action>
</script>
</cheat>
<cheat desc="easy break iron wall">
<script state="on">
<action>maincpu.mb@2E51 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@2E51 = c0</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@164F = 0F6EE0CD </action>
<action>maincpu.mq@6EE0 = C0013E67CBFC823A</action>
<action>maincpu.mq@6EE8 = 00000000C9FA013A</action>
<!--
6EE0 | 3A 82 FC : ld a,($FC82)
6EE3 | CB 67 : bit 4,a
6EE5 | 3E 01 : ld a,$01
6EE7 | C0 : ret nz
6EE8 | 3A 01 FA : ld a,($FA01)
6EEB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@164F = 0FFA013A </action>
<action>maincpu.mq@6EE0 = 0000000000000000</action>
<action>maincpu.mq@6EE8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@042E = C16EF0C3 </action>
<action>maincpu.mq@6EF0 = 57BAE00021136ACD</action>
<action>maincpu.mq@6EF8 = FE350120FDFEF628</action>
<action>maincpu.mq@6F00 = 0420FBFE340120FE</action>
<action>maincpu.mq@6F08 = 0520F7FE0618F03E</action>
<action>maincpu.mq@6F10 = 20DFFE7A7786103E</action>
<action>maincpu.mq@6F18 = 0520EFFE06184E03</action>
<action>maincpu.mq@6F20 = 00C9186DD5CD000E</action>
<!--
6EF0 | CD 6A 13 : call $136A // read input
6EF3 | 21 00 E1 : ld hl,$E000 // sound code address
6EF6 | BA : cp d
6EF7 | 57 : ld d,a
6EF8 | 28 F6 : jr z,$6D30
6EFA | FE FD : cp $FD
6EFC | 20 01 : jr nz,$6D3F
6EFE | 35 : dec (hl) // decrease code -01
6EFF | FE FE : cp $FE
6F01 | 20 01 : jr nz,$6D44
6F03 | 34 : inc (hl) // increase code +01
6F04 | FE FB : cp $FB
6F06 | 20 04 : jr nz,$6D4C
6F08 | 3E F0 : ld a,$F0 // decrease code -10
6F0A | 18 06 : jr $6D52
6F0C | FE F7 : cp $F7
6F0E | 20 05 : jr nz,$6D55
6F10 | 3E 10 : ld a,$10 // increase code +10
6F12 | 86 : add a,(hl)
6F13 | 77 : ld (hl),a
6F14 | 7A : ld a,d
6F15 | FE DF : cp $DF
6F17 | 20 03 : jr nz,$6D5C
6F19 | 4E : ld c,(hl) // play sound
6F1A | 18 06 : jr $6D62
6F1C | FE EF : cp $EF
6F1E | 20 05 : jr nz,$6D65
6F20 | 0E 00 : ld c,$00 // stop sound
6F22 | CD D5 6D : call $6DD5 // send sound code
6F25 | 18 C9 : jr $6D30
-->
</script>
<script state="run">
<output format="----- psychic 5 sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@042E = DF05C101 </action>
<action>maincpu.mq@6EF0 = 0000000000000000</action>
<action>maincpu.mq@6EF8 = 0000000000000000</action>
<action>maincpu.mq@6F00 = 0000000000000000</action>
<action>maincpu.mq@6F08 = 0000000000000000</action>
<action>maincpu.mq@6F10 = 0000000000000000</action>
<action>maincpu.mq@6F18 = 0000000000000000</action>
<action>maincpu.mq@6F20 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mw@05D8 = 05DA</action>
</script>
<script state="off">
<action>maincpu.mw@05D8 = 0000</action>
</script>
</cheat>
</mamecheat>
psychic5j.xml
Code: Select all
<!-- Psychic 5 (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@1E58 = 18</action> <!-- pressed left body -->
<action>maincpu.mb@1E8D = 18</action> <!-- pressed right body -->
<action>maincpu.mb@1EC8 = 18</action> <!-- pressed foot -->
<action>maincpu.mb@1F35 = 18</action> <!-- pressed head -->
<action>maincpu.mb@2D72 = C9</action> <!-- flame -->
<action>maincpu.mb@4B2D = 18</action> <!-- enemy -->
<action>maincpu.mb@5992 = 18</action> <!-- fire ball -->
</script>
<script state="off">
<action>maincpu.mb@1E58 = 28</action>
<action>maincpu.mb@1E8D = 28</action>
<action>maincpu.mb@1EC8 = 28</action>
<action>maincpu.mb@1F35 = 28</action>
<action>maincpu.mb@2D72 = C0</action>
<action>maincpu.mb@4B2D = 30</action>
<action>maincpu.mb@5992 = 30</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@13B0 = 83</action>
<action>maincpu.mb@13B4 = 28</action>
</script>
<script state="off">
<action>maincpu.mb@13B0 = 82</action>
<action>maincpu.mb@13B4 = 20</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.md@148A = 32000021</action>
</script>
<script state="change">
<action>maincpu.mb@148C = param</action>
</script>
<script state="off">
<action>maincpu.md@148A = 32190016</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>maincpu.mb@1402 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1402 = 30</action>
</script>
</cheat>
<cheat desc="easy break iron wall">
<script state="on">
<action>maincpu.mb@2C95 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@2C95 = c0</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@1493 = 0F6D20CD </action>
<action>maincpu.mq@6D20 = C0013E67CBFC823A</action>
<action>maincpu.mq@6D28 = 00000000C9FA013A</action>
<!--
6D20 | 3A 82 FC : ld a,($FC82)
6D23 | CB 67 : bit 4,a
6D25 | 3E 01 : ld a,$01
6D27 | C0 : ret nz
6D28 | 3A 01 FA : ld a,($FA01)
6D2B | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@1493 = 0FFA013A </action>
<action>maincpu.mq@6D20 = 0000000000000000</action>
<action>maincpu.mq@6D28 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@042E = C16D30C3 </action>
<action>maincpu.mq@6D30 = 57BAE0002112BECD</action>
<action>maincpu.mq@6D38 = FE350120FDFEF628</action>
<action>maincpu.mq@6D40 = 0420FBFE340120FE</action>
<action>maincpu.mq@6D48 = 0520F7FE0618F03E</action>
<action>maincpu.mq@6D50 = 20DFFE7A7786103E</action>
<action>maincpu.mq@6D58 = 0520EFFE06184E03</action>
<action>maincpu.mq@6D60 = 00C9186C19CD000E</action>
<!--
6D30 | CD BE 12 : call $12BE // read input
6D33 | 21 00 E0 : ld hl,$E000 // sound code address
6D36 | BA : cp d
6D37 | 57 : ld d,a
6D38 | 28 F6 : jr z,$6D30
6D3A | FE FD : cp $FD
6D3C | 20 01 : jr nz,$6D3F
6D3E | 35 : dec (hl) // decrease code -01
6D3F | FE FE : cp $FE
6D41 | 20 01 : jr nz,$6D44
6D43 | 34 : inc (hl) // increase code +01
6D44 | FE FB : cp $FB
6D46 | 20 04 : jr nz,$6D4C
6D48 | 3E F0 : ld a,$F0 // decrease code -10
6D4A | 18 06 : jr $6D52
6D4C | FE F7 : cp $F7
6D4E | 20 05 : jr nz,$6D55
6D50 | 3E 10 : ld a,$10 // increase code +10
6D52 | 86 : add a,(hl)
6D53 | 77 : ld (hl),a
6D54 | 7A : ld a,d
6D55 | FE DF : cp $DF
6D57 | 20 03 : jr nz,$6D5C
6D59 | 4E : ld c,(hl) // play sound
6D5A | 18 06 : jr $6D62
6D5C | FE EF : cp $EF
6D5E | 20 05 : jr nz,$6D65
6D60 | 0E 00 : ld c,$00 // stop sound
6D62 | CD 19 6C : call $6C19 // send sound code
6D65 | 18 C9 : jr $6D30
-->
</script>
<script state="run">
<output format="----- psychic 5 sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@042E = DF05C101 </action>
<action>maincpu.mq@6D30 = 0000000000000000</action>
<action>maincpu.mq@6D38 = 0000000000000000</action>
<action>maincpu.mq@6D40 = 0000000000000000</action>
<action>maincpu.mq@6D48 = 0000000000000000</action>
<action>maincpu.mq@6D50 = 0000000000000000</action>
<action>maincpu.mq@6D58 = 0000000000000000</action>
<action>maincpu.mq@6D60 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mw@05D8 = 05DA</action>
</script>
<script state="off">
<action>maincpu.mw@05D8 = 0000</action>
</script>
</cheat>
</mamecheat>