This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
jman
Posts: 1296 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Mon Nov 08, 2021 10:13 am
Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2457 = 20</action> <!-- enemy ($e457) -->
<action>maincpu.mb@24d0 = 20</action> <!-- mine ($e4d0) -->
<action>maincpu.mb@26ae = 20</action> <!-- bullet ($e6ae) -->
</script>
<script state="off">
<action>maincpu.mb@2457 = 22</action>
<action>maincpu.mb@24d0 = 22</action>
<action>maincpu.mb@26ae = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@485f = 20</action> <!-- left -->
<action>maincpu.mb@4a51 = 20</action> <!-- right -->
<action>maincpu.mb@4b24 = 20</action> <!-- up -->
<action>maincpu.mb@4bf0 = 20</action> <!-- down -->
<action>maincpu.mb@4cce = 20</action> <!-- upper-left -->
<action>maincpu.mb@4dc0 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4eb2 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4fb1 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@485f = 27</action>
<action>maincpu.mb@4a51 = 27</action>
<action>maincpu.mb@4b24 = 27</action>
<action>maincpu.mb@4bf0 = 27</action>
<action>maincpu.mb@4cce = 27</action>
<action>maincpu.mb@4dc0 = 27</action>
<action>maincpu.mb@4eb2 = 27</action>
<action>maincpu.mb@4fb1 = 27</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>maincpu.mb@57a9 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@57a9 = 10</action>
</script>
</cheat>
<cheat desc="auto fire - bomb">
<script state="on">
<action>maincpu.mb@5136 = 20</action> <!-- P1 -->
<action>maincpu.mb@5198 = 20</action> <!-- P2 -->
</script>
<script state="off">
<action>maincpu.mb@5136 = 27</action>
<action>maincpu.mb@5198 = 27</action>
</script>
</cheat>
<cheat desc="player 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@4a86 = param</action> <!-- right -->
<action>maincpu.mw@4894 = param</action> <!-- left -->
<action>maincpu.mw@4b59 = param</action> <!-- up -->
<action>maincpu.mw@4c34 = param</action> <!-- down -->
<action>maincpu.mw@4d1b = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4d22 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4e0d = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4e14 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4f0c = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4f13 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@500b = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5012 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.mq@4675 = a609bdff008601b7</action> <!-- P1 -->
<action>maincpu.mq@46a9 = a609bdff007f0b72</action> <!-- P2 -->
<action>maincpu.mq@3f00 = 2707ceff0fa6c6a7</action>
<action>maincpu.mq@3f08 = 06a606a788233900</action>
<action>maincpu.mq@3f10 = 549400245c2c00a4</action>
<action>maincpu.mq@3f18 = ac3c000000000000</action>
<!--
4675 | a6 09 : LDA $9,X // P1
4677 | bd ff 00 : JSR $FF00
46a9 | a6 09 : LDA $9,X // P2
46ab | bd ff 00 : JSR $FF00
ff00 | 27 07 : BEQ $FF09 // main routine
ff02 | ce ff 0f : LDU #$FF0F
ff05 | a6 c6 : LDA A,U
ff07 | a7 06 : STA $6,X
ff09 | a6 06 : LDA $6,X
ff0b | a7 88 23 : STA $23,X
ff0e | 39 : RTS
ff0f - ff19 : input/direction conversion table
input direction
04 24 : up
08 a4 : down
02 94 : right
01 54 : left
06 2c : upper-right
0a 3c : lower-right
09 ac : lower-left
05 5c : upper-left
-->
</script>
<script state="off">
<action>maincpu.mq@4665 = a606a788238601b7</action>
<action>maincpu.mq@46a9 = a606a788237f0b72</action>
<action>maincpu.mq@3f00 = 0000000000000000</action>
<action>maincpu.mq@3f08 = 0000000000000000</action>
<action>maincpu.mq@3f10 = 0000000000000000</action>
<action>maincpu.mq@3f18 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@04d9 = 39</action> <!-- message erase stopper ($c4d9) -->
<action>maincpu.mw@2eeb = ff20</action> <!-- ($eeeb) -->
<action>maincpu.mq@3f20 = bdc4b7b600119111</action>
<action>maincpu.mq@3f28 = 271f81fe26020a10</action>
<action>maincpu.mq@3f30 = 81fd26020c1081ef</action>
<action>maincpu.mq@3f38 = 2604d610200581df</action>
<action>maincpu.mq@3f40 = 26075ff71c067c1c</action>
<action>maincpu.mq@3f48 = 0797113900000000</action>
<!--
ff20 | bd c4 b7 : JSR $C4B7
ff23 | b6 00 11 : LDA >$0011
ff26 | 91 11 : CMPA $11
ff28 | 27 1f : BEQ $FF49
ff2a | 81 fe : CMPA #$FE
ff2c | 26 02 : BNE $FF30
ff2e | 0a 10 : DEC $10
ff30 | 81 fd : CMPA #$FD
ff32 | 26 02 : BNE $FF36
ff34 | 0c 10 : INC $10
ff36 | 81 ef : CMPA #$EF
ff38 | 26 04 : BNE $FF3E
ff3a | d6 10 : LDB $10
ff3c | 20 05 : BRA $FF43
ff3e | 81 df : CMPA #$DF
ff40 | 26 07 : BNE $FF49
ff42 | 5f : CLRB
ff43 | f7 1c 06 : STB $1C06
ff46 | 7c 1c 07 : INC $1C07
ff49 | 97 11 : STA $11
ff4b | 39 : RTS
-->
</script>
<script state="run">
<output format="----- jackal sound test mode -----" line="10" align="center" />
<output format="left : decrease code" line="11" align="center" />
<output format="right : increase code" line="12" align="center" />
<output format="button 1 : play sound" line="13" align="center" />
<output format="button 2 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %2.2X >>" line="17" align="center">
<argument>maincpu.pb@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04d9 = 8d</action>
<action>maincpu.mw@2eeb = c23f</action>
<action>maincpu.mq@3f20 = 0000000000000000</action>
<action>maincpu.mq@3f28 = 0000000000000000</action>
<action>maincpu.mq@3f30 = 0000000000000000</action>
<action>maincpu.mq@3f38 = 0000000000000000</action>
<action>maincpu.mq@3f40 = 0000000000000000</action>
<action>maincpu.mq@3f48 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@0ccc = 2006</action> <!-- rom1 ($cccc) -->
<action>maincpu.mw@0cf5 = 2006</action> <!-- rom2 ($ccf5) -->
<action> slave.mw@00c0 = 2022</action> <!-- rom3 ($80c0) -->
</script>
<script state="off">
<action>maincpu.mw@0ccc = bdcd</action>
<action>maincpu.mw@0cf5 = bdcd</action>
<action> slave.mw@00c0 = ce80</action>
</script>
</cheat>
Current "invinciblity" in the database is incomplete. Some enemies never fire (mainly human-type enemy). "no hit" will fix this problem.
BTW, cheat codes in current database based on 0.221 have expression parse error because recent jackal and clones don't have "master" cpu tag. You need to replace "master" with "maincpu" in jackal.xml or related files to bypass this error.
jman
Posts: 1296 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Mon Dec 26, 2022 9:32 am
Code: Select all
<cheat desc="player 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@4894 = param</action> <!-- left -->
<action>maincpu.mw@4a86 = param</action> <!-- right -->
<action>maincpu.mw@4b59 = param</action> <!-- up -->
<action>maincpu.mw@4c34 = param</action> <!-- down -->
<action>maincpu.mw@4d1b = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4d22 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4e0d = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4e14 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4f0c = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4f13 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@500b = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5012 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4894 = 0180</action>
<action>maincpu.mw@4a86 = 0180</action>
<action>maincpu.mw@4b59 = 0180</action>
<action>maincpu.mw@4c34 = 0180</action>
<action>maincpu.mw@4d1b = 0100</action>
<action>maincpu.mw@4d22 = 0100</action>
<action>maincpu.mw@4e0d = 0100</action>
<action>maincpu.mw@4e14 = 0100</action>
<action>maincpu.mw@4f0c = 0100</action>
<action>maincpu.mw@4f13 = 0100</action>
<action>maincpu.mw@500b = 0100</action>
<action>maincpu.mw@5012 = 0100</action>
</script>
</cheat>
"player speed" : add missing codes for "off" state.
Code: Select all
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by stop button -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@04d9 = 39</action> <!-- message erasure stopper ($c4d9) -->
<action>maincpu.mw@2eeb = ff20</action> <!-- ($eeeb) -->
<action>maincpu.mq@3f20 = bdc4b7b600119111</action>
<action>maincpu.mq@3f28 = 2729d61081fe2601</action>
<action>maincpu.mq@3f30 = 5a81fd26015c81f7</action>
<action>maincpu.mq@3f38 = 2602c01081fb2602</action>
<action>maincpu.mq@3f40 = cb10d71081ef2705</action>
<action>maincpu.mq@3f48 = 81df26075ff71c06</action>
<action>maincpu.mq@3f50 = 7c1c079711390000</action>
<!--
ff20 | bd c4 b7 : JSR $C4B7
ff23 | b6 00 11 : LDA >$0011 // read input
ff26 | 91 11 : CMPA $11
ff28 | 27 29 : BEQ $FF53
ff2a | d6 10 : LDB $10
ff2c | 81 fe : CMPA #$FE
ff2e | 26 01 : BNE $FF31
ff30 | 5a : DECB // decrease code -01
ff31 | 81 fd : CMPA #$FD
ff33 | 26 01 : BNE $FF36
ff35 | 5c : INCB // increase code +01
ff36 | 81 f7 : CMPA #$F7
ff38 | 26 02 : BNE $FF3C
ff3a | c0 10 : SUBB #$10 // decrease code -10
ff3c | 81 fb : CMPA #$FB
ff3e | 26 02 : BNE $FF42
ff40 | cb 10 : ADDB #$10 // increase code +10
ff42 | d7 10 : STB $10
ff44 | 81 ef : CMPA #$EF
ff46 | 27 05 : BEQ $FF4D
ff48 | 81 df : CMPA #$DF
ff4a | 26 07 : BNE $FF53
ff4c | 5f : CLRB // stop sound
ff4d | f7 1c 06 : STB $1C06 // send sound code
ff50 | 7c 1c 07 : INC $1C07 // enable sound
ff53 | 97 11 : STA $11
ff55 | 39 : RTS
-->
</script>
<script state="run">
<output format="----- jackal 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04d9 = 8d</action>
<action>maincpu.mw@2eeb = c23f</action>
<action>maincpu.mq@3f20 = 0000000000000000</action>
<action>maincpu.mq@3f28 = 0000000000000000</action>
<action>maincpu.mq@3f30 = 0000000000000000</action>
<action>maincpu.mq@3f38 = 0000000000000000</action>
<action>maincpu.mq@3f40 = 0000000000000000</action>
<action>maincpu.mq@3f48 = 0000000000000000</action>
<action>maincpu.mq@3f50 = 0000000000000000</action>
</script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
Code: Select all
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0a79 = 7ecb25b7</action> <!-- main cpu : ram ($ca76) -->
<action>maincpu.md@0c85 = 7ecd2fb7</action> <!-- main cpu : rom ($cc85) -->
<action> slave.md@006f = 7e8095c6</action> <!-- slave : sound ram ($806f) -->
<action> slave.md@009a = 7e80adc6</action> <!-- slave : color ram ($809a) -->
<action> slave.md@00c0 = 7e80e44f</action> <!-- slave : rom ($80c0) -->
</script>
<script state="off">
<action>maincpu.md@0a79 = 8e0020b7</action>
<action>maincpu.md@0c85 = bdce80b7</action>
<action> slave.md@006f = ce6000c6</action>
<action> slave.md@009a = ce4000c6</action>
<action> slave.md@00c0 = ce80004f</action>
</script>
</cheat>
"skip rom check" : rewrite routine. add ram check skip. rename to "skip ram/rom check".
jman
Posts: 1296 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Fri May 30, 2025 9:10 am
jackal.xml
Code: Select all
<!-- Jackal (World, 8-way Joystick) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2457 = 20</action> <!-- enemy ($E457) -->
<action>maincpu.mb@24D0 = 20</action> <!-- mine ($E4D0) -->
<action>maincpu.mb@26AE = 20</action> <!-- bullet ($E6AE) -->
</script>
<script state="off">
<action>maincpu.mb@2457 = 22</action>
<action>maincpu.mb@24D0 = 22</action>
<action>maincpu.mb@26AE = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@485F = 20</action> <!-- left -->
<action>maincpu.mb@4A51 = 20</action> <!-- right -->
<action>maincpu.mb@4B24 = 20</action> <!-- up -->
<action>maincpu.mb@4BF0 = 20</action> <!-- down -->
<action>maincpu.mb@4CCE = 20</action> <!-- upper-left -->
<action>maincpu.mb@4DC0 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4EB2 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4FB1 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@485F = 27</action>
<action>maincpu.mb@4A51 = 27</action>
<action>maincpu.mb@4B24 = 27</action>
<action>maincpu.mb@4BF0 = 27</action>
<action>maincpu.mb@4CCE = 27</action>
<action>maincpu.mb@4DC0 = 27</action>
<action>maincpu.mb@4EB2 = 27</action>
<action>maincpu.mb@4FB1 = 27</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@512F = 20</action> <!-- bomb (1P) -->
<action>maincpu.mb@518A = 20</action> <!-- bomb (2P) -->
<action>maincpu.mb@5781 = 01</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@512F = 27</action>
<action>maincpu.mb@518A = 27</action>
<action>maincpu.mb@5781 = 10</action>
</script>
</cheat>
<cheat desc="player 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@4894 = param</action> <!-- left -->
<action>maincpu.mw@4A86 = param</action> <!-- right -->
<action>maincpu.mw@4B59 = param</action> <!-- up -->
<action>maincpu.mw@4C34 = param</action> <!-- down -->
<action>maincpu.mw@4D1B = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4D22 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4E0D = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4E14 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4F0C = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4F13 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@500B = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5012 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4894 = 0180</action>
<action>maincpu.mw@4A86 = 0180</action>
<action>maincpu.mw@4B59 = 0180</action>
<action>maincpu.mw@4C34 = 0180</action>
<action>maincpu.mw@4D1B = 0100</action>
<action>maincpu.mw@4D22 = 0100</action>
<action>maincpu.mw@4E0D = 0100</action>
<action>maincpu.mw@4E14 = 0100</action>
<action>maincpu.mw@4F0C = 0100</action>
<action>maincpu.mw@4F13 = 0100</action>
<action>maincpu.mw@500B = 0100</action>
<action>maincpu.mw@5012 = 0100</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.mq@4675 = A609BDFF008601B7</action> <!-- 1P -->
<action>maincpu.mq@46A9 = A609BDFF007F0B72</action> <!-- 2P -->
<action>maincpu.mq@3F00 = 2707CEFF0FA6C6A7</action>
<action>maincpu.mq@3F08 = 06A606A788233900</action>
<action>maincpu.mq@3F10 = 549400245C2C00A4</action>
<action>maincpu.mq@3F18 = AC3C000000000000</action>
<!--
4675 | A6 09 : LDA $9,X // 1P
4677 | BD FF 00 : JSR $FF00
===============================
46A9 | A6 09 : LDA $9,X // 2P
46AB | BD FF 00 : JSR $FF00
===============================
FF00 | 27 07 : BEQ $FF09
FF02 | CE FF 0F : LDU #$FF0F
FF05 | A6 C6 : LDA A,U
FF07 | A7 06 : STA $6,X
FF09 | A6 06 : LDA $6,X
FF0B | A7 88 23 : STA $23,X
FF0E | 39 : RTS
FF0F - FF19 : input/direction conversion table
input direction
01 54 : left
02 94 : right
04 24 : up
05 5C : upper-left
06 2C : upper-right
08 A4 : down
09 AC : lower-left
0A 3C : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@4675 = A606A788238601B7</action>
<action>maincpu.mq@46A9 = A606A788237F0B72</action>
<action>maincpu.mq@3F00 = 0000000000000000</action>
<action>maincpu.mq@3F08 = 0000000000000000</action>
<action>maincpu.mq@3F10 = 0000000000000000</action>
<action>maincpu.mq@3F18 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by sound stop button -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@04D9 = 39 </action> <!-- message erasure stopper ($C4D9) -->
<action>maincpu.mw@2EEB = FF20 </action> <!-- ($EEEB) -->
<action>maincpu.mq@3F20 = BDC4B7B600119111</action>
<action>maincpu.mq@3F28 = 2729D61081FE2601</action>
<action>maincpu.mq@3F30 = 5A81FD26015C81F7</action>
<action>maincpu.mq@3F38 = 2602C01081FB2602</action>
<action>maincpu.mq@3F40 = CB10D71081EF2705</action>
<action>maincpu.mq@3F48 = 81DF26075FF71C06</action>
<action>maincpu.mq@3F50 = 7C1C079711390000</action>
<!--
FF20 | BD C4 B7 : JSR $C4B7 // erase message
FF23 | B6 00 11 : LDA >$0011 // read input
FF26 | 91 11 : CMPA $11
FF28 | 27 29 : BEQ $FF53
FF2A | D6 10 : LDB $10
FF2C | 81 FE : CMPA #$FE
FF2E | 26 01 : BNE $FF31
FF30 | 5A : DECB // decrease code -01
FF31 | 81 FD : CMPA #$FD
FF33 | 26 01 : BNE $FF36
FF35 | 5C : INCB // increase code +10
FF36 | 81 F7 : CMPA #$F7
FF38 | 26 02 : BNE $FF3C
FF3A | C0 10 : SUBB #$10 // decrease code -10
FF3C | 81 FB : CMPA #$FB
FF3E | 26 02 : BNE $FF42
FF40 | CB 10 : ADDB #$10 // increase code +10
FF42 | D7 10 : STB $10
FF44 | 81 EF : CMPA #$EF
FF46 | 27 05 : BEQ $FF4D // play sound
FF48 | 81 DF : CMPA #$DF
FF4A | 26 07 : BNE $FF53
FF4C | 5F : CLRB // stop sound
FF4D | F7 1C 06 : STB $1C06 // send sound code
FF50 | 7C 1C 07 : INC $1C07 // enable sound
FF53 | 97 11 : STA $11
FF55 | 39 : RTS
-->
</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="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@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04D9 = 8D </action>
<action>maincpu.mw@2EEB = C23F </action>
<action>maincpu.mq@3F20 = 0000000000000000</action>
<action>maincpu.mq@3F28 = 0000000000000000</action>
<action>maincpu.mq@3F30 = 0000000000000000</action>
<action>maincpu.mq@3F38 = 0000000000000000</action>
<action>maincpu.mq@3F40 = 0000000000000000</action>
<action>maincpu.mq@3F48 = 0000000000000000</action>
<action>maincpu.mq@3F50 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0A79 = 7ECB25B7</action> <!-- main cpu : ram ($CA79) -->
<action>maincpu.md@0C85 = 7ECD2FB7</action> <!-- main cpu : rom ($CC85) -->
<action> slave.md@006F = 7E8095C6</action> <!-- slave : sound ram ($806F) -->
<action> slave.md@009A = 7E80ADC6</action> <!-- slave : color ram ($809A) -->
<action> slave.md@00C0 = 7E80E44F</action> <!-- slave : rom ($80C0) -->
</script>
<script state="off">
<action>maincpu.md@0A79 = 8E0020B7</action>
<action>maincpu.md@0C85 = BDCE80B7</action>
<action> slave.md@006F = CE6000C6</action>
<action> slave.md@009A = CE4000C6</action>
<action> slave.md@00C0 = CE80004F</action>
</script>
</cheat>
</mamecheat>
jackalr.xml
Code: Select all
<!-- Jackal (World, Rotary Joystick) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2454 = 20</action> <!-- enemy ($E454) -->
<action>maincpu.mb@24CD = 20</action> <!-- mine ($E4CD) -->
<action>maincpu.mb@26AB = 20</action> <!-- bullet ($E6AB) -->
</script>
<script state="off">
<action>maincpu.mb@2454 = 22</action>
<action>maincpu.mb@24CD = 22</action>
<action>maincpu.mb@26AB = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@484F = 20</action> <!-- left -->
<action>maincpu.mb@4A41 = 20</action> <!-- right -->
<action>maincpu.mb@4B14 = 20</action> <!-- up -->
<action>maincpu.mb@4BE0 = 20</action> <!-- down -->
<action>maincpu.mb@4CBE = 20</action> <!-- upper-left -->
<action>maincpu.mb@4DB0 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4EA2 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4FA1 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@484F = 27</action>
<action>maincpu.mb@4A41 = 27</action>
<action>maincpu.mb@4B14 = 27</action>
<action>maincpu.mb@4BE0 = 27</action>
<action>maincpu.mb@4CBE = 27</action>
<action>maincpu.mb@4DB0 = 27</action>
<action>maincpu.mb@4EA2 = 27</action>
<action>maincpu.mb@4FA1 = 27</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@511F = 20</action> <!-- bomb (1P) -->
<action>maincpu.mb@517A = 20</action> <!-- bomb (2P) -->
<action>maincpu.mb@5763 = 01</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@511F = 27</action>
<action>maincpu.mb@517A = 27</action>
<action>maincpu.mb@5763 = 10</action>
</script>
</cheat>
<cheat desc="player 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@4884 = param</action> <!-- left -->
<action>maincpu.mw@4A76 = param</action> <!-- right -->
<action>maincpu.mw@4B49 = param</action> <!-- up -->
<action>maincpu.mw@4C24 = param</action> <!-- down -->
<action>maincpu.mw@4D0B = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4D12 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4DFD = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4E04 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4EFC = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4F03 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@4FFB = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5002 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4884 = 0180</action>
<action>maincpu.mw@4A76 = 0180</action>
<action>maincpu.mw@4B49 = 0180</action>
<action>maincpu.mw@4C24 = 0180</action>
<action>maincpu.mw@4D0B = 0100</action>
<action>maincpu.mw@4D12 = 0100</action>
<action>maincpu.mw@4DFD = 0100</action>
<action>maincpu.mw@4E04 = 0100</action>
<action>maincpu.mw@4EFC = 0100</action>
<action>maincpu.mw@4F03 = 0100</action>
<action>maincpu.mw@4FFB = 0100</action>
<action>maincpu.mw@5002 = 0100</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@469E = BDBF10FC </action>
<action>maincpu.mq@BF10 = 7F0B72A6092707CE</action>
<action>maincpu.mq@BF18 = BF1FA6C6A7063900</action>
<action>maincpu.mq@BF20 = 549400245C2C00A4</action>
<action>maincpu.mq@BF28 = AC3C000000000000</action>
<!--
BF10 | 7F 0B 72 : CLR $0B72
BF13 | A6 09 : LDA $9,X
BF15 | 27 07 : BEQ $BF1E
BF17 | CE BF 1F : LDU #$BF1F
BF1A | A6 C6 : LDA A,U
BF1C | A7 06 : STA $6,X
BF1E | 39 : RTS
BF1F - BF29 : input/direction conversion table
input direction
01 54 : left
02 94 : right
04 24 : up
05 5C : upper-left
06 2C : upper-right
08 A4 : down
09 AC : lower-left
0A 3C : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@469E = 7F0B72FC </action>
<action>maincpu.mq@BF10 = 0000000000000000</action>
<action>maincpu.mq@BF18 = 0000000000000000</action>
<action>maincpu.mq@BF20 = 0000000000000000</action>
<action>maincpu.mq@BF28 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by sound stop button -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@04ED = 39 </action> <!-- message erasure stopper ($C4ED) -->
<action>maincpu.mw@2F86 = BF30 </action> <!-- ($EF86) -->
<action>maincpu.mq@BF30 = BDC4CBB600119111</action>
<action>maincpu.mq@BF38 = 2729D61081FE2601</action>
<action>maincpu.mq@BF40 = 5A81FD26015C81F7</action>
<action>maincpu.mq@BF48 = 2602C01081FB2602</action>
<action>maincpu.mq@BF50 = CB10D71081EF2705</action>
<action>maincpu.mq@BF58 = 81DF26075FF71C06</action>
<action>maincpu.mq@BF60 = 7C1C079711390000</action>
<!--
BF30 | BD C4 CB : JSR $C4CB // erase message
BF33 | B6 00 11 : LDA >$0011 // read input
BF36 | 91 11 : CMPA $11
BF38 | 27 29 : BEQ $BF63
BF3A | D6 10 : LDB $10
BF3C | 81 FE : CMPA #$FE
BF3E | 26 01 : BNE $BF41
BF40 | 5A : DECB // decrease code -01
BF41 | 81 FD : CMPA #$FD
BF43 | 26 01 : BNE $BF46
BF45 | 5C : INCB // increase code +10
BF46 | 81 F7 : CMPA #$F7
BF48 | 26 02 : BNE $BF4C
BF4A | C0 10 : SUBB #$10 // decrease code -10
BF4C | 81 FB : CMPA #$FB
BF4E | 26 02 : BNE $BF52
BF50 | CB 10 : ADDB #$10 // increase code +10
BF52 | D7 10 : STB $10
BF54 | 81 EF : CMPA #$EF
BF56 | 27 05 : BEQ $BF5D // play sound
BF58 | 81 DF : CMPA #$DF
BF5A | 26 07 : BNE $BF63
BF5C | 5F : CLRB // stop sound
BF5D | F7 1C 06 : STB $1C06 // send sound code
BF60 | 7C 1C 07 : INC $1C07 // enable sound
BF63 | 97 11 : STA $11
BF65 | 39 : RTS
-->
</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="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@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04ED = 8D </action>
<action>maincpu.mw@2F86 = C253 </action>
<action>maincpu.mq@BF30 = 0000000000000000</action>
<action>maincpu.mq@BF38 = 0000000000000000</action>
<action>maincpu.mq@BF40 = 0000000000000000</action>
<action>maincpu.mq@BF48 = 0000000000000000</action>
<action>maincpu.mq@BF50 = 0000000000000000</action>
<action>maincpu.mq@BF58 = 0000000000000000</action>
<action>maincpu.mq@BF60 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0A77 = 7ECB23B7</action> <!-- main cpu : ram ($CA77) -->
<action>maincpu.md@0C83 = 7ECD2DB7</action> <!-- main cpu : rom ($CC83) -->
<action> slave.md@006F = 7E8095C6</action> <!-- slave : sound ram ($806F) -->
<action> slave.md@009A = 7E80ADC6</action> <!-- slave : color ram ($809A) -->
<action> slave.md@00C0 = 7E80E44F</action> <!-- slave : rom ($80C0) -->
</script>
<script state="off">
<action>maincpu.md@0A77 = 8E0020B7</action>
<action>maincpu.md@0C83 = BDCE80B7</action>
<action> slave.md@006F = CE6000C6</action>
<action> slave.md@009A = CE4000C6</action>
<action> slave.md@00C0 = CE80004F</action>
</script>
</cheat>
</mamecheat>
topgunr.xml
Code: Select all
<!-- Top Gunner (US, 8-way Joystick) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2457 = 20</action> <!-- enemy ($E457) -->
<action>maincpu.mb@24D0 = 20</action> <!-- mine ($E4D0) -->
<action>maincpu.mb@26AE = 20</action> <!-- bullet ($E6AE) -->
</script>
<script state="off">
<action>maincpu.mb@2457 = 22</action>
<action>maincpu.mb@24D0 = 22</action>
<action>maincpu.mb@26AE = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@4860 = 20</action> <!-- left -->
<action>maincpu.mb@4A52 = 20</action> <!-- right -->
<action>maincpu.mb@4B25 = 20</action> <!-- up -->
<action>maincpu.mb@4BF1 = 20</action> <!-- down -->
<action>maincpu.mb@4CCF = 20</action> <!-- upper-left -->
<action>maincpu.mb@4DC1 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4EB3 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4FB2 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@4860 = 27</action>
<action>maincpu.mb@4A52 = 27</action>
<action>maincpu.mb@4B25 = 27</action>
<action>maincpu.mb@4BF1 = 27</action>
<action>maincpu.mb@4CCF = 27</action>
<action>maincpu.mb@4DC1 = 27</action>
<action>maincpu.mb@4EB3 = 27</action>
<action>maincpu.mb@4FB2 = 27</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@5130 = 20</action> <!-- bomb (1P) -->
<action>maincpu.mb@518B = 20</action> <!-- bomb (2P) -->
<action>maincpu.mb@578D = 01</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@5130 = 27</action>
<action>maincpu.mb@518B = 27</action>
<action>maincpu.mb@578D = 10</action>
</script>
</cheat>
<cheat desc="player 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@4895 = param</action> <!-- left -->
<action>maincpu.mw@4A87 = param</action> <!-- right -->
<action>maincpu.mw@4B5A = param</action> <!-- up -->
<action>maincpu.mw@4C35 = param</action> <!-- down -->
<action>maincpu.mw@4D1C = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4D23 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4E0E = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4E15 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4F0D = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4F14 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@500C = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5013 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4895 = 0180</action>
<action>maincpu.mw@4A87 = 0180</action>
<action>maincpu.mw@4B5A = 0180</action>
<action>maincpu.mw@4C35 = 0180</action>
<action>maincpu.mw@4D1C = 0100</action>
<action>maincpu.mw@4D23 = 0100</action>
<action>maincpu.mw@4E0E = 0100</action>
<action>maincpu.mw@4E15 = 0100</action>
<action>maincpu.mw@4F0D = 0100</action>
<action>maincpu.mw@4F14 = 0100</action>
<action>maincpu.mw@500C = 0100</action>
<action>maincpu.mw@5013 = 0100</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.mq@4676 = A609BDFF108601B7</action> <!-- 1P -->
<action>maincpu.mq@46AA = A609BDFF107F0B72</action> <!-- 2P -->
<action>maincpu.mq@3F10 = 2707CEFF1FA6C6A7</action>
<action>maincpu.mq@3F18 = 06A606A788233900</action>
<action>maincpu.mq@3F20 = 549400245C2C00A4</action>
<action>maincpu.mq@3F28 = AC3C000000000000</action>
<!--
4676 | A6 09 : LDA $9,X // 1P
4678 | BD FF 00 : JSR $FF10
===============================
46AA | A6 09 : LDA $9,X // 2P
46AC | BD FF 00 : JSR $FF10
===============================
FF10 | 27 07 : BEQ $FF19
FF12 | CE FF 1F : LDU #$FF1F
FF15 | A6 C6 : LDA A,U
FF17 | A7 06 : STA $6,X
FF19 | A6 06 : LDA $6,X
FF1B | A7 88 23 : STA $23,X
FF1E | 39 : RTS
FF1F - FF29 : input/direction conversion table
input direction
01 54 : left
02 94 : right
04 24 : up
05 5C : upper-left
06 2C : upper-right
08 A4 : down
09 AC : lower-left
0A 3C : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@4676 = A606A788238601B7</action>
<action>maincpu.mq@46AA = A606A788237F0B72</action>
<action>maincpu.mq@3F10 = 0000000000000000</action>
<action>maincpu.mq@3F18 = 0000000000000000</action>
<action>maincpu.mq@3F20 = 0000000000000000</action>
<action>maincpu.mq@3F28 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by sound stop button -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@04D9 = 39 </action> <!-- message erasure stopper ($C4D9) -->
<action>maincpu.mw@2EEB = FF30 </action> <!-- ($EEEB) -->
<action>maincpu.mq@3F30 = BDC4B7B600119111</action>
<action>maincpu.mq@3F38 = 2729D61081FE2601</action>
<action>maincpu.mq@3F40 = 5A81FD26015C81F7</action>
<action>maincpu.mq@3F48 = 2602C01081FB2602</action>
<action>maincpu.mq@3F50 = CB10D71081EF2705</action>
<action>maincpu.mq@3F58 = 81DF26075FF71C06</action>
<action>maincpu.mq@3F60 = 7C1C079711390000</action>
<!--
FF30 | BD C4 B7 : JSR $C4B7 // erase message
FF33 | B6 00 11 : LDA >$0011 // read input
FF36 | 91 11 : CMPA $11
FF38 | 27 29 : BEQ $FF63
FF3A | D6 10 : LDB $10
FF3C | 81 FE : CMPA #$FE
FF3E | 26 01 : BNE $FF41
FF40 | 5A : DECB // decrease code -01
FF41 | 81 FD : CMPA #$FD
FF43 | 26 01 : BNE $FF46
FF45 | 5C : INCB // increase code +10
FF46 | 81 F7 : CMPA #$F7
FF48 | 26 02 : BNE $FF4C
FF4A | C0 10 : SUBB #$10 // decrease code -10
FF4C | 81 FB : CMPA #$FB
FF4E | 26 02 : BNE $FF52
FF50 | CB 10 : ADDB #$10 // increase code +10
FF52 | D7 10 : STB $10
FF54 | 81 EF : CMPA #$EF
FF56 | 27 05 : BEQ $FF5D // play sound
FF58 | 81 DF : CMPA #$DF
FF5A | 26 07 : BNE $FF63
FF5C | 5F : CLRB // stop sound
FF5D | F7 1C 06 : STB $1C06 // send sound code
FF60 | 7C 1C 07 : INC $1C07 // enable sound
FF63 | 97 11 : STA $11
FF65 | 39 : RTS
-->
</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="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@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04D9 = 8D </action>
<action>maincpu.mw@2EEB = C23F </action>
<action>maincpu.mq@3F30 = 0000000000000000</action>
<action>maincpu.mq@3F38 = 0000000000000000</action>
<action>maincpu.mq@3F40 = 0000000000000000</action>
<action>maincpu.mq@3F48 = 0000000000000000</action>
<action>maincpu.mq@3F50 = 0000000000000000</action>
<action>maincpu.mq@3F58 = 0000000000000000</action>
<action>maincpu.mq@3F60 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0A79 = 7ECB25B7</action> <!-- main cpu : ram ($CA79) -->
<action>maincpu.md@0C85 = 7ECD2FB7</action> <!-- main cpu : rom ($CC85) -->
<action> slave.md@006F = 7E8095C6</action> <!-- slave : sound ram ($806F) -->
<action> slave.md@009A = 7E80ADC6</action> <!-- slave : color ram ($809A) -->
<action> slave.md@00C0 = 7E80E44F</action> <!-- slave : rom ($80C0) -->
</script>
<script state="off">
<action>maincpu.md@0A79 = 8E0020B7</action>
<action>maincpu.md@0C85 = BDCE80B7</action>
<action> slave.md@006F = CE6000C6</action>
<action> slave.md@009A = CE4000C6</action>
<action> slave.md@00C0 = CE80004F</action>
</script>
</cheat>
</mamecheat>
jackalj.xml
Code: Select all
<!-- Tokushu Butai Jackal (Japan, 8-way Joystick) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2457 = 20</action> <!-- enemy ($E457) -->
<action>maincpu.mb@24D0 = 20</action> <!-- mine ($E4D0) -->
<action>maincpu.mb@26AE = 20</action> <!-- bullet ($E6AE) -->
</script>
<script state="off">
<action>maincpu.mb@2457 = 22</action>
<action>maincpu.mb@24D0 = 22</action>
<action>maincpu.mb@26AE = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@485F = 20</action> <!-- left -->
<action>maincpu.mb@4A51 = 20</action> <!-- right -->
<action>maincpu.mb@4B24 = 20</action> <!-- up -->
<action>maincpu.mb@4BF0 = 20</action> <!-- down -->
<action>maincpu.mb@4CCE = 20</action> <!-- upper-left -->
<action>maincpu.mb@4DC0 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4EB2 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4FB1 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@485F = 27</action>
<action>maincpu.mb@4A51 = 27</action>
<action>maincpu.mb@4B24 = 27</action>
<action>maincpu.mb@4BF0 = 27</action>
<action>maincpu.mb@4CCE = 27</action>
<action>maincpu.mb@4DC0 = 27</action>
<action>maincpu.mb@4EB2 = 27</action>
<action>maincpu.mb@4FB1 = 27</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@5136 = 20</action> <!-- bomb (1P) -->
<action>maincpu.mb@5198 = 20</action> <!-- bomb (2P) -->
<action>maincpu.mb@57A9 = 01</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@5136 = 27</action>
<action>maincpu.mb@5198 = 27</action>
<action>maincpu.mb@57A9 = 10</action>
</script>
</cheat>
<cheat desc="player 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@4894 = param</action> <!-- left -->
<action>maincpu.mw@4A86 = param</action> <!-- right -->
<action>maincpu.mw@4B59 = param</action> <!-- up -->
<action>maincpu.mw@4C34 = param</action> <!-- down -->
<action>maincpu.mw@4D1B = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4D22 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4E0D = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4E14 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4F0C = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4F13 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@500B = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5012 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4894 = 0180</action>
<action>maincpu.mw@4A86 = 0180</action>
<action>maincpu.mw@4B59 = 0180</action>
<action>maincpu.mw@4C34 = 0180</action>
<action>maincpu.mw@4D1B = 0100</action>
<action>maincpu.mw@4D22 = 0100</action>
<action>maincpu.mw@4E0D = 0100</action>
<action>maincpu.mw@4E14 = 0100</action>
<action>maincpu.mw@4F0C = 0100</action>
<action>maincpu.mw@4F13 = 0100</action>
<action>maincpu.mw@500B = 0100</action>
<action>maincpu.mw@5012 = 0100</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.mq@4675 = A609BDFF008601B7</action> <!-- 1P -->
<action>maincpu.mq@46A9 = A609BDFF007F0B72</action> <!-- 2P -->
<action>maincpu.mq@3F00 = 2707CEFF0FA6C6A7</action>
<action>maincpu.mq@3F08 = 06A606A788233900</action>
<action>maincpu.mq@3F10 = 549400245C2C00A4</action>
<action>maincpu.mq@3F18 = AC3C000000000000</action>
<!--
4675 | A6 09 : LDA $9,X // 1P
4677 | BD FF 00 : JSR $FF00
===============================
46A9 | A6 09 : LDA $9,X // 2P
46AB | BD FF 00 : JSR $FF00
===============================
FF00 | 27 07 : BEQ $FF09
FF02 | CE FF 0F : LDU #$FF0F
FF05 | A6 C6 : LDA A,U
FF07 | A7 06 : STA $6,X
FF09 | A6 06 : LDA $6,X
FF0B | A7 88 23 : STA $23,X
FF0E | 39 : RTS
FF0F - FF19 : input/direction conversion table
input direction
01 54 : left
02 94 : right
04 24 : up
05 5C : upper-left
06 2C : upper-right
08 A4 : down
09 AC : lower-left
0A 3C : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@4675 = A606A788238601B7</action>
<action>maincpu.mq@46A9 = A606A788237F0B72</action>
<action>maincpu.mq@3F00 = 0000000000000000</action>
<action>maincpu.mq@3F08 = 0000000000000000</action>
<action>maincpu.mq@3F10 = 0000000000000000</action>
<action>maincpu.mq@3F18 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by sound stop button -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@04D9 = 39 </action> <!-- message erasure stopper ($C4D9) -->
<action>maincpu.mw@2EEB = FF20 </action> <!-- ($EEEB) -->
<action>maincpu.mq@3F20 = BDC4B7B600119111</action>
<action>maincpu.mq@3F28 = 2729D61081FE2601</action>
<action>maincpu.mq@3F30 = 5A81FD26015C81F7</action>
<action>maincpu.mq@3F38 = 2602C01081FB2602</action>
<action>maincpu.mq@3F40 = CB10D71081EF2705</action>
<action>maincpu.mq@3F48 = 81DF26075FF71C06</action>
<action>maincpu.mq@3F50 = 7C1C079711390000</action>
<!--
FF20 | BD C4 B7 : JSR $C4B7 // erase message
FF23 | B6 00 11 : LDA >$0011 // read input
FF26 | 91 11 : CMPA $11
FF28 | 27 29 : BEQ $FF53
FF2A | D6 10 : LDB $10
FF2C | 81 FE : CMPA #$FE
FF2E | 26 01 : BNE $FF31
FF30 | 5A : DECB // decrease code -01
FF31 | 81 FD : CMPA #$FD
FF33 | 26 01 : BNE $FF36
FF35 | 5C : INCB // increase code +10
FF36 | 81 F7 : CMPA #$F7
FF38 | 26 02 : BNE $FF3C
FF3A | C0 10 : SUBB #$10 // decrease code -10
FF3C | 81 FB : CMPA #$FB
FF3E | 26 02 : BNE $FF42
FF40 | CB 10 : ADDB #$10 // increase code +10
FF42 | D7 10 : STB $10
FF44 | 81 EF : CMPA #$EF
FF46 | 27 05 : BEQ $FF4D // play sound
FF48 | 81 DF : CMPA #$DF
FF4A | 26 07 : BNE $FF53
FF4C | 5F : CLRB // stop sound
FF4D | F7 1C 06 : STB $1C06 // send sound code
FF50 | 7C 1C 07 : INC $1C07 // enable sound
FF53 | 97 11 : STA $11
FF55 | 39 : RTS
-->
</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="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@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04D9 = 8D </action>
<action>maincpu.mw@2EEB = C23F </action>
<action>maincpu.mq@3F20 = 0000000000000000</action>
<action>maincpu.mq@3F28 = 0000000000000000</action>
<action>maincpu.mq@3F30 = 0000000000000000</action>
<action>maincpu.mq@3F38 = 0000000000000000</action>
<action>maincpu.mq@3F40 = 0000000000000000</action>
<action>maincpu.mq@3F48 = 0000000000000000</action>
<action>maincpu.mq@3F50 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0A79 = 7ECB25B7</action> <!-- main cpu : ram ($CA79) -->
<action>maincpu.md@0C85 = 7ECD2FB7</action> <!-- main cpu : rom ($CC85) -->
<action> slave.md@006F = 7E8095C6</action> <!-- slave : sound ram ($806F) -->
<action> slave.md@009A = 7E80ADC6</action> <!-- slave : color ram ($809A) -->
<action> slave.md@00C0 = 7E80E44F</action> <!-- slave : rom ($80C0) -->
</script>
<script state="off">
<action>maincpu.md@0A79 = 8E0020B7</action>
<action>maincpu.md@0C85 = BDCE80B7</action>
<action> slave.md@006F = CE6000C6</action>
<action> slave.md@009A = CE4000C6</action>
<action> slave.md@00C0 = CE80004F</action>
</script>
</cheat>
</mamecheat>
jman
Posts: 1296 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Fri May 30, 2025 9:11 am
jackalbl.xml
Code: Select all
<!-- Jackal (bootleg, Rotary Joystick) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2454 = 20</action> <!-- enemy ($E454) -->
<action>maincpu.mb@24CD = 20</action> <!-- mine ($E4CD) -->
<action>maincpu.mb@26AB = 20</action> <!-- bullet ($E6AB) -->
</script>
<script state="off">
<action>maincpu.mb@2454 = 22</action>
<action>maincpu.mb@24CD = 22</action>
<action>maincpu.mb@26AB = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@484F = 20</action> <!-- left -->
<action>maincpu.mb@4A41 = 20</action> <!-- right -->
<action>maincpu.mb@4B14 = 20</action> <!-- up -->
<action>maincpu.mb@4BE0 = 20</action> <!-- down -->
<action>maincpu.mb@4CBE = 20</action> <!-- upper-left -->
<action>maincpu.mb@4DB0 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4EA2 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4FA1 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@484F = 27</action>
<action>maincpu.mb@4A41 = 27</action>
<action>maincpu.mb@4B14 = 27</action>
<action>maincpu.mb@4BE0 = 27</action>
<action>maincpu.mb@4CBE = 27</action>
<action>maincpu.mb@4DB0 = 27</action>
<action>maincpu.mb@4EA2 = 27</action>
<action>maincpu.mb@4FA1 = 27</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@511F = 20</action> <!-- bomb (1P) -->
<action>maincpu.mb@517A = 20</action> <!-- bomb (2P) -->
<action>maincpu.mb@5763 = 01</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@511F = 27</action>
<action>maincpu.mb@517A = 27</action>
<action>maincpu.mb@5763 = 10</action>
</script>
</cheat>
<cheat desc="player 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@4884 = param</action> <!-- left -->
<action>maincpu.mw@4A76 = param</action> <!-- right -->
<action>maincpu.mw@4B49 = param</action> <!-- up -->
<action>maincpu.mw@4C24 = param</action> <!-- down -->
<action>maincpu.mw@4D0B = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4D12 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4DFD = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4E04 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4EFC = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4F03 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@4FFB = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5002 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4884 = 0180</action>
<action>maincpu.mw@4A76 = 0180</action>
<action>maincpu.mw@4B49 = 0180</action>
<action>maincpu.mw@4C24 = 0180</action>
<action>maincpu.mw@4D0B = 0100</action>
<action>maincpu.mw@4D12 = 0100</action>
<action>maincpu.mw@4DFD = 0100</action>
<action>maincpu.mw@4E04 = 0100</action>
<action>maincpu.mw@4EFC = 0100</action>
<action>maincpu.mw@4F03 = 0100</action>
<action>maincpu.mw@4FFB = 0100</action>
<action>maincpu.mw@5002 = 0100</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@469E = BDBF10FC </action>
<action>maincpu.mq@BF10 = 7F0B72A6092707CE</action>
<action>maincpu.mq@BF18 = BF1FA6C6A7063900</action>
<action>maincpu.mq@BF20 = 549400245C2C00A4</action>
<action>maincpu.mq@BF28 = AC3C000000000000</action>
<!--
BF10 | 7F 0B 72 : CLR $0B72
BF13 | A6 09 : LDA $9,X
BF15 | 27 07 : BEQ $BF1E
BF17 | CE BF 1F : LDU #$BF1F
BF1A | A6 C6 : LDA A,U
BF1C | A7 06 : STA $6,X
BF1E | 39 : RTS
BF1F - BF29 : input/direction conversion table
input direction
01 54 : left
02 94 : right
04 24 : up
05 5C : upper-left
06 2C : upper-right
08 A4 : down
09 AC : lower-left
0A 3C : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@469E = 7F0B72FC </action>
<action>maincpu.mq@BF10 = 0000000000000000</action>
<action>maincpu.mq@BF18 = 0000000000000000</action>
<action>maincpu.mq@BF20 = 0000000000000000</action>
<action>maincpu.mq@BF28 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@04ED = 39 </action> <!-- message erasure stopper ($C4ED) -->
<action>maincpu.mw@2F86 = BF30 </action> <!-- ($EF86) -->
<action>maincpu.mq@BF30 = BDC4CBB600119111</action>
<action>maincpu.mq@BF38 = 2729D61081FE2601</action>
<action>maincpu.mq@BF40 = 5A81FD26015C81F7</action>
<action>maincpu.mq@BF48 = 2602C01081FB2602</action>
<action>maincpu.mq@BF50 = CB10D71081EF2705</action>
<action>maincpu.mq@BF58 = 81DF26075FF71C06</action>
<action>maincpu.mq@BF60 = 7C1C079711390000</action>
<!--
BF30 | BD C4 CB : JSR $C4CB // erase message
BF33 | B6 00 11 : LDA >$0011 // read input
BF36 | 91 11 : CMPA $11
BF38 | 27 29 : BEQ $BF63
BF3A | D6 10 : LDB $10
BF3C | 81 FE : CMPA #$FE
BF3E | 26 01 : BNE $BF41
BF40 | 5A : DECB // decrease code -01
BF41 | 81 FD : CMPA #$FD
BF43 | 26 01 : BNE $BF46
BF45 | 5C : INCB // increase code +10
BF46 | 81 F7 : CMPA #$F7
BF48 | 26 02 : BNE $BF4C
BF4A | C0 10 : SUBB #$10 // decrease code -10
BF4C | 81 FB : CMPA #$FB
BF4E | 26 02 : BNE $BF52
BF50 | CB 10 : ADDB #$10 // increase code +10
BF52 | D7 10 : STB $10
BF54 | 81 EF : CMPA #$EF
BF56 | 27 05 : BEQ $BF5D // play sound
BF58 | 81 DF : CMPA #$DF
BF5A | 26 07 : BNE $BF63
BF5C | 5F : CLRB // stop sound
BF5D | F7 1C 06 : STB $1C06 // send sound code
BF60 | 7C 1C 07 : INC $1C07 // enable sound
BF63 | 97 11 : STA $11
BF65 | 39 : RTS
-->
</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="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@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04ED = 8D </action>
<action>maincpu.mw@2F86 = C253 </action>
<action>maincpu.mq@BF30 = 0000000000000000</action>
<action>maincpu.mq@BF38 = 0000000000000000</action>
<action>maincpu.mq@BF40 = 0000000000000000</action>
<action>maincpu.mq@BF48 = 0000000000000000</action>
<action>maincpu.mq@BF50 = 0000000000000000</action>
<action>maincpu.mq@BF58 = 0000000000000000</action>
<action>maincpu.mq@BF60 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0A77 = 7ECB23B7</action> <!-- main cpu : ram ($CA77) -->
<action>maincpu.md@0C83 = 7ECD2DB7</action> <!-- main cpu : rom ($CC83) -->
<action> slave.md@006F = 7E8095C6</action> <!-- slave : sound ram ($806F) -->
<action> slave.md@009A = 7E80ADC6</action> <!-- slave : color ram ($809A) -->
<action> slave.md@00C0 = 7E80E44F</action> <!-- slave : rom ($80C0) -->
</script>
<script state="off">
<action>maincpu.md@0A77 = 8E0020B7</action>
<action>maincpu.md@0C83 = BDCE80B7</action>
<action> slave.md@006F = CE6000C6</action>
<action> slave.md@009A = CE4000C6</action>
<action> slave.md@00C0 = CE80004F</action>
</script>
</cheat>
</mamecheat>
topgunbl.xml
Code: Select all
<!-- Top Gunner (bootleg, Rotary Joystick) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2454 = 20</action> <!-- enemy ($E454) -->
<action>maincpu.mb@24CD = 20</action> <!-- mine ($E4CD) -->
<action>maincpu.mb@26AB = 20</action> <!-- bullet ($E6AB) -->
</script>
<script state="off">
<action>maincpu.mb@2454 = 22</action>
<action>maincpu.mb@24CD = 22</action>
<action>maincpu.mb@26AB = 22</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@484F = 20</action> <!-- left -->
<action>maincpu.mb@4A41 = 20</action> <!-- right -->
<action>maincpu.mb@4B14 = 20</action> <!-- up -->
<action>maincpu.mb@4BE0 = 20</action> <!-- down -->
<action>maincpu.mb@4CBE = 20</action> <!-- upper-left -->
<action>maincpu.mb@4DB0 = 20</action> <!-- upper-right -->
<action>maincpu.mb@4EA2 = 20</action> <!-- lower-left -->
<action>maincpu.mb@4FA1 = 20</action> <!-- lower-right -->
</script>
<script state="off">
<action>maincpu.mb@484F = 27</action>
<action>maincpu.mb@4A41 = 27</action>
<action>maincpu.mb@4B14 = 27</action>
<action>maincpu.mb@4BE0 = 27</action>
<action>maincpu.mb@4CBE = 27</action>
<action>maincpu.mb@4DB0 = 27</action>
<action>maincpu.mb@4EA2 = 27</action>
<action>maincpu.mb@4FA1 = 27</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@511F = 20</action> <!-- bomb (1P) -->
<action>maincpu.mb@517A = 20</action> <!-- bomb (2P) -->
<action>maincpu.mb@5763 = 01</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@511F = 27</action>
<action>maincpu.mb@517A = 27</action>
<action>maincpu.mb@5763 = 10</action>
</script>
</cheat>
<cheat desc="player 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@4884 = param</action> <!-- left -->
<action>maincpu.mw@4A76 = param</action> <!-- right -->
<action>maincpu.mw@4B49 = param</action> <!-- up -->
<action>maincpu.mw@4C24 = param</action> <!-- down -->
<action>maincpu.mw@4D0B = param</action> <!-- upper-left : up -->
<action>maincpu.mw@4D12 = param</action> <!-- upper-left : left -->
<action>maincpu.mw@4DFD = param</action> <!-- upper-right : up -->
<action>maincpu.mw@4E04 = param</action> <!-- upper-right : right -->
<action>maincpu.mw@4EFC = param</action> <!-- lower-left : down -->
<action>maincpu.mw@4F03 = param</action> <!-- lower-left : left -->
<action>maincpu.mw@4FFB = param</action> <!-- lower-right : down -->
<action>maincpu.mw@5002 = param</action> <!-- lower-right : right -->
</script>
<script state="off">
<action>maincpu.mw@4884 = 0180</action>
<action>maincpu.mw@4A76 = 0180</action>
<action>maincpu.mw@4B49 = 0180</action>
<action>maincpu.mw@4C24 = 0180</action>
<action>maincpu.mw@4D0B = 0100</action>
<action>maincpu.mw@4D12 = 0100</action>
<action>maincpu.mw@4DFD = 0100</action>
<action>maincpu.mw@4E04 = 0100</action>
<action>maincpu.mw@4EFC = 0100</action>
<action>maincpu.mw@4F03 = 0100</action>
<action>maincpu.mw@4FFB = 0100</action>
<action>maincpu.mw@5002 = 0100</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@469E = BDBF80FC </action>
<action>maincpu.mq@BF80 = 7F0B72A6092707CE</action>
<action>maincpu.mq@BF88 = BF8FA6C6A7063900</action>
<action>maincpu.mq@BF90 = 549400245C2C00A4</action>
<action>maincpu.mq@BF98 = AC3C000000000000</action>
<!--
BF80 | 7F 0B 72 : CLR $0B72
BF83 | A6 09 : LDA $9,X
BF85 | 27 07 : BEQ $BF8E
BF87 | CE BF 8F : LDU #$BF8F
BF8A | A6 C6 : LDA A,U
BF8C | A7 06 : STA $6,X
BF8E | 39 : RTS
BF8F - BF99 : input/direction conversion table
input direction
01 54 : left
02 94 : right
04 24 : up
05 5C : upper-left
06 2C : upper-right
08 A4 : down
09 AC : lower-left
0A 3C : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@469E = 7F0B72FC </action>
<action>maincpu.mq@BF80 = 0000000000000000</action>
<action>maincpu.mq@BF88 = 0000000000000000</action>
<action>maincpu.mq@BF90 = 0000000000000000</action>
<action>maincpu.mq@BF98 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some (short) sfxs by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@04ED = 39 </action> <!-- message erasure stopper ($C4ED) -->
<action>maincpu.mw@2F86 = BFA0 </action> <!-- ($EF86) -->
<action>maincpu.mq@BFA0 = BDC4CBB600119111</action>
<action>maincpu.mq@BFA8 = 2729D61081FE2601</action>
<action>maincpu.mq@BFB0 = 5A81FD26015C81F7</action>
<action>maincpu.mq@BFB8 = 2602C01081FB2602</action>
<action>maincpu.mq@BFC0 = CB10D71081EF2705</action>
<action>maincpu.mq@BFC8 = 81DF26075FF71C06</action>
<action>maincpu.mq@BFD0 = 7C1C079711390000</action>
<!--
BFA0 | BD C4 CB : JSR $C4CB // erase message
BFA3 | B6 00 11 : LDA >$0011 // read input
BFA6 | 91 11 : CMPA $11
BFA8 | 27 29 : BEQ $BFD3
BFAA | D6 10 : LDB $10
BFAC | 81 FE : CMPA #$FE
BFAE | 26 01 : BNE $BFB1
BFB0 | 5A : DECB // decrease code -01
BFB1 | 81 FD : CMPA #$FD
BFB3 | 26 01 : BNE $BFB6
BFB5 | 5C : INCB // increase code +10
BFB6 | 81 F7 : CMPA #$F7
BFB8 | 26 02 : BNE $BFBC
BFBA | C0 10 : SUBB #$10 // decrease code -10
BFBC | 81 FB : CMPA #$FB
BFBE | 26 02 : BNE $BFC2
BFC0 | CB 10 : ADDB #$10 // increase code +10
BFC2 | D7 10 : STB $10
BFC4 | 81 EF : CMPA #$EF
BFC6 | 27 05 : BEQ $BFCD // play sound
BFC8 | 81 DF : CMPA #$DF
BFCA | 26 07 : BNE $BFD3
BFCC | 5F : CLRB // stop sound
BFCD | F7 1C 06 : STB $1C06 // send sound code
BFD0 | 7C 1C 07 : INC $1C07 // enable sound
BFD3 | 97 11 : STA $11
BFD5 | 39 : RTS
-->
</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="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@1210</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@04ED = 8D </action>
<action>maincpu.mw@2F86 = C253 </action>
<action>maincpu.mq@BFA0 = 0000000000000000</action>
<action>maincpu.mq@BFA8 = 0000000000000000</action>
<action>maincpu.mq@BFB0 = 0000000000000000</action>
<action>maincpu.mq@BFB8 = 0000000000000000</action>
<action>maincpu.mq@BFC0 = 0000000000000000</action>
<action>maincpu.mq@BFC8 = 0000000000000000</action>
<action>maincpu.mq@BFD0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0A77 = 7ECB23B7</action> <!-- main cpu : ram ($CA77) -->
<action>maincpu.md@0C83 = 7ECD2DB7</action> <!-- main cpu : rom ($CC83) -->
<action> slave.md@006F = 7E8095C6</action> <!-- slave : sound ram ($806F) -->
<action> slave.md@009A = 7E80ADC6</action> <!-- slave : color ram ($809A) -->
<action> slave.md@00C0 = 7E80E44F</action> <!-- slave : rom ($80C0) -->
</script>
<script state="off">
<action>maincpu.md@0A77 = 8E0020B7</action>
<action>maincpu.md@0C83 = BDCE80B7</action>
<action> slave.md@006F = CE6000C6</action>
<action> slave.md@009A = CE4000C6</action>
<action> slave.md@00C0 = CE80004F</action>
</script>
</cheat>
</mamecheat>