[csilverj] Captain Silver

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

[csilverj] Captain Silver

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>sub.mb@436a = 20</action>
        <action>sub.mb@46bc = 20</action>
        <action>sub.mb@41d3 = 1a</action>
    </script>
    <script state="off">
        <action>sub.mb@436a = 24</action>
        <action>sub.mb@46bc = 24</action>
        <action>sub.mb@41d3 = 05</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.md@98e2 =         bdedd012</action> <!-- in jumping -->
        <action>maincpu.md@9db5 =         bdedd012</action> <!-- in standing -->
        <action>maincpu.mq@edd0 = dc13c51027028a10</action>
        <action>maincpu.mq@edd8 = 9713853039000000</action>
        <!--
        edd0 | dc 13 : LDD  $13
        edd2 | c5 10 : BITB #$10
        edd4 | 27 04 : BEQ  $EDDA
        edd6 | 8a 10 : ORA  #$10
        edd8 | 97 0f : STA  $13
        edda | 85 30 : BITA #$30
        eddc | 39    : RTS
        -->
    </script>
    <script state="off">
        <action>maincpu.md@98e2 =         96138530</action>
        <action>maincpu.md@9db5 =         dc138530</action>
        <action>maincpu.mq@edd0 = 0000000000000000</action>
        <action>maincpu.mq@edd8 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.md@9da7 =         bdede012</action>
        <action>maincpu.mq@ede0 = 9613852027034f97</action>
        <action>maincpu.mq@ede8 = 4296428102390000</action>
        <!--
        ede0 | 96 13 : LDA  $13
        ede2 | 85 20 : BITA #$20
        ede4 | 27 03 : BEQ  $EDE9
        ede6 | 4f    : CLRA
        ede7 | 97 42 : STA  $42
        ede9 | 96 42 : LDA  $42
        edeb | 81 02 : CMPA #$02
        eded | 39    : RTS
        -->
    </script>
    <script state="off">
        <action>maincpu.md@9da7 =         96428102</action>
        <action>maincpu.mq@ede0 = 0000000000000000</action>
        <action>maincpu.mq@ede8 = 0000000000000000</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>sub.mb@f994 = param</action>
    </script>
    <script state="off">
        <action>sub.mb@f994 = 39</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@8848 =         bdedf043</action>
        <action>maincpu.mq@edf0 = d711f61801d11127</action>
        <action>maincpu.mq@edf8 = f7c1fb26020a10c1</action>
        <action>maincpu.mq@ee00 = f726020c10c1ef26</action>
        <action>maincpu.mq@ee08 = 0496102006c1df26</action>
        <action>maincpu.mq@ee10 = 058627b7180c20d8</action>
        <!--
        edf0 | d7 11    : STB  $11
        edf2 | f6 18 01 : LDB  $1801 // read input
        edf5 | d1 11    : CMPB $11
        edf7 | 27 f7    : BEQ  $EDF0
        edf9 | c1 fb    : CMPB #$FB
        edfb | 26 02    : BNE  $EDFF
        edfd | 0a 10    : DEC  $10   // decrease code
        edff | c1 f7    : CMPB #$F7
        ee01 | 26 02    : BNE  $EE05
        ee03 | 0c 10    : INC  $10   // increase code
        ee05 | c1 ef    : CMPB #$EF
        ee07 | 26 04    : BNE  $EE0D
        ee09 | 96 10    : LDA  $10   // play sound
        ee0b | 20 06    : BRA  $EE13
        ee0d | c1 df    : CMPB #$DF
        ee0f | 26 05    : BNE  $EE16
        ee11 | 86 27    : LDA  #$27  // stop sound
        ee13 | b7 18 0c : STA  $180C // send sound code
        ee16 | 20 d8    : BRA  $EDF0
        -->
    </script>
    <script state="run">
        <output format="----- captain silver 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.md@8848 =         b6180543</action>
        <action>maincpu.mq@edf0 = 0000000000000000</action>
        <action>maincpu.mq@edf8 = 0000000000000000</action>
        <action>maincpu.mq@ee00 = 0000000000000000</action>
        <action>maincpu.mq@ee08 = 0000000000000000</action>
        <action>maincpu.mq@ee10 = 0000000000000000</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[csilverj] Captain Silver (update)

Post by jman »

Code: Select all

<cheat desc="sound test mode">
    <!-- you can't stop voice by stop button -->
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@8848 =         bdedf043</action>
        <action>maincpu.mq@edf0 = 9711b61801911127</action>
        <action>maincpu.mq@edf8 = f7d61081fb26015a</action>
        <action>maincpu.mq@ee00 = 81f726015c81fd26</action>
        <action>maincpu.mq@ee08 = 02c01081fe2602cb</action>
        <action>maincpu.mq@ee10 = 10d71081ef270681</action>
        <action>maincpu.mq@ee18 = df2605c627f7180c</action>
        <action>maincpu.mq@ee20 = 20ce000000000000</action>
        <!--
        edf0 | 97 11    : STA  $11
        edf2 | b6 18 01 : LDA  $1801 // read input
        edf5 | 91 11    : CMPA $11
        edf7 | 27 f7    : BEQ  $EDF0
        edf9 | d6 10    : LDB  $10
        edfb | 81 fb    : CMPA #$FB
        edfd | 26 01    : BNE  $EE00
        edff | 5a       : DECB       // decrease code -01
        ee00 | 81 f7    : CMPA #$F7
        ee02 | 26 01    : BNE  $EE05
        ee04 | 5c       : INCB       // increase code +10
        ee05 | 81 fd    : CMPA #$FD
        ee07 | 26 02    : BNE  $EE0B
        ee09 | c0 10    : SUBB #$10  // decrease code -10
        ee0b | 81 fe    : CMPA #$FE
        ee0d | 26 02    : BNE  $EE11
        ee0f | cb 10    : ADDB #$10  // increase code +10
        ee11 | d7 10    : STB  $10
        ee13 | 81 ef    : CMPA #$EF
        ee15 | 27 06    : BEQ  $EE1D
        ee17 | 81 df    : CMPA #$DF
        ee19 | 26 05    : BNE  $EE20
        ee1b | c6 27    : LDB  #$27  // stop sound
        ee1d | f7 18 0c : STB  $180C // send sound code
        ee20 | 20 ce    : BRA  $EDF0
        -->
    </script>
    <script state="run">
        <output format="----- captain silver 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.md@8848 =         b6180543</action>
        <action>maincpu.mq@edf0 = 0000000000000000</action>
        <action>maincpu.mq@edf8 = 0000000000000000</action>
        <action>maincpu.mq@ee00 = 0000000000000000</action>
        <action>maincpu.mq@ee08 = 0000000000000000</action>
        <action>maincpu.mq@ee10 = 0000000000000000</action>
        <action>maincpu.mq@ee18 = 0000000000000000</action>
        <action>maincpu.mq@ee20 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[csilver]+ Captain Silver

Post by jman »

csilver.xml

Code: Select all

<!-- Captain Silver (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>sub.mb@41D3 = 1A</action>
            <action>sub.mb@436A = 20</action>
            <action>sub.mb@46BC = 20</action>
        </script>
        <script state="off">
            <action>sub.mb@41D3 = 05</action>
            <action>sub.mb@436A = 24</action>
            <action>sub.mb@46BC = 24</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@9900 = BDFE7012        </action> <!-- jump -->
            <action>maincpu.md@9DD3 = BDFE7012        </action> <!-- stand -->
            <action>maincpu.mq@FE70 = DC13C51027028A10</action>
            <action>maincpu.mq@FE78 = 9713853039000000</action>
            <!--
            FE70 | DC 13 : LDD    $13
            FE72 | C5 10 : BITB   #$10
            FE74 | 27 02 : BEQ    $FE78
            FE76 | 8A 10 : ORA    #$10
            FE78 | 97 13 : STA    $13
            FE7A | 85 30 : BITA   #$30
            FE7C | 39    : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.md@9900 = 96138530        </action>
            <action>maincpu.md@9DD3 = DC138530        </action>
            <action>maincpu.mq@FE70 = 0000000000000000</action>
            <action>maincpu.mq@FE78 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@9DC5 = BDFE8012        </action>
            <action>maincpu.mq@FE80 = 9613852027034F97</action>
            <action>maincpu.mq@FE88 = 4296428102390000</action>
            <!--
            FE80 | 96 13 : LDA    $13
            FE82 | 85 20 : BITA   #$20
            FE84 | 27 03 : BEQ    $FE89
            FE86 | 4F    : CLRA
            FE87 | 97 42 : STA    $42
            FE89 | 96 42 : LDA    $42
            FE8B | 81 02 : CMPA   #$02
            FE8D | 39    : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.md@9DC5 = 96428102        </action>
            <action>maincpu.mq@FE80 = 0000000000000000</action>
            <action>maincpu.mq@FE88 = 0000000000000000</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>sub.mb@F994 = param</action>
        </script>
        <script state="off">
            <action>sub.mb@F994 = 39</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop voice by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@8848 = BDFEA043        </action>
            <action>maincpu.mq@FEA0 = 9701B61801910127</action>
            <action>maincpu.mq@FEA8 = F7D60081FB26015A</action>
            <action>maincpu.mq@FEB0 = 81F726015C81FD26</action>
            <action>maincpu.mq@FEB8 = 02C01081FE2602CB</action>
            <action>maincpu.mq@FEC0 = 10D70081EF270681</action>
            <action>maincpu.mq@FEC8 = DF2605C627F7180C</action>
            <action>maincpu.mq@FED0 = 20CE000000000000</action>
            <!--
            FEA0 | 97 01    : STA    $01
            FEA2 | B6 18 01 : LDA    $1801 // read input
            FEA5 | 91 01    : CMPA   $01
            FEA7 | 27 F7    : BEQ    $FEA0
            FEA9 | D6 00    : LDB    $00
            FEAB | 81 FB    : CMPA   #$FB
            FEAD | 26 01    : BNE    $FEB0
            FEAF | 5A       : DECB         // decrease code -01
            FEB0 | 81 F7    : CMPA   #$F7
            FEB2 | 26 01    : BNE    $FEB5
            FEB4 | 5C       : INCB         // increase code +01
            FEB5 | 81 FD    : CMPA   #$FD
            FEB7 | 26 02    : BNE    $FEBB
            FEB9 | C0 10    : SUBB   #$10  // decrease code -10
            FEBB | 81 FE    : CMPA   #$FE
            FEBD | 26 02    : BNE    $FEC1
            FEBF | CB 10    : ADDB   #$10  // increase code +10
            FEC1 | D7 00    : STB    $00
            FEC3 | 81 EF    : CMPA   #$EF
            FEC5 | 27 06    : BEQ    $FECD // play sound
            FEC7 | 81 DF    : CMPA   #$DF
            FEC9 | 26 05    : BNE    $FED0
            FECB | C6 27    : LDB    #$27  // stop sound
            FECD | F7 18 0C : STB    $180C // send sound code
            FED0 | 20 CE    : BRA    $FEA0
            -->
        </script>
        <script state="run">
            <output format="----- captain silver 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@0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@8848 = B6180543        </action>
            <action>maincpu.mq@FEA0 = 0000000000000000</action>
            <action>maincpu.mq@FEA8 = 0000000000000000</action>
            <action>maincpu.mq@FEB0 = 0000000000000000</action>
            <action>maincpu.mq@FEB8 = 0000000000000000</action>
            <action>maincpu.mq@FEC0 = 0000000000000000</action>
            <action>maincpu.mq@FEC8 = 0000000000000000</action>
            <action>maincpu.mq@FED0 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
csilverj.xml

Code: Select all

<!-- Captain Silver (Japan, revision 3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>sub.mb@41D3 = 1A</action>
            <action>sub.mb@436A = 20</action>
            <action>sub.mb@46BC = 20</action>
        </script>
        <script state="off">
            <action>sub.mb@41D3 = 05</action>
            <action>sub.mb@436A = 24</action>
            <action>sub.mb@46BC = 24</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@98E2 = BDEDD012        </action> <!-- jump -->
            <action>maincpu.md@9DB5 = BDEDD012        </action> <!-- stand -->
            <action>maincpu.mq@EDD0 = DC13C51027028A10</action>
            <action>maincpu.mq@EDD8 = 9713853039000000</action>
            <!--
            EDD0 | DC 13 : LDD    $13
            EDD2 | C5 10 : BITB   #$10
            EDD4 | 27 02 : BEQ    $EDD8
            EDD6 | 8A 10 : ORA    #$10
            EDD8 | 97 13 : STA    $13
            EDDA | 85 30 : BITA   #$30
            EDDC | 39    : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.md@98E2 = 96138530        </action>
            <action>maincpu.md@9DB5 = DC138530        </action>
            <action>maincpu.mq@EDD0 = 0000000000000000</action>
            <action>maincpu.mq@EDD8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@9DA7 = BDEDE012        </action>
            <action>maincpu.mq@EDE0 = 9613852027034F97</action>
            <action>maincpu.mq@EDE8 = 4296428102390000</action>
            <!--
            EDE0 | 96 13 : LDA    $13
            EDE2 | 85 20 : BITA   #$20
            EDE4 | 27 03 : BEQ    $EDE9
            EDE6 | 4F    : CLRA
            EDE7 | 97 42 : STA    $42
            EDE9 | 96 42 : LDA    $42
            EDEB | 81 02 : CMPA   #$02
            EDED | 39    : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.md@9DA7 = 96428102        </action>
            <action>maincpu.mq@EDE0 = 0000000000000000</action>
            <action>maincpu.mq@EDE8 = 0000000000000000</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>sub.mb@F994 = param</action>
        </script>
        <script state="off">
            <action>sub.mb@F994 = 39</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop voice by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@8848 = BDEDF043        </action>
            <action>maincpu.mq@EDF0 = 9701B61801910127</action>
            <action>maincpu.mq@EDF8 = F7D60081FB26015A</action>
            <action>maincpu.mq@EE00 = 81F726015C81FD26</action>
            <action>maincpu.mq@EE08 = 02C01081FE2602CB</action>
            <action>maincpu.mq@EE10 = 10D70081EF270681</action>
            <action>maincpu.mq@EE18 = DF2605C627F7180C</action>
            <action>maincpu.mq@EE20 = 20CE000000000000</action>
            <!--
            EDF0 | 97 01    : STA    $01
            EDF2 | B6 18 01 : LDA    $1801 // read input
            EDF5 | 91 01    : CMPA   $01
            EDF7 | 27 F7    : BEQ    $EDF0
            EDF9 | D6 00    : LDB    $00
            EDFB | 81 FB    : CMPA   #$FB
            EDFD | 26 01    : BNE    $EE00
            EDFF | 5A       : DECB         // decrease code -01
            EE00 | 81 F7    : CMPA   #$F7
            EE02 | 26 01    : BNE    $EE05
            EE04 | 5C       : INCB         // increase code +01
            EE05 | 81 FD    : CMPA   #$FD
            EE07 | 26 02    : BNE    $EE0B
            EE09 | C0 10    : SUBB   #$10  // decrease code -10
            EE0B | 81 FE    : CMPA   #$FE
            EE0D | 26 02    : BNE    $EE11
            EE0F | CB 10    : ADDB   #$10  // increase code +10
            EE11 | D7 00    : STB    $00
            EE13 | 81 EF    : CMPA   #$EF
            EE15 | 27 06    : BEQ    $EE1D // play sound
            EE17 | 81 DF    : CMPA   #$DF
            EE19 | 26 05    : BNE    $EE20
            EE1B | C6 27    : LDB    #$27  // stop sound
            EE1D | F7 18 0C : STB    $180C // send sound code
            EE20 | 20 CE    : BRA    $EDF0
            -->
        </script>
        <script state="run">
            <output format="----- captain silver 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@0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@8848 = B6180543        </action>
            <action>maincpu.mq@EDF0 = 0000000000000000</action>
            <action>maincpu.mq@EDF8 = 0000000000000000</action>
            <action>maincpu.mq@EE00 = 0000000000000000</action>
            <action>maincpu.mq@EE08 = 0000000000000000</action>
            <action>maincpu.mq@EE10 = 0000000000000000</action>
            <action>maincpu.mq@EE18 = 0000000000000000</action>
            <action>maincpu.mq@EE20 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
csilverja.xml

Code: Select all

<!-- Captain Silver (Japan, revision 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>sub.mb@41D3 = 1A</action>
            <action>sub.mb@436A = 20</action>
            <action>sub.mb@46BC = 20</action>
        </script>
        <script state="off">
            <action>sub.mb@41D3 = 05</action>
            <action>sub.mb@436A = 24</action>
            <action>sub.mb@46BC = 24</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@98E2 = BDF02012        </action> <!-- jump -->
            <action>maincpu.md@9DB5 = BDF02012        </action> <!-- stand -->
            <action>maincpu.mq@F020 = DC13C51027028A10</action>
            <action>maincpu.mq@F028 = 9713853039000000</action>
            <!--
            F020 | DC 13 : LDD    $13
            F022 | C5 10 : BITB   #$10
            F024 | 27 02 : BEQ    $F028
            F026 | 8A 10 : ORA    #$10
            F028 | 97 13 : STA    $13
            F02A | 85 30 : BITA   #$30
            F02C | 39    : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.md@98E2 = 96138530        </action>
            <action>maincpu.md@9DB5 = DC138530        </action>
            <action>maincpu.mq@F020 = 0000000000000000</action>
            <action>maincpu.mq@F028 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@9DA7 = BDF03012        </action>
            <action>maincpu.mq@F030 = 9613852027034F97</action>
            <action>maincpu.mq@F038 = 4296428102390000</action>
            <!--
            F030 | 96 13 : LDA    $13
            F032 | 85 20 : BITA   #$20
            F034 | 27 03 : BEQ    $F039
            F036 | 4F    : CLRA
            F037 | 97 42 : STA    $42
            F039 | 96 42 : LDA    $42
            F03B | 81 02 : CMPA   #$02
            F03D | 39    : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.md@9DA7 = 96428102        </action>
            <action>maincpu.mq@F030 = 0000000000000000</action>
            <action>maincpu.mq@F038 = 0000000000000000</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>sub.mb@F994 = param</action>
        </script>
        <script state="off">
            <action>sub.mb@F994 = 39</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop voice by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@8848 = BDF04043        </action>
            <action>maincpu.mq@F040 = 9701B61801910127</action>
            <action>maincpu.mq@F048 = F7D60081FB26015A</action>
            <action>maincpu.mq@F050 = 81F726015C81FD26</action>
            <action>maincpu.mq@F058 = 02C01081FE2602CB</action>
            <action>maincpu.mq@F060 = 10D70081EF270681</action>
            <action>maincpu.mq@F068 = DF2605C627F7180C</action>
            <action>maincpu.mq@F070 = 20CE000000000000</action>
            <!--
            F040 | 97 01    : STA    $01
            F042 | B6 18 01 : LDA    $1801 // read input
            F045 | 91 01    : CMPA   $01
            F047 | 27 F7    : BEQ    $F040
            F049 | D6 00    : LDB    $00
            F04B | 81 FB    : CMPA   #$FB
            F04D | 26 01    : BNE    $F050
            F04F | 5A       : DECB         // decrease code -01
            F050 | 81 F7    : CMPA   #$F7
            F052 | 26 01    : BNE    $F055
            F054 | 5C       : INCB         // increase code +01
            F055 | 81 FD    : CMPA   #$FD
            F057 | 26 02    : BNE    $F05B
            F059 | C0 10    : SUBB   #$10  // decrease code -10
            F05B | 81 FE    : CMPA   #$FE
            F05D | 26 02    : BNE    $F061
            F05F | CB 10    : ADDB   #$10  // increase code +10
            F061 | D7 00    : STB    $00
            F063 | 81 EF    : CMPA   #$EF
            F065 | 27 06    : BEQ    $F06D // play sound
            F067 | 81 DF    : CMPA   #$DF
            F069 | 26 05    : BNE    $F070
            F06B | C6 27    : LDB    #$27  // stop sound
            F06D | F7 18 0C : STB    $180C // send sound code
            F070 | 20 CE    : BRA    $F040
            -->
        </script>
        <script state="run">
            <output format="----- captain silver 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@0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@8848 = B6180543        </action>
            <action>maincpu.mq@F040 = 0000000000000000</action>
            <action>maincpu.mq@F048 = 0000000000000000</action>
            <action>maincpu.mq@F050 = 0000000000000000</action>
            <action>maincpu.mq@F058 = 0000000000000000</action>
            <action>maincpu.mq@F060 = 0000000000000000</action>
            <action>maincpu.mq@F068 = 0000000000000000</action>
            <action>maincpu.mq@F070 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Post Reply