[captcommj] Captain Commando

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

[captcommj] Captain Commando

Post by jman »

Code: Select all

<cheat desc="no hit (test)">
    <script state="on">
        <!-- normal attack -->
        <action>maincpu.mb@08016 = 60</action>
        <action>maincpu.mb@081d8 = 60</action>
        <action>maincpu.mb@088b8 = 60</action>
        <action>maincpu.mb@08b34 = 60</action>
        <action>maincpu.mb@08c2c = 60</action>
        <action>maincpu.mb@08f8c = 60</action>
        <action>maincpu.mb@09096 = 60</action>
        <action>maincpu.mb@09310 = 60</action>
        <action>maincpu.mb@095f6 = 60</action>
        <action>maincpu.mb@099ee = 60</action>
        <!-- machine attack -->
        <action>maincpu.mb@09b9a = 60</action>
        <action>maincpu.mb@0a048 = 60</action>
        <action>maincpu.mb@5e1f8 = 60</action>
        <!-- firearms -->
        <action>maincpu.mb@0aa68 = 60</action>
        <action>maincpu.mb@0abbe = 60</action>
        <action>maincpu.mb@0acda = 60</action>
        <!-- ride on machine -->
        <action>maincpu.mb@0bb20 = 60</action>
        <action>maincpu.mb@0bc9c = 60</action>
        <action>maincpu.mb@0c486 = 60</action>
        <action>maincpu.mb@0c60e = 60</action>
        <action>maincpu.mb@0c966 = 60</action>
        <action>maincpu.mb@0cb08 = 60</action>
        <action>maincpu.mb@0d314 = 60</action>
        <action>maincpu.mb@0d5e8 = 60</action>
        <!-- catch -->
        <action>maincpu.mb@218a6 = 60</action>
        <action>maincpu.mb@219aa = 60</action>
        <action>maincpu.mb@3aa3c = 60</action>
        <action>maincpu.mb@7b476 = 60</action>
        <action>maincpu.mb@7b51a = 60</action>
        <action>maincpu.mb@7b59e = 60</action>
        <action>maincpu.mb@7b7ac = 60</action>
        <action>maincpu.mb@7c21c = 60</action>
        <action>maincpu.mb@7c2c0 = 60</action>
        <action>maincpu.mb@7c344 = 60</action>
        <action>maincpu.mb@7c552 = 60</action>
        <action>maincpu.mb@7ccaa = 60</action>
        <action>maincpu.mb@7d652 = 60</action>
        <action>maincpu.mb@7cf3c = 60</action>
        <action>maincpu.mb@7cd2e = 60</action>
        <action>maincpu.mb@7d5ce = 60</action>
        <action>maincpu.mb@7d772 = 60</action>
        <action>maincpu.mb@7d882 = 60</action>
        <action>maincpu.mb@813c4 = 60</action>
        <!-- boss -->
        <action>maincpu.mb@08586 = 60</action>
        <action>maincpu.mb@478be = 60</action>
        <action>maincpu.mb@69d28 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@08016 = 67</action>
        <action>maincpu.mb@081d8 = 67</action>
        <action>maincpu.mb@088b8 = 67</action>
        <action>maincpu.mb@08b34 = 67</action>
        <action>maincpu.mb@08c2c = 67</action>
        <action>maincpu.mb@08f8c = 67</action>
        <action>maincpu.mb@09096 = 67</action>
        <action>maincpu.mb@09310 = 67</action>
        <action>maincpu.mb@095f6 = 67</action>
        <action>maincpu.mb@099ee = 67</action>
        <action>maincpu.mb@09b9a = 67</action>
        <action>maincpu.mb@0a048 = 67</action>
        <action>maincpu.mb@5e1f8 = 66</action>
        <action>maincpu.mb@0aa68 = 67</action>
        <action>maincpu.mb@0abbe = 67</action>
        <action>maincpu.mb@0acda = 67</action>
        <action>maincpu.mb@0bb20 = 66</action>
        <action>maincpu.mb@0bc9c = 67</action>
        <action>maincpu.mb@0c486 = 66</action>
        <action>maincpu.mb@0c60e = 66</action>
        <action>maincpu.mb@0c966 = 67</action>
        <action>maincpu.mb@0cb08 = 67</action>
        <action>maincpu.mb@0d314 = 66</action>
        <action>maincpu.mb@0d5e8 = 66</action>
        <action>maincpu.mb@218a6 = 66</action>
        <action>maincpu.mb@219aa = 66</action>
        <action>maincpu.mb@3aa3c = 66</action>
        <action>maincpu.mb@7b476 = 66</action>
        <action>maincpu.mb@7b51a = 66</action>
        <action>maincpu.mb@7b59e = 66</action>
        <action>maincpu.mb@7b7ac = 66</action>
        <action>maincpu.mb@7c21c = 66</action>
        <action>maincpu.mb@7c2c0 = 66</action>
        <action>maincpu.mb@7c344 = 66</action>
        <action>maincpu.mb@7c552 = 66</action>
        <action>maincpu.mb@7ccaa = 66</action>
        <action>maincpu.mb@7cf3c = 66</action>
        <action>maincpu.mb@7cd2e = 66</action>
        <action>maincpu.mb@7d652 = 66</action>
        <action>maincpu.mb@7d5ce = 66</action>
        <action>maincpu.mb@7d772 = 66</action>
        <action>maincpu.mb@7d882 = 66</action>
        <action>maincpu.mb@813c4 = 66</action>
        <action>maincpu.mb@08586 = 67</action>
        <action>maincpu.mb@478be = 6b</action>
        <action>maincpu.mb@69d28 = 66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@1129f = 06</action> <!-- normal attack (1st) -->
        <action>maincpu.mb@12153 = 06</action> <!-- normal attack (combo) -->
        <action>maincpu.mb@15437 = 06</action> <!-- body blow (jennety) -->
        <action>maincpu.mb@15663 = 06</action> <!-- body blow (captain) -->
        <action>maincpu.mb@1586f = 06</action> <!-- body blow (sho) -->
        <action>maincpu.mb@15b7f = 06</action> <!-- body blow (hoover) -->
        <action>maincpu.mb@17281 = 06</action> <!-- ride on machine (1st) -->
        <action>maincpu.mb@1797d = 06</action> <!-- ride on machine (combo) -->
        <action>maincpu.mb@17e09 = 06</action> <!-- stage 4 (1st) -->
        <action>maincpu.mb@185c5 = 06</action> <!-- stage 4 (combo) -->
    </script>
    <script state="off">
        <action>maincpu.mb@1129f = 05</action>
        <action>maincpu.mb@12153 = 05</action>
        <action>maincpu.mb@15437 = 00</action>
        <action>maincpu.mb@15663 = 00</action>
        <action>maincpu.mb@1586f = 00</action>
        <action>maincpu.mb@15b7f = 00</action>
        <action>maincpu.mb@17281 = 05</action>
        <action>maincpu.mb@1797d = 05</action>
        <action>maincpu.mb@17e09 = 05</action>
        <action>maincpu.mb@185c5 = 05</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x00008000">01 (slow)</item>
        <item value="0x0001c000">02       </item>
        <item value="0x0002c000">03       </item>
        <item value="0x0003c000">04       </item>
        <item value="0x0004c000">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@011666 = 4ef9001400204ef9</action>
        <action>maincpu.md@01166e =         0014002a</action>
        <action>maincpu.mq@01813e = 4ef9001400384ef9</action>
        <action>maincpu.mq@018146 = 001400424ef90014</action>
        <action>maincpu.mw@01814e =             004c</action>
        <action>maincpu.mq@140020 = 04a8000000000012</action>
        <action>maincpu.mq@140028 = 600806a800000000</action>
        <action>maincpu.mq@140030 = 00124ef9000115f8</action>
        <action>maincpu.mq@140038 = 04a800000000000a</action>
        <action>maincpu.mq@140040 = 601204a800000000</action>
        <action>maincpu.mq@140048 = 0012600806a80000</action>
        <action>maincpu.mq@140050 = 000000124ef90001</action>
        <action>maincpu.mq@140058 = 80d2000000000000</action>
        <!--
        140020 | 04a8 xxxx xxxx 0012 : subi.l #$xxxx,($12,A0) // down
        140028 | 6008                : bra    $140032
        14002a | 06a8 xxxx xxxx 0012 : addi.l #$xxxx,($12,A0) // up
        140032 | 4ef9 0001 15f8      : jmp    $115f8.l
        140038 | 04a8 xxxx xxxx 000a : subi.l #$xxxx,($a,A0)  // left in stage 4
        140040 | 6012                : bra    $140054
        140042 | 04a8 xxxx xxxx 0012 : subi.l #$xxxx,($12,A0) // down in stage 4
        14004a | 6008                : bra    $140054
        14004c | 06a8 xxxx xxxx 0012 : addi.l #$xxxx,($12,A0) // up in stage 4
        140054 | 4ef9 0001 80d2      : jmp    $180d2.l
        -->
    </script>
    <script state="change">
        <action>maincpu.md@0115f2 = param</action> <!-- right -->
        <action>maincpu.md@01165e = param</action> <!-- left -->
        <action>maincpu.md@011674 = param</action> <!-- lower-right : right -->
        <action>maincpu.md@01167c = param</action> <!-- lower-right : down -->
        <action>maincpu.md@011688 = param</action> <!-- upper-right : right -->
        <action>maincpu.md@011690 = param</action> <!-- upper-right : up -->
        <action>maincpu.md@01169c = param</action> <!-- lower-left : left -->
        <action>maincpu.md@0116a4 = param</action> <!-- lower-left : down -->
        <action>maincpu.md@0116b0 = param</action> <!-- upper-left : left -->
        <action>maincpu.md@0116b8 = param</action> <!-- upper-left : up -->
        <action>maincpu.md@140022 = param</action> <!-- down -->
        <action>maincpu.md@14002c = param</action> <!-- up -->
        <!-- stage 4 -->
        <action>maincpu.md@0180cc = param</action> <!-- right -->
        <action>maincpu.md@018152 = param</action> <!-- lower-right : right -->
        <action>maincpu.md@01815a = param</action> <!-- lower-right : down -->
        <action>maincpu.md@018166 = param</action> <!-- upper-right : right -->
        <action>maincpu.md@01816e = param</action> <!-- upper-right : up -->
        <action>maincpu.md@01817a = param</action> <!-- lower-left : left -->
        <action>maincpu.md@018182 = param</action> <!-- lower-left : down -->
        <action>maincpu.md@01818e = param</action> <!-- upper-left : left -->
        <action>maincpu.md@018196 = param</action> <!-- upper-left : up -->
        <action>maincpu.md@14003a = param</action> <!-- left -->
        <action>maincpu.md@140044 = param</action> <!-- down -->
        <action>maincpu.md@14004e = param</action> <!-- up -->
    </script>
    <script state="off">
        <action>maincpu.mq@011666 = 53680012608c5268</action>
        <action>maincpu.md@01166e =         00126086</action>
        <action>maincpu.mq@01813e = 5968000a608e5568</action>
        <action>maincpu.mq@018146 = 0012608854680012</action>
        <action>maincpu.mw@01814e =             6082</action>
        <action>maincpu.mq@140020 = 0000000000000000</action>
        <action>maincpu.mq@140028 = 0000000000000000</action>
        <action>maincpu.mq@140030 = 0000000000000000</action>
        <action>maincpu.mq@140038 = 0000000000000000</action>
        <action>maincpu.mq@140040 = 0000000000000000</action>
        <action>maincpu.mq@140048 = 0000000000000000</action>
        <action>maincpu.mq@140050 = 0000000000000000</action>
        <action>maincpu.mq@140058 = 0000000000000000</action>
        <action>maincpu.md@0115f2 =         0001c000</action>
        <action>maincpu.md@01165e =         0001c000</action>
        <action>maincpu.md@011674 =         00014000</action>
        <action>maincpu.md@01167c =         0000c000</action>
        <action>maincpu.md@011688 =         00014000</action>
        <action>maincpu.md@011690 =         0000c000</action>
        <action>maincpu.md@01169c =         00014000</action>
        <action>maincpu.md@0116a4 =         0000c000</action>
        <action>maincpu.md@0116b0 =         00014000</action>
        <action>maincpu.md@0116b8 =         0000c000</action>
        <action>maincpu.md@0180cc =         0001c000</action>
        <action>maincpu.md@018152 =         0001a000</action>
        <action>maincpu.md@01815a =         00018000</action>
        <action>maincpu.md@018166 =         0001a000</action>
        <action>maincpu.md@01816e =         00018000</action>
        <action>maincpu.md@01817a =         00038000</action>
        <action>maincpu.md@018182 =         00018000</action>
        <action>maincpu.md@01818e =         00038000</action>
        <action>maincpu.md@018196 =         00018000</action>
    </script>
</cheat>

<cheat desc="action speed up">
    <script state="on">
        <!-- main action timer -->
        <action>maincpu.mq@00306e = 4eb900140000663a</action>
        <action>maincpu.mq@140000 = b0fcac946e0c0c68</action>
        <action>maincpu.mq@140008 = 0010000666044240</action>
        <action>maincpu.mq@140010 = 4e755368002c4e75</action>
        <!--
        140000 | b0fc ac94      : cmpa.w #$ac94, A0   // is player?
        140004 | 6e0c           : bgt    $140012
        140006 | 0c68 0010 0006 : cmpi.w #$10,($6,A0) // is jump attack?
        14000c | 6604           : bne    $140012
        14000e | 4240           : clr.w  D0
        140010 | 4e75           : rts
        140012 | 5368 002c      : subq.w #1, ($2c,A0)
        140016 | 4e75           : rts
        -->
        <!-- sub action timer -->
        <action>maincpu.mb@120f5 = 02</action>
        <action>maincpu.mb@1858b = 02</action> <!-- stage 4 -->
    </script>
    <script state="off">
        <action>maincpu.mq@00306e = 5368002c6600003c</action>
        <action>maincpu.mq@140000 = 0000000000000000</action>
        <action>maincpu.mq@140008 = 0000000000000000</action>
        <action>maincpu.mq@140010 = 0000000000000000</action>
        <action>maincpu.mb@0120f5 =               24</action>
        <action>maincpu.mb@01858b =               24</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x80">02       </item>
        <item value="0x40">03       </item>
        <item value="0x20">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@044e9 = param</action>
        <action>maincpu.mb@0452b = param</action>
        <action>maincpu.mb@045f9 = param</action>
        <action>maincpu.mb@59a61 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@044e9 = 3c</action>
        <action>maincpu.mb@0452b = 3c</action>
        <action>maincpu.mb@045f9 = 3c</action>
        <action>maincpu.mb@59a61 = 3c</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@01a8c2 = 4eb9001400604eb8</action>
        <action>maincpu.mq@140060 = 41f8890043f90080</action>
        <action>maincpu.mq@140068 = 0181120010390080</action>
        <action>maincpu.mq@140070 = 0001b20067f40c00</action>
        <action>maincpu.mq@140078 = 00fd660253100c00</action>
        <action>maincpu.mq@140080 = 00fe660252100c00</action>
        <action>maincpu.mq@140088 = 00fb660404100010</action>
        <action>maincpu.mq@140090 = 0c0000f766040610</action>
        <action>maincpu.mq@140098 = 00100c0000ef6602</action>
        <action>maincpu.mq@1400a0 = 12900c0000df6604</action>
        <action>maincpu.mq@1400a8 = 12bc00f060bc0000</action>
        <!--
        140060 | 41f8 8900      : lea    $8900.w,A0   // $ff8900 : sound code address
        140064 | 43f9 0080 0181 : lea    $800181.l,A1 // $800181 : sound latch address
        14006a | 1200           : move.b D0,D1
        14006c | 1039 0080 0001 : move.b $800001.l,D0 // read input
        140072 | b200           : cmp.b  D0,D1
        140074 | 67f4           : beq    $14006a
        140076 | 0c00 00fd      : cmpi.b #-$3,D0
        14007a | 6602           : bne    $14007e
        14007c | 5310           : subq.b #1,(A0)      // decrease code -01
        14007e | 0c00 00fe      : cmpi.b #-$2,D0
        140082 | 6602           : bne    $140086
        140084 | 5210           : addq.b #1,(A0)      // increase code +01
        140086 | 0c00 00fb      : cmpi.b #-$5,D0
        14008a | 6604           : bne    $140090
        14008c | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        140090 | 0c00 00f7      : cmpi.b #-$9,D0
        140094 | 6604           : bne    $14009a
        140096 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        14009a | 0c00 00ef      : cmpi.b #-$11,D0
        14009e | 6602           : bne    $1400a2
        1400a0 | 1290           : move.b (A0),(A1)    // play sound
        1400a2 | 0c00 00df      : cmpi.b #-$21,D0
        1400a6 | 6604           : bne    $1400ac
        1400a8 | 12bc 00f0      : move.b #$f0,(A1)    // stop sound
        1400ac | 60bc           : bra    $14006a
        -->
    </script>
    <script state="run">
        <output format="----- captain commando 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@ff8900</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@01a8c2 = 7003d02d788a4eb8</action>
        <action>maincpu.mq@140060 = 0000000000000000</action>
        <action>maincpu.mq@140068 = 0000000000000000</action>
        <action>maincpu.mq@140070 = 0000000000000000</action>
        <action>maincpu.mq@140078 = 0000000000000000</action>
        <action>maincpu.mq@140080 = 0000000000000000</action>
        <action>maincpu.mq@140088 = 0000000000000000</action>
        <action>maincpu.mq@140090 = 0000000000000000</action>
        <action>maincpu.mq@140098 = 0000000000000000</action>
        <action>maincpu.mq@1400a0 = 0000000000000000</action>
        <action>maincpu.mq@1400a8 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="skip ram check">
    <script state="on">
        <action>maincpu.mw@00654 = 012c</action> <!-- ram check -->
        <action>maincpu.mw@1a8b8 = 0038</action> <!-- warning message -->
    </script>
    <script state="off">
        <action>maincpu.mw@00654 = 02b2</action>
        <action>maincpu.mw@1a8b8 = 0006</action>
    </script>
</cheat>
"no hit" is test code because sometimes stage 8 boss catches or throws you.
Post Reply