[bwings] B-Wings

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

[bwings] B-Wings

Post 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.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bwings]+ B-Wings

Post 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.
Post Reply