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: 844 Joined: Tue Dec 01, 2020 1:24 pm
Post
by jman » Sun Dec 12, 2021 1:54 pm
Code: Select all
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1896 = 01</action> <!-- fighter -->
<action>maincpu.mb@1913 = 01</action> <!-- robot -->
</script>
<script state="off">
<action>maincpu.mb@1896 = 0f</action>
<action>maincpu.mb@1913 = 0f</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@0f00 = 7e40</action>
<action>maincpu.oq@7e40 = ddff20a7ffff3af5</action>
<action>maincpu.mq@7e40 = 000efffff3bfffff</action>
<action>maincpu.oq@7e48 = ff36ddff20fffe7d</action>
<action>maincpu.mq@7e48 = 09ffff08ffa0ffff</action>
<action>maincpu.oq@7e50 = ffcdf1ffff36ddff</action>
<action>maincpu.mq@7e50 = cbffff000bffff00</action>
<action>maincpu.oq@7e58 = ffffffffffffc9ff</action>
<action>maincpu.mq@7e58 = ffffffffffffff0f</action>
<!--
7e40 | f5 : push af
7e41 | 3a bf f3 : ld a,($F3BF)
7e44 | a7 : and a
7e45 | 20 0e : jr nz,$7E55
7e47 | dd 7d : ld a,ixl
7e49 | fe a0 : cp $A0
7e4b | 20 08 : jr nz,$7E55
7e4d | dd 36 09 xx : ld (ix+$09),$xx
7e51 | dd 36 0b xx : ld (ix+$0b),$xx
7e55 | f1 : pop af
7e56 | cd cb 0f : call $0FCB
7e59 | c9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7e50 = param</action>
<action>maincpu.mb@7e54 = param</action>
</script>
<script state="off">
<action>maincpu.mw@0f00 = 0fcb</action>
<action>maincpu.oq@7e40 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e40 = ffffffffffffffff</action>
<action>maincpu.oq@7e48 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e48 = ffffffffffffffff</action>
<action>maincpu.oq@7e50 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e50 = ffffffffffffffff</action>
<action>maincpu.mq@7e58 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e58 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<!-- main shot -->
<action>maincpu.mb@1a41 = param</action> <!-- shot level 1-3 -->
<action>maincpu.mb@1a50 = param</action> <!-- shot level 4 -->
<!-- sub shot -->
<action>maincpu.mb@1aba = param</action> <!-- fighter 1 shot level 1-3 -->
<action>maincpu.mb@1ac3 = param</action> <!-- fighter 1 shot level 4 -->
<action>maincpu.mb@1b21 = param</action> <!-- fighter 2 shot level 1-3 -->
<action>maincpu.mb@1b2a = param</action> <!-- fighter 2 shot level 4 -->
<action>maincpu.mb@1ba9 = param</action> <!-- robot 1 -->
<action>maincpu.mb@1bad = param</action> <!-- robot 2 -->
<action>maincpu.mb@1bb1 = param</action> <!-- robot 3 -->
</script>
<script state="off">
<action>maincpu.mb@1a41 = 06</action>
<action>maincpu.mb@1a50 = 09</action>
<action>maincpu.mb@1aba = 06</action>
<action>maincpu.mb@1ac3 = 09</action>
<action>maincpu.mb@1b21 = 06</action>
<action>maincpu.mb@1b2a = 09</action>
<action>maincpu.mb@1ba9 = 04</action>
<action>maincpu.mb@1bad = 05</action>
<action>maincpu.mb@1bb1 = 02</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@0098 = 7e40</action>
<action>maincpu.oq@7e40 = b8ffdbff36ffff21</action>
<action>maincpu.mq@7e40 = ffe1ff80ffc100ff</action>
<action>maincpu.oq@7e48 = 35ff20fffeff2847</action>
<action>maincpu.mq@7e48 = ff01fffbfffaffff</action>
<action>maincpu.oq@7e50 = 20fffe34ff20fffe</action>
<action>maincpu.mq@7e50 = ffefffff01fff7ff</action>
<action>maincpu.oq@7e58 = ff20fffeff187eff</action>
<action>maincpu.mq@7e58 = 04ffdfff05ffff03</action>
<action>maincpu.oq@7e60 = ffffff18ffff32af</action>
<action>maincpu.mq@7e60 = ffffdffffd00ffff</action>
<!--
7e40 | 21 00 c1 : ld hl,$C100 // sound code address
7e43 | 36 80 : ld (hl),$80
7e45 | db e1 : in a,($E1) // read input
7e47 | b8 : cp b
7e48 | 47 : ld b,a
7e49 | 28 fa : jr z,$7E45
7e4b | fe fb : cp $FB
7e4d | 20 01 : jr nz,$7E50
7e4f | 35 : dec (hl) // decrease code
7e50 | fe f7 : cp $F7
7e52 | 20 01 : jr nz,$7E55
7e54 | 34 : inc (hl) // increase code
7e55 | fe ef : cp $EF
7e57 | 20 03 : jr nz,$7E5C
7e59 | 7e : ld a,(hl) // play sound
7e5a | 18 05 : jr $7E61
7e5c | fe df : cp $DF
7e5e | 20 04 : jr nz,$7E64
7e60 | af : xor a // stop sound
7e61 | 32 00 fd : ld ($FD00),a // send sound code
7e64 | 18 df : jr $7E45
-->
</script>
<script state="run">
<output format="----- astro flash sound test mode -----" line="10" align="center" />
<output format="left : code decrement" line="11" align="center" />
<output format="right : code increment" 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@c100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0098 = 0572</action>
<action>maincpu.oq@7e40 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e40 = ffffffffffffffff</action>
<action>maincpu.oq@7e48 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e48 = ffffffffffffffff</action>
<action>maincpu.oq@7e50 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e50 = ffffffffffffffff</action>
<action>maincpu.oq@7e58 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e58 = ffffffffffffffff</action>
<action>maincpu.oq@7e60 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e60 = ffffffffffffffff</action>
</script>
</cheat>
The following code is test because doesn't work in fighter mode.
Code: Select all
<cheat desc="walk through wall (test)">
<comment>robot mode only</comment>
<script state="on">
<!-- up -->
<action>maincpu.mb@1643 = 00</action>
<action>maincpu.ob@1648 = 18</action>
<!-- down -->
<action>maincpu.mb@1653 = 00</action>
<action>maincpu.ob@1658 = 18</action>
<!-- left/right -->
<action>maincpu.mb@166d = 00</action>
<action>maincpu.mb@1673 = 00</action>
<action>maincpu.mb@1679 = 00</action>
<action>maincpu.ob@1684 = 18</action>
</script>
<script state="off">
<action>maincpu.mb@1643 = 06</action>
<action>maincpu.ob@1648 = 38</action>
<action>maincpu.mb@1653 = 00</action>
<action>maincpu.ob@1658 = 38</action>
<action>maincpu.mb@166d = 18</action>
<action>maincpu.mb@1673 = 12</action>
<action>maincpu.mb@1679 = 0c</action>
<action>maincpu.ob@1684 = 38</action>
</script>
</cheat>
jman
Posts: 844 Joined: Tue Dec 01, 2020 1:24 pm
Post
by jman » Sat Dec 31, 2022 11:20 am
Code: Select all
<cheat desc="walk through wall">
<script state="on">
<!-- fighter mode -->
<action>maincpu.ob@15cc = c3</action>
<action>maincpu.rw@15cd = 16e0</action>
<!-- robot mode -->
<action>maincpu.ob@163e = c3</action>
<action>maincpu.rw@163f = 16e0</action>
</script>
<script state="off">
<action>maincpu.ob@15cc = 3e</action>
<action>maincpu.rw@15cd = 0b7c</action>
<action>maincpu.ob@163e = 3a</action>
<action>maincpu.rw@163f = c130</action>
</script>
</cheat>
"walk through wall" : rewrite routine. this works in fighter mode.
Code: Select all
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@0098 = 7e40</action>
<action>maincpu.oq@7e40 = 2847b8ffdbffff21</action>
<action>maincpu.mq@7e40 = ffffffe1ffc100ff</action>
<action>maincpu.oq@7e48 = fffe35ff20fffeff</action>
<action>maincpu.mq@7e48 = f7ffff01fffbfffa</action>
<action>maincpu.oq@7e50 = 3eff20fffe34ff20</action>
<action>maincpu.mq@7e50 = ff04fffdffff01ff</action>
<action>maincpu.oq@7e58 = 3eff20fffeff18ff</action>
<action>maincpu.mq@7e58 = ff05fffeff06fff0</action>
<action>maincpu.oq@7e60 = ff20fffe787786ff</action>
<action>maincpu.mq@7e60 = 05ffefffffffff10</action>
<action>maincpu.oq@7e68 = 20fffeff18fff67e</action>
<action>maincpu.mq@7e68 = ffdfff05ff80ffff</action>
<action>maincpu.oq@7e70 = 00ff18ffff32afff</action>
<action>maincpu.mq@7e70 = ffccfffd00ffff04</action>
<!--
7e40 | 21 00 c1 : ld hl,$C100 // sound code address
7e43 | db e1 : in a,($E1) // read input
7e45 | b8 : cp b
7e46 | 47 : ld b,a
7e47 | 28 fa : jr z,$7E43
7e49 | fe fb : cp $FB
7e4b | 20 01 : jr nz,$7E4E
7e4d | 35 : dec (hl) // decrease code -01
7e4e | fe f7 : cp $F7
7e50 | 20 01 : jr nz,$7E53
7e52 | 34 : inc (hl) // increase code +01
7e53 | fe fd : cp $FD
7e55 | 20 04 : jr nz,$7E5B
7e57 | 3e f0 : ld a,$F0 // decrease code -10
7e59 | 18 06 : jr $7E61
7e5b | fe fe : cp $FE
7e5d | 20 05 : jr nz,$7E64
7e5f | 3e 10 : ld a,$10 // increase code +10
7e61 | 86 : add a,(hl)
7e62 | 77 : ld (hl),a
7e63 | 78 : ld a,b
7e64 | fe ef : cp $EF
7e66 | 20 05 : jr nz,$7E6D
7e68 | 7e : ld a,(hl) // play sound
7e69 | f6 80 : or $80
7e6b | 18 05 : jr $7E72
7e6d | fe df : cp $DF
7e6f | 20 04 : jr nz,$7E75
7e71 | af : xor a // stop sound
7e72 | 32 00 fd : ld ($FD00),a
7e75 | 18 cc : jr $7E43
-->
</script>
<script state="run">
<output format="----- astro flash 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@c100</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@7e40 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e40 = ffffffffffffffff</action>
<action>maincpu.oq@7e48 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e48 = ffffffffffffffff</action>
<action>maincpu.oq@7e50 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e50 = ffffffffffffffff</action>
<action>maincpu.oq@7e58 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e58 = ffffffffffffffff</action>
<action>maincpu.oq@7e60 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e60 = ffffffffffffffff</action>
<action>maincpu.oq@7e68 = bbafbbafbbafbbaf</action>
<action>maincpu.mq@7e68 = ffffffffffffffff</action>
<action>maincpu.oq@7e70 = faeafaeafaeafaea</action>
<action>maincpu.mq@7e70 = ffffffffffffffff</action>
</script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 844 Joined: Tue Dec 01, 2020 1:24 pm
Post
by jman » Sat Feb 10, 2024 11:44 pm
transfrm.xml
Code: Select all
<!-- Transformer -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@49FF = 14</action>
</script>
<script state="off">
<action>maincpu.mb@49FF = 15</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.md@157A = 38168EC3</action> <!-- fighter -->
<action>maincpu.md@15EC = B8168EC3</action> <!-- robot -->
</script>
<script state="off">
<action>maincpu.md@157A = 38BE4F3E</action>
<action>maincpu.md@15EC = B8C1303A</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1844 = 01</action> <!-- fighter -->
<action>maincpu.mb@18C1 = 01</action> <!-- robot -->
</script>
<script state="off">
<action>maincpu.mb@1844 = 0F</action>
<action>maincpu.mb@18C1 = 0F</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@0EAE = 7DC0 </action>
<action>maincpu.mq@7DC0 = DD0E20A7F3BF3AF5</action>
<action>maincpu.mq@7DC8 = 0936DD0820A0FE7D</action>
<action>maincpu.mq@7DD0 = 79CDF1000B36DD00</action>
<action>maincpu.mq@7DD8 = FFFFFFFFFFFFC90F</action>
<!--
7DC0 | F5 : push af
7DC1 | 3A BF F3 : ld a,($F3BF)
7DC4 | A7 : and a
7DC5 | 20 0E : jr nz,$7DD5
7DC7 | DD 7D : ld a,ixl
7DC9 | FE A0 : cp $A0
7DCB | 20 08 : jr nz,$7DD5
7DCD | DD 36 09 xx : ld (ix+$09),$xx
7DD1 | DD 36 0B xx : ld (ix+$0b),$xx
7DD5 | F1 : pop af
7DD6 | CD 79 0F : call $0F79
7DD9 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7DD0 = param</action>
<action>maincpu.mb@7DD4 = param</action>
</script>
<script state="off">
<action>maincpu.mw@0EAE = 0F79 </action>
<action>maincpu.mq@7DC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DD8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<!-- main shot -->
<action>maincpu.mb@19EF = param</action> <!-- shot level 1-3 -->
<action>maincpu.mb@19FE = param</action> <!-- shot level 4 -->
<!-- sub shot -->
<action>maincpu.mb@1A68 = param</action> <!-- fighter 1 shot level 1-3 -->
<action>maincpu.mb@1A71 = param</action> <!-- fighter 1 shot level 4 -->
<action>maincpu.mb@1ACF = param</action> <!-- fighter 2 shot level 1-3 -->
<action>maincpu.mb@1AD8 = param</action> <!-- fighter 2 shot level 4 -->
<action>maincpu.mb@1B57 = param</action> <!-- robot 1 -->
<action>maincpu.mb@1B5B = param</action> <!-- robot 2 -->
<action>maincpu.mb@1B5F = param</action> <!-- robot 3 -->
</script>
<script state="off">
<action>maincpu.mb@19EF = 06</action>
<action>maincpu.mb@19FE = 09</action>
<action>maincpu.mb@1A68 = 06</action>
<action>maincpu.mb@1A71 = 09</action>
<action>maincpu.mb@1ACF = 06</action>
<action>maincpu.mb@1AD8 = 09</action>
<action>maincpu.mb@1B57 = 04</action>
<action>maincpu.mb@1B5B = 05</action>
<action>maincpu.mb@1B5F = 02</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@0098 = 7DE0 </action>
<action>maincpu.mq@7DE0 = 2847B8E1DBC00021</action>
<action>maincpu.mq@7DE8 = F7FE350120FBFEFA</action>
<action>maincpu.mq@7DF0 = 3E0420FDFE340120</action>
<action>maincpu.mq@7DF8 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@7E00 = 0520EFFE78778610</action>
<action>maincpu.mq@7E08 = 20DFFE051880F67E</action>
<action>maincpu.mq@7E10 = FFCC18FD0032AF04</action>
<!--
7DE0 | 21 00 C0 : ld hl,$C000 // sound code address
7DE3 | DB E1 : in a,($E1) // read input
7DE5 | B8 : cp b
7DE6 | 47 : ld b,a
7DE7 | 28 FA : jr z,$7DE3
7DE9 | FE FB : cp $FB
7DEB | 20 01 : jr nz,$7DEE
7DED | 35 : dec (hl) // decrease code -01
7DEE | FE F7 : cp $F7
7DF0 | 20 01 : jr nz,$7DF3
7DF2 | 34 : inc (hl) // increase code +01
7DF3 | FE FD : cp $FD
7DF5 | 20 04 : jr nz,$7DFB
7DF7 | 3E F0 : ld a,$F0 // decrease code -10
7DF9 | 18 06 : jr $7E01
7DFB | FE FE : cp $FE
7DFD | 20 05 : jr nz,$7E04
7DFF | 3E 10 : ld a,$10 // increase code +10
7E01 | 86 : add a,(hl)
7E02 | 77 : ld (hl),a
7E03 | 78 : ld a,b
7E04 | FE EF : cp $EF
7E06 | 20 05 : jr nz,$7E0D
7E08 | 7E : ld a,(hl) // play sound
7E09 | F6 80 : or $80
7E0B | 18 05 : jr $7E12
7E0D | FE DF : cp $DF
7E0F | 20 04 : jr nz,$7E15
7E11 | AF : xor a // stop sound
7E12 | 32 00 FD : ld ($FD00),a // send sound code
7E15 | 18 CC : jr $7DE3
-->
</script>
<script state="run">
<output format="----- transformer 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@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0098 = 0572 </action>
<action>maincpu.mq@7DE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E10 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
astrofl.xml
Code: Select all
<!-- Astro Flash (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4A65 = 7A</action>
</script>
<script state="off">
<action>maincpu.mb@4A65 = 7B</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<!-- fighter -->
<action>maincpu.ob@15CC = C3 </action>
<action>maincpu.mw@15CD = 16E0</action>
<!-- robot -->
<action>maincpu.ob@163E = C3 </action>
<action>maincpu.mw@163F = 16E0</action>
</script>
<script state="off">
<action>maincpu.ob@15CC = 3E </action>
<action>maincpu.mw@15CD = 0B7C</action>
<action>maincpu.ob@163E = 3A </action>
<action>maincpu.mw@163F = C130</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1896 = 01</action> <!-- fighter -->
<action>maincpu.mb@1913 = 01</action> <!-- robot -->
</script>
<script state="off">
<action>maincpu.mb@1896 = 0F</action>
<action>maincpu.mb@1913 = 0F</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@0F00 = 7E40 </action>
<action>maincpu.oq@7E40 = DDFF20A7FFFF3AF5</action>
<action>maincpu.mq@7E40 = 000EFFFFF3BFFFFF</action>
<action>maincpu.oq@7E48 = FF36DDFF20FFFE7D</action>
<action>maincpu.mq@7E48 = 09FFFF08FFA0FFFF</action>
<action>maincpu.oq@7E50 = FFCDF1FFFF36DDFF</action>
<action>maincpu.mq@7E50 = CBFFFF000BFFFF00</action>
<action>maincpu.oq@7E58 = FFFFFFFFFFFFC9FF</action>
<action>maincpu.mq@7E58 = FFFFFFFFFFFFFF0F</action>
<!--
7E40 | F5 : push af
7E41 | 3A BF F3 : ld a,($F3BF)
7E44 | A7 : and a
7E45 | 20 0E : jr nz,$7E55
7E47 | DD 7D : ld a,ixl
7E49 | FE A0 : cp $A0
7E4B | 20 08 : jr nz,$7E55
7E4D | DD 36 09 xx : ld (ix+$09),$xx
7E51 | DD 36 0B xx : ld (ix+$0b),$xx
7E55 | F1 : pop af
7E56 | CD CB 0F : call $0FCB
7E59 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7E50 = param</action>
<action>maincpu.mb@7E54 = param</action>
</script>
<script state="off">
<action>maincpu.mw@0F00 = 0FCB </action>
<action>maincpu.oq@7E40 = FAEAFAEAFAEAFAEA</action>
<action>maincpu.mq@7E40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E48 = BBAFBBAFBBAFBBAF</action>
<action>maincpu.mq@7E48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E50 = FAEAFAEAFAEAFAEA</action>
<action>maincpu.mq@7E50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E58 = BBAFBBAFBBAFBBAF</action>
<action>maincpu.mq@7E58 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<!-- main shot -->
<action>maincpu.mb@1A41 = param</action> <!-- shot level 1-3 -->
<action>maincpu.mb@1A50 = param</action> <!-- shot level 4 -->
<!-- sub shot -->
<action>maincpu.mb@1ABA = param</action> <!-- fighter 1 shot level 1-3 -->
<action>maincpu.mb@1AC3 = param</action> <!-- fighter 1 shot level 4 -->
<action>maincpu.mb@1B21 = param</action> <!-- fighter 2 shot level 1-3 -->
<action>maincpu.mb@1B2A = param</action> <!-- fighter 2 shot level 4 -->
<action>maincpu.mb@1BA9 = param</action> <!-- robot 1 -->
<action>maincpu.mb@1BAD = param</action> <!-- robot 2 -->
<action>maincpu.mb@1BB1 = param</action> <!-- robot 3 -->
</script>
<script state="off">
<action>maincpu.mb@1A41 = 06</action>
<action>maincpu.mb@1A50 = 09</action>
<action>maincpu.mb@1ABA = 06</action>
<action>maincpu.mb@1AC3 = 09</action>
<action>maincpu.mb@1B21 = 06</action>
<action>maincpu.mb@1B2A = 09</action>
<action>maincpu.mb@1BA9 = 04</action>
<action>maincpu.mb@1BAD = 05</action>
<action>maincpu.mb@1BB1 = 02</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@0098 = 7E40 </action>
<action>maincpu.oq@7E40 = 2847B8FFDBFFFF21</action>
<action>maincpu.mq@7E40 = FFFFFFE1FFC000FF</action>
<action>maincpu.oq@7E48 = FFFE35FF20FFFEFF</action>
<action>maincpu.mq@7E48 = F7FFFF01FFFBFFFA</action>
<action>maincpu.oq@7E50 = 3EFF20FFFE34FF20</action>
<action>maincpu.mq@7E50 = FF04FFFDFFFF01FF</action>
<action>maincpu.oq@7E58 = 3EFF20FFFEFF18FF</action>
<action>maincpu.mq@7E58 = FF05FFFEFF06FFF0</action>
<action>maincpu.oq@7E60 = FF20FFFE787786FF</action>
<action>maincpu.mq@7E60 = 05FFEFFFFFFFFF10</action>
<action>maincpu.oq@7E68 = 20FFFEFF18FFF67E</action>
<action>maincpu.mq@7E68 = FFDFFF05FF80FFFF</action>
<action>maincpu.oq@7E70 = 00FF18FFFF32AFFF</action>
<action>maincpu.mq@7E70 = FFCCFFFD00FFFF04</action>
<!--
7E40 | 21 00 C0 : ld hl,$C000 // sound code address
7E43 | DB E1 : in a,($E1) // read input
7E45 | B8 : cp b
7E46 | 47 : ld b,a
7E47 | 28 FA : jr z,$7E43
7E49 | FE FB : cp $FB
7E4B | 20 01 : jr nz,$7E4E
7E4D | 35 : dec (hl) // decrease code -01
7E4E | FE F7 : cp $F7
7E50 | 20 01 : jr nz,$7E53
7E52 | 34 : inc (hl) // increase code +01
7E53 | FE FD : cp $FD
7E55 | 20 04 : jr nz,$7E5B
7E57 | 3E F0 : ld a,$F0 // decrease code -10
7E59 | 18 06 : jr $7E61
7E5B | FE FE : cp $FE
7E5D | 20 05 : jr nz,$7E64
7E5F | 3E 10 : ld a,$10 // increase code +10
7E61 | 86 : add a,(hl)
7E62 | 77 : ld (hl),a
7E63 | 78 : ld a,b
7E64 | FE EF : cp $EF
7E66 | 20 05 : jr nz,$7E6D
7E68 | 7E : ld a,(hl) // play sound
7E69 | F6 80 : or $80
7E6B | 18 05 : jr $7E72
7E6D | FE DF : cp $DF
7E6F | 20 04 : jr nz,$7E75
7E71 | AF : xor a // stop sound
7E72 | 32 00 FD : ld ($FD00),a // send sound code
7E75 | 18 CC : jr $7E43
-->
</script>
<script state="run">
<output format="----- astro flash 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@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0098 = 0572 </action>
<action>maincpu.oq@7E40 = FAEAFAEAFAEAFAEA</action>
<action>maincpu.mq@7E40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E48 = BBAFBBAFBBAFBBAF</action>
<action>maincpu.mq@7E48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E50 = FAEAFAEAFAEAFAEA</action>
<action>maincpu.mq@7E50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E58 = BBAFBBAFBBAFBBAF</action>
<action>maincpu.mq@7E58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E60 = FAEAFAEAFAEAFAEA</action>
<action>maincpu.mq@7E60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E68 = BBAFBBAFBBAFBBAF</action>
<action>maincpu.mq@7E68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.oq@7E70 = FAEAFAEAFAEAFAEA</action>
<action>maincpu.mq@7E70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>