Page 1 of 1

[captcommj] Captain Commando

Posted: Sun Jan 29, 2023 12:17 pm
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.