stinger.xml
Code: Select all
<!-- Stinger -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.ob@2BC8 = C9</action>
</script>
<script state="off">
<action>maincpu.ob@2BC8 = 32</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2504 = F4</action>
</script>
<script state="off">
<action>maincpu.mb@2504 = E4</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<!-- right -->
<action>maincpu.oq@237A = FFC6FFFF3AFFFFCA</action> <!-- jp z,$237D / ld a,($C140) / add a,$xx -->
<action>maincpu.mq@237A = 00FFC140FF237DFF</action>
<!-- left -->
<action>maincpu.oq@23A2 = FFD6FFFF3AFFFFCA</action> <!-- jp z,$23A5 / ld a,($C140) / sub $xx -->
<action>maincpu.mq@23A2 = 00FFC140FF23A5FF</action>
<!-- down -->
<action>maincpu.oq@23CA = FFC6FFFF3AFFFFCA</action> <!-- jp z,$23CD / ld a,($C143) / add a,$xx -->
<action>maincpu.mq@23CA = 00FFC143FF23CDFF</action>
<!-- up -->
<action>maincpu.oq@23F2 = FFD6FFFF3AFFFFCA</action> <!-- jp z,$23F5 / ld a,($C143) / sub $xx -->
<action>maincpu.mq@23F2 = 00FFC143FF23F5FF</action>
</script>
<script state="change">
<action>maincpu.mb@2381 = param</action>
<action>maincpu.mb@23A9 = param</action>
<action>maincpu.mb@23D1 = param</action>
<action>maincpu.mb@23F9 = param</action>
</script>
<script state="off">
<action>maincpu.oq@237A = 3C3CC1403A238CCA</action>
<action>maincpu.mq@237A = 3C3CC1403A238CCA</action>
<action>maincpu.oq@23A2 = 3D3DC1403A23B4CA</action>
<action>maincpu.mq@23A2 = 3D3DC1403A23B4CA</action>
<action>maincpu.oq@23CA = 3C3CC1433A23DCCA</action>
<action>maincpu.mq@23CA = 3C3CC1433A23DCCA</action>
<action>maincpu.oq@23F2 = 3D3DC1433A2404CA</action>
<action>maincpu.mq@23F2 = 3D3DC1433A2404CA</action>
</script>
</cheat>
<cheat desc="bullet speed - front shot">
<parameter>
<item value="0x05">01 (slow)</item>
<item value="0x0a">02 </item>
<item value="0x0f">03 </item>
<item value="0x14">04 </item>
<item value="0x19">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2577 = param</action> <!-- first bullet -->
<action>maincpu.mb@2707 = param</action> <!-- second bullet -->
<action>maincpu.mb@27A1 = param</action> <!-- third bullet -->
</script>
<script state="off">
<action>maincpu.mb@2577 = 0A</action>
<action>maincpu.mb@2707 = 0A</action>
<action>maincpu.mb@27A1 = 0A</action>
</script>
</cheat>
<cheat desc="twin shot on ground">
<script state="on">
<action>maincpu.mw@2461 = 2463</action>
<action>maincpu.ob@2649 = 00 </action>
<action>maincpu.ob@276D = 00 </action>
</script>
<script state="off">
<action>maincpu.mw@2461 = 250B</action>
<action>maincpu.ob@2649 = C8 </action>
<action>maincpu.ob@276D = C8 </action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.ob@252B = CD </action>
<action>maincpu.mw@252C = 9630 </action>
<action>maincpu.oq@9630 = FFFFC9FFFF32FF3E</action> <!-- ld a,$14 / ld ($C223),a / ret -->
<action>maincpu.mq@9630 = FFFFFFC223FF1400</action>
<action>maincpu.mb@2536 = 30 </action>
</script>
<script state="off">
<action>maincpu.ob@252B = 32 </action>
<action>maincpu.mw@252C = C223 </action>
<action>maincpu.oq@9630 = 8080808080808080</action>
<action>maincpu.mq@9630 = 0000000000000000</action>
<action>maincpu.mb@2536 = 00 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop two sfxs (code 0x0d and 0x0e) by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.oq@0C95 = C3 </action>
<action>maincpu.mw@0C96 = 9640 </action>
<action>maincpu.oq@9640 = E6FFFF3AFFFFFF21</action>
<action>maincpu.mq@9640 = FFF010FFFFC000FF</action>
<action>maincpu.oq@9648 = B1FFE600003A4FFF</action>
<action>maincpu.mq@9648 = FF33FFF018FFFF44</action>
<action>maincpu.oq@9650 = 0020FFFEFF2847B8</action>
<action>maincpu.mq@9650 = 01FF02FFEFFFFFFF</action>
<action>maincpu.oq@9658 = FFFE34FF20FFFE35</action>
<action>maincpu.mq@9658 = 20FFFF01FF01FFFF</action>
<action>maincpu.oq@9660 = FFFEFF18FF3EFF20</action>
<action>maincpu.mq@9660 = 10FF06FFF0FF04FF</action>
<action>maincpu.oq@9668 = FE787786FF3EFF20</action>
<action>maincpu.mq@9668 = FFFFFFFF10FF05FF</action>
<action>maincpu.oq@9670 = FFFEFF187EFF20FF</action>
<action>maincpu.mq@9670 = 04FF06FFFF03FF40</action>
<action>maincpu.oq@9678 = FEFFFF21FF3EFF20</action>
<action>maincpu.mq@9678 = FFF800FF90FF12FF</action>
<action>maincpu.oq@9680 = 20FFFEFF2EFF20FF</action>
<action>maincpu.mq@9680 = FF0EFF08FF02FF0D</action>
<action>maincpu.oq@9688 = FFFFFF1877FF2EFF</action>
<action>maincpu.mq@9688 = FFFFB2FFFF0AFF02</action>
<!--
9640 | 21 00 C0 : ld hl,$C000 // sound code address
9643 | FF : rst $38 // watchdog
9644 | 3A 10 F0 : ld a,($F010) // read buttons
9647 | E6 44 : and $44
9649 | 4F : ld c,a
964A | 3A 18 F0 : ld a,($F018) // read other inputs
964D | E6 33 : and $33
964F | B1 : or c
9650 | B8 : cp b
9651 | 47 : ld b,a
9652 | 28 EF : jr z,$9643
9654 | FE 02 : cp $02
9656 | 20 01 : jr nz,$9659
9658 | 35 : dec (hl) // decrease code -01
9659 | FE 01 : cp $01
965B | 20 01 : jr nz,$965E
965D | 34 : inc (hl) // increase code +10
965E | FE 20 : cp $20
9660 | 20 04 : jr nz,$9666
9662 | 3E F0 : ld a,$F0 // decrease code -10
9664 | 18 06 : jr $966C
9666 | FE 10 : cp $10
9668 | 20 05 : jr nz,$966F
966A | 3E 10 : ld a,$10 // increase code +10
966C | 86 : add a,(hl)
966D | 77 : ld (hl),a
966E | 78 : ld a,b
966F | FE 40 : cp $40
9671 | 20 03 : jr nz,$9676
9673 | 7E : ld a,(hl) // play sound
9674 | 18 06 : jr $967C
9676 | FE 04 : cp $04
9678 | 20 12 : jr nz,$968C
967A | 3E 90 : ld a,$90 // stop sound
967C | 21 00 F8 : ld hl,$F800 // sound latch address
967F | FE 0D : cp $0D
9681 | 20 02 : jr nz,$9685
9683 | 2E 08 : ld l,$08 // explosion sound ($f808)
9685 | FE 0E : cp $0E
9687 | 20 02 : jr nz,$968B
9689 | 2E 0A : ld l,$0A // shot sound ($f80a)
968B | 77 : ld (hl),a // send sound code
968C | 18 B2 : jr $9640
-->
</script>
<script state="run">
<output format="----- stinger 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@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@0C95 = 32 </action>
<action>maincpu.mw@0C96 = F800 </action>
<action>maincpu.oq@9640 = 0000000000000000</action>
<action>maincpu.mq@9640 = 0000000000000000</action>
<action>maincpu.oq@9648 = 0000000000000000</action>
<action>maincpu.mq@9648 = 0000000000000000</action>
<action>maincpu.oq@9650 = 0000000000000000</action>
<action>maincpu.mq@9650 = 0000000000000000</action>
<action>maincpu.oq@9658 = 0000000000000000</action>
<action>maincpu.mq@9658 = 0000000000000000</action>
<action>maincpu.oq@9660 = 0000000000000000</action>
<action>maincpu.mq@9660 = 0000000000000000</action>
<action>maincpu.oq@9668 = 0000000000000000</action>
<action>maincpu.mq@9668 = 0000000000000000</action>
<action>maincpu.oq@9670 = 0000000000000000</action>
<action>maincpu.mq@9670 = 0000000000000000</action>
<action>maincpu.oq@9678 = 0000000000000000</action>
<action>maincpu.mq@9678 = 0000000000000000</action>
<action>maincpu.oq@9680 = A0A0A0A0A0A0A0A0</action>
<action>maincpu.mq@9680 = 0000000000000000</action>
<action>maincpu.oq@9688 = 8888888888888888</action>
<action>maincpu.mq@9688 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram check">
<script state="on">
<action>maincpu.ob@0D4A = C9</action>
</script>
<script state="off">
<action>maincpu.ob@0D4A = DF</action>
</script>
</cheat>
</mamecheat>
stinger2.xml
Code: Select all
<!-- Stinger (prototype?) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.ob@2BF3 = C9</action>
</script>
<script state="off">
<action>maincpu.ob@2BF3 = 32</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2534 = 24</action>
</script>
<script state="off">
<action>maincpu.mb@2534 = 14</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<!-- right -->
<action>maincpu.oq@23AA = FFC6FFFF3AFFFFCA</action> <!-- jp z,$23AD / ld a,($C140) / add a,$xx -->
<action>maincpu.mq@23AA = 00FFC140FF23ADFF</action>
<!-- left -->
<action>maincpu.oq@23D2 = FFD6FFFF3AFFFFCA</action> <!-- jp z,$23D5 / ld a,($C140) / sub $xx -->
<action>maincpu.mq@23D2 = 00FFC140FF23D5FF</action>
<!-- down -->
<action>maincpu.oq@23FA = FFC6FFFF3AFFFFCA</action> <!-- jp z,$23FD / ld a,($C143) / add a,$xx -->
<action>maincpu.mq@23FA = 00FFC143FF23FDFF</action>
<!-- up -->
<action>maincpu.oq@2422 = FFD6FFFF3AFFFFCA</action> <!-- jp z,$2425 / ld a,($C143) / sub $xx -->
<action>maincpu.mq@2422 = 00FFC143FF2425FF</action>
</script>
<script state="change">
<action>maincpu.mb@23B1 = param</action>
<action>maincpu.mb@23D9 = param</action>
<action>maincpu.mb@2401 = param</action>
<action>maincpu.mb@2429 = param</action>
</script>
<script state="off">
<action>maincpu.oq@23AA = 3C3CC1403A23BCCA</action>
<action>maincpu.mq@23AA = 3C3CC1403A23BCCA</action>
<action>maincpu.oq@23D2 = 3D3DC1403A23E4CA</action>
<action>maincpu.mq@23D2 = 3D3DC1403A23E4CA</action>
<action>maincpu.oq@23FA = 3C3CC1433A240CCA</action>
<action>maincpu.mq@23FA = 3C3CC1433A240CCA</action>
<action>maincpu.oq@2422 = 3D3DC1433A2434CA</action>
<action>maincpu.mq@2422 = 3D3DC1433A2434CA</action>
</script>
</cheat>
<cheat desc="bullet speed - front shot">
<parameter>
<item value="0x05">01 (slow)</item>
<item value="0x0a">02 </item>
<item value="0x0f">03 </item>
<item value="0x14">04 </item>
<item value="0x19">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@25A7 = param</action> <!-- first bullet -->
<action>maincpu.mb@2737 = param</action> <!-- second bullet -->
<action>maincpu.mb@27D1 = param</action> <!-- third bullet -->
</script>
<script state="off">
<action>maincpu.mb@25A7 = 0A</action>
<action>maincpu.mb@2737 = 0A</action>
<action>maincpu.mb@27D1 = 0A</action>
</script>
</cheat>
<cheat desc="twin shot on ground">
<script state="on">
<action>maincpu.mw@2491 = 2493</action>
<action>maincpu.ob@2679 = 00 </action>
<action>maincpu.ob@279D = 00 </action>
</script>
<script state="off">
<action>maincpu.mw@2491 = 253B</action>
<action>maincpu.ob@2679 = C8 </action>
<action>maincpu.ob@279D = C8 </action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.ob@255B = CD </action>
<action>maincpu.mw@255C = 9630 </action>
<action>maincpu.oq@9630 = FFFFC9FFFF32FF3E</action> <!-- ld a,$14 / ld ($C223),a / ret -->
<action>maincpu.mq@9630 = FFFFFFC223FF1400</action>
<action>maincpu.mb@2566 = 30 </action>
</script>
<script state="off">
<action>maincpu.ob@255B = 32 </action>
<action>maincpu.mw@255C = C223 </action>
<action>maincpu.oq@9630 = 8080808080808080</action>
<action>maincpu.mq@9630 = 0000000000000000</action>
<action>maincpu.mb@2566 = 00 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop two sfxs (code 0x0d and 0x0e) by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.oq@0C95 = C3 </action>
<action>maincpu.mw@0C96 = 9640 </action>
<action>maincpu.oq@9640 = E6FFFF3AFFFFFF21</action>
<action>maincpu.mq@9640 = FFF010FFFFC000FF</action>
<action>maincpu.oq@9648 = B1FFE600003A4FFF</action>
<action>maincpu.mq@9648 = FF33FFF018FFFF44</action>
<action>maincpu.oq@9650 = 0020FFFEFF2847B8</action>
<action>maincpu.mq@9650 = 01FF02FFEFFFFFFF</action>
<action>maincpu.oq@9658 = FFFE34FF20FFFE35</action>
<action>maincpu.mq@9658 = 20FFFF01FF01FFFF</action>
<action>maincpu.oq@9660 = FFFEFF18FF3EFF20</action>
<action>maincpu.mq@9660 = 10FF06FFF0FF04FF</action>
<action>maincpu.oq@9668 = FE787786FF3EFF20</action>
<action>maincpu.mq@9668 = FFFFFFFF10FF05FF</action>
<action>maincpu.oq@9670 = FFFEFF187EFF20FF</action>
<action>maincpu.mq@9670 = 04FF06FFFF03FF40</action>
<action>maincpu.oq@9678 = FEFFFF21FF3EFF20</action>
<action>maincpu.mq@9678 = FFF800FF90FF12FF</action>
<action>maincpu.oq@9680 = 20FFFEFF2EFF20FF</action>
<action>maincpu.mq@9680 = FF0EFF08FF02FF0D</action>
<action>maincpu.oq@9688 = FFFFFF1877FF2EFF</action>
<action>maincpu.mq@9688 = FFFFB2FFFF0AFF02</action>
<!--
9640 | 21 00 C0 : ld hl,$C000 // sound code address
9643 | FF : rst $38 // watchdog
9644 | 3A 10 F0 : ld a,($F010) // read buttons
9647 | E6 44 : and $44
9649 | 4F : ld c,a
964A | 3A 18 F0 : ld a,($F018) // read other inputs
964D | E6 33 : and $33
964F | B1 : or c
9650 | B8 : cp b
9651 | 47 : ld b,a
9652 | 28 EF : jr z,$9643
9654 | FE 02 : cp $02
9656 | 20 01 : jr nz,$9659
9658 | 35 : dec (hl) // decrease code -01
9659 | FE 01 : cp $01
965B | 20 01 : jr nz,$965E
965D | 34 : inc (hl) // increase code +10
965E | FE 20 : cp $20
9660 | 20 04 : jr nz,$9666
9662 | 3E F0 : ld a,$F0 // decrease code -10
9664 | 18 06 : jr $966C
9666 | FE 10 : cp $10
9668 | 20 05 : jr nz,$966F
966A | 3E 10 : ld a,$10 // increase code +10
966C | 86 : add a,(hl)
966D | 77 : ld (hl),a
966E | 78 : ld a,b
966F | FE 40 : cp $40
9671 | 20 03 : jr nz,$9676
9673 | 7E : ld a,(hl) // play sound
9674 | 18 06 : jr $967C
9676 | FE 04 : cp $04
9678 | 20 12 : jr nz,$968C
967A | 3E 90 : ld a,$90 // stop sound
967C | 21 00 F8 : ld hl,$F800 // sound latch address
967F | FE 0D : cp $0D
9681 | 20 02 : jr nz,$9685
9683 | 2E 08 : ld l,$08 // explosion sound ($f808)
9685 | FE 0E : cp $0E
9687 | 20 02 : jr nz,$968B
9689 | 2E 0A : ld l,$0A // shot sound ($f80a)
968B | 77 : ld (hl),a // send sound code
968C | 18 B2 : jr $9640
-->
</script>
<script state="run">
<output format="----- stinger 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@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@0C95 = 32 </action>
<action>maincpu.mw@0C96 = F800 </action>
<action>maincpu.oq@9640 = 0000000000000000</action>
<action>maincpu.mq@9640 = 0000000000000000</action>
<action>maincpu.oq@9648 = 0000000000000000</action>
<action>maincpu.mq@9648 = 0000000000000000</action>
<action>maincpu.oq@9650 = 0000000000000000</action>
<action>maincpu.mq@9650 = 0000000000000000</action>
<action>maincpu.oq@9658 = 0000000000000000</action>
<action>maincpu.mq@9658 = 0000000000000000</action>
<action>maincpu.oq@9660 = 0000000000000000</action>
<action>maincpu.mq@9660 = 0000000000000000</action>
<action>maincpu.oq@9668 = 0000000000000000</action>
<action>maincpu.mq@9668 = 0000000000000000</action>
<action>maincpu.oq@9670 = 0000000000000000</action>
<action>maincpu.mq@9670 = 0000000000000000</action>
<action>maincpu.oq@9678 = 0000000000000000</action>
<action>maincpu.mq@9678 = 0000000000000000</action>
<action>maincpu.oq@9680 = A0A0A0A0A0A0A0A0</action>
<action>maincpu.mq@9680 = 0000000000000000</action>
<action>maincpu.oq@9688 = 8888888888888888</action>
<action>maincpu.mq@9688 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram check">
<script state="on">
<action>maincpu.ob@0D4A = C9</action>
</script>
<script state="off">
<action>maincpu.ob@0D4A = DF</action>
</script>
</cheat>
</mamecheat>
finger.xml
Code: Select all
<!-- Finger (bootleg of Stinger) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.ob@2BF3 = C9</action>
</script>
<script state="off">
<action>maincpu.ob@2BF3 = 32</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2534 = 24</action>
</script>
<script state="off">
<action>maincpu.mb@2534 = 14</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<!-- right -->
<action>maincpu.oq@23AA = FFC6FFFF3AFFFFCA</action> <!-- jp z,$23AD / ld a,($C140) / add a,$xx -->
<action>maincpu.mq@23AA = 00FFC140FF23ADFF</action>
<!-- left -->
<action>maincpu.oq@23D2 = FFD6FFFF3AFFFFCA</action> <!-- jp z,$23D5 / ld a,($C140) / sub $xx -->
<action>maincpu.mq@23D2 = 00FFC140FF23D5FF</action>
<!-- down -->
<action>maincpu.oq@23FA = FFC6FFFF3AFFFFCA</action> <!-- jp z,$23FD / ld a,($C143) / add a,$xx -->
<action>maincpu.mq@23FA = 00FFC143FF23FDFF</action>
<!-- up -->
<action>maincpu.oq@2422 = FFD6FFFF3AFFFFCA</action> <!-- jp z,$2425 / ld a,($C143) / sub $xx -->
<action>maincpu.mq@2422 = 00FFC143FF2425FF</action>
</script>
<script state="change">
<action>maincpu.mb@23B1 = param</action>
<action>maincpu.mb@23D9 = param</action>
<action>maincpu.mb@2401 = param</action>
<action>maincpu.mb@2429 = param</action>
</script>
<script state="off">
<action>maincpu.oq@23AA = 3C3CC1403A23BCCA</action>
<action>maincpu.mq@23AA = 3C3CC1403A23BCCA</action>
<action>maincpu.oq@23D2 = 3D3DC1403A23E4CA</action>
<action>maincpu.mq@23D2 = 3D3DC1403A23E4CA</action>
<action>maincpu.oq@23FA = 3C3CC1433A240CCA</action>
<action>maincpu.mq@23FA = 3C3CC1433A240CCA</action>
<action>maincpu.oq@2422 = 3D3DC1433A2434CA</action>
<action>maincpu.mq@2422 = 3D3DC1433A2434CA</action>
</script>
</cheat>
<cheat desc="bullet speed - front shot">
<parameter>
<item value="0x05">01 (slow)</item>
<item value="0x0a">02 </item>
<item value="0x0f">03 </item>
<item value="0x14">04 </item>
<item value="0x19">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@25A7 = param</action> <!-- first bullet -->
<action>maincpu.mb@2737 = param</action> <!-- second bullet -->
<action>maincpu.mb@27D1 = param</action> <!-- third bullet -->
</script>
<script state="off">
<action>maincpu.mb@25A7 = 0A</action>
<action>maincpu.mb@2737 = 0A</action>
<action>maincpu.mb@27D1 = 0A</action>
</script>
</cheat>
<cheat desc="twin shot on ground">
<script state="on">
<action>maincpu.mw@2491 = 2493</action>
<action>maincpu.ob@2679 = 00 </action>
<action>maincpu.ob@279D = 00 </action>
</script>
<script state="off">
<action>maincpu.mw@2491 = 253B</action>
<action>maincpu.ob@2679 = C8 </action>
<action>maincpu.ob@279D = C8 </action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.ob@255B = CD </action>
<action>maincpu.mw@255C = 9630 </action>
<action>maincpu.oq@9630 = FFFFC9FFFF32FF3E</action> <!-- ld a,$14 / ld ($C223),a / ret -->
<action>maincpu.mq@9630 = FFFFFFC223FF1400</action>
<action>maincpu.mb@2566 = 30 </action>
</script>
<script state="off">
<action>maincpu.ob@255B = 32 </action>
<action>maincpu.mw@255C = C223 </action>
<action>maincpu.oq@9630 = 8080808080808080</action>
<action>maincpu.mq@9630 = 0000000000000000</action>
<action>maincpu.mb@2566 = 00 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop two sfxs (code 0x0d and 0x0e) by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.oq@0C95 = C3 </action>
<action>maincpu.mw@0C96 = 9640 </action>
<action>maincpu.oq@9640 = E6FFFF3AFFFFFF21</action>
<action>maincpu.mq@9640 = FFF010FFFFC000FF</action>
<action>maincpu.oq@9648 = B1FFE600003A4FFF</action>
<action>maincpu.mq@9648 = FF33FFF018FFFF44</action>
<action>maincpu.oq@9650 = 0020FFFEFF2847B8</action>
<action>maincpu.mq@9650 = 01FF02FFEFFFFFFF</action>
<action>maincpu.oq@9658 = FFFE34FF20FFFE35</action>
<action>maincpu.mq@9658 = 20FFFF01FF01FFFF</action>
<action>maincpu.oq@9660 = FFFEFF18FF3EFF20</action>
<action>maincpu.mq@9660 = 10FF06FFF0FF04FF</action>
<action>maincpu.oq@9668 = FE787786FF3EFF20</action>
<action>maincpu.mq@9668 = FFFFFFFF10FF05FF</action>
<action>maincpu.oq@9670 = FFFEFF187EFF20FF</action>
<action>maincpu.mq@9670 = 04FF06FFFF03FF40</action>
<action>maincpu.oq@9678 = FEFFFF21FF3EFF20</action>
<action>maincpu.mq@9678 = FFF800FF90FF12FF</action>
<action>maincpu.oq@9680 = 20FFFEFF2EFF20FF</action>
<action>maincpu.mq@9680 = FF0EFF08FF02FF0D</action>
<action>maincpu.oq@9688 = FFFFFF1877FF2EFF</action>
<action>maincpu.mq@9688 = FFFFB2FFFF0AFF02</action>
<!--
9640 | 21 00 C0 : ld hl,$C000 // sound code address
9643 | FF : rst $38 // watchdog
9644 | 3A 10 F0 : ld a,($F010) // read buttons
9647 | E6 44 : and $44
9649 | 4F : ld c,a
964A | 3A 18 F0 : ld a,($F018) // read other inputs
964D | E6 33 : and $33
964F | B1 : or c
9650 | B8 : cp b
9651 | 47 : ld b,a
9652 | 28 EF : jr z,$9643
9654 | FE 02 : cp $02
9656 | 20 01 : jr nz,$9659
9658 | 35 : dec (hl) // decrease code -01
9659 | FE 01 : cp $01
965B | 20 01 : jr nz,$965E
965D | 34 : inc (hl) // increase code +10
965E | FE 20 : cp $20
9660 | 20 04 : jr nz,$9666
9662 | 3E F0 : ld a,$F0 // decrease code -10
9664 | 18 06 : jr $966C
9666 | FE 10 : cp $10
9668 | 20 05 : jr nz,$966F
966A | 3E 10 : ld a,$10 // increase code +10
966C | 86 : add a,(hl)
966D | 77 : ld (hl),a
966E | 78 : ld a,b
966F | FE 40 : cp $40
9671 | 20 03 : jr nz,$9676
9673 | 7E : ld a,(hl) // play sound
9674 | 18 06 : jr $967C
9676 | FE 04 : cp $04
9678 | 20 12 : jr nz,$968C
967A | 3E 90 : ld a,$90 // stop sound
967C | 21 00 F8 : ld hl,$F800 // sound latch address
967F | FE 0D : cp $0D
9681 | 20 02 : jr nz,$9685
9683 | 2E 08 : ld l,$08 // explosion sound ($f808)
9685 | FE 0E : cp $0E
9687 | 20 02 : jr nz,$968B
9689 | 2E 0A : ld l,$0A // shot sound ($f80a)
968B | 77 : ld (hl),a // send sound code
968C | 18 B2 : jr $9640
-->
</script>
<script state="run">
<output format="----- finger 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@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@0C95 = 32 </action>
<action>maincpu.mw@0C96 = F800 </action>
<action>maincpu.oq@9640 = 0000000000000000</action>
<action>maincpu.mq@9640 = 0000000000000000</action>
<action>maincpu.oq@9648 = 0000000000000000</action>
<action>maincpu.mq@9648 = 0000000000000000</action>
<action>maincpu.oq@9650 = 0000000000000000</action>
<action>maincpu.mq@9650 = 0000000000000000</action>
<action>maincpu.oq@9658 = 0000000000000000</action>
<action>maincpu.mq@9658 = 0000000000000000</action>
<action>maincpu.oq@9660 = 0000000000000000</action>
<action>maincpu.mq@9660 = 0000000000000000</action>
<action>maincpu.oq@9668 = 0000000000000000</action>
<action>maincpu.mq@9668 = 0000000000000000</action>
<action>maincpu.oq@9670 = 0000000000000000</action>
<action>maincpu.mq@9670 = 0000000000000000</action>
<action>maincpu.oq@9678 = 0000000000000000</action>
<action>maincpu.mq@9678 = 0000000000000000</action>
<action>maincpu.oq@9680 = A0A0A0A0A0A0A0A0</action>
<action>maincpu.mq@9680 = 0000000000000000</action>
<action>maincpu.oq@9688 = 8888888888888888</action>
<action>maincpu.mq@9688 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram check">
<script state="on">
<action>maincpu.ob@0D4A = C9</action>
</script>
<script state="off">
<action>maincpu.ob@0D4A = DF</action>
</script>
</cheat>
</mamecheat>