Code: Select all
<!-- Son Son -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@E742 = 20</action> <!-- gate -->
<action>maincpu.mb@ED17 = 17</action> <!-- enemy -->
<action>maincpu.mb@EDE4 = 18</action> <!-- bullet -->
<action>maincpu.mb@EF41 = 20</action> <!-- big enemy -->
</script>
<script state="off">
<action>maincpu.mb@E742 = 22</action>
<action>maincpu.mb@ED17 = 0F</action>
<action>maincpu.mb@EDE4 = B</action>
<action>maincpu.mb@EF41 = 22</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@AD17 = E6</action>
</script>
<script state="off">
<action>maincpu.mb@AD17 = E4</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0280">03 </item>
<item value="0x0380">04 </item>
<item value="0x0480">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@AA16 = param</action> <!-- right -->
<action>maincpu.mw@AA1E = param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@AA16 = 01AA</action>
<action>maincpu.mw@AA1E = 014D</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0600">02 </item>
<item value="0x0800">03 </item>
<item value="0x0A00">04 </item>
<item value="0x0C00">05 (slow)</item>
</parameter>
<script state="change">
<action>maincpu.mw@B053 = param</action>
<action>maincpu.mw@B059 = -param</action>
</script>
<script state="off">
<action>maincpu.mw@B053 = 0600</action>
<action>maincpu.mw@B059 = FA00</action>
</script>
</cheat>
<cheat desc="hidden bamboo finder">
<script state="on">
<action>maincpu.mw@E5B5 = FFD1 </action>
<action>maincpu.mq@FFD1 = E601C10127037EE6</action>
<action>maincpu.mq@FFD9 = B27EE6CFFFFFFFFF</action>
<!--
FFD1 | E6 01 : LDB $1,X
FFD3 | C1 01 : CMPB #$01
FFD5 | 27 03 : BEQ $FFDA
FFD7 | 7E E6 B2 : JMP $E6B2
FFDA | 7E E6 CF : JMP $E6CF
-->
</script>
<script state="off">
<action>maincpu.mw@E5B5 = E6B2 </action>
<action>maincpu.mq@FFD1 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FFD9 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- sometimes code 0x16 is played incorrectly -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@41BE = 8260 </action>
<action>maincpu.mq@8260 = 8E1000108E0020C6</action>
<action>maincpu.mq@8268 = 20D7F4CC1000E789</action>
<action>maincpu.mq@8270 = 0400A7800AF426F6</action>
<action>maincpu.mq@8278 = 313F26EB9781B630</action>
<action>maincpu.mq@8280 = 0443464684809782</action>
<action>maincpu.mq@8288 = B6300243843D9A82</action>
<action>maincpu.mq@8290 = 918127E8D6808104</action>
<action>maincpu.mq@8298 = 26015A810826015C</action>
<action>maincpu.mq@82A0 = 81202602C0108110</action>
<action>maincpu.mq@82A8 = 2602CB10D7808101</action>
<action>maincpu.mq@82B0 = 270681802605C612</action>
<action>maincpu.mq@82B8 = BD638720BF000000</action>
<!--
8260 | 8E 10 00 : LDX #$1000 // clear screen
8263 | 10 8E 00 20 : LDY #$0020
8267 | C6 20 : LDB #$20
8269 | D7 F4 : STB $F4
826B | CC 10 00 : LDD #$1000
826E | E7 89 04 00 : STB $0400,X
8272 | A7 80 : STA ,X+
8274 | 0A F4 : DEC $F4
8276 | 26 F6 : BNE $826E
8278 | 31 3F : LEAY -$1,Y
827A | 26 EB : BNE $8267
827C | 97 81 : STA $81
827E | B6 30 04 : LDA $3004 // read start button
8281 | 43 : COMA
8282 | 46 : RORA
8283 | 46 : RORA
8284 | 84 80 : ANDA #$80
8286 | 97 82 : STA $82
8288 | B6 30 02 : LDA $3002 // read other inputs
828B | 43 : COMA
828C | 84 3D : ANDA #$3D
828E | 9A 82 : ORA $82
8290 | 91 81 : CMPA $81
8292 | 27 E8 : BEQ $827C
8294 | D6 80 : LDB $80
8296 | 81 04 : CMPA #$04
8298 | 26 01 : BNE $829B
829A | 5A : DECB // decrease code -01
829B | 81 08 : CMPA #$08
829D | 26 01 : BNE $82A0
829F | 5C : INCB // increase code +01
82A0 | 81 20 : CMPA #$20
82A2 | 26 02 : BNE $82A6
82A4 | C0 10 : SUBB #$10 // decrease code -01
82A6 | 81 10 : CMPA #$10
82A8 | 26 02 : BNE $82AC
82AA | CB 10 : ADDB #$10 // increase code +10
82AC | D7 80 : STB $80
82AE | 81 01 : CMPA #$01
82B0 | 27 06 : BEQ $82B8 // play sound
82B2 | 81 80 : CMPA #$80
82B4 | 26 05 : BNE $82BB
82B6 | C6 12 : LDB #$12 // stop sound
82B8 | BD 63 87 : JSR $6387 // send sound code
82BB | 20 BF : BRA $827C
-->
<action>audiocpu.mb@E6FC = 12</action> <!-- stop sfx and music at the same time -->
</script>
<script state="run">
<output format="----- 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="start : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@41BE = 4713 </action>
<action> maincpu.mq@8260 = 8888800888888008</action>
<action> maincpu.mq@8268 = 8888800888888008</action>
<action> maincpu.mq@8270 = 8888800888888008</action>
<action> maincpu.mq@8278 = 8888800888888008</action>
<action> maincpu.mq@8280 = 8888800888888008</action>
<action> maincpu.mq@8288 = 8888800888888008</action>
<action> maincpu.mq@8290 = 8888800888888008</action>
<action> maincpu.mq@8298 = 8888800888880008</action>
<action> maincpu.mq@82A0 = 8888000888888008</action>
<action> maincpu.mq@82A8 = 8888800808888008</action>
<action> maincpu.mq@82B0 = 0888800888888008</action>
<action> maincpu.mq@82B8 = 8888800888888008</action>
<action>audiocpu.mb@E6FC = 39 </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@427E = 7E42BE4F</action> <!-- ram -->
<action>maincpu.md@4339 = 7E434FE6</action> <!-- rom -->
<action>maincpu.md@405C = 7E406630</action> <!-- wait -->
</script>
<script state="off">
<action>maincpu.md@427E = CE00004F</action>
<action>maincpu.md@4339 = 8E4000E6</action>
<action>maincpu.md@405C = 8E000030</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Son Son (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@E740 = 20</action> <!-- gate -->
<action>maincpu.mb@ED15 = 17</action> <!-- enemy -->
<action>maincpu.mb@EDE2 = 18</action> <!-- bullet -->
<action>maincpu.mb@EF3F = 20</action> <!-- big enemy -->
</script>
<script state="off">
<action>maincpu.mb@E740 = 22</action>
<action>maincpu.mb@ED15 = 0F</action>
<action>maincpu.mb@EDE2 = B</action>
<action>maincpu.mb@EF3F = 22</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@AD15 = E6</action>
</script>
<script state="off">
<action>maincpu.mb@AD15 = E4</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0280">03 </item>
<item value="0x0380">04 </item>
<item value="0x0480">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@AA14 = param</action> <!-- right -->
<action>maincpu.mw@AA1C = param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@AA14 = 01AA</action>
<action>maincpu.mw@AA1C = 014D</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0600">02 </item>
<item value="0x0800">03 </item>
<item value="0x0A00">04 </item>
<item value="0x0C00">05 (slow)</item>
</parameter>
<script state="change">
<action>maincpu.mw@B051 = param</action>
<action>maincpu.mw@B057 = -param</action>
</script>
<script state="off">
<action>maincpu.mw@B051 = 0600</action>
<action>maincpu.mw@B057 = FA00</action>
</script>
</cheat>
<cheat desc="hidden bamboo finder">
<script state="on">
<action>maincpu.mw@E5B3 = FFE3 </action>
<action>maincpu.mq@FFE3 = E601C10127037EE6</action>
<action>maincpu.mq@FFEB = B07EE6CDFFFFFFFF</action>
<!--
FFE3 | E6 01 : LDB $1,X
FFE5 | C1 01 : CMPB #$01
FFE7 | 27 03 : BEQ $FFED
FFEA | 7E E6 B0 : JMP $E6B0
FFED | 7E E6 CD : JMP $E6CD
-->
</script>
<script state="off">
<action>maincpu.mw@E5B3 = E6B2 </action>
<action>maincpu.mq@FFE3 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FFEB = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- sometimes code 0x16 is played incorrectly -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@41FD = 82A0 </action>
<action>maincpu.mq@82A0 = 8E1000108E0020C6</action>
<action>maincpu.mq@82A8 = 20D7F4CC1000E789</action>
<action>maincpu.mq@82B0 = 0400A7800AF426F6</action>
<action>maincpu.mq@82B8 = 313F26EB9781B630</action>
<action>maincpu.mq@82C0 = 0443464684809782</action>
<action>maincpu.mq@82C8 = B6300243843D9A82</action>
<action>maincpu.mq@82D0 = 918127E8D6808104</action>
<action>maincpu.mq@82D8 = 26015A810826015C</action>
<action>maincpu.mq@82E0 = 81202602C0108110</action>
<action>maincpu.mq@82E8 = 2602CB10D7808101</action>
<action>maincpu.mq@82F0 = 270681802605C612</action>
<action>maincpu.mq@82F8 = BD63C220BF000000</action>
<!--
82A0 | 8E 10 00 : LDX #$1000 // clear screen
82A3 | 10 8E 00 20 : LDY #$0020
82A7 | C6 20 : LDB #$20
82A9 | D7 F4 : STB $F4
82AB | CC 10 00 : LDD #$1000
82AE | E7 89 04 00 : STB $0400,X
82B2 | A7 80 : STA ,X+
82B4 | 0A F4 : DEC $F4
82B6 | 26 F6 : BNE $82AE
82B8 | 31 3F : LEAY -$1,Y
82BA | 26 EB : BNE $82A7
82BC | 97 81 : STA $81
82BE | B6 30 04 : LDA $3004 // read start button
82C1 | 43 : COMA
82C2 | 46 : RORA
82C3 | 46 : RORA
82C4 | 84 80 : ANDA #$80
82C6 | 97 82 : STA $82
82C8 | B6 30 02 : LDA $3002 // read other inputs
82CB | 43 : COMA
82CC | 84 3D : ANDA #$3D
82CE | 9A 82 : ORA $82
82D0 | 91 81 : CMPA $81
82D2 | 27 E8 : BEQ $82BC
82D4 | D6 80 : LDB $80
82D6 | 81 04 : CMPA #$04
82D8 | 26 01 : BNE $82DB
82DA | 5A : DECB // decrease code -01
82DB | 81 08 : CMPA #$08
82DD | 26 01 : BNE $82E0
82DF | 5C : INCB // increase code +01
82E0 | 81 20 : CMPA #$20
82E2 | 26 02 : BNE $82E6
82E4 | C0 10 : SUBB #$10 // decrease code -01
82E6 | 81 10 : CMPA #$10
82E8 | 26 02 : BNE $82EC
82EA | CB 10 : ADDB #$10 // increase code +10
82EC | D7 80 : STB $80
82EE | 81 01 : CMPA #$01
82F0 | 27 06 : BEQ $82F8 // play sound
82F2 | 81 80 : CMPA #$80
82F4 | 26 05 : BNE $82FB
82F6 | C6 12 : LDB #$12 // stop sound
82F8 | BD 63 C2 : JSR $63C2 // send sound code
82FB | 20 BF : BRA $82BC
-->
<action>audiocpu.mb@E6FC = 12</action> <!-- stop sfx and music at the same time -->
</script>
<script state="run">
<output format="----- 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="start : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@41FD = 4752 </action>
<action> maincpu.mq@82A0 = 8880088888800888</action>
<action> maincpu.mq@82A8 = 8880088888800888</action>
<action> maincpu.mq@82B0 = 8880088888800888</action>
<action> maincpu.mq@82B8 = 8880088888800888</action>
<action> maincpu.mq@82C0 = 8880088888800888</action>
<action> maincpu.mq@82C8 = 8880088888800888</action>
<action> maincpu.mq@82D0 = 8880088888800888</action>
<action> maincpu.mq@82D8 = 8800088888000888</action>
<action> maincpu.mq@82E0 = 8880088888800808</action>
<action> maincpu.mq@82E8 = 8880080888800888</action>
<action> maincpu.mq@82F0 = 8880088888800888</action>
<action> maincpu.mq@82F8 = 8880088888800888</action>
<action>audiocpu.mb@E6FC = 39 </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@42BD = 7E42FD4F</action> <!-- ram -->
<action>maincpu.md@4378 = 7E438EE6</action> <!-- rom -->
<action>maincpu.md@409B = 7E40A530</action> <!-- wait -->
</script>
<script state="off">
<action>maincpu.md@42BD = CE00004F</action>
<action>maincpu.md@4378 = 8E4000E6</action>
<action>maincpu.md@409B = 8E000030</action>
</script>
</cheat>
</mamecheat>