Page 1 of 1

[bwings] B-Wings

Posted: Sat Apr 16, 2022 12:54 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>    sub.mb@ba01 =   20</action> <!-- enemy -->
        <action>    sub.mb@ba96 =   20</action> <!-- bullet -->
        <action>maincpu.mb@d754 =   00</action> <!-- ground -->
        <action>maincpu.mb@d764 =   00</action> <!-- ground -->
        <action>maincpu.mb@d7bd =   00</action> <!-- pipe -->
        <action>maincpu.mw@d7ef = 1216</action> <!-- pipe -->
    </script>
    <script state="off">
        <action>    sub.mb@ba01 =   24</action>
        <action>    sub.mb@ba96 =   24</action>
        <action>maincpu.mb@d754 =   9e</action>
        <action>maincpu.mb@d764 =   8e</action>
        <action>maincpu.mb@d7bd =   35</action>
        <action>maincpu.mw@d7ef = 1026</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@d214 = 23</action>
        <action>maincpu.mb@d291 = 23</action>
        <action>maincpu.mb@d2d7 = 23</action>
        <action>maincpu.mb@d323 = 23</action>
        <action>maincpu.mb@d382 = 23</action>
        <action>maincpu.mb@d3f8 = 23</action>
        <action>maincpu.mb@d41e = 23</action>
    </script>
    <script state="off">
        <action>maincpu.mb@d214 = 22</action>
        <action>maincpu.mb@d291 = 22</action>
        <action>maincpu.mb@d2d7 = 22</action>
        <action>maincpu.mb@d323 = 22</action>
        <action>maincpu.mb@d382 = 22</action>
        <action>maincpu.mb@d3f8 = 22</action>
        <action>maincpu.mb@d41e = 22</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0180">02       </item>
        <item value="0x0280">03       </item>
        <item value="0x0380">04       </item>
        <item value="0x0480">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mw@d0e5 =  param</action> <!-- right -->
        <action>maincpu.mw@d105 = -param</action> <!-- left -->
        <action>maincpu.mw@d12d =  param</action> <!-- down -->
        <action>maincpu.mw@d13d = -param</action> <!-- up -->
    </script>
    <script state="off">
        <action>maincpu.mw@d0e5 = 00e0</action>
        <action>maincpu.mw@d105 = ff20</action>
        <action>maincpu.mw@d12d = 0150</action>
        <action>maincpu.mw@d13d = fef0</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x0280">01 (slow)</item>
        <item value="0x0800">02       </item>
        <item value="0x1000">03       </item>
        <item value="0x1800">04       </item>
        <item value="0x2000">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mw@d263 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@d263 = 0800</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@c1e5 =             4000</action>
        <action>maincpu.mq@4000 = 4fb71c059721b61b</action>
        <action>maincpu.mq@4008 = 02912127f781fd26</action>
        <action>maincpu.mq@4010 = 020a2081fe26020c</action>
        <action>maincpu.mq@4018 = 2081ef2604d62020</action>
        <action>maincpu.mq@4020 = 0581df26045ff71c</action>
        <action>maincpu.mq@4028 = 0520d90000000000</action>
        <!--
        4000 | 4f       : CLRA       // initialize sound cpu
        4001 | b7 1c 05 : STA  $1C05
        4004 | 97 21    : STA  $21
        4006 | b6 1b 02 : LDA  $1B02 // read input
        4009 | 91 21    : CMPA $21
        400b | 27 f7    : BEQ  $4004
        400d | 81 fd    : CMPA #$FD
        400f | 26 02    : BNE  $4013
        4011 | 0a 20    : DEC  $20   // decrease code
        4013 | 81 fe    : CMPA #$FE
        4015 | 26 02    : BNE  $4019
        4017 | 0c 20    : INC  $20   // increase code
        4019 | 81 ef    : CMPA #$EF
        401b | 26 04    : BNE  $4021
        401d | d6 20    : LDB  $20   // play sound
        401f | 20 05    : BRA  $4026
        4021 | 81 df    : CMPA #$DF
        4023 | 26 04    : BNE  $4029
        4025 | 5f       : CLRB       // stop sound
        4026 | f7 1c 05 : STB  $1C05 // send sound code
        4029 | 20 d9    : BRA  $4004
        -->
    </script>
    <script state="run">
        <output format="----- b-wings 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@0020</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@c1e5 =             f9eb</action>
        <action>maincpu.mq@4000 = 0000000000000000</action>
        <action>maincpu.mq@4008 = 0000000000000000</action>
        <action>maincpu.mq@4010 = 0000000000000000</action>
        <action>maincpu.mq@4018 = 0000000000000000</action>
        <action>maincpu.mq@4020 = 0000000000000000</action>
        <action>maincpu.mq@4028 = 0000000000000000</action>
    </script>
</cheat>
BTW, "select starting stage" code in official database based on 0.221 doesn't work.

Code: Select all

<cheat desc="Select Starting Stage"> <comment>Set on displayed 'Push 1 (or 2) Player(s) Button' message screen. DON'T SET ON THE TITLE SCREEN !</comment>
  <parameter min="1" max="45" step="1"/>
  <script state="on">
    <action>maincpu.pb@07B4=FF</action>
  </script>
  <script state="change">
    <action>maincpu.pb@07B4=(param-1)</action>
  </script>
</cheat>
I doubt 0xff in "on" state because this value is replaced by "(param-1)" soon. And moreover, "change" value is cleared by program code at game start. So I try to fix.

Code: Select all

<cheat desc="starting stage">
    <parameter min="01" max="45" step="01"/>
    <script state="run">
        <action condition="maincpu.pb@07b4 == 00">maincpu.pb@07b4 = (param - 1)</action>
    </script>
</cheat>
I think it is better to use "run" instead of "on" and "change" to prevent from clearing $07b4 by program code.

[bwings]+ B-Wings

Posted: Sat Nov 18, 2023 1:44 pm
by jman
bwings.xml

Code: Select all

<!-- B-Wings (Japan new Ver.) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@D753 = 0000</action> <!-- ground -->
            <action>maincpu.mw@D763 = 0000</action> <!-- ground -->
            <action>maincpu.mw@D7BC = 0000</action> <!-- pipe -->
            <action>maincpu.mw@D7EF = 1216</action> <!-- pipe -->
            <action>    sub.mw@BA01 = 20CA</action> <!-- enemy -->
            <action>    sub.mw@BA96 = 203C</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mw@D753 = 009E</action>
            <action>maincpu.mw@D763 = 008E</action>
            <action>maincpu.mw@D7BC = 0035</action>
            <action>maincpu.mw@D7EF = 1026</action>
            <action>    sub.mw@BA01 = 24CA</action>
            <action>    sub.mw@BA96 = 243C</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D214 = 23</action> <!-- main shot -->
            <action>maincpu.mb@D291 = 23</action> <!-- s,g,c,j,a wing : left -->
            <action>maincpu.mb@D2D7 = 23</action> <!-- s,g,c,j,a wing : right -->
            <action>maincpu.mb@D323 = 23</action> <!-- w,v wing : left -->
            <action>maincpu.mb@D382 = 23</action> <!-- w,v wing : right -->
            <action>maincpu.mb@D3F8 = 23</action> <!-- m wing : left -->
            <action>maincpu.mb@D41E = 23</action> <!-- m wing : right -->
        </script>
        <script state="off">
            <action>maincpu.mb@D214 = 22</action>
            <action>maincpu.mb@D291 = 22</action>
            <action>maincpu.mb@D2D7 = 22</action>
            <action>maincpu.mb@D323 = 22</action>
            <action>maincpu.mb@D382 = 22</action>
            <action>maincpu.mb@D3F8 = 22</action>
            <action>maincpu.mb@D41E = 22</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@D0E5 =  param</action> <!-- right -->
            <action>maincpu.mw@D105 = -param</action> <!-- left -->
            <action>maincpu.mw@D12D =  param</action> <!-- down -->
            <action>maincpu.mw@D13D = -param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mw@D0E5 = 00E0</action>
            <action>maincpu.mw@D105 = FF20</action>
            <action>maincpu.mw@D12D = 0150</action>
            <action>maincpu.mw@D13D = FEF0</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0280">01 (slow)</item>
            <item value="0x0800">02       </item>
            <item value="0x1000">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x2000">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@D263 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D263 = 0800</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <script state="on">
            <action>maincpu.mb@D636 = 20</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D636 = 26</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.mb@D088 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D088 = 06</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@C1E5 = 4000            </action>
            <action>maincpu.mq@4000 = 202B9721B61B0291</action>
            <action>maincpu.mq@4008 = 2127F7D62081FD26</action>
            <action>maincpu.mq@4010 = 015A81FE26015C81</action>
            <action>maincpu.mq@4018 = F72602C01081FB26</action>
            <action>maincpu.mq@4020 = 02CB10D72081EF27</action>
            <action>maincpu.mq@4028 = 0581DF26045FF71C</action>
            <action>maincpu.mq@4030 = 0520CF0000000000</action>
            <!--
            4000 | 20 2B    : BRA    $402D // initialize sound
            4002 | 97 21    : STA    $21
            4004 | B6 1B 02 : LDA    $1B02 // read input
            4007 | 91 21    : CMPA   $21
            4009 | 27 F7    : BEQ    $4002
            400B | D6 20    : LDB    $20
            400D | 81 FD    : CMPA   #$FD
            400F | 26 01    : BNE    $4012
            4011 | 5A       : DECB         // decrease code -01
            4012 | 81 FE    : CMPA   #$FE
            4014 | 26 01    : BNE    $4017
            4016 | 5C       : INCB         // increase code +01
            4017 | 81 F7    : CMPA   #$F7
            4019 | 26 02    : BNE    $401D
            401B | C0 10    : SUBB   #$10  // decrease code -10
            401D | 81 FB    : CMPA   #$FB
            401F | 26 02    : BNE    $4023
            4021 | CB 10    : ADDB   #$10  // increase code +10
            4023 | D7 20    : STB    $20
            4025 | 81 EF    : CMPA   #$EF
            4027 | 27 05    : BEQ    $402E // play sound
            4029 | 81 DF    : CMPA   #$DF
            402B | 26 04    : BNE    $4031
            402D | 5F       : CLRB         // stop sound
            402E | F7 1C 05 : STB    $1C05
            4031 | 20 CF    : BRA    $4002
            -->
        </script>
        <script state="run">
            <output format="----- b-wings 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@0020</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@C1E5 = F9EB            </action>
            <action>maincpu.mq@4000 = 0000000000000000</action>
            <action>maincpu.mq@4008 = 0000000000000000</action>
            <action>maincpu.mq@4010 = 0000000000000000</action>
            <action>maincpu.mq@4018 = 0000000000000000</action>
            <action>maincpu.mq@4020 = 0000000000000000</action>
            <action>maincpu.mq@4028 = 0000000000000000</action>
            <action>maincpu.mq@4030 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
bwingso.xml

Code: Select all

<!-- B-Wings (Japan old Ver.) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@D7AD = 0000</action> <!-- ground -->
            <action>maincpu.mw@D7BD = 0000</action> <!-- ground -->
            <action>maincpu.mw@D816 = 0000</action> <!-- pipe -->
            <action>maincpu.mw@D849 = 1216</action> <!-- pipe -->
            <action>    sub.mw@B976 = 20CA</action> <!-- enemy -->
            <action>    sub.mw@BA0B = 203C</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mw@D753 = 009E</action>
            <action>maincpu.mw@D763 = 008E</action>
            <action>maincpu.mw@D7BC = 0035</action>
            <action>maincpu.mw@D7EF = 1026</action>
            <action>    sub.mw@BA01 = 24CA</action>
            <action>    sub.mw@BA96 = 243C</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D26E = 23</action> <!-- main shot -->
            <action>maincpu.mb@D2EB = 23</action> <!-- s,g,c,j,a wing : left -->
            <action>maincpu.mb@D331 = 23</action> <!-- s,g,c,j,a wing : right -->
            <action>maincpu.mb@D37D = 23</action> <!-- w,v wing : left -->
            <action>maincpu.mb@D3DC = 23</action> <!-- w,v wing : right -->
            <action>maincpu.mb@D452 = 23</action> <!-- m wing : left -->
            <action>maincpu.mb@D478 = 23</action> <!-- m wing : right -->
        </script>
        <script state="off">
            <action>maincpu.mb@D214 = 22</action>
            <action>maincpu.mb@D291 = 22</action>
            <action>maincpu.mb@D2D7 = 22</action>
            <action>maincpu.mb@D323 = 22</action>
            <action>maincpu.mb@D382 = 22</action>
            <action>maincpu.mb@D3F8 = 22</action>
            <action>maincpu.mb@D41E = 22</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@D13F =  param</action> <!-- right -->
            <action>maincpu.mw@D15F = -param</action> <!-- left -->
            <action>maincpu.mw@D187 =  param</action> <!-- down -->
            <action>maincpu.mw@D197 = -param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mw@D13F = 00E0</action>
            <action>maincpu.mw@D15F = FF20</action>
            <action>maincpu.mw@D187 = 0130</action>
            <action>maincpu.mw@D197 = FF10</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0280">01 (slow)</item>
            <item value="0x0800">02       </item>
            <item value="0x1000">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x2000">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@D2BD = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D2BD = 0800</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <script state="on">
            <action>maincpu.mb@D690 = 20</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D690 = 26</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.mb@D0E2 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D0E2 = 06</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@C249 = 4000            </action>
            <action>maincpu.mq@4000 = 202B9721B61B0291</action>
            <action>maincpu.mq@4008 = 2127F7D62081FD26</action>
            <action>maincpu.mq@4010 = 015A81FE26015C81</action>
            <action>maincpu.mq@4018 = F72602C01081FB26</action>
            <action>maincpu.mq@4020 = 02CB10D72081EF27</action>
            <action>maincpu.mq@4028 = 0581DF26045FF71C</action>
            <action>maincpu.mq@4030 = 0520CF0000000000</action>
            <!--
            4000 | 20 2B    : BRA    $402D // initialize sound
            4002 | 97 21    : STA    $21
            4004 | B6 1B 02 : LDA    $1B02 // read input
            4007 | 91 21    : CMPA   $21
            4009 | 27 F7    : BEQ    $4002
            400B | D6 20    : LDB    $20
            400D | 81 FD    : CMPA   #$FD
            400F | 26 01    : BNE    $4012
            4011 | 5A       : DECB         // decrease code -01
            4012 | 81 FE    : CMPA   #$FE
            4014 | 26 01    : BNE    $4017
            4016 | 5C       : INCB         // increase code +01
            4017 | 81 F7    : CMPA   #$F7
            4019 | 26 02    : BNE    $401D
            401B | C0 10    : SUBB   #$10  // decrease code -10
            401D | 81 FB    : CMPA   #$FB
            401F | 26 02    : BNE    $4023
            4021 | CB 10    : ADDB   #$10  // increase code +10
            4023 | D7 20    : STB    $20
            4025 | 81 EF    : CMPA   #$EF
            4027 | 27 05    : BEQ    $402E // play sound
            4029 | 81 DF    : CMPA   #$DF
            402B | 26 04    : BNE    $4031
            402D | 5F       : CLRB         // stop sound
            402E | F7 1C 05 : STB    $1C05
            4031 | 20 CF    : BRA    $4002
            -->
        </script>
        <script state="run">
            <output format="----- b-wings 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@0020</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@C249 = FA45            </action>
            <action>maincpu.mq@4000 = 0000000000000000</action>
            <action>maincpu.mq@4008 = 0000000000000000</action>
            <action>maincpu.mq@4010 = 0000000000000000</action>
            <action>maincpu.mq@4018 = 0000000000000000</action>
            <action>maincpu.mq@4020 = 0000000000000000</action>
            <action>maincpu.mq@4028 = 0000000000000000</action>
            <action>maincpu.mq@4030 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
bwingsa.xml

Code: Select all

<!-- B-Wings (Alt Ver.?) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@D7AE = 0000</action> <!-- ground -->
            <action>maincpu.mw@D7BE = 0000</action> <!-- ground -->
            <action>maincpu.mw@D817 = 0000</action> <!-- pipe -->
            <action>maincpu.mw@D84A = 1216</action> <!-- pipe -->
            <action>    sub.mw@B976 = 20CA</action> <!-- enemy -->
            <action>    sub.mw@BA0B = 203C</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mw@D7AE = 009E</action>
            <action>maincpu.mw@D7BE = 008E</action>
            <action>maincpu.mw@D817 = 0035</action>
            <action>maincpu.mw@D84A = 1026</action>
            <action>    sub.mw@B976 = 24CA</action>
            <action>    sub.mw@BA0B = 243C</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D26F = 23</action> <!-- main shot -->
            <action>maincpu.mb@D2EC = 23</action> <!-- s,g,c,j,a wing : left -->
            <action>maincpu.mb@D332 = 23</action> <!-- s,g,c,j,a wing : right -->
            <action>maincpu.mb@D37E = 23</action> <!-- w,v wing : left -->
            <action>maincpu.mb@D3DD = 23</action> <!-- w,v wing : right -->
            <action>maincpu.mb@D453 = 23</action> <!-- m wing : left -->
            <action>maincpu.mb@D479 = 23</action> <!-- m wing : right -->
        </script>
        <script state="off">
            <action>maincpu.mb@D26F = 22</action>
            <action>maincpu.mb@D2EC = 22</action>
            <action>maincpu.mb@D332 = 22</action>
            <action>maincpu.mb@D37E = 22</action>
            <action>maincpu.mb@D3DD = 22</action>
            <action>maincpu.mb@D453 = 22</action>
            <action>maincpu.mb@D479 = 22</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@D140 =  param</action> <!-- right -->
            <action>maincpu.mw@D160 = -param</action> <!-- left -->
            <action>maincpu.mw@D188 =  param</action> <!-- down -->
            <action>maincpu.mw@D198 = -param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mw@D140 = 00E0</action>
            <action>maincpu.mw@D160 = FF20</action>
            <action>maincpu.mw@D188 = 0130</action>
            <action>maincpu.mw@D198 = FF10</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0280">01 (slow)</item>
            <item value="0x0800">02       </item>
            <item value="0x1000">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x2000">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@D2BE = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D2BE = 0800</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <script state="on">
            <action>maincpu.mb@D691 = 20</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D691 = 26</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.mb@D0E3 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D0E3 = 06</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@C249 = 4000            </action>
            <action>maincpu.mq@4000 = 202B9721B61B0291</action>
            <action>maincpu.mq@4008 = 2127F7D62081FD26</action>
            <action>maincpu.mq@4010 = 015A81FE26015C81</action>
            <action>maincpu.mq@4018 = F72602C01081FB26</action>
            <action>maincpu.mq@4020 = 02CB10D72081EF27</action>
            <action>maincpu.mq@4028 = 0581DF26045FF71C</action>
            <action>maincpu.mq@4030 = 0520CF0000000000</action>
            <!--
            4000 | 20 2B    : BRA    $402D // initialize sound
            4002 | 97 21    : STA    $21
            4004 | B6 1B 02 : LDA    $1B02 // read input
            4007 | 91 21    : CMPA   $21
            4009 | 27 F7    : BEQ    $4002
            400B | D6 20    : LDB    $20
            400D | 81 FD    : CMPA   #$FD
            400F | 26 01    : BNE    $4012
            4011 | 5A       : DECB         // decrease code -01
            4012 | 81 FE    : CMPA   #$FE
            4014 | 26 01    : BNE    $4017
            4016 | 5C       : INCB         // increase code +01
            4017 | 81 F7    : CMPA   #$F7
            4019 | 26 02    : BNE    $401D
            401B | C0 10    : SUBB   #$10  // decrease code -10
            401D | 81 FB    : CMPA   #$FB
            401F | 26 02    : BNE    $4023
            4021 | CB 10    : ADDB   #$10  // increase code +10
            4023 | D7 20    : STB    $20
            4025 | 81 EF    : CMPA   #$EF
            4027 | 27 05    : BEQ    $402E // play sound
            4029 | 81 DF    : CMPA   #$DF
            402B | 26 04    : BNE    $4031
            402D | 5F       : CLRB         // stop sound
            402E | F7 1C 05 : STB    $1C05
            4031 | 20 CF    : BRA    $4002
            -->
        </script>
        <script state="run">
            <output format="----- b-wings 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@0020</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@C249 = FA46            </action>
            <action>maincpu.mq@4000 = 0000000000000000</action>
            <action>maincpu.mq@4008 = 0000000000000000</action>
            <action>maincpu.mq@4010 = 0000000000000000</action>
            <action>maincpu.mq@4018 = 0000000000000000</action>
            <action>maincpu.mq@4020 = 0000000000000000</action>
            <action>maincpu.mq@4028 = 0000000000000000</action>
            <action>maincpu.mq@4030 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
  • "short hit mark" : Added new as test code.
  • "no inertia" : Added new.
  • "sound test mode" : Rewritten routine. Added up/down key to select code ±10.