[tnextspcj] The Next Space

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: 888
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[tnextspcj] The Next Space

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.md@148bc = 4eb803f0</action> <!-- enemy -->
        <action>maincpu.md@1495a = 4eb803f0</action> <!-- boss -->
        <action>maincpu.md@14c72 = 4eb803f0</action> <!-- bullet -->
        <!-- check routine -->
        <action>maincpu.mq@003f0 = b3fc000722406304</action>
        <action>maincpu.mq@003f8 = 4a2900184e75ffff</action>
        <!--
        03f0 | b3fc 0007 2240 : cmpa.l #$72240,A1
        03f6 | 6304           : bls    $3fc
        03f8 | 4a29 0018      : tst.b  ($18,A1)
        03fc | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.md@148bc =         4a290018</action>
        <action>maincpu.md@1495a =         4a290018</action>
        <action>maincpu.md@14c72 =         4a290018</action>
        <action>maincpu.mq@003f0 = ffffffffffffffff</action>
        <action>maincpu.mq@003f8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <!-- P1 -->
        <action>maincpu.mq@019ae = 0828000400294e71</action> <!-- btst #$4,($29,A0) / nop -->
        <action>maincpu.mb@019d1 =               02</action> <!-- enable to fire mainshot and subweapon -->
        <action>maincpu.mq@019d6 = 0828000500294e71</action> <!-- btst #$5,($29,A0) / nop -->
        <!-- P2 -->
        <action>maincpu.mq@01a1e = 0828000400294e71</action> <!-- btst #$4,($29,A0) / nop -->
        <action>maincpu.mb@01a41 =               02</action> <!-- enable to fire mainshot and subweapon -->
        <action>maincpu.mq@01a46 = 0828000500294e71</action> <!-- btst #$5,($29,A0) / nop -->
        <!-- sub unit (weapon H) -->
        <action>maincpu.mq@1677e = 0829000500294e71</action> <!-- btst #$5,($29,A1) / nop -->
    </script>
    <script state="off">
        <action>maincpu.mq@019ae = 024000030c400002</action>
        <action>maincpu.mb@019d1 =               1e</action>
        <action>maincpu.mq@019d6 = 024000030c400002</action>
        <action>maincpu.mq@01a1e = 024000030c400002</action>
        <action>maincpu.mb@01a41 =               1e</action>
        <action>maincpu.mq@01a46 = 024000030c400002</action>
        <action>maincpu.mq@1677e = 024000030c400002</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x02">02       </item>
        <item value="0x04">03       </item>
        <item value="0x06">04       </item>
        <item value="0x08">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@2c48 =         4eb803d0</action> <!-- x position -->
        <action>maincpu.md@2c52 =         4eb803e0</action> <!-- y position -->
        <action>maincpu.mq@03d0 = 7401103100006706</action>
        <action>maincpu.mq@03d8 = 6a02440210024e75</action>
        <action>maincpu.mq@03e0 = 7401123110006706</action>
        <action>maincpu.mq@03e8 = 6a02440212024e75</action>
        <!--
        03d0 | 74xx      : moveq  #$xx,D2       // x position
        03d2 | 1031 0000 : move.b (A1,D0.w),D0
        03d6 | 6706      : beq    $3de
        03d8 | 6a02      : bpl    $3dc
        03da | 4402      : neg.b  D2
        03dc | 1002      : move.b D2,D0
        03de | 4e75      : rts
        03e0 | 74xx      : moveq  #$xx,D2       // y position
        03e2 | 1231 1000 : move.b (A1,D1.w),D1
        03e6 | 6706      : beq    $3ee
        03e8 | 6a02      : bpl    $3ec
        03ea | 4402      : neg.b  D2
        03ec | 1202      : move.b D2,D1
        03ee | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@03d1 = param</action>
        <action>maincpu.mb@03e1 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@2c48 =         10310000</action>
        <action>maincpu.md@2c52 =         12311000</action>
        <action>maincpu.mq@03d0 = ffffffffffffffff</action>
        <action>maincpu.mq@03d8 = ffffffffffffffff</action>
        <action>maincpu.mq@03e0 = ffffffffffffffff</action>
        <action>maincpu.mq@03e8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x0c">02       </item>
        <item value="0x10">03       </item>
        <item value="0x14">04       </item>
        <item value="0x18">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@12c63 =  param</action> <!-- speed -->
        <action>maincpu.mb@12c71 = -param</action> <!-- range -->
    </script>
    <script state="off">
        <action>maincpu.mb@12c63 = 0c</action>
        <action>maincpu.mb@12c71 = f4</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mq@0089c = 4ef900019ee0303c</action>
        <action>maincpu.mq@19ee0 = 41f90007100043f9</action>
        <action>maincpu.mq@19ee8 = 000f000912001039</action>
        <action>maincpu.mq@19ef0 = 000e0001b20067f4</action>
        <action>maincpu.mq@19ef8 = 0c0000fb66025310</action>
        <action>maincpu.mq@19f00 = 0c0000f766025210</action>
        <action>maincpu.mq@19f08 = 0c0000fd66040410</action>
        <action>maincpu.mq@19f10 = 00100c0000fe6604</action>
        <action>maincpu.mq@19f18 = 061000100c0000ef</action>
        <action>maincpu.mq@19f20 = 660212900c0000df</action>
        <action>maincpu.mq@19f28 = 660412bc003660bc</action>
        <!--
        19ee0 | 41f9 0007 1000 : lea    $71000.l,A0 // sound code address
        19ee6 | 43f9 000f 0009 : lea    $f0009.l,A1 // sound latch address
        19eec | 1200           : move.b D0,D1
        19eee | 1039 000e 0001 : move.b $e0001.l,D0 // read input
        19ef4 | b200           : cmp.b  D0,D1
        19ef6 | 67f4           : beq    $19eec
        19ef8 | 0c00 00fb      : cmpi.b #-$5,D0
        19efc | 6602           : bne    $19f00
        19efe | 5310           : subq.b #1,(A0)     // decrease code -01
        19f00 | 0c00 00f7      : cmpi.b #-$9,D0
        19f04 | 6602           : bne    $19f08
        19f06 | 5210           : addq.b #1,(A0)     // increase code +01
        19f08 | 0c00 00fd      : cmpi.b #-$3,D0
        19f0c | 6604           : bne    $19f12
        19f0e | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        19f12 | 0c00 00fe      : cmpi.b #-$2,D0
        19f16 | 6604           : bne    $19f1c
        19f18 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        19f1c | 0c00 00ef      : cmpi.b #-$11,D0
        19f20 | 6602           : bne    $19f24
        19f22 | 1290           : move.b (A0),(A1)   // play sound
        19f24 | 0c00 00df      : cmpi.b #-$21,D0
        19f28 | 6604           : bne    $19f2e
        19f2a | 12bc 0036      : move.b #$36,(A1)   // stop sound
        19f2e | 60bc           : bra    $19eec
        -->
        <action>audiocpu.mw@08e7 = 0a82</action> <!-- force to play music -->
        <action>audiocpu.mw@08ed = 0b46</action> <!-- force to play sfx -->
        <!-- sound code flag table -->
        <action>audiocpu.mq@1250 = 0200000202000202</action>
        <action>audiocpu.mq@1260 = 0002020200000202</action>
        <action>audiocpu.mq@1270 = 0200020002000202</action>
    </script>
    <script state="run">
        <output format="----- the next space 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 music"                       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@71000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0089c = 207c0002233c303c</action>
        <action>maincpu.mq@19ee0 = ffffffffffffffff</action>
        <action>maincpu.mq@19ee8 = ffffffffffffffff</action>
        <action>maincpu.mq@19ef0 = ffffffffffffffff</action>
        <action>maincpu.mq@19ef8 = ffffffffffffffff</action>
        <action>maincpu.mq@19f00 = ffffffffffffffff</action>
        <action>maincpu.mq@19f08 = ffffffffffffffff</action>
        <action>maincpu.mq@19f10 = ffffffffffffffff</action>
        <action>maincpu.mq@19f18 = ffffffffffffffff</action>
        <action>maincpu.mq@19f20 = ffffffffffffffff</action>
        <action>maincpu.mq@19f28 = ffffffffffffffff</action>
        <action>audiocpu.mw@08e7 =             0a76</action>
        <action>audiocpu.mw@08ed =             0b32</action>
        <action>audiocpu.mq@1250 = 0202020202020202</action>
        <action>audiocpu.mq@1260 = 0202020202020202</action>
        <action>audiocpu.mq@1270 = 0202020202020202</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action> maincpu.md@04ae = 6000018c</action> <!-- maincpu : skip ram/rom check -->
        <action> maincpu.mw@0654 =     0006</action> <!-- maincpu : disable wait -->
        <action> maincpu.mw@0850 =     0006</action> <!-- maincpu : disable wait -->
        <action>audiocpu.mw@0c6b =     5518</action> <!-- audiocpu : skip ram/rom check -->
    </script>
    <script state="off">
        <action> maincpu.md@04ae = 207c0000</action>
        <action> maincpu.mw@0654 =     fffc</action>
        <action> maincpu.mw@0850 =     fffc</action>
        <action>audiocpu.mw@0c6b =     0021</action>
    </script>
</cheat>
jman
Posts: 888
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[tnextspc]+ The Next Space

Post by jman »

tnextspc.xml

Code: Select all

<!-- The Next Space (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.md@146DE = 4EB803D0</action> <!-- enemy -->
            <action>maincpu.md@1477C = 4EB803D0</action> <!-- boss -->
            <action>maincpu.md@14A94 = 4EB803D0</action> <!-- bullet -->
            <!-- check routine -->
            <action>maincpu.mq@003D0 = B3FC000722406304</action>
            <action>maincpu.mq@003D8 = 4A2900184E75FFFF</action>
            <!--
            03D0 | B3FC 0007 2240 : cmpa.l  #$72240, A1
            03D6 | 6304           : bls     $3dc
            03D8 | 4A29 0018      : tst.b   ($18,A1)
            03DC | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@146DE = 4A290018        </action>
            <action>maincpu.md@1477C = 4A290018        </action>
            <action>maincpu.md@14A94 = 4A290018        </action>
            <action>maincpu.mq@003D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@003D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mq@01988 = 0828000400294E71</action> <!-- btst #$4,($29,A0) / nop -->
            <action>maincpu.mb@019AB = 02              </action> <!-- enable to fire mainshot and subweapon -->
            <action>maincpu.mq@019B0 = 0828000500294E71</action> <!-- btst #$5,($29,A0) / nop -->
            <!-- P2 -->
            <action>maincpu.mq@019F8 = 0828000400294E71</action> <!-- btst #$4,($29,A0) / nop -->
            <action>maincpu.mb@01A1B = 02              </action> <!-- enable to fire mainshot and subweapon -->
            <action>maincpu.mq@01A20 = 0828000500294E71</action> <!-- btst #$5,($29,A0) / nop -->
            <!-- sub unit (weapon H) -->
            <action>maincpu.mq@165A0 = 0829000500294E71</action> <!-- btst #$5,($29,A1) / nop -->
        </script>
        <script state="off">
            <action>maincpu.mq@01988 = 024000030C400002</action>
            <action>maincpu.mb@019AB = 1E              </action>
            <action>maincpu.mq@019B0 = 024000030C400002</action>
            <action>maincpu.mq@01AF8 = 024000030C400002</action>
            <action>maincpu.mb@01A1B = 1E              </action>
            <action>maincpu.mq@01A20 = 024000030C400002</action>
            <action>maincpu.mq@165A0 = 024000030C400002</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@2C16 = 4EB803E0        </action> <!-- x position -->
            <action>maincpu.md@2C20 = 4EB803F0        </action> <!-- y position -->
            <action>maincpu.mq@03E0 = 7401103100006706</action>
            <action>maincpu.mq@03E8 = 6A02440210024E75</action>
            <action>maincpu.mq@03F0 = 7401123110006706</action>
            <action>maincpu.mq@03F8 = 6A02440212024E75</action>
            <!--
            03E0 | 74xx      : moveq   #$xx, D2       // x position
            03E2 | 1031 0000 : move.b  (A1,D0.w), D0
            03E6 | 6706      : beq     $3ee
            03E8 | 6A02      : bpl     $3ec
            03EA | 4402      : neg.b   D2
            03EC | 1002      : move.b  D2, D0
            03EE | 4E75      : rts
            03F0 | 74xx      : moveq   #$xx, D2       // y position
            03F2 | 1231 1000 : move.b  (A1,D1.w), D1
            03F6 | 6706      : beq     $3fe
            03F8 | 6A02      : bpl     $3fc
            03FA | 4402      : neg.b   D2
            03FC | 1202      : move.b  D2, D1
            03FE | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@03E1 = param</action>
            <action>maincpu.mb@03F1 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2C16 = 10310000        </action>
            <action>maincpu.md@2C20 = 12311000        </action>
            <action>maincpu.mq@03E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x0c">02       </item>
            <item value="0x10">03       </item>
            <item value="0x14">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@12A85 =  param</action> <!-- speed -->
            <action>maincpu.mb@12A93 = -param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@12A85 = 0C</action>
            <action>maincpu.mb@12A93 = F4</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@0089C = 4EF900019D10303C</action>
            <action>maincpu.mq@19D10 = 41F90007000043F9</action>
            <action>maincpu.mq@19D18 = 000F000912001039</action>
            <action>maincpu.mq@19D20 = 000E0001B20067F4</action>
            <action>maincpu.mq@19D28 = 0C0000FB66025310</action>
            <action>maincpu.mq@19D30 = 0C0000F766025210</action>
            <action>maincpu.mq@19D38 = 0C0000FD66040410</action>
            <action>maincpu.mq@19D40 = 00100C0000FE6604</action>
            <action>maincpu.mq@19D48 = 061000100C0000EF</action>
            <action>maincpu.mq@19D50 = 660212900C0000DF</action>
            <action>maincpu.mq@19D58 = 6602421160BEFFFF</action>
            <!--
            19D10 | 41F9 0007 0000 : lea     $70000.l, A0 // sound code address
            19D16 | 43F9 000F 0009 : lea     $f0009.l, A1 // sound latch address
            19D1C | 1200           : move.b  D0, D1
            19D1E | 1039 000E 0001 : move.b  $e0001.l, D0 // read input
            19D24 | B200           : cmp.b   D0, D1
            19D26 | 67F4           : beq     $19d1c
            19D28 | 0C00 00FB      : cmpi.b  #-$5, D0
            19D2C | 6602           : bne     $19d30
            19D2E | 5310           : subq.b  #1, (A0)     // decrase code -01
            19D30 | 0C00 00F7      : cmpi.b  #-$9, D0
            19D34 | 6602           : bne     $19d38
            19D36 | 5210           : addq.b  #1, (A0)     // increase code +01
            19D38 | 0C00 00FD      : cmpi.b  #-$3, D0
            19D3C | 6604           : bne     $19d42
            19D3E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            19D42 | 0C00 00FE      : cmpi.b  #-$2, D0
            19D46 | 6604           : bne     $19d4c
            19D48 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            19D4C | 0C00 00EF      : cmpi.b  #-$11, D0
            19D50 | 6602           : bne     $19d54
            19D52 | 1290           : move.b  (A0), (A1)   // play sound
            19D54 | 0C00 00DF      : cmpi.b  #-$21, D0
            19D58 | 6602           : bne     $19d5c
            19D5A | 4211           : clr.b   (A1)         // stop sound
            19D5C | 60BE           : bra     $19d1c
            -->
            <!-- sound code check routine -->
            <action>audiocpu.md@08CB = 00CFF0CD        </action>
            <action>audiocpu.mq@CFF0 = 5F0000CAA7F8003A</action>
            <action>audiocpu.mq@CFF8 = FFFFC97BF11632AF</action>
            <!--
            CFF0 | 3A 00 F8 : ld   a,($F800)
            CFF3 | A7       : and  a
            CFF4 | CA 00 00 : jp   z,$0000
            CFF7 | 5F       : ld   e,a
            CFF8 | AF       : xor  a
            CFF9 | 32 16 F1 : ld   ($F116),a
            CFFC | 7B       : ld   a,e
            CFFD | C9       : ret
            -->
            <!-- sound code flag table -->
            <action>audiocpu.mq@1250 = 0200000202000202</action>
            <action>audiocpu.mq@1260 = 0002020200000202</action>
            <action>audiocpu.mq@1270 = 0200020002000202</action>
        </script>
        <script state="run">
            <output format="----- the next space 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@70000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@0089C = 207C00022336303C</action>
            <action> maincpu.mq@19EE0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EE8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EF0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EF8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F00 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F08 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F10 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F18 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F20 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F28 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0CFF0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0CFF8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@01250 = 0202020202020202</action>
            <action>audiocpu.mq@01260 = 0202020202020202</action>
            <action>audiocpu.mq@01270 = 0202020202020202</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@04AE = 6000018C</action> <!-- skip ram/rom check -->
            <action> maincpu.mw@0654 = 0006    </action> <!-- disable wait -->
            <action> maincpu.mw@0850 = 0006    </action> <!-- disable wait -->
            <action>audiocpu.mw@0C6B = 5518    </action> <!-- skip ram/rom check -->
        </script>
        <script state="off">
            <action> maincpu.md@04AE = 207C0000</action>
            <action> maincpu.mw@0654 = FFFC    </action>
            <action> maincpu.mw@0850 = FFFC    </action>
            <action>audiocpu.mw@0C6B = 0021    </action>
        </script>
    </cheat>

</mamecheat>
tnextspc2.xml

Code: Select all

<!-- The Next Space (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.md@146DE = 4EB803D0</action> <!-- enemy -->
            <action>maincpu.md@1477C = 4EB803D0</action> <!-- boss -->
            <action>maincpu.md@14A94 = 4EB803D0</action> <!-- bullet -->
            <!-- check routine -->
            <action>maincpu.mq@003D0 = B3FC000722406304</action>
            <action>maincpu.mq@003D8 = 4A2900184E75FFFF</action>
            <!--
            03D0 | B3FC 0007 2240 : cmpa.l  #$72240, A1
            03D6 | 6304           : bls     $3dc
            03D8 | 4A29 0018      : tst.b   ($18,A1)
            03DC | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@146DE = 4A290018        </action>
            <action>maincpu.md@1477C = 4A290018        </action>
            <action>maincpu.md@14A94 = 4A290018        </action>
            <action>maincpu.mq@003D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@003D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mq@01988 = 0828000400294E71</action> <!-- btst #$4,($29,A0) / nop -->
            <action>maincpu.mb@019AB = 02              </action> <!-- enable to fire mainshot and subweapon -->
            <action>maincpu.mq@019B0 = 0828000500294E71</action> <!-- btst #$5,($29,A0) / nop -->
            <!-- P2 -->
            <action>maincpu.mq@019F8 = 0828000400294E71</action> <!-- btst #$4,($29,A0) / nop -->
            <action>maincpu.mb@01A1B = 02              </action> <!-- enable to fire mainshot and subweapon -->
            <action>maincpu.mq@01A20 = 0828000500294E71</action> <!-- btst #$5,($29,A0) / nop -->
            <!-- sub unit (weapon H) -->
            <action>maincpu.mq@165A0 = 0829000500294E71</action> <!-- btst #$5,($29,A1) / nop -->
        </script>
        <script state="off">
            <action>maincpu.mq@01988 = 024000030C400002</action>
            <action>maincpu.mb@019AB = 1E              </action>
            <action>maincpu.mq@019B0 = 024000030C400002</action>
            <action>maincpu.mq@01AF8 = 024000030C400002</action>
            <action>maincpu.mb@01A1B = 1E              </action>
            <action>maincpu.mq@01A20 = 024000030C400002</action>
            <action>maincpu.mq@165A0 = 024000030C400002</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@2C16 = 4EB803E0        </action> <!-- x position -->
            <action>maincpu.md@2C20 = 4EB803F0        </action> <!-- y position -->
            <action>maincpu.mq@03E0 = 7401103100006706</action>
            <action>maincpu.mq@03E8 = 6A02440210024E75</action>
            <action>maincpu.mq@03F0 = 7401123110006706</action>
            <action>maincpu.mq@03F8 = 6A02440212024E75</action>
            <!--
            03E0 | 74xx      : moveq   #$xx, D2       // x position
            03E2 | 1031 0000 : move.b  (A1,D0.w), D0
            03E6 | 6706      : beq     $3ee
            03E8 | 6A02      : bpl     $3ec
            03EA | 4402      : neg.b   D2
            03EC | 1002      : move.b  D2, D0
            03EE | 4E75      : rts
            03F0 | 74xx      : moveq   #$xx, D2       // y position
            03F2 | 1231 1000 : move.b  (A1,D1.w), D1
            03F6 | 6706      : beq     $3fe
            03F8 | 6A02      : bpl     $3fc
            03FA | 4402      : neg.b   D2
            03FC | 1202      : move.b  D2, D1
            03FE | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@03E1 = param</action>
            <action>maincpu.mb@03F1 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2C16 = 10310000        </action>
            <action>maincpu.md@2C20 = 12311000        </action>
            <action>maincpu.mq@03E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x0c">02       </item>
            <item value="0x10">03       </item>
            <item value="0x14">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@12A85 =  param</action> <!-- speed -->
            <action>maincpu.mb@12A93 = -param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@12A85 = 0C</action>
            <action>maincpu.mb@12A93 = F4</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@0089C = 4EF900019D10303C</action>
            <action>maincpu.mq@19D10 = 41F90007000043F9</action>
            <action>maincpu.mq@19D18 = 000F000912001039</action>
            <action>maincpu.mq@19D20 = 000E0001B20067F4</action>
            <action>maincpu.mq@19D28 = 0C0000FB66025310</action>
            <action>maincpu.mq@19D30 = 0C0000F766025210</action>
            <action>maincpu.mq@19D38 = 0C0000FD66040410</action>
            <action>maincpu.mq@19D40 = 00100C0000FE6604</action>
            <action>maincpu.mq@19D48 = 061000100C0000EF</action>
            <action>maincpu.mq@19D50 = 660212900C0000DF</action>
            <action>maincpu.mq@19D58 = 6602421160BEFFFF</action>
            <!--
            19D10 | 41F9 0007 0000 : lea     $70000.l, A0 // sound code address
            19D16 | 43F9 000F 0009 : lea     $f0009.l, A1 // sound latch address
            19D1C | 1200           : move.b  D0, D1
            19D1E | 1039 000E 0001 : move.b  $e0001.l, D0 // read input
            19D24 | B200           : cmp.b   D0, D1
            19D26 | 67F4           : beq     $19d1c
            19D28 | 0C00 00FB      : cmpi.b  #-$5, D0
            19D2C | 6602           : bne     $19d30
            19D2E | 5310           : subq.b  #1, (A0)     // decrase code -01
            19D30 | 0C00 00F7      : cmpi.b  #-$9, D0
            19D34 | 6602           : bne     $19d38
            19D36 | 5210           : addq.b  #1, (A0)     // increase code +01
            19D38 | 0C00 00FD      : cmpi.b  #-$3, D0
            19D3C | 6604           : bne     $19d42
            19D3E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            19D42 | 0C00 00FE      : cmpi.b  #-$2, D0
            19D46 | 6604           : bne     $19d4c
            19D48 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            19D4C | 0C00 00EF      : cmpi.b  #-$11, D0
            19D50 | 6602           : bne     $19d54
            19D52 | 1290           : move.b  (A0), (A1)   // play sound
            19D54 | 0C00 00DF      : cmpi.b  #-$21, D0
            19D58 | 6602           : bne     $19d5c
            19D5A | 4211           : clr.b   (A1)         // stop sound
            19D5C | 60BE           : bra     $19d1c
            -->
            <!-- sound code check routine -->
            <action>audiocpu.md@08CB = 00CFF0CD        </action>
            <action>audiocpu.mq@CFF0 = 5F0000CAA7F8003A</action>
            <action>audiocpu.mq@CFF8 = FFFFC97BF11632AF</action>
            <!--
            CFF0 | 3A 00 F8 : ld   a,($F800)
            CFF3 | A7       : and  a
            CFF4 | CA 00 00 : jp   z,$0000
            CFF7 | 5F       : ld   e,a
            CFF8 | AF       : xor  a
            CFF9 | 32 16 F1 : ld   ($F116),a
            CFFC | 7B       : ld   a,e
            CFFD | C9       : ret
            -->
            <!-- sound code flag table -->
            <action>audiocpu.mq@1250 = 0200000202000202</action>
            <action>audiocpu.mq@1260 = 0002020200000202</action>
            <action>audiocpu.mq@1270 = 0200020002000202</action>
        </script>
        <script state="run">
            <output format="----- the next space 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@70000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@0089C = 207C00022336303C</action>
            <action> maincpu.mq@19EE0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EE8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EF0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EF8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F00 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F08 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F10 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F18 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F20 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F28 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0CFF0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0CFF8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@01250 = 0202020202020202</action>
            <action>audiocpu.mq@01260 = 0202020202020202</action>
            <action>audiocpu.mq@01270 = 0202020202020202</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@04AE = 6000018C</action> <!-- skip ram/rom check -->
            <action> maincpu.mw@0654 = 0006    </action> <!-- disable wait -->
            <action> maincpu.mw@0850 = 0006    </action> <!-- disable wait -->
            <action>audiocpu.mw@0C6B = 5518    </action> <!-- skip ram/rom check -->
        </script>
        <script state="off">
            <action> maincpu.md@04AE = 207C0000</action>
            <action> maincpu.mw@0654 = FFFC    </action>
            <action> maincpu.mw@0850 = FFFC    </action>
            <action>audiocpu.mw@0C6B = 0021    </action>
        </script>
    </cheat>

</mamecheat>
tnextspcj.xml

Code: Select all

<!-- The Next Space (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.md@148BC = 4EB803D0</action> <!-- enemy -->
            <action>maincpu.md@1495A = 4EB803D0</action> <!-- boss -->
            <action>maincpu.md@14C72 = 4EB803D0</action> <!-- bullet -->
            <!-- check routine -->
            <action>maincpu.mq@003D0 = B3FC000722406304</action>
            <action>maincpu.mq@003D8 = 4A2900184E75FFFF</action>
            <!--
            03D0 | B3FC 0007 2240 : cmpa.l  #$72240, A1
            03D6 | 6304           : bls     $3dc
            03D8 | 4A29 0018      : tst.b   ($18,A1)
            03DC | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@148BC = 4A290018        </action>
            <action>maincpu.md@1495A = 4A290018        </action>
            <action>maincpu.md@14C72 = 4A290018        </action>
            <action>maincpu.mq@003D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@003D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mq@019AE = 0828000400294E71</action> <!-- btst #$4,($29,A0) / nop -->
            <action>maincpu.mb@019D1 = 02              </action> <!-- enable to fire mainshot and subweapon -->
            <action>maincpu.mq@019D6 = 0828000500294E71</action> <!-- btst #$5,($29,A0) / nop -->
            <!-- P2 -->
            <action>maincpu.mq@01A1E = 0828000400294E71</action> <!-- btst #$4,($29,A0) / nop -->
            <action>maincpu.mb@01A41 = 02              </action> <!-- enable to fire mainshot and subweapon -->
            <action>maincpu.mq@01A46 = 0828000500294E71</action> <!-- btst #$5,($29,A0) / nop -->
            <!-- sub unit (weapon H) -->
            <action>maincpu.mq@1677E = 0829000500294E71</action> <!-- btst #$5,($29,A1) / nop -->
        </script>
        <script state="off">
            <action>maincpu.mq@019AE = 024000030C400002</action>
            <action>maincpu.mb@019D1 = 1E              </action>
            <action>maincpu.mq@019D6 = 024000030C400002</action>
            <action>maincpu.mq@01A1E = 024000030C400002</action>
            <action>maincpu.mb@01A41 = 1E              </action>
            <action>maincpu.mq@01A46 = 024000030C400002</action>
            <action>maincpu.mq@1677E = 024000030C400002</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@2C48 = 4EB803E0        </action> <!-- x position -->
            <action>maincpu.md@2C52 = 4EB803F0        </action> <!-- y position -->
            <action>maincpu.mq@03E0 = 7401103100006706</action>
            <action>maincpu.mq@03E8 = 6A02440210024E75</action>
            <action>maincpu.mq@03F0 = 7401123110006706</action>
            <action>maincpu.mq@03F8 = 6A02440212024E75</action>
            <!--
            03E0 | 74xx      : moveq   #$xx, D2       // x position
            03E2 | 1031 0000 : move.b  (A1,D0.w), D0
            03E6 | 6706      : beq     $3ee
            03E8 | 6A02      : bpl     $3ec
            03EA | 4402      : neg.b   D2
            03EC | 1002      : move.b  D2, D0
            03EE | 4E75      : rts
            03F0 | 74xx      : moveq   #$xx, D2       // y position
            03F2 | 1231 1000 : move.b  (A1,D1.w), D1
            03F6 | 6706      : beq     $3fe
            03F8 | 6A02      : bpl     $3fc
            03FA | 4402      : neg.b   D2
            03FC | 1202      : move.b  D2, D1
            03FE | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@03E1 = param</action>
            <action>maincpu.mb@03F1 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2C48 = 10310000        </action>
            <action>maincpu.md@2C52 = 12311000        </action>
            <action>maincpu.mq@03E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@03F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x0c">02       </item>
            <item value="0x10">03       </item>
            <item value="0x14">04       </item>
            <item value="0x18">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@12C63 =  param</action> <!-- speed -->
            <action>maincpu.mb@12C71 = -param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@12C63 = 0C</action>
            <action>maincpu.mb@12C71 = F4</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@0089C = 4EF900019EE0303C</action>
            <action>maincpu.mq@19EE0 = 41F90007000043F9</action>
            <action>maincpu.mq@19EE8 = 000F000912001039</action>
            <action>maincpu.mq@19EF0 = 000E0001B20067F4</action>
            <action>maincpu.mq@19EF8 = 0C0000FB66025310</action>
            <action>maincpu.mq@19F00 = 0C0000F766025210</action>
            <action>maincpu.mq@19F08 = 0C0000FD66040410</action>
            <action>maincpu.mq@19F10 = 00100C0000FE6604</action>
            <action>maincpu.mq@19F18 = 061000100C0000EF</action>
            <action>maincpu.mq@19F20 = 660212900C0000DF</action>
            <action>maincpu.mq@19F28 = 6602421160BEFFFF</action>
            <!--
            19EE0 | 41F9 0007 0000 : lea     $70000.l, A0 // sound code address
            19EE6 | 43F9 000F 0009 : lea     $f0009.l, A1 // sound latch address
            19EEC | 1200           : move.b  D0, D1
            19EEE | 1039 000E 0001 : move.b  $e0001.l, D0 // read input
            19EF4 | B200           : cmp.b   D0, D1
            19EF6 | 67F4           : beq     $19eec
            19EF8 | 0C00 00FB      : cmpi.b  #-$5, D0
            19EFC | 6602           : bne     $19f00
            19EFE | 5310           : subq.b  #1, (A0)     // decrease code -01
            19F00 | 0C00 00F7      : cmpi.b  #-$9, D0
            19F04 | 6602           : bne     $19f08
            19F06 | 5210           : addq.b  #1, (A0)     // increase code +01
            19F08 | 0C00 00FD      : cmpi.b  #-$3, D0
            19F0C | 6604           : bne     $19f12
            19F0E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            19F12 | 0C00 00FE      : cmpi.b  #-$2, D0
            19F16 | 6604           : bne     $19f1c
            19F18 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            19F1C | 0C00 00EF      : cmpi.b  #-$11, D0
            19F20 | 6602           : bne     $19f24
            19F22 | 1290           : move.b  (A0), (A1)   // play sound
            19F24 | 0C00 00DF      : cmpi.b  #-$21, D0
            19F28 | 6602           : bne     $19f2c
            19F2A | 4211           : clr.b   (A1)         // stop sound
            19F2C | 60BE           : bra     $19eec
            -->
            <!-- sound code check routine -->
            <action>audiocpu.md@08CB = 00CFF0CD        </action>
            <action>audiocpu.mq@CFF0 = 5F0000CAA7F8003A</action>
            <action>audiocpu.mq@CFF8 = FFFFC97BF11632AF</action>
            <!--
            CFF0 | 3A 00 F8 : ld   a,($F800)
            CFF3 | A7       : and  a
            CFF4 | CA 00 00 : jp   z,$0000
            CFF7 | 5F       : ld   e,a
            CFF8 | AF       : xor  a
            CFF9 | 32 16 F1 : ld   ($F116),a
            CFFC | 7B       : ld   a,e
            CFFD | C9       : ret
            -->
            <!-- sound code flag table -->
            <action>audiocpu.mq@1250 = 0200000202000202</action>
            <action>audiocpu.mq@1260 = 0002020200000202</action>
            <action>audiocpu.mq@1270 = 0200020002000202</action>
        </script>
        <script state="run">
            <output format="----- the next space 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@70000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@0089C = 207C0002233C303C</action>
            <action> maincpu.mq@19EE0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EE8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EF0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19EF8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F00 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F08 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F10 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F18 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F20 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@19F28 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0CFF0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0CFF8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@01250 = 0202020202020202</action>
            <action>audiocpu.mq@01260 = 0202020202020202</action>
            <action>audiocpu.mq@01270 = 0202020202020202</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@04AE = 6000018C</action> <!-- skip ram/rom check -->
            <action> maincpu.mw@0654 = 0006    </action> <!-- disable wait -->
            <action> maincpu.mw@0850 = 0006    </action> <!-- disable wait -->
            <action>audiocpu.mw@0C6B = 5518    </action> <!-- skip ram/rom check -->
        </script>
        <script state="off">
            <action> maincpu.md@04AE = 207C0000</action>
            <action> maincpu.mw@0654 = FFFC    </action>
            <action> maincpu.mw@0850 = FFFC    </action>
            <action>audiocpu.mw@0C6B = 0021    </action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : Fixed no sfx stop by sound stop button.
Post Reply