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.
jman
Posts: 1129 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 8 times
Post
by jman » Sat Apr 16, 2022 12:54 pm
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="<< sound code %2.2X >>" 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: 1129 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 8 times
Post
by jman » Sat Nov 18, 2023 1:44 pm
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="<< sound code %2.2X >>" 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="<< sound code %2.2X >>" 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="<< sound code %2.2X >>" 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.
jman
Posts: 1129 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 8 times
Post
by jman » Tue Oct 29, 2024 2:12 pm
In 0.264 or later, cheat system doesn't read "no hit" code from database because region name is changed ("sub" -> "subcpu").
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> <!-- background -->
<action>maincpu.mw@D763 = 0000</action> <!-- background -->
<action>maincpu.mw@D7BC = 0000</action> <!-- pipe -->
<action>maincpu.mw@D7EF = 1216</action> <!-- pipe -->
<action> subcpu.mw@BA01 = 20CA</action> <!-- enemy -->
<action> subcpu.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> subcpu.mw@BA01 = 24CA</action>
<action> subcpu.mw@BA96 = 243C</action>
</script>
</cheat>
<cheat desc="rapid 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="breakable ground enemy">
<script state="on">
<action>subcpu.mb@BB3C = 20</action>
</script>
<script state="off">
<action>subcpu.mb@BB3C = 27</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="----- 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="<< sound code %02X >>" 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> <!-- background -->
<action>maincpu.mw@D7BD = 0000</action> <!-- background -->
<action>maincpu.mw@D816 = 0000</action> <!-- pipe -->
<action>maincpu.mw@D849 = 1216</action> <!-- pipe -->
<action> subcpu.mw@B976 = 20CA</action> <!-- enemy -->
<action> subcpu.mw@BA0B = 203C</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@D7AD = 009E</action>
<action>maincpu.mw@D7BD = 008E</action>
<action>maincpu.mw@D816 = 0035</action>
<action>maincpu.mw@D849 = 1026</action>
<action> subcpu.mw@B976 = 24CA</action>
<action> subcpu.mw@BA0B = 243C</action>
</script>
</cheat>
<cheat desc="rapid 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@D26E = 22</action>
<action>maincpu.mb@D2EB = 22</action>
<action>maincpu.mb@D331 = 22</action>
<action>maincpu.mb@D37D = 22</action>
<action>maincpu.mb@D3DC = 22</action>
<action>maincpu.mb@D452 = 22</action>
<action>maincpu.mb@D478 = 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="breakable ground enemy">
<script state="on">
<action>subcpu.mb@BAB1 = 20</action>
</script>
<script state="off">
<action>subcpu.mb@BAB1 = 27</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="----- 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="<< sound code %02X >>" 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> <!-- background -->
<action>maincpu.mw@D7BE = 0000</action> <!-- background -->
<action>maincpu.mw@D817 = 0000</action> <!-- pipe -->
<action>maincpu.mw@D84A = 1216</action> <!-- pipe -->
<action> subcpu.mw@B976 = 20CA</action> <!-- enemy -->
<action> subcpu.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> subcpu.mw@B976 = 24CA</action>
<action> subcpu.mw@BA0B = 243C</action>
</script>
</cheat>
<cheat desc="rapid 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="breakable ground enemy">
<script state="on">
<action>subcpu.mb@BAB1 = 20</action>
</script>
<script state="off">
<action>subcpu.mb@BAB1 = 27</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="----- 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="<< sound code %02X >>" 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>
Added "breakable ground enemy". You can destroy ground enemy by (wing) shot in air.
Fixed off state addresses for "no hit" and "rapid fire" in bwingso.