[jackalj] (Tokushu Butai) Jackal

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.
Post Reply
jman
Posts: 1296
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[jackalj] (Tokushu Butai) Jackal

Post by jman »

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="&lt;&lt; sound code %2.2X &gt;&gt;" 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

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1296
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[jackalj] (Tokushu Butai) Jackal (update)

Post by jman »

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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %2.2X &gt;&gt;" 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

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1296
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[jackal]+ (Tokushu Butai) Jackal

Post by jman »

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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;" 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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;" 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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;" 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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;" 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

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1296
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[jackal]+ (Tokushu Butai) Jackal

Post by jman »

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="&lt;&lt; sound code %02X &gt;&gt;" 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="&lt;&lt; sound code %02X &gt;&gt;" 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>
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply