Page 1 of 1

[cobracomj] Cobra-Command

Posted: Wed Dec 22, 2021 11:51 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@d7cf = 39</action> <!-- enemy -->
        <action>maincpu.mb@d81c = 39</action> <!-- bullet -->
        <action>maincpu.mb@8fcb = 4f</action> <!-- background -->
    </script>
    <script state="off">
        <action>maincpu.mb@d7cf = 86</action>
        <action>maincpu.mb@d81c = 86</action>
        <action>maincpu.mb@8fcb = 48</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <comment>you can't use charge shot</comment>
    <script state="on">
        <action>maincpu.mw@8585 =             d8d0</action>
        <action>maincpu.mq@d8d0 = 4f5ffd015a7e8993</action>
        <!--
        d8d0 | 4f       : CLRA
        d8d1 | 5f       : CLRB
        d8d2 | fd 01 5a : STD  $015A
        d8d5 | 7e 89 93 : JMP  $8993
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@8585 =             8993</action>
        <action>maincpu.mq@d8d0 = 0000000000000000</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="on">
        <action>maincpu.md@b0e3 = cc000012</action> <!-- up -->
        <action>maincpu.md@b0f6 = cc000012</action> <!-- down -->
        <action>maincpu.md@b109 = cc000012</action> <!-- left -->
        <action>maincpu.md@b121 = cc000012</action> <!-- right -->
        <action>maincpu.mb@b13d =       09</action> <!-- upper-left -->
        <action>maincpu.mb@b143 =       09</action> <!-- lower-left -->
        <action>maincpu.mb@b149 =       21</action> <!-- upper-right -->
        <action>maincpu.mb@b14f =       21</action> <!-- lower-right -->
    </script>
    <script state="change">
        <action>maincpu.mw@b0e4 =  param</action>
        <action>maincpu.mw@b0f7 = -param</action>
        <action>maincpu.mw@b10a =  param</action>
        <action>maincpu.mw@b122 = -param</action>
    </script>

    <script state="off">
        <action>maincpu.md@b0e3 = 31a6ec22</action>
        <action>maincpu.md@b0f6 = 31a6ec22</action>
        <action>maincpu.md@b109 = 31a6eca4</action>
        <action>maincpu.md@b121 = 31a6eca4</action>
        <action>maincpu.mb@b13d =     0x0b</action>
        <action>maincpu.mb@b143 =     0x0b</action>
        <action>maincpu.mb@b149 =     0x23</action>
        <action>maincpu.mb@b14f =     0x23</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x06">02       </item>
        <item value="0x0c">03       </item>
        <item value="0x12">04       </item>
        <item value="0x18">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@e61e = -param</action>
        <action>maincpu.mb@e642 = -param</action>
        <action>maincpu.mb@e655 =  param</action>
        <action>maincpu.mb@e62f =  param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@e61e = fa</action>
        <action>maincpu.mb@e642 = fa</action>
        <action>maincpu.mb@e655 = 06</action>
        <action>maincpu.mb@e62f = 06</action>
    </script>
</cheat>

<cheat desc="available turn">
    <script state="on">
        <action>maincpu.mw@aeeb = 8681</action>
    </script>
    <script state="off">
        <action>maincpu.mw@aeeb = 961c</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@803d =             d8e0</action>
        <action>maincpu.mq@d8e0 = d711f63800d11127</action>
        <action>maincpu.mq@d8e8 = f7c1fb26020a10c1</action>
        <action>maincpu.mq@d8f0 = f726020c10c1ef26</action>
        <action>maincpu.mq@d8f8 = 0496102006c1df26</action>
        <action>maincpu.mq@d900 = 058601b73e0020d8</action>
        <!--
        d8e0 | d7 11    : STB  $11
        d8e2 | f6 38 00 : LDB  $3800 // read input
        d8e5 | d1 11    : CMPB $11
        d8e7 | 27 f7    : BEQ  $D8E0
        d8e9 | c1 fb    : CMPB #$FB
        d8eb | 26 02    : BNE  $D8EF
        d8ed | 0a 10    : DEC  $10   // decrease code
        d8ef | c1 f7    : CMPB #$F7
        d8f1 | 26 02    : BNE  $D8F5
        d8f3 | 0c 10    : INC  $10   // increase code
        d8f5 | c1 ef    : CMPB #$EF
        d8f7 | 26 04    : BNE  $D8FD
        d8f9 | 96 10    : LDA  $10   // play sound
        d8fb | 20 06    : BRA  $D903
        d8fd | c1 df    : CMPB #$DF
        d8ff | 26 05    : BNE  $D906
        d901 | 86 01    : LDA  #$01  // stop sound
        d903 | b7 3e 00 : STA  $3E00 // send sound code
        d906 | 20 d8    : BRA  $D8E0
        -->
    </script>
    <script state="run">
        <output format="----- cobra command 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@0010</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@803d =             a5c6</action>
        <action>maincpu.mq@d8e0 = 0000000000000000</action>
        <action>maincpu.mq@d8e8 = 0000000000000000</action>
        <action>maincpu.mq@d8f0 = 0000000000000000</action>
        <action>maincpu.mq@d8f8 = 0000000000000000</action>
        <action>maincpu.mq@d900 = 0000000000000000</action>
    </script>
</cheat>

[cobracomj] Cobra-Command (update)

Posted: Sat Dec 31, 2022 2:07 am
by jman

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@803d =             d8e0</action>
        <action>maincpu.mq@d8e0 = 9711b63800911127</action>
        <action>maincpu.mq@d8e8 = f7d61081fb26015a</action>
        <action>maincpu.mq@d8f0 = 81f726015c81fd26</action>
        <action>maincpu.mq@d8f8 = 02c01081fe2602cb</action>
        <action>maincpu.mq@d900 = 10d71081ef270681</action>
        <action>maincpu.mq@d908 = df2605c601f73e00</action>
        <action>maincpu.mq@d910 = 20ce000000000000</action>
        <!--
        d8e0 | 97 11    : STA  $11
        d8e2 | b6 38 00 : LDA  $3800 // read input
        d8e5 | 91 11    : CMPA $11
        d8e7 | 27 f7    : BEQ  $D8E0
        d8e9 | d6 10    : LDB  $10
        d8eb | 81 fb    : CMPA #$FB
        d8ed | 26 01    : BNE  $D8F0
        d8ef | 5a       : DECB       // decrease code -01
        d8f0 | 81 f7    : CMPA #$F7
        d8f2 | 26 01    : BNE  $D8F5
        d8f4 | 5c       : INCB       // increase code +01
        d8f5 | 81 fd    : CMPA #$FD
        d8f7 | 26 02    : BNE  $D8FB
        d8f9 | c0 10    : SUBB #$10  // decrease code -10
        d8fb | 81 fe    : CMPA #$FE
        d8fd | 26 02    : BNE  $D901
        d8ff | cb 10    : ADDB #$10  // increase code +10
        d901 | d7 10    : STB  $10
        d903 | 81 ef    : CMPA #$EF
        d905 | 27 06    : BEQ  $D90D
        d907 | 81 df    : CMPA #$DF
        d909 | 26 05    : BNE  $D910
        d90b | c6 01    : LDB  #$01  // stop sound
        d90d | f7 3e 00 : STB  $3E00 // send sound code
        d910 | 20 ce    : BRA  $D8E0
        -->
    </script>
    <script state="run">
        <output format="----- cobra command 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@0010</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@803d =             a5c6</action>
        <action>maincpu.mq@d8e0 = 0000000000000000</action>
        <action>maincpu.mq@d8e8 = 0000000000000000</action>
        <action>maincpu.mq@d8f0 = 0000000000000000</action>
        <action>maincpu.mq@d8f8 = 0000000000000000</action>
        <action>maincpu.mq@d900 = 0000000000000000</action>
        <action>maincpu.mq@d908 = 0000000000000000</action>
        <action>maincpu.mq@d910 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).

[cobracom]+ Cobra-Command

Posted: Tue Mar 12, 2024 9:48 am
by jman
cobracom.xml

Code: Select all

<!-- Cobra-Command (World/US revision 5) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8F74 = 4F</action> <!-- background -->
            <action>maincpu.mb@D798 = 39</action> <!-- enemy -->
            <action>maincpu.mb@D7E5 = 39</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@8F74 = 48</action>
            <action>maincpu.mb@D798 = 86</action>
            <action>maincpu.mb@D7E5 = 86</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <comment>you can't use charge shot</comment>
        <script state="on">
            <action>maincpu.mw@8525 = D8C0            </action>
            <action>maincpu.mq@D8C0 = 4F5FFD015B7E893C</action>
            <!--
            D8C0 | 4F       : CLRA
            D8C1 | 5F       : CLRB
            D8C2 | FD 01 5B : STD    $015B
            D8C5 | 7E 89 3C : JMP    $893C
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@8525 = 893C            </action>
            <action>maincpu.mq@D8C0 = 0000000000000000</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="on">
            <action>maincpu.md@B08A = CC000012        </action> <!-- up -->
            <action>maincpu.md@B09D = CC000012        </action> <!-- down -->
            <action>maincpu.md@B0B2 = BDD8D012        </action> <!-- left -->
            <action>maincpu.md@B0CA = BDD8D512        </action> <!-- right -->
            <action>maincpu.md@B12E = BDD8D012        </action> <!-- left (turn) -->
            <action>maincpu.md@B146 = BDD8D512        </action> <!-- right (turn) -->
            <action>maincpu.mq@D8D0 = CC00002003CC0000</action>
            <action>maincpu.mq@D8D8 = D31F390000000000</action>
            <!--
            D8D0 | CC xx xx : LDD    #$xxxx
            D8D3 | 20 03    : BRA    $D8D8
            D8D5 | CC xx xx : LDD    #$xxxx
            D8D8 | D3 1F    : ADDD   $1F
            D8DA | 39       : RTS
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B08B =  param</action>
            <action>maincpu.mw@B09E = -param</action>
            <action>maincpu.mw@D8D1 =  param</action>
            <action>maincpu.mw@D8D6 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@B08A = 31A6EC22        </action>
            <action>maincpu.md@B09D = 31A6EC22        </action>
            <action>maincpu.md@B0B2 = ECA4D31F        </action>
            <action>maincpu.md@B0CA = ECA4D31F        </action>
            <action>maincpu.md@B12E = ECA4D31F        </action>
            <action>maincpu.md@B146 = ECA4D31F        </action>
            <action>maincpu.mq@D8D0 = 0000000000000000</action>
            <action>maincpu.mq@D8D8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x12">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@E61E = -param</action>
            <action>maincpu.mb@E62F =  param</action>
            <action>maincpu.mb@E642 = -param</action>
            <action>maincpu.mb@E655 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E61E = FA</action>
            <action>maincpu.mb@E62F = 06</action>
            <action>maincpu.mb@E642 = FA</action>
            <action>maincpu.mb@E655 = 06</action>
        </script>
    </cheat>

    <cheat desc="available turn">
        <script state="on">
            <action>maincpu.mw@AE8A = 8681</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AE8A = 961C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@803D = D8E0            </action>
            <action>maincpu.mq@D8E0 = 9781B63800918127</action>
            <action>maincpu.mq@D8E8 = F7D68081FB26015A</action>
            <action>maincpu.mq@D8F0 = 81F726015C81FD26</action>
            <action>maincpu.mq@D8F8 = 02C01081FE2602CB</action>
            <action>maincpu.mq@D900 = 10D78081EF270681</action>
            <action>maincpu.mq@D908 = DF2605C601F73E00</action>
            <action>maincpu.mq@D910 = 20CE000000000000</action>
            <!--
            D8E0 | 97 81    : STA    $81
            D8E2 | B6 38 00 : LDA    $3800 // read input
            D8E5 | 91 81    : CMPA   $81
            D8E7 | 27 F7    : BEQ    $D8E0
            D8E9 | D6 80    : LDB    $80
            D8EB | 81 FB    : CMPA   #$FB
            D8ED | 26 01    : BNE    $D8F0
            D8EF | 5A       : DECB         // decrease code -01
            D8F0 | 81 F7    : CMPA   #$F7
            D8F2 | 26 01    : BNE    $D8F5
            D8F4 | 5C       : INCB         // increase code +01
            D8F5 | 81 FD    : CMPA   #$FD
            D8F7 | 26 02    : BNE    $D8FB
            D8F9 | C0 10    : SUBB   #$10  // decrease code -10
            D8FB | 81 FE    : CMPA   #$FE
            D8FD | 26 02    : BNE    $D901
            D8FF | CB 10    : ADDB   #$10  // increase code +10
            D901 | D7 80    : STB    $80
            D903 | 81 EF    : CMPA   #$EF
            D905 | 27 06    : BEQ    $D90D // play sound
            D907 | 81 DF    : CMPA   #$DF
            D909 | 26 05    : BNE    $D910
            D90B | C6 01    : LDB    #$01  // stop sound
            D90D | F7 3E 00 : STB    $3E00 // send sound code
            D910 | 20 CE    : BRA    $D8E0
            -->
        </script>
        <script state="run">
            <output format="----- cobra command 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@803D = A560            </action>
            <action>maincpu.mq@D8E0 = 0000000000000000</action>
            <action>maincpu.mq@D8E8 = 0000000000000000</action>
            <action>maincpu.mq@D8F0 = 0000000000000000</action>
            <action>maincpu.mq@D8F8 = 0000000000000000</action>
            <action>maincpu.mq@D900 = 0000000000000000</action>
            <action>maincpu.mq@D908 = 0000000000000000</action>
            <action>maincpu.mq@D910 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
cobracoma.xml

Code: Select all

<!-- Cobra-Command (World/US revision 4) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8F74 = 4F</action> <!-- background -->
            <action>maincpu.mb@D788 = 39</action> <!-- enemy -->
            <action>maincpu.mb@D7D5 = 39</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@8F74 = 48</action>
            <action>maincpu.mb@D788 = 86</action>
            <action>maincpu.mb@D7D5 = 86</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <comment>you can't use charge shot</comment>
        <script state="on">
            <action>maincpu.mw@8525 = D8C0            </action>
            <action>maincpu.mq@D8C0 = 4F5FFD015B7E893C</action>
            <!--
            D8C0 | 4F       : CLRA
            D8C1 | 5F       : CLRB
            D8C2 | FD 01 5B : STD    $015B
            D8C5 | 7E 89 3C : JMP    $893C
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@8525 = 893C            </action>
            <action>maincpu.mq@D8D0 = 0000000000000000</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="on">
            <action>maincpu.md@B082 = CC000012        </action> <!-- up -->
            <action>maincpu.md@B095 = CC000012        </action> <!-- down -->
            <action>maincpu.md@B0AA = BDD8D012        </action> <!-- left -->
            <action>maincpu.md@B0C2 = BDD8D512        </action> <!-- right -->
            <action>maincpu.md@B11E = BDD8D012        </action> <!-- left (turn) -->
            <action>maincpu.md@B136 = BDD8D512        </action> <!-- right (turn) -->
            <action>maincpu.mq@D8D0 = CC00002003CC0000</action>
            <action>maincpu.mq@D8D8 = D31F390000000000</action>
            <!--
            D8D0 | CC xx xx : LDD    #$xxxx
            D8D3 | 20 03    : BRA    $D8E8
            D8D5 | CC xx xx : LDD    #$xxxx
            D8D8 | D3 1F    : ADDD   $1F
            D8DA | 39       : RTS
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B083 =  param</action>
            <action>maincpu.mw@B096 = -param</action>
            <action>maincpu.mw@D8D1 =  param</action>
            <action>maincpu.mw@D8D6 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@B082 = 31A6EC22        </action>
            <action>maincpu.md@B095 = 31A6EC22        </action>
            <action>maincpu.md@B0AA = ECA4D31F        </action>
            <action>maincpu.md@B0C2 = ECA4D31F        </action>
            <action>maincpu.md@B11E = ECA4D31F        </action>
            <action>maincpu.md@B136 = ECA4D31F        </action>
            <action>maincpu.mq@D8D0 = 0000000000000000</action>
            <action>maincpu.mq@D8D8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x12">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@E61E = -param</action>
            <action>maincpu.mb@E62F =  param</action>
            <action>maincpu.mb@E642 = -param</action>
            <action>maincpu.mb@E655 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E61E = FA</action>
            <action>maincpu.mb@E62F = 06</action>
            <action>maincpu.mb@E642 = FA</action>
            <action>maincpu.mb@E655 = 06</action>
        </script>
    </cheat>

    <cheat desc="available turn">
        <script state="on">
            <action>maincpu.mw@AE8A = 8681</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AE8A = 961C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@803D = D8E0            </action>
            <action>maincpu.mq@D8E0 = 9781B63800918127</action>
            <action>maincpu.mq@D8E8 = F7D68081FB26015A</action>
            <action>maincpu.mq@D8F0 = 81F726015C81FD26</action>
            <action>maincpu.mq@D8F8 = 02C01081FE2602CB</action>
            <action>maincpu.mq@D900 = 10D78081EF270681</action>
            <action>maincpu.mq@D908 = DF2605C601F73E00</action>
            <action>maincpu.mq@D910 = 20CE000000000000</action>
            <!--
            D8E0 | 97 81    : STA    $81
            D8E2 | B6 38 00 : LDA    $3800 // read input
            D8E5 | 91 81    : CMPA   $81
            D8E7 | 27 F7    : BEQ    $D8E0
            D8E9 | D6 80    : LDB    $80
            D8EB | 81 FB    : CMPA   #$FB
            D8ED | 26 01    : BNE    $D8F0
            D8EF | 5A       : DECB         // decrease code -01
            D8F0 | 81 F7    : CMPA   #$F7
            D8F2 | 26 01    : BNE    $D8F5
            D8F4 | 5C       : INCB         // increase code +01
            D8F5 | 81 FD    : CMPA   #$FD
            D8F7 | 26 02    : BNE    $D8FB
            D8F9 | C0 10    : SUBB   #$10  // decrease code -10
            D8FB | 81 FE    : CMPA   #$FE
            D8FD | 26 02    : BNE    $D901
            D8FF | CB 10    : ADDB   #$10  // increase code +10
            D901 | D7 80    : STB    $80
            D903 | 81 EF    : CMPA   #$EF
            D905 | 27 06    : BEQ    $D90D // play sound
            D907 | 81 DF    : CMPA   #$DF
            D909 | 26 05    : BNE    $D910
            D90B | C6 01    : LDB    #$01  // stop sound
            D90D | F7 3E 00 : STB    $3E00 // send sound code
            D910 | 20 CE    : BRA    $D8E0
            -->
        </script>
        <script state="run">
            <output format="----- cobra command 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@803D = A560            </action>
            <action>maincpu.mq@D8E0 = 0000000000000000</action>
            <action>maincpu.mq@D8E8 = 0000000000000000</action>
            <action>maincpu.mq@D8F0 = 0000000000000000</action>
            <action>maincpu.mq@D8F8 = 0000000000000000</action>
            <action>maincpu.mq@D900 = 0000000000000000</action>
            <action>maincpu.mq@D908 = 0000000000000000</action>
            <action>maincpu.mq@D910 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
cobracomb.xml

Code: Select all

<!-- Cobra-Command (World/US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8F84 = 4F</action> <!-- background -->
            <action>maincpu.mb@D7A8 = 39</action> <!-- enemy -->
            <action>maincpu.mb@D7F5 = 39</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@8F84 = 48</action>
            <action>maincpu.mb@D7A8 = 86</action>
            <action>maincpu.mb@D7F5 = 86</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <comment>you can't use charge shot</comment>
        <script state="on">
            <action>maincpu.mw@8555 = D8A0            </action>
            <action>maincpu.mq@D8A0 = 4F5FFD01597E894C</action>
            <!--
            D8A0 | 4F       : CLRA
            D8A1 | 5F       : CLRB
            D8A2 | FD 01 59 : STD    $0159
            D8A5 | 7E 89 4C : JMP    $894C
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@8555 = 894C            </action>
            <action>maincpu.mq@D8A0 = 0000000000000000</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="on">
            <action>maincpu.md@B0BC = CC000012        </action> <!-- up -->
            <action>maincpu.md@B0CF = CC000012        </action> <!-- down -->
            <action>maincpu.md@B0E4 = BDD8B012        </action> <!-- left -->
            <action>maincpu.md@B0FC = BDD8B512        </action> <!-- right -->
            <action>maincpu.md@B158 = BDD8B012        </action> <!-- left (turn) -->
            <action>maincpu.md@B170 = BDD8B512        </action> <!-- right (turn) -->
            <action>maincpu.mq@D8B0 = CC00002003CC0000</action>
            <action>maincpu.mq@D8B8 = D31F390000000000</action>
            <!--
            D8B0 | CC xx xx : LDD    #$xxxx
            D8B3 | 20 03    : BRA    $D8B8
            D8B5 | CC xx xx : LDD    #$xxxx
            D8B8 | D3 1F    : ADDD   $1F
            D8BA | 39       : RTS
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B0BD =  param</action>
            <action>maincpu.mw@B0D0 = -param</action>
            <action>maincpu.mw@D8B1 =  param</action>
            <action>maincpu.mw@D8B6 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@B0BC = 31A6EC22        </action>
            <action>maincpu.md@B0CF = 31A6EC22        </action>
            <action>maincpu.md@B0E4 = ECA4D31F        </action>
            <action>maincpu.md@B0FC = ECA4D31F        </action>
            <action>maincpu.md@B158 = ECA4D31F        </action>
            <action>maincpu.md@B170 = ECA4D31F        </action>
            <action>maincpu.mq@D8B0 = 0000000000000000</action>
            <action>maincpu.mq@D8B8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x12">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@E61E = -param</action>
            <action>maincpu.mb@E62F =  param</action>
            <action>maincpu.mb@E642 = -param</action>
            <action>maincpu.mb@E655 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E61E = FA</action>
            <action>maincpu.mb@E62F = 06</action>
            <action>maincpu.mb@E642 = FA</action>
            <action>maincpu.mb@E655 = 06</action>
        </script>
    </cheat>

    <cheat desc="available turn">
        <script state="on">
            <action>maincpu.mw@AEC4 = 8681</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AEC4 = 961C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@803D = D8F0            </action>
            <action>maincpu.mq@D8C0 = 9781B63800918127</action>
            <action>maincpu.mq@D8C8 = F7D68081FB26015A</action>
            <action>maincpu.mq@D8D0 = 81F726015C81FD26</action>
            <action>maincpu.mq@D8D8 = 02C01081FE2602CB</action>
            <action>maincpu.mq@D8E0 = 10D78081EF270681</action>
            <action>maincpu.mq@D8E8 = DF2605C601F73E00</action>
            <action>maincpu.mq@D8F0 = 20CE000000000000</action>
            <!--
            D8C0 | 97 81    : STA    $81
            D8C2 | B6 38 00 : LDA    $3800 // read input
            D8C5 | 91 81    : CMPA   $81
            D8C7 | 27 F7    : BEQ    $D8C0
            D8C9 | D6 80    : LDB    $80
            D8CB | 81 FB    : CMPA   #$FB
            D8CD | 26 01    : BNE    $D8D0
            D8CF | 5A       : DECB         // decrease code -01
            D8D0 | 81 F7    : CMPA   #$F7
            D8D2 | 26 01    : BNE    $D8D5
            D8D4 | 5C       : INCB         // increase code +01
            D8D5 | 81 FD    : CMPA   #$FD
            D8D7 | 26 02    : BNE    $D8DB
            D8D9 | C0 10    : SUBB   #$10  // decrease code -10
            D8DB | 81 FE    : CMPA   #$FE
            D8DD | 26 02    : BNE    $D8E1
            D8DF | CB 10    : ADDB   #$10  // increase code +10
            D8E1 | D7 80    : STB    $80
            D8E3 | 81 EF    : CMPA   #$EF
            D8E5 | 27 06    : BEQ    $D8ED // play sound
            D8E7 | 81 DF    : CMPA   #$DF
            D8E9 | 26 05    : BNE    $D8F0
            D8EB | C6 01    : LDB    #$01  // stop sound
            D8ED | F7 3E 00 : STB    $3E00 // send sound code
            D8F0 | 20 CE    : BRA    $D8C0
            -->
        </script>
        <script state="run">
            <output format="----- cobra command 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@803D = A59F            </action>
            <action>maincpu.mq@D8F0 = 0000000000000000</action>
            <action>maincpu.mq@D8F8 = 0000000000000000</action>
            <action>maincpu.mq@D900 = 0000000000000000</action>
            <action>maincpu.mq@D908 = 0000000000000000</action>
            <action>maincpu.mq@D910 = 0000000000000000</action>
            <action>maincpu.mq@D918 = 0000000000000000</action>
            <action>maincpu.mq@D920 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
cobracomj.xml

Code: Select all

<!-- Cobra-Command (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8FCB = 4F</action> <!-- background -->
            <action>maincpu.mb@D7CF = 39</action> <!-- enemy -->
            <action>maincpu.mb@D81C = 39</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@8FCB = 48</action>
            <action>maincpu.mb@D7CF = 86</action>
            <action>maincpu.mb@D81C = 86</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <comment>you can't use charge shot</comment>
        <script state="on">
            <action>maincpu.mw@8585 = D8D0            </action>
            <action>maincpu.mq@D8D0 = 4F5FFD015A7E8993</action>
            <!--
            D8D0 | 4F       : CLRA
            D8D1 | 5F       : CLRB
            D8D2 | FD 01 5A : STD    $015A
            D8D5 | 7E 89 93 : JMP    $8993
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@8585 = 8993            </action>
            <action>maincpu.mq@D8D0 = 0000000000000000</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="on">
            <action>maincpu.md@B0E3 = CC000012        </action> <!-- up -->
            <action>maincpu.md@B0F6 = CC000012        </action> <!-- down -->
            <action>maincpu.md@B10B = BDD8E012        </action> <!-- left -->
            <action>maincpu.md@B123 = BDD8E512        </action> <!-- right -->
            <action>maincpu.md@B17F = BDD8E012        </action> <!-- left (turn) -->
            <action>maincpu.md@B197 = BDD8E512        </action> <!-- right (turn) -->
            <action>maincpu.mq@D8E0 = CC00002003CC0000</action>
            <action>maincpu.mq@D8E8 = D31F390000000000</action>
            <!--
            D8E0 | CC xx xx : LDD    #$xxxx
            D8E3 | 20 03    : BRA    $D8E8
            D8E5 | CC xx xx : LDD    #$xxxx
            D8E8 | D3 1F    : ADDD   $1F
            D8EA | 39       : RTS
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B0E4 =  param</action>
            <action>maincpu.mw@B0F7 = -param</action>
            <action>maincpu.mw@D8E1 =  param</action>
            <action>maincpu.mw@D8E6 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@B0E3 = 31A6EC22        </action>
            <action>maincpu.md@B0F6 = 31A6EC22        </action>
            <action>maincpu.md@B10B = ECA4D31F        </action>
            <action>maincpu.md@B123 = ECA4D31F        </action>
            <action>maincpu.md@B17F = ECA4D31F        </action>
            <action>maincpu.md@B197 = ECA4D31F        </action>
            <action>maincpu.mq@D8E0 = 0000000000000000</action>
            <action>maincpu.mq@D8E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x12">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@E61E = -param</action>
            <action>maincpu.mb@E62F =  param</action>
            <action>maincpu.mb@E642 = -param</action>
            <action>maincpu.mb@E655 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E61E = FA</action>
            <action>maincpu.mb@E62F = 06</action>
            <action>maincpu.mb@E642 = FA</action>
            <action>maincpu.mb@E655 = 06</action>
        </script>
    </cheat>

    <cheat desc="available turn">
        <script state="on">
            <action>maincpu.mw@AEEB = 8681</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AEEB = 961C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@803D = D8F0            </action>
            <action>maincpu.mq@D8F0 = 9781B63800918127</action>
            <action>maincpu.mq@D8F8 = F7D68081FB26015A</action>
            <action>maincpu.mq@D900 = 81F726015C81FD26</action>
            <action>maincpu.mq@D908 = 02C01081FE2602CB</action>
            <action>maincpu.mq@D910 = 10D78081EF270681</action>
            <action>maincpu.mq@D918 = DF2605C601F73E00</action>
            <action>maincpu.mq@D920 = 20CE000000000000</action>
            <!--
            D8F0 | 97 81    : STA    $81
            D8F2 | B6 38 00 : LDA    $3800 // read input
            D8F5 | 91 81    : CMPA   $81
            D8F7 | 27 F7    : BEQ    $D8F0
            D8F9 | D6 80    : LDB    $80
            D8FB | 81 FB    : CMPA   #$FB
            D8FD | 26 01    : BNE    $D900
            D8FF | 5A       : DECB         // decrease code -01
            D900 | 81 F7    : CMPA   #$F7
            D902 | 26 01    : BNE    $D905
            D904 | 5C       : INCB         // increase code +01
            D905 | 81 FD    : CMPA   #$FD
            D907 | 26 02    : BNE    $D90B
            D909 | C0 10    : SUBB   #$10  // decrease code -10
            D90B | 81 FE    : CMPA   #$FE
            D90D | 26 02    : BNE    $D911
            D90F | CB 10    : ADDB   #$10  // increase code +10
            D911 | D7 80    : STB    $80
            D913 | 81 EF    : CMPA   #$EF
            D915 | 27 06    : BEQ    $D91D // play sound
            D917 | 81 DF    : CMPA   #$DF
            D919 | 26 05    : BNE    $D920
            D91B | C6 01    : LDB    #$01  // stop sound
            D91D | F7 3E 00 : STB    $3E00 // send sound code
            D920 | 20 CE    : BRA    $D8F0
            -->
        </script>
        <script state="run">
            <output format="----- cobra command 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@803D = A5C6            </action>
            <action>maincpu.mq@D8F0 = 0000000000000000</action>
            <action>maincpu.mq@D8F8 = 0000000000000000</action>
            <action>maincpu.mq@D900 = 0000000000000000</action>
            <action>maincpu.mq@D908 = 0000000000000000</action>
            <action>maincpu.mq@D910 = 0000000000000000</action>
            <action>maincpu.mq@D918 = 0000000000000000</action>
            <action>maincpu.mq@D920 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
cobracomjb.xml

Code: Select all

<!-- Cobra-Command (Japan, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8FCB = 4F</action> <!-- background -->
            <action>maincpu.mb@D7CF = 39</action> <!-- enemy -->
            <action>maincpu.mb@D81C = 39</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@8FCB = 48</action>
            <action>maincpu.mb@D7CF = 86</action>
            <action>maincpu.mb@D81C = 86</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <comment>you can't use charge shot</comment>
        <script state="on">
            <action>maincpu.mw@8585 = D8D0            </action>
            <action>maincpu.mq@D8D0 = 4F5FFD015A7E8993</action>
            <!--
            D8D0 | 4F       : CLRA
            D8D1 | 5F       : CLRB
            D8D2 | FD 01 5A : STD    $015A
            D8D5 | 7E 89 93 : JMP    $8993
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@8585 = 8993            </action>
            <action>maincpu.mq@D8D0 = 0000000000000000</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="on">
            <action>maincpu.md@B0E3 = CC000012        </action> <!-- up -->
            <action>maincpu.md@B0F6 = CC000012        </action> <!-- down -->
            <action>maincpu.md@B10B = BDD8E012        </action> <!-- left -->
            <action>maincpu.md@B123 = BDD8E512        </action> <!-- right -->
            <action>maincpu.md@B17F = BDD8E012        </action> <!-- left (turn) -->
            <action>maincpu.md@B197 = BDD8E512        </action> <!-- right (turn) -->
            <action>maincpu.mq@D8E0 = CC00002003CC0000</action>
            <action>maincpu.mq@D8E8 = D31F390000000000</action>
            <!--
            D8E0 | CC xx xx : LDD    #$xxxx
            D8E3 | 20 03    : BRA    $D8E8
            D8E5 | CC xx xx : LDD    #$xxxx
            D8E8 | D3 1F    : ADDD   $1F
            D8EA | 39       : RTS
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B0E4 =  param</action>
            <action>maincpu.mw@B0F7 = -param</action>
            <action>maincpu.mw@D8E1 =  param</action>
            <action>maincpu.mw@D8E6 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@B0E3 = 31A6EC22        </action>
            <action>maincpu.md@B0F6 = 31A6EC22        </action>
            <action>maincpu.md@B10B = ECA4D31F        </action>
            <action>maincpu.md@B123 = ECA4D31F        </action>
            <action>maincpu.md@B17F = ECA4D31F        </action>
            <action>maincpu.md@B197 = ECA4D31F        </action>
            <action>maincpu.mq@D8E0 = 0000000000000000</action>
            <action>maincpu.mq@D8E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x12">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@E61E = -param</action>
            <action>maincpu.mb@E62F =  param</action>
            <action>maincpu.mb@E642 = -param</action>
            <action>maincpu.mb@E655 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E61E = FA</action>
            <action>maincpu.mb@E62F = 06</action>
            <action>maincpu.mb@E642 = FA</action>
            <action>maincpu.mb@E655 = 06</action>
        </script>
    </cheat>

    <cheat desc="available turn">
        <script state="on">
            <action>maincpu.mw@AEEB = 8681</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AEEB = 961C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@803D = D8F0            </action>
            <action>maincpu.mq@D8F0 = 9781B63800918127</action>
            <action>maincpu.mq@D8F8 = F7D68081FB26015A</action>
            <action>maincpu.mq@D900 = 81F726015C81FD26</action>
            <action>maincpu.mq@D908 = 02C01081FE2602CB</action>
            <action>maincpu.mq@D910 = 10D78081EF270681</action>
            <action>maincpu.mq@D918 = DF2605C601F73E00</action>
            <action>maincpu.mq@D920 = 20CE000000000000</action>
            <!--
            D8F0 | 97 81    : STA    $81
            D8F2 | B6 38 00 : LDA    $3800 // read input
            D8F5 | 91 81    : CMPA   $81
            D8F7 | 27 F7    : BEQ    $D8F0
            D8F9 | D6 80    : LDB    $80
            D8FB | 81 FB    : CMPA   #$FB
            D8FD | 26 01    : BNE    $D900
            D8FF | 5A       : DECB         // decrease code -01
            D900 | 81 F7    : CMPA   #$F7
            D902 | 26 01    : BNE    $D905
            D904 | 5C       : INCB         // increase code +01
            D905 | 81 FD    : CMPA   #$FD
            D907 | 26 02    : BNE    $D90B
            D909 | C0 10    : SUBB   #$10  // decrease code -10
            D90B | 81 FE    : CMPA   #$FE
            D90D | 26 02    : BNE    $D911
            D90F | CB 10    : ADDB   #$10  // increase code +10
            D911 | D7 80    : STB    $80
            D913 | 81 EF    : CMPA   #$EF
            D915 | 27 06    : BEQ    $D91D // play sound
            D917 | 81 DF    : CMPA   #$DF
            D919 | 26 05    : BNE    $D920
            D91B | C6 01    : LDB    #$01  // stop sound
            D91D | F7 3E 00 : STB    $3E00 // send sound code
            D920 | 20 CE    : BRA    $D8F0
            -->
        </script>
        <script state="run">
            <output format="----- cobra command 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@803D = A5C6            </action>
            <action>maincpu.mq@D8F0 = 0000000000000000</action>
            <action>maincpu.mq@D8F8 = 0000000000000000</action>
            <action>maincpu.mq@D900 = 0000000000000000</action>
            <action>maincpu.mq@D908 = 0000000000000000</action>
            <action>maincpu.mq@D910 = 0000000000000000</action>
            <action>maincpu.mq@D918 = 0000000000000000</action>
            <action>maincpu.mq@D920 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
"player speed" : Fixed left/right move in turn mode.