[astrofl] Transformer/Astro Flash

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: 844
Joined: Tue Dec 01, 2020 1:24 pm

[astrofl] Transformer/Astro Flash

Post by jman »

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="&lt;&lt; sound code %2.2X &gt;&gt;"      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

[astrofl] Transformer/Astro Flash (update)

Post by jman »

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="&lt;&lt; sound code %2.2X &gt;&gt;"      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

[transfrm]+ Transformer/Astro Flash

Post by jman »

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="&lt;&lt; sound code %02X &gt;&gt;"       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="&lt;&lt; sound code %02X &gt;&gt;"       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>
Post Reply