[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: 843
Joined: Tue Dec 01, 2020 1:24 pm

[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
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[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".
Post Reply