Page 1 of 1

[rastsag2] Nastar/Rastan Saga 2

Posted: Wed Dec 02, 2020 10:04 am
by jman

Code: Select all

<cheat desc="attack speed up">
    <script state="on">
        <action>maincpu.mw@a85c = 0002</action>
        <action>maincpu.mw@a412 = 0002</action>
        <action>maincpu.mw@a61a = 0002</action>
        <action>maincpu.mw@a74c = 0002</action>
    </script>
    <script state="off">
        <action>maincpu.mw@a85c = 0132</action>
        <action>maincpu.mw@a412 = 011a</action>
        <action>maincpu.mw@a61a = 012a</action>
        <action>maincpu.mw@a74c = 0108</action>
    </script>
</cheat>
Attack speed up code seems to work for both players but require more test.

Code: Select all

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.mq@0776a = 4eb90002ee604eba</action>
        <action>maincpu.mq@079ae = 4eb90002ee604eba</action>
        <action>maincpu.mq@2ee60 = 207c00601c2a227c</action>
        <action>maincpu.mq@2ee68 = 00607100082d0005</action>
        <action>maincpu.mq@2ee70 = 04d4661052510c51</action>
        <action>maincpu.mq@2ee78 = 000166064eb90000</action>
        <action>maincpu.mq@2ee80 = 9f2e4e7542514e75</action>
        <!-- 
        0776a | 4eb9 0002 ee60 : jsr     $2ee60.l
        079ae | 4eb9 0002 ee60 : jsr     $2ee60.l
        2ee60 | 207c 0060 1c2a : movea.l #$601c2a,A0
        2ee66 | 227c 0060 7100 : movea.l #$607100,A1
        2ee6c | 082d 0005 04d4 : btst    #$5,($4d4,A5)
        2ee72 | 6610           : bne     $2ee84
        2ee74 | 5251           : addq.w  #$1,(A1)
        2ee76 | 0c51           : cmpi.w  #$1,(A1)
        2ee7a | 6606           : beq     $2ee82
        2ee7c | 4eb9 0000 9f2e : jsr     $9f2e.l
        2ee82 | 4e75           : rts
        2ee84 | 4251           : clr.w   (A1)
        2ee86 | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@0776a = 207c00601c2a4eba</action>
        <action>maincpu.mq@079ae = 207c00601c2a4eba</action>
        <action>maincpu.mq@2ee60 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee68 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee70 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee78 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee80 = ffffffffffffffff</action>
    </script>
</cheat>
This code enables multiple jump in air. The jump distance is depending on the time of pressed jump button from normal jump to moon jump.

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@1094a = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1094a = 6f</action>
    </script>
</cheat>
Also no-hit code. this code seems to work for both players.

Code: Select all

<cheat desc="skip rom check">
    <script state="on">
        <action>maincpu.mw@00bdc = 4e75</action>
    </script>
    <script state="off">
        <action>maincpu.mw@00bdc = 4280</action>
    </script>
</cheat>
But this game has ROM check at boot. So you need to prevent from an error when you use ROM code.

[rastsag2] update

Posted: Mon Dec 27, 2021 11:29 am
by jman
Improved "multiple jump". Now player 2 gets it.

Code: Select all

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.mq@0776a = 4eb90002ee604eba</action> <!-- P1 jump -->
        <action>maincpu.mq@079ae = 4eb90002ee604eba</action> <!-- P1 fall -->
        <action>maincpu.mq@082d6 = 4eb90002ee704eba</action> <!-- P2 jump -->
        <action>maincpu.mq@0851a = 4eb90002ee704eba</action> <!-- P2 fall -->
        <action>maincpu.mq@2ee60 = 41ed1c2a43ed7100</action>
        <action>maincpu.mq@2ee68 = 082d000504d4600e</action>
        <action>maincpu.mq@2ee70 = 41ed1c3e43ed7102</action>
        <action>maincpu.mq@2ee78 = 082d000504d5660e</action>
        <action>maincpu.mq@2ee80 = 4a5166064eb90000</action>
        <action>maincpu.mq@2ee88 = 9f2e52514e754251</action>
        <action>maincpu.mq@2ee90 = 4e75ffffffffffff</action>
        <!--
        2ee60 | 41ed 1c2a      : lea    ($1c2a,A5),A0 // P1
        2ee64 | 43ed 7100      : lea    ($7100,A5),A1
        2ee68 | 082d 0005 04d4 : btst   #$5,($4d4,A5)
        2ee6e | 600e           : bra    $2ee7e
        2ee70 | 41ed 1c3e      : lea    ($1c3e,A5),A0 // P2
        2ee74 | 43ed 7102      : lea    ($7102,A5),A1
        2ee78 | 082d 0005 04d5 : btst   #$5,($4d5,A5)
        2ee7e | 660e           : bne    $2ee8e
        2ee80 | 4a51           : tst.w  (A1)
        2ee82 | 6606           : bne    $2ee8a
        2ee84 | 4eb9 0000 9f2e : jsr    $9f2e.l
        2ee8a | 5251           : addq.w #1,(A1)
        2ee8c | 4e75           : rts
        2ee8e | 4251           : clr.w  (A1)
        2ee90 | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@0776a = 207c00601c2a4eba</action>
        <action>maincpu.mq@079ae = 207c00601c2a4eba</action>
        <action>maincpu.mq@082d6 = 207c00601c3e4eba</action>
        <action>maincpu.mq@0851a = 207c00601c3e4eba</action>
        <action>maincpu.mq@2ee60 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee68 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee70 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee78 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee80 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee88 = ffffffffffffffff</action>
        <action>maincpu.mq@2ee90 = ffffffffffffffff</action>
    </script>
</cheat>
Added "timer speed" and "sound test mode".

Code: Select all

<cheat desc="timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x80">02       </item>
        <item value="0x40">03       </item>
        <item value="0x20">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@6c4f = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@6c4f = 1c</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mq@0402a = 4eb90002ee904eba</action>
        <action>maincpu.mq@2eea0 = 41ed010043f900a0</action>
        <action>maincpu.mq@2eea8 = 0000128012001029</action>
        <action>maincpu.mq@2eeb0 = 0004b20067f40c00</action>
        <action>maincpu.mq@2eeb8 = 00fb660253100c00</action>
        <action>maincpu.mq@2eec0 = 00f7660252100c00</action>
        <action>maincpu.mq@2eec8 = 00fd660404100010</action>
        <action>maincpu.mq@2eed0 = 0c0000fe66040610</action>
        <action>maincpu.mq@2eed8 = 00100c0000ef6604</action>
        <action>maincpu.mq@2eee0 = 1e1060080c0000df</action>
        <action>maincpu.mq@2eee8 = 660842074eb90000</action>
        <action>maincpu.mq@2eef0 = 2d2c60b6ffffffff</action>
        <!--
        2eea0 | 41ed 0100      : lea    ($100,A5),A0 // sound code address
        2eea4 | 43f9 00a0 0000 : lea    $a00000.l,A1 // watchdog and input addresses
        2eeaa | 1280           : move.b D0,(A1)
        2eeac | 1200           : move.b D0,D1
        2eeae | 1029 0004      : move.b ($4,A1),D0   // read input
        2eeb2 | b200           : cmp.b  D0,D1
        2eeb4 | 67f4           : beq    $2eeaa
        2eeb6 | 0c00 00fb      : cmpi.b #-$5,D0
        2eeba | 6602           : bne    $2eebe
        2eebc | 5310           : subq.b #1,(A0)      // decrease code -01
        2eebe | 0c00 00f7      : cmpi.b #-$9,D0
        2eec2 | 6602           : bne    $2eec6
        2eec4 | 5210           : addq.b #1,(A0)      // increase code +01
        2eec6 | 0c00 00fd      : cmpi.b #-$3,D0
        2eeca | 6604           : bne    $2eed0
        2eecc | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        2eed0 | 0c00 00fe      : cmpi.b #-$2,D0
        2eed4 | 6604           : bne    $2eeda
        2eed6 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        2eeda | 0c00 00ef      : cmpi.b #-$11,D0
        2eede | 6604           : bne    $2eee4
        2eee0 | 1e10           : move.b (A0),D7      // play sound
        2eee2 | 6008           : bra    $2eeec
        2eee4 | 0c00 00df      : cmpi.b #-$21,D0
        2eee8 | 6608           : bne    $2eef2
        2eeea | 4207           : clr.b  D7           // stop sound
        2eeec | 4eb9 0000 2d2c : jsr    $2d2c.l
        2eef2 | 60b6           : bra    $2eeaa
        -->
    </script>
    <script state="run">
        <output format="----- rastan saga 2 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="up : increase code +10"                    line="13" align="center" />
        <output format="down : decrease 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@600100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0402a = 3b7c01e01b2a4eba</action>
        <action>maincpu.mq@2eea0 = ffffffffffffffff</action>
        <action>maincpu.mq@2eea8 = ffffffffffffffff</action>
        <action>maincpu.mq@2eeb0 = ffffffffffffffff</action>
        <action>maincpu.mq@2eeb8 = ffffffffffffffff</action>
        <action>maincpu.mq@2eec0 = ffffffffffffffff</action>
        <action>maincpu.mq@2eec8 = ffffffffffffffff</action>
        <action>maincpu.mq@2eed0 = ffffffffffffffff</action>
        <action>maincpu.mq@2eed8 = ffffffffffffffff</action>
        <action>maincpu.mq@2eee0 = ffffffffffffffff</action>
        <action>maincpu.mq@2eee8 = ffffffffffffffff</action>
        <action>maincpu.mq@2eef0 = ffffffffffffffff</action>
    </script>
</cheat>

[nastar]+ Nastar/Rastan Saga 2

Posted: Thu Oct 19, 2023 10:19 am
by jman
nastar.xml

Code: Select all

<!-- Nastar (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1094A = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1094A = 6F</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mw@A85C = 0002</action> <!-- stand -->
            <action>maincpu.mw@A412 = 0002</action> <!-- crouch -->
            <action>maincpu.mw@A61A = 0002</action> <!-- upper attack -->
            <action>maincpu.mw@A74C = 0002</action> <!-- lower attack in jumping -->
        </script>
        <script state="off">
            <action>maincpu.mw@A85C = 0132</action>
            <action>maincpu.mw@A412 = 011A</action>
            <action>maincpu.mw@A61A = 012A</action>
            <action>maincpu.mw@A74C = 0108</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mq@0776A = 4EB90002EE604EBA</action> <!-- P1 jump -->
            <action>maincpu.mq@079AE = 4EB90002EE604EBA</action> <!-- P1 fall -->
            <action>maincpu.mq@082D6 = 4EB90002EE6E4EBA</action> <!-- P2 jump -->
            <action>maincpu.mq@0851A = 4EB90002EE6E4EBA</action> <!-- P2 fall -->
            <action>maincpu.mq@2EE60 = 41ED1C2A43ED7100</action>
            <action>maincpu.mq@2EE68 = 102D04D4600C41ED</action>
            <action>maincpu.mq@2EE70 = 1C3E43ED7102102D</action>
            <action>maincpu.mq@2EE78 = 04D5080000056632</action>
            <action>maincpu.mq@2EE80 = 4A51662C4EB90000</action>
            <action>maincpu.mq@2EE88 = 9F2E08000002660C</action>
            <action>maincpu.mq@2EE90 = 197C0001003008EC</action>
            <action>maincpu.mq@2EE98 = 0006000608000003</action>
            <action>maincpu.mq@2EEA0 = 660A426C003008AC</action>
            <action>maincpu.mq@2EEA8 = 0006000612BC0001</action>
            <action>maincpu.mq@2EEB0 = 4E7542514E75FFFF</action>
            <!--
            2EE60 | 41ED 1C2A      : lea     ($1c2a,A5), A0 // P1
            2EE64 | 43ED 7100      : lea     ($7100,A5), A1
            2EE68 | 102D 04D4      : move.b  ($4d4,A5), D0
            2EE6C | 600C           : bra     $2ee7a
            2EE6E | 41ED 1C3E      : lea     ($1c3e,A5), A0 // P2
            2EE72 | 43ED 7102      : lea     ($7102,A5), A1
            2EE76 | 102D 04D5      : move.b  ($4d5,A5), D0
            2EE7A | 0800 0005      : btst    #$5, D0        // check jump button
            2EE7E | 6632           : bne     $2eeb2
            2EE80 | 4A51           : tst.w   (A1)           // check hold jump button flag
            2EE82 | 662C           : bne     $2eeb0
            2EE84 | 4EB9 0000 9F2E : jsr     $9f2e.l        // initialize jump
            2EE8A | 0800 0002      : btst    #$2, D0
            2EE8E | 660C           : bne     $2ee9c
            2EE90 | 197C 0001 0030 : move.b  #$1, ($30,A4)  // turn to left
            2EE96 | 08EC 0006 0006 : bset    #$6, ($6,A4)
            2EE9C | 0800 0003      : btst    #$3, D0
            2EEA0 | 660A           : bne     $2eeac
            2EEA2 | 426C 0030      : clr.w   ($30,A4)       // turn to right
            2EEA6 | 08AC 0006 0006 : bclr    #$6, ($6,A4)
            2EEAC | 12BC 0001      : move.b  #$1, (A1)      // set hold jump button flag
            2EEB0 | 4E75           : rts
            2EEB2 | 4251           : clr.w   (A1)           // clear hold jump button flag
            2EEB4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0776A = 207C00601C2A4EBA</action>
            <action>maincpu.mq@079AE = 207C00601C2A4EBA</action>
            <action>maincpu.mq@082D6 = 207C00601C3E4EBA</action>
            <action>maincpu.mq@0851A = 207C00601C3E4EBA</action>
            <action>maincpu.mq@2EE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@6BB1 = param</action>
            <action>maincpu.mb@6C4F = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6BB1 = 3C</action>
            <action>maincpu.mb@6C4F = 1C</action>
        </script>
    </cheat>

    <cheat desc="unlock scene select mode">
        <!-- start with 255 lives -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@0D44 = 4E71</action>
            <action>maincpu.mw@5604 = 0002</action>
            <action>maincpu.mw@5690 = 4E71</action>
            <action>maincpu.mw@57B2 = 601C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0D44 = 671A</action>
            <action>maincpu.mw@5604 = 0086</action>
            <action>maincpu.mw@5690 = 6708</action>
            <action>maincpu.mw@57B2 = 661C</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game (F3) to change region</comment>
        <parameter>
            <item value="0x00">rastan saga 2 (japan)</item>
            <item value="0x01">nastar warrior (us)  </item>
            <item value="0x03">nastar (world)       </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3FFFF = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3FFFF = 02</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@04020 = 4EB90002EEC04E71</action>
            <action>maincpu.mq@2EEC0 = 41ED100043F900A0</action>
            <action>maincpu.mq@2EEC8 = 0000128012001029</action>
            <action>maincpu.mq@2EED0 = 0004B20067F40C00</action>
            <action>maincpu.mq@2EED8 = 00FB660253100C00</action>
            <action>maincpu.mq@2EEE0 = 00F7660252100C00</action>
            <action>maincpu.mq@2EEE8 = 00FD660404100010</action>
            <action>maincpu.mq@2EEF0 = 0C0000FE66040610</action>
            <action>maincpu.mq@2EEF8 = 00100C0000EF6604</action>
            <action>maincpu.mq@2EF00 = 1E1060080C0000DF</action>
            <action>maincpu.mq@2EF08 = 660642074EB82D2C</action>
            <action>maincpu.mq@2EF10 = 60B8FFFFFFFFFFFF</action>
            <!--
            2EEC0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($601000)
            2EEC4 | 43F9 00A0 0000 : lea     $a00000.l, A1  // input address
            2EECA | 1280           : move.b  D0, (A1)       // watchdog
            2EECC | 1200           : move.b  D0, D1
            2EECE | 1029 0004      : move.b  ($4,A1), D0    // read input
            2EED2 | B200           : cmp.b   D0, D1
            2EED4 | 67F4           : beq     $2eeca
            2EED6 | 0C00 00FB      : cmpi.b  #-$5, D0
            2EEDA | 6602           : bne     $2eede
            2EEDC | 5310           : subq.b  #1, (A0)       // decrease code -01
            2EEDE | 0C00 00F7      : cmpi.b  #-$9, D0
            2EEE2 | 6602           : bne     $2eee6
            2EEE4 | 5210           : addq.b  #1, (A0)       // increase code +01
            2EEE6 | 0C00 00FD      : cmpi.b  #-$3, D0
            2EEEA | 6604           : bne     $2eef0
            2EEEC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            2EEF0 | 0C00 00FE      : cmpi.b  #-$2, D0
            2EEF4 | 6604           : bne     $2eefa
            2EEF6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2EEFA | 0C00 00EF      : cmpi.b  #-$11, D0
            2EEFE | 6604           : bne     $2ef04
            2EF00 | 1E10           : move.b  (A0), D7       // play sound
            2EF02 | 6008           : bra     $2ef0c
            2EF04 | 0C00 00DF      : cmpi.b  #-$21, D0
            2EF08 | 6606           : bne     $2ef10
            2EF0A | 4207           : clr.b   D7             // stop sound
            2EF0C | 4EB8 2D2C      : jsr     $2d2c.w        // send sound code
            2EF10 | 60B8           : bra     $2eeca
            -->
        </script>
        <script state="run">
            <output format="----- rastan saga 2 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@601000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@04020 = 0C7900000003FFFE</action>
            <action>maincpu.mq@2EEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF10 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0BDC = 4E75</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0BDC = 4280</action>
        </script>
    </cheat>

</mamecheat>
nastarw.xml

Code: Select all

<!-- Nastar Warrior (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1094A = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1094A = 6F</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mw@A85C = 0002</action> <!-- stand -->
            <action>maincpu.mw@A412 = 0002</action> <!-- crouch -->
            <action>maincpu.mw@A61A = 0002</action> <!-- upper attack -->
            <action>maincpu.mw@A74C = 0002</action> <!-- lower attack in jumping -->
        </script>
        <script state="off">
            <action>maincpu.mw@A85C = 0132</action>
            <action>maincpu.mw@A412 = 011A</action>
            <action>maincpu.mw@A61A = 012A</action>
            <action>maincpu.mw@A74C = 0108</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mq@0776A = 4EB90002EE604EBA</action> <!-- P1 jump -->
            <action>maincpu.mq@079AE = 4EB90002EE604EBA</action> <!-- P1 fall -->
            <action>maincpu.mq@082D6 = 4EB90002EE6E4EBA</action> <!-- P2 jump -->
            <action>maincpu.mq@0851A = 4EB90002EE6E4EBA</action> <!-- P2 fall -->
            <action>maincpu.mq@2EE60 = 41ED1C2A43ED7100</action>
            <action>maincpu.mq@2EE68 = 102D04D4600C41ED</action>
            <action>maincpu.mq@2EE70 = 1C3E43ED7102102D</action>
            <action>maincpu.mq@2EE78 = 04D5080000056632</action>
            <action>maincpu.mq@2EE80 = 4A51662C4EB90000</action>
            <action>maincpu.mq@2EE88 = 9F2E08000002660C</action>
            <action>maincpu.mq@2EE90 = 197C0001003008EC</action>
            <action>maincpu.mq@2EE98 = 0006000608000003</action>
            <action>maincpu.mq@2EEA0 = 660A426C003008AC</action>
            <action>maincpu.mq@2EEA8 = 0006000612BC0001</action>
            <action>maincpu.mq@2EEB0 = 4E7542514E75FFFF</action>
            <!--
            2EE60 | 41ED 1C2A      : lea     ($1c2a,A5), A0 // P1
            2EE64 | 43ED 7100      : lea     ($7100,A5), A1
            2EE68 | 102D 04D4      : move.b  ($4d4,A5), D0
            2EE6C | 600C           : bra     $2ee7a
            2EE6E | 41ED 1C3E      : lea     ($1c3e,A5), A0 // P2
            2EE72 | 43ED 7102      : lea     ($7102,A5), A1
            2EE76 | 102D 04D5      : move.b  ($4d5,A5), D0
            2EE7A | 0800 0005      : btst    #$5, D0        // check jump button
            2EE7E | 6632           : bne     $2eeb2
            2EE80 | 4A51           : tst.w   (A1)           // check hold jump button flag
            2EE82 | 662C           : bne     $2eeb0
            2EE84 | 4EB9 0000 9F2E : jsr     $9f2e.l        // initialize jump
            2EE8A | 0800 0002      : btst    #$2, D0
            2EE8E | 660C           : bne     $2ee9c
            2EE90 | 197C 0001 0030 : move.b  #$1, ($30,A4)  // turn to left
            2EE96 | 08EC 0006 0006 : bset    #$6, ($6,A4)
            2EE9C | 0800 0003      : btst    #$3, D0
            2EEA0 | 660A           : bne     $2eeac
            2EEA2 | 426C 0030      : clr.w   ($30,A4)       // turn to right
            2EEA6 | 08AC 0006 0006 : bclr    #$6, ($6,A4)
            2EEAC | 12BC 0001      : move.b  #$1, (A1)      // set hold jump button flag
            2EEB0 | 4E75           : rts
            2EEB2 | 4251           : clr.w   (A1)           // clear hold jump button flag
            2EEB4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0776A = 207C00601C2A4EBA</action>
            <action>maincpu.mq@079AE = 207C00601C2A4EBA</action>
            <action>maincpu.mq@082D6 = 207C00601C3E4EBA</action>
            <action>maincpu.mq@0851A = 207C00601C3E4EBA</action>
            <action>maincpu.mq@2EE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@6BB1 = param</action>
            <action>maincpu.mb@6C4F = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6BB1 = 3C</action>
            <action>maincpu.mb@6C4F = 1C</action>
        </script>
    </cheat>

    <cheat desc="unlock scene select mode">
        <!-- start with 255 lives -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@0D44 = 4E71</action>
            <action>maincpu.mw@5604 = 0002</action>
            <action>maincpu.mw@5690 = 4E71</action>
            <action>maincpu.mw@57B2 = 601C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0D44 = 671A</action>
            <action>maincpu.mw@5604 = 0086</action>
            <action>maincpu.mw@5690 = 6708</action>
            <action>maincpu.mw@57B2 = 661C</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game (F3) to change region</comment>
        <parameter>
            <item value="0x00">rastan saga 2 (japan)</item>
            <item value="0x01">nastar warrior (us)  </item>
            <item value="0x03">nastar (world)       </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3FFFF = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3FFFF = 01</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@04020 = 4EB90002EEC04E71</action>
            <action>maincpu.mq@2EEC0 = 41ED100043F900A0</action>
            <action>maincpu.mq@2EEC8 = 0000128012001029</action>
            <action>maincpu.mq@2EED0 = 0004B20067F40C00</action>
            <action>maincpu.mq@2EED8 = 00FB660253100C00</action>
            <action>maincpu.mq@2EEE0 = 00F7660252100C00</action>
            <action>maincpu.mq@2EEE8 = 00FD660404100010</action>
            <action>maincpu.mq@2EEF0 = 0C0000FE66040610</action>
            <action>maincpu.mq@2EEF8 = 00100C0000EF6604</action>
            <action>maincpu.mq@2EF00 = 1E1060080C0000DF</action>
            <action>maincpu.mq@2EF08 = 660642074EB82D2C</action>
            <action>maincpu.mq@2EF10 = 60B8FFFFFFFFFFFF</action>
            <!--
            2EEC0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($601000)
            2EEC4 | 43F9 00A0 0000 : lea     $a00000.l, A1  // input address
            2EECA | 1280           : move.b  D0, (A1)       // watchdog
            2EECC | 1200           : move.b  D0, D1
            2EECE | 1029 0004      : move.b  ($4,A1), D0    // read input
            2EED2 | B200           : cmp.b   D0, D1
            2EED4 | 67F4           : beq     $2eeca
            2EED6 | 0C00 00FB      : cmpi.b  #-$5, D0
            2EEDA | 6602           : bne     $2eede
            2EEDC | 5310           : subq.b  #1, (A0)       // decrease code -01
            2EEDE | 0C00 00F7      : cmpi.b  #-$9, D0
            2EEE2 | 6602           : bne     $2eee6
            2EEE4 | 5210           : addq.b  #1, (A0)       // increase code +01
            2EEE6 | 0C00 00FD      : cmpi.b  #-$3, D0
            2EEEA | 6604           : bne     $2eef0
            2EEEC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            2EEF0 | 0C00 00FE      : cmpi.b  #-$2, D0
            2EEF4 | 6604           : bne     $2eefa
            2EEF6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2EEFA | 0C00 00EF      : cmpi.b  #-$11, D0
            2EEFE | 6604           : bne     $2ef04
            2EF00 | 1E10           : move.b  (A0), D7       // play sound
            2EF02 | 6008           : bra     $2ef0c
            2EF04 | 0C00 00DF      : cmpi.b  #-$21, D0
            2EF08 | 6606           : bne     $2ef10
            2EF0A | 4207           : clr.b   D7             // stop sound
            2EF0C | 4EB8 2D2C      : jsr     $2d2c.w        // send sound code
            2EF10 | 60B8           : bra     $2eeca
            -->
        </script>
        <script state="run">
            <output format="----- rastan saga 2 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@601000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@04020 = 0C7900000003FFFE</action>
            <action>maincpu.mq@2EEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF10 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0BDC = 4E75</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0BDC = 4280</action>
        </script>
    </cheat>

</mamecheat>
rastsag2.xml

Code: Select all

<!-- Rastan Saga 2 (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1094A = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1094A = 6F</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mw@A85C = 0002</action> <!-- stand -->
            <action>maincpu.mw@A412 = 0002</action> <!-- crouch -->
            <action>maincpu.mw@A61A = 0002</action> <!-- upper attack -->
            <action>maincpu.mw@A74C = 0002</action> <!-- lower attack in jumping -->
        </script>
        <script state="off">
            <action>maincpu.mw@A85C = 0132</action>
            <action>maincpu.mw@A412 = 011A</action>
            <action>maincpu.mw@A61A = 012A</action>
            <action>maincpu.mw@A74C = 0108</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mq@0776A = 4EB90002EE604EBA</action> <!-- P1 jump -->
            <action>maincpu.mq@079AE = 4EB90002EE604EBA</action> <!-- P1 fall -->
            <action>maincpu.mq@082D6 = 4EB90002EE6E4EBA</action> <!-- P2 jump -->
            <action>maincpu.mq@0851A = 4EB90002EE6E4EBA</action> <!-- P2 fall -->
            <action>maincpu.mq@2EE60 = 41ED1C2A43ED7100</action>
            <action>maincpu.mq@2EE68 = 102D04D4600C41ED</action>
            <action>maincpu.mq@2EE70 = 1C3E43ED7102102D</action>
            <action>maincpu.mq@2EE78 = 04D5080000056632</action>
            <action>maincpu.mq@2EE80 = 4A51662C4EB90000</action>
            <action>maincpu.mq@2EE88 = 9F2E08000002660C</action>
            <action>maincpu.mq@2EE90 = 197C0001003008EC</action>
            <action>maincpu.mq@2EE98 = 0006000608000003</action>
            <action>maincpu.mq@2EEA0 = 660A426C003008AC</action>
            <action>maincpu.mq@2EEA8 = 0006000612BC0001</action>
            <action>maincpu.mq@2EEB0 = 4E7542514E75FFFF</action>
            <!--
            2EE60 | 41ED 1C2A      : lea     ($1c2a,A5), A0 // P1
            2EE64 | 43ED 7100      : lea     ($7100,A5), A1
            2EE68 | 102D 04D4      : move.b  ($4d4,A5), D0
            2EE6C | 600C           : bra     $2ee7a
            2EE6E | 41ED 1C3E      : lea     ($1c3e,A5), A0 // P2
            2EE72 | 43ED 7102      : lea     ($7102,A5), A1
            2EE76 | 102D 04D5      : move.b  ($4d5,A5), D0
            2EE7A | 0800 0005      : btst    #$5, D0        // check jump button
            2EE7E | 6632           : bne     $2eeb2
            2EE80 | 4A51           : tst.w   (A1)           // check hold jump button flag
            2EE82 | 662C           : bne     $2eeb0
            2EE84 | 4EB9 0000 9F2E : jsr     $9f2e.l        // initialize jump
            2EE8A | 0800 0002      : btst    #$2, D0
            2EE8E | 660C           : bne     $2ee9c
            2EE90 | 197C 0001 0030 : move.b  #$1, ($30,A4)  // turn to left
            2EE96 | 08EC 0006 0006 : bset    #$6, ($6,A4)
            2EE9C | 0800 0003      : btst    #$3, D0
            2EEA0 | 660A           : bne     $2eeac
            2EEA2 | 426C 0030      : clr.w   ($30,A4)       // turn to right
            2EEA6 | 08AC 0006 0006 : bclr    #$6, ($6,A4)
            2EEAC | 12BC 0001      : move.b  #$1, (A1)      // set hold jump button flag
            2EEB0 | 4E75           : rts
            2EEB2 | 4251           : clr.w   (A1)           // clear hold jump button flag
            2EEB4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0776A = 207C00601C2A4EBA</action>
            <action>maincpu.mq@079AE = 207C00601C2A4EBA</action>
            <action>maincpu.mq@082D6 = 207C00601C3E4EBA</action>
            <action>maincpu.mq@0851A = 207C00601C3E4EBA</action>
            <action>maincpu.mq@2EE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@6BB1 = param</action>
            <action>maincpu.mb@6C4F = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6BB1 = 3C</action>
            <action>maincpu.mb@6C4F = 1C</action>
        </script>
    </cheat>

    <cheat desc="unlock scene select mode">
        <!-- start with 255 lives -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@0D44 = 4E71</action>
            <action>maincpu.mw@5604 = 0002</action>
            <action>maincpu.mw@5690 = 4E71</action>
            <action>maincpu.mw@57B2 = 601C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0D44 = 671A</action>
            <action>maincpu.mw@5604 = 0086</action>
            <action>maincpu.mw@5690 = 6708</action>
            <action>maincpu.mw@57B2 = 661C</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game (F3) to change region</comment>
        <parameter>
            <item value="0x00">rastan saga 2 (japan)</item>
            <item value="0x01">nastar warrior (us)  </item>
            <item value="0x03">nastar (world)       </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3FFFF = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3FFFF = 00</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@0402A = 4EB90002EEC04EBA</action>
            <action>maincpu.mq@2EEC0 = 41ED100043F900A0</action>
            <action>maincpu.mq@2EEC8 = 0000128012001029</action>
            <action>maincpu.mq@2EED0 = 0004B20067F40C00</action>
            <action>maincpu.mq@2EED8 = 00FB660253100C00</action>
            <action>maincpu.mq@2EEE0 = 00F7660252100C00</action>
            <action>maincpu.mq@2EEE8 = 00FD660404100010</action>
            <action>maincpu.mq@2EEF0 = 0C0000FE66040610</action>
            <action>maincpu.mq@2EEF8 = 00100C0000EF6604</action>
            <action>maincpu.mq@2EF00 = 1E1060080C0000DF</action>
            <action>maincpu.mq@2EF08 = 660642074EB82D2C</action>
            <action>maincpu.mq@2EF10 = 60B8FFFFFFFFFFFF</action>
            <!--
            2EEC0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($601000)
            2EEC4 | 43F9 00A0 0000 : lea     $a00000.l, A1  // input address
            2EECA | 1280           : move.b  D0, (A1)       // watchdog
            2EECC | 1200           : move.b  D0, D1
            2EECE | 1029 0004      : move.b  ($4,A1), D0    // read input
            2EED2 | B200           : cmp.b   D0, D1
            2EED4 | 67F4           : beq     $2eeca
            2EED6 | 0C00 00FB      : cmpi.b  #-$5, D0
            2EEDA | 6602           : bne     $2eede
            2EEDC | 5310           : subq.b  #1, (A0)       // decrease code -01
            2EEDE | 0C00 00F7      : cmpi.b  #-$9, D0
            2EEE2 | 6602           : bne     $2eee6
            2EEE4 | 5210           : addq.b  #1, (A0)       // increase code +01
            2EEE6 | 0C00 00FD      : cmpi.b  #-$3, D0
            2EEEA | 6604           : bne     $2eef0
            2EEEC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            2EEF0 | 0C00 00FE      : cmpi.b  #-$2, D0
            2EEF4 | 6604           : bne     $2eefa
            2EEF6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2EEFA | 0C00 00EF      : cmpi.b  #-$11, D0
            2EEFE | 6604           : bne     $2ef04
            2EF00 | 1E10           : move.b  (A0), D7       // play sound
            2EF02 | 6008           : bra     $2ef0c
            2EF04 | 0C00 00DF      : cmpi.b  #-$21, D0
            2EF08 | 6606           : bne     $2ef10
            2EF0A | 4207           : clr.b   D7             // stop sound
            2EF0C | 4EB8 2D2C      : jsr     $2d2c.w        // send sound code
            2EF10 | 60B8           : bra     $2eeca
            -->
        </script>
        <script state="run">
            <output format="----- rastan saga 2 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@601000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0402A = 3B7C01E01B2A4EBA</action>
            <action>maincpu.mq@2EEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF10 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0BDC = 4E75</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0BDC = 4280</action>
        </script>
    </cheat>

</mamecheat>
  • "multiple jump" : Improved. Now correct direction of face in jumping when you input left or right key.
  • "unlock scene select mode", "region" : Added new.

[nastar]+ Nastar/Nastar Warrior/Rastan Saga 2

Posted: Sun Jul 13, 2025 10:11 am
by jman
nastar.xml

Code: Select all

<!-- Nastar (World) -->
<mamecheat version="1">

    <cheat desc="walk speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x58">03       </item>
            <item value="0x5C">04       </item>
            <item value="0x50">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- 1P -->
            <action>maincpu.mb@7634 = 60</action> <!-- disable boots item (left) -->
            <action>maincpu.mb@7674 = 60</action> <!-- disable boots item (right) -->
            <!-- 2P -->
            <action>maincpu.mb@81A0 = 60</action> <!-- disable boots item (left) -->
            <action>maincpu.mb@81E0 = 60</action> <!-- disable boots item (right) -->
        </script>
        <script state="change">
            <!-- 1P -->
            <action>maincpu.mb@761C = param + 1</action> <!-- left -->
            <action>maincpu.mb@765C = param    </action> <!-- right -->
            <!-- 2P -->
            <action>maincpu.mb@8188 = param + 1</action> <!-- left -->
            <action>maincpu.mb@81C8 = param    </action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@761C = 53</action>
            <action>maincpu.mb@7634 = 67</action>
            <action>maincpu.mb@765C = 52</action>
            <action>maincpu.mb@7674 = 67</action>
            <action>maincpu.mb@8188 = 53</action>
            <action>maincpu.mb@81A0 = 67</action>
            <action>maincpu.mb@81C8 = 52</action>
            <action>maincpu.mb@81E0 = 67</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mq@0776A = 4EB90002EE604EBA</action> <!-- 1P jump -->
            <action>maincpu.mq@079AE = 4EB90002EE604EBA</action> <!-- 1P fall -->
            <action>maincpu.mq@082D6 = 4EB90002EE6A4EBA</action> <!-- 2P jump -->
            <action>maincpu.mq@0851A = 4EB90002EE6A4EBA</action> <!-- 2P fall -->
            <action>maincpu.mq@2EE60 = 41ED1C2A43ED7100</action>
            <action>maincpu.mq@2EE68 = 600841ED1C3E43ED</action>
            <action>maincpu.mq@2EE70 = 7101102993D41200</action>
            <action>maincpu.mq@2EE78 = 141112804601C401</action>
            <action>maincpu.mq@2EE80 = 0802000567284EB9</action>
            <action>maincpu.mq@2EE88 = 00009F2E08000002</action>
            <action>maincpu.mq@2EE90 = 660C397C00010030</action>
            <action>maincpu.mq@2EE98 = 08EC000600060800</action>
            <action>maincpu.mq@2EEA0 = 0003660A426C0030</action>
            <action>maincpu.mq@2EEA8 = 08AC000600064E75</action>
            <!--
            2EE60 | 41ED 1C2A      : lea     ($1c2a,A5), A0  // 1P
            2EE64 | 43ED 7100      : lea     ($7100,A5), A1
            2EE68 | 6008           : bra     $2ee72
            2EE6A | 41ED 1C3E      : lea     ($1c3e,A5), A0  // 2P
            2EE6E | 43ED 7101      : lea     ($7101,A5), A1
            2EE72 | 1029 93D4      : move.b  (-$6c2c,A1), D0 // read input (1P : $604D4, 2P : $604D5)
            2EE76 | 1200           : move.b  D0, D1
            2EE78 | 1411           : move.b  (A1), D2
            2EE7A | 1280           : move.b  D0, (A1)
            2EE7C | 4601           : not.b   D1
            2EE7E | C401           : and.b   D1, D2
            2EE80 | 0802 0005      : btst    #$5, D2         // check jump button
            2EE84 | 6728           : beq     $2eeae
            2EE86 | 4EB9 0000 9F2E : jsr     $9f2e.l         // initialize jump
            2EE8C | 0800 0002      : btst    #$2, D0
            2EE90 | 660C           : bne     $2ee9e
            2EE92 | 397C 0001 0030 : move.w  #$1, ($30,A4)   // turn to left
            2EE98 | 08EC 0006 0006 : bset    #$6, ($6,A4)
            2EE9E | 0800 0003      : btst    #$3, D0
            2EEA2 | 660A           : bne     $2eeae
            2EEA4 | 426C 0030      : clr.w   ($30,A4)        // turn to right
            2EEA8 | 08AC 0006 0006 : bclr    #$6, ($6,A4)
            2EEAE | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0776A = 207C00601C2A4EBA</action>
            <action>maincpu.mq@079AE = 207C00601C2A4EBA</action>
            <action>maincpu.mq@082D6 = 207C00601C3E4EBA</action>
            <action>maincpu.mq@0851A = 207C00601C3E4EBA</action>
            <action>maincpu.mq@2EE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="no jump wait">
        <script state="on">
            <action>maincpu.mb@9F41 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9F41 = 0A</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@04020 = 4EB90002EEB04E71</action>
            <action>maincpu.mq@2EEB0 = 41ED100043F900A0</action>
            <action>maincpu.mq@2EEB8 = 0000128012001029</action>
            <action>maincpu.mq@2EEC0 = 0004B20067F40C00</action>
            <action>maincpu.mq@2EEC8 = 00FB660253100C00</action>
            <action>maincpu.mq@2EED0 = 00F7660252100C00</action>
            <action>maincpu.mq@2EED8 = 00FD660404100010</action>
            <action>maincpu.mq@2EEE0 = 0C0000FE66040610</action>
            <action>maincpu.mq@2EEE8 = 00100C0000EF6604</action>
            <action>maincpu.mq@2EEF0 = 1E1060080C0000DF</action>
            <action>maincpu.mq@2EEF8 = 660642074EB82D2C</action>
            <action>maincpu.mq@2EF00 = 60B8FFFFFFFFFFFF</action>
            <!--
            2EEB0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($601000)
            2EEB4 | 43F9 00A0 0000 : lea     $a00000.l, A1  // watchdog address
            2EEBA | 1280           : move.b  D0, (A1)       // watchdog
            2EEBC | 1200           : move.b  D0, D1
            2EEBE | 1029 0004      : move.b  ($4,A1), D0    // read input ($A00004)
            2EEC2 | B200           : cmp.b   D0, D1
            2EEC4 | 67F4           : beq     $2eeba
            2EEC6 | 0C00 00FB      : cmpi.b  #-$5, D0
            2EECA | 6602           : bne     $2eece
            2EECC | 5310           : subq.b  #1, (A0)       // decrease code -01
            2EECE | 0C00 00F7      : cmpi.b  #-$9, D0
            2EED2 | 6602           : bne     $2eed6
            2EED4 | 5210           : addq.b  #1, (A0)       // increase code +01
            2EED6 | 0C00 00FD      : cmpi.b  #-$3, D0
            2EEDA | 6604           : bne     $2eee0
            2EEDC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            2EEE0 | 0C00 00FE      : cmpi.b  #-$2, D0
            2EEE4 | 6604           : bne     $2eeea
            2EEE6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2EEEA | 0C00 00EF      : cmpi.b  #-$11, D0
            2EEEE | 6604           : bne     $2eef4
            2EEF0 | 1E10           : move.b  (A0), D7       // play sound
            2EEF2 | 6008           : bra     $2eefc
            2EEF4 | 0C00 00DF      : cmpi.b  #-$21, D0
            2EEF8 | 6606           : bne     $2ef00
            2EEFA | 4207           : clr.b   D7             // stop sound
            2EEFC | 4EB8 2D2C      : jsr     $2d2c.w        // send sound code
            2EF00 | 60B8           : bra     $2eeba
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@601000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@04020 = 0C7900000003FFFE</action>
            <action>maincpu.mq@2EEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
nastarw.xml

Code: Select all

<!-- Nastar Warrior (US) -->
<mamecheat version="1">

    <cheat desc="walk speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x58">03       </item>
            <item value="0x5C">04       </item>
            <item value="0x50">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- 1P -->
            <action>maincpu.mb@7634 = 60</action> <!-- disable boots item (left) -->
            <action>maincpu.mb@7674 = 60</action> <!-- disable boots item (right) -->
            <!-- 2P -->
            <action>maincpu.mb@81A0 = 60</action> <!-- disable boots item (left) -->
            <action>maincpu.mb@81E0 = 60</action> <!-- disable boots item (right) -->
        </script>
        <script state="change">
            <!-- 1P -->
            <action>maincpu.mb@761C = param + 1</action> <!-- left -->
            <action>maincpu.mb@765C = param    </action> <!-- right -->
            <!-- 2P -->
            <action>maincpu.mb@8188 = param + 1</action> <!-- left -->
            <action>maincpu.mb@81C8 = param    </action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@761C = 53</action>
            <action>maincpu.mb@7634 = 67</action>
            <action>maincpu.mb@765C = 52</action>
            <action>maincpu.mb@7674 = 67</action>
            <action>maincpu.mb@8188 = 53</action>
            <action>maincpu.mb@81A0 = 67</action>
            <action>maincpu.mb@81C8 = 52</action>
            <action>maincpu.mb@81E0 = 67</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mq@0776A = 4EB90002EE604EBA</action> <!-- 1P jump -->
            <action>maincpu.mq@079AE = 4EB90002EE604EBA</action> <!-- 1P fall -->
            <action>maincpu.mq@082D6 = 4EB90002EE6A4EBA</action> <!-- 2P jump -->
            <action>maincpu.mq@0851A = 4EB90002EE6A4EBA</action> <!-- 2P fall -->
            <action>maincpu.mq@2EE60 = 41ED1C2A43ED7100</action>
            <action>maincpu.mq@2EE68 = 600841ED1C3E43ED</action>
            <action>maincpu.mq@2EE70 = 7101102993D41200</action>
            <action>maincpu.mq@2EE78 = 141112804601C401</action>
            <action>maincpu.mq@2EE80 = 0802000567284EB9</action>
            <action>maincpu.mq@2EE88 = 00009F2E08000002</action>
            <action>maincpu.mq@2EE90 = 660C397C00010030</action>
            <action>maincpu.mq@2EE98 = 08EC000600060800</action>
            <action>maincpu.mq@2EEA0 = 0003660A426C0030</action>
            <action>maincpu.mq@2EEA8 = 08AC000600064E75</action>
            <!--
            2EE60 | 41ED 1C2A      : lea     ($1c2a,A5), A0  // 1P
            2EE64 | 43ED 7100      : lea     ($7100,A5), A1
            2EE68 | 6008           : bra     $2ee72
            2EE6A | 41ED 1C3E      : lea     ($1c3e,A5), A0  // 2P
            2EE6E | 43ED 7101      : lea     ($7101,A5), A1
            2EE72 | 1029 93D4      : move.b  (-$6c2c,A1), D0 // read input (1P : $604D4, 2P : $604D5)
            2EE76 | 1200           : move.b  D0, D1
            2EE78 | 1411           : move.b  (A1), D2
            2EE7A | 1280           : move.b  D0, (A1)
            2EE7C | 4601           : not.b   D1
            2EE7E | C401           : and.b   D1, D2
            2EE80 | 0802 0005      : btst    #$5, D2         // check jump button
            2EE84 | 6728           : beq     $2eeae
            2EE86 | 4EB9 0000 9F2E : jsr     $9f2e.l         // initialize jump
            2EE8C | 0800 0002      : btst    #$2, D0
            2EE90 | 660C           : bne     $2ee9e
            2EE92 | 397C 0001 0030 : move.w  #$1, ($30,A4)   // turn to left
            2EE98 | 08EC 0006 0006 : bset    #$6, ($6,A4)
            2EE9E | 0800 0003      : btst    #$3, D0
            2EEA2 | 660A           : bne     $2eeae
            2EEA4 | 426C 0030      : clr.w   ($30,A4)        // turn to right
            2EEA8 | 08AC 0006 0006 : bclr    #$6, ($6,A4)
            2EEAE | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0776A = 207C00601C2A4EBA</action>
            <action>maincpu.mq@079AE = 207C00601C2A4EBA</action>
            <action>maincpu.mq@082D6 = 207C00601C3E4EBA</action>
            <action>maincpu.mq@0851A = 207C00601C3E4EBA</action>
            <action>maincpu.mq@2EE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="no jump wait">
        <script state="on">
            <action>maincpu.mb@9F41 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9F41 = 0A</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@04020 = 4EB90002EEB04E71</action>
            <action>maincpu.mq@2EEB0 = 41ED100043F900A0</action>
            <action>maincpu.mq@2EEB8 = 0000128012001029</action>
            <action>maincpu.mq@2EEC0 = 0004B20067F40C00</action>
            <action>maincpu.mq@2EEC8 = 00FB660253100C00</action>
            <action>maincpu.mq@2EED0 = 00F7660252100C00</action>
            <action>maincpu.mq@2EED8 = 00FD660404100010</action>
            <action>maincpu.mq@2EEE0 = 0C0000FE66040610</action>
            <action>maincpu.mq@2EEE8 = 00100C0000EF6604</action>
            <action>maincpu.mq@2EEF0 = 1E1060080C0000DF</action>
            <action>maincpu.mq@2EEF8 = 660642074EB82D2C</action>
            <action>maincpu.mq@2EF00 = 60B8FFFFFFFFFFFF</action>
            <!--
            2EEB0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($601000)
            2EEB4 | 43F9 00A0 0000 : lea     $a00000.l, A1  // watchdog address
            2EEBA | 1280           : move.b  D0, (A1)       // watchdog
            2EEBC | 1200           : move.b  D0, D1
            2EEBE | 1029 0004      : move.b  ($4,A1), D0    // read input ($A00004)
            2EEC2 | B200           : cmp.b   D0, D1
            2EEC4 | 67F4           : beq     $2eeba
            2EEC6 | 0C00 00FB      : cmpi.b  #-$5, D0
            2EECA | 6602           : bne     $2eece
            2EECC | 5310           : subq.b  #1, (A0)       // decrease code -01
            2EECE | 0C00 00F7      : cmpi.b  #-$9, D0
            2EED2 | 6602           : bne     $2eed6
            2EED4 | 5210           : addq.b  #1, (A0)       // increase code +01
            2EED6 | 0C00 00FD      : cmpi.b  #-$3, D0
            2EEDA | 6604           : bne     $2eee0
            2EEDC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            2EEE0 | 0C00 00FE      : cmpi.b  #-$2, D0
            2EEE4 | 6604           : bne     $2eeea
            2EEE6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2EEEA | 0C00 00EF      : cmpi.b  #-$11, D0
            2EEEE | 6604           : bne     $2eef4
            2EEF0 | 1E10           : move.b  (A0), D7       // play sound
            2EEF2 | 6008           : bra     $2eefc
            2EEF4 | 0C00 00DF      : cmpi.b  #-$21, D0
            2EEF8 | 6606           : bne     $2ef00
            2EEFA | 4207           : clr.b   D7             // stop sound
            2EEFC | 4EB8 2D2C      : jsr     $2d2c.w        // send sound code
            2EF00 | 60B8           : bra     $2eeba
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@601000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@04020 = 0C7900000003FFFE</action>
            <action>maincpu.mq@2EEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0BDC = 4E75</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0BDC = 4280</action>
        </script>
    </cheat>

</mamecheat>
rastsag2.xml

Code: Select all

<!-- Rastan Saga 2 (Japan) -->
<mamecheat version="1">

    <cheat desc="walk speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x58">03       </item>
            <item value="0x5C">04       </item>
            <item value="0x50">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- 1P -->
            <action>maincpu.mb@7634 = 60</action> <!-- disable boots item (left) -->
            <action>maincpu.mb@7674 = 60</action> <!-- disable boots item (right) -->
            <!-- 2P -->
            <action>maincpu.mb@81A0 = 60</action> <!-- disable boots item (left) -->
            <action>maincpu.mb@81E0 = 60</action> <!-- disable boots item (right) -->
        </script>
        <script state="change">
            <!-- 1P -->
            <action>maincpu.mb@761C = param + 1</action> <!-- left -->
            <action>maincpu.mb@765C = param    </action> <!-- right -->
            <!-- 2P -->
            <action>maincpu.mb@8188 = param + 1</action> <!-- left -->
            <action>maincpu.mb@81C8 = param    </action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@761C = 53</action>
            <action>maincpu.mb@7634 = 67</action>
            <action>maincpu.mb@765C = 52</action>
            <action>maincpu.mb@7674 = 67</action>
            <action>maincpu.mb@8188 = 53</action>
            <action>maincpu.mb@81A0 = 67</action>
            <action>maincpu.mb@81C8 = 52</action>
            <action>maincpu.mb@81E0 = 67</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mq@0776A = 4EB90002EE604EBA</action> <!-- 1P jump -->
            <action>maincpu.mq@079AE = 4EB90002EE604EBA</action> <!-- 1P fall -->
            <action>maincpu.mq@082D6 = 4EB90002EE6A4EBA</action> <!-- 2P jump -->
            <action>maincpu.mq@0851A = 4EB90002EE6A4EBA</action> <!-- 2P fall -->
            <action>maincpu.mq@2EE60 = 41ED1C2A43ED7100</action>
            <action>maincpu.mq@2EE68 = 600841ED1C3E43ED</action>
            <action>maincpu.mq@2EE70 = 7101102993D41200</action>
            <action>maincpu.mq@2EE78 = 141112804601C401</action>
            <action>maincpu.mq@2EE80 = 0802000567284EB9</action>
            <action>maincpu.mq@2EE88 = 00009F2E08000002</action>
            <action>maincpu.mq@2EE90 = 660C397C00010030</action>
            <action>maincpu.mq@2EE98 = 08EC000600060800</action>
            <action>maincpu.mq@2EEA0 = 0003660A426C0030</action>
            <action>maincpu.mq@2EEA8 = 08AC000600064E75</action>
            <!--
            2EE60 | 41ED 1C2A      : lea     ($1c2a,A5), A0  // 1P
            2EE64 | 43ED 7100      : lea     ($7100,A5), A1
            2EE68 | 6008           : bra     $2ee72
            2EE6A | 41ED 1C3E      : lea     ($1c3e,A5), A0  // 2P
            2EE6E | 43ED 7101      : lea     ($7101,A5), A1
            2EE72 | 1029 93D4      : move.b  (-$6c2c,A1), D0 // read input (1P : $604D4, 2P : $604D5)
            2EE76 | 1200           : move.b  D0, D1
            2EE78 | 1411           : move.b  (A1), D2
            2EE7A | 1280           : move.b  D0, (A1)
            2EE7C | 4601           : not.b   D1
            2EE7E | C401           : and.b   D1, D2
            2EE80 | 0802 0005      : btst    #$5, D2         // check jump button
            2EE84 | 6728           : beq     $2eeae
            2EE86 | 4EB9 0000 9F2E : jsr     $9f2e.l         // initialize jump
            2EE8C | 0800 0002      : btst    #$2, D0
            2EE90 | 660C           : bne     $2ee9e
            2EE92 | 397C 0001 0030 : move.w  #$1, ($30,A4)   // turn to left
            2EE98 | 08EC 0006 0006 : bset    #$6, ($6,A4)
            2EE9E | 0800 0003      : btst    #$3, D0
            2EEA2 | 660A           : bne     $2eeae
            2EEA4 | 426C 0030      : clr.w   ($30,A4)        // turn to right
            2EEA8 | 08AC 0006 0006 : bclr    #$6, ($6,A4)
            2EEAE | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0776A = 207C00601C2A4EBA</action>
            <action>maincpu.mq@079AE = 207C00601C2A4EBA</action>
            <action>maincpu.mq@082D6 = 207C00601C3E4EBA</action>
            <action>maincpu.mq@0851A = 207C00601C3E4EBA</action>
            <action>maincpu.mq@2EE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="no jump wait">
        <script state="on">
            <action>maincpu.mb@9F41 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9F41 = 0A</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@0402A = 4EB90002EEB04EBA</action>
            <action>maincpu.mq@2EEB0 = 41ED100043F900A0</action>
            <action>maincpu.mq@2EEB8 = 0000128012001029</action>
            <action>maincpu.mq@2EEC0 = 0004B20067F40C00</action>
            <action>maincpu.mq@2EEC8 = 00FB660253100C00</action>
            <action>maincpu.mq@2EED0 = 00F7660252100C00</action>
            <action>maincpu.mq@2EED8 = 00FD660404100010</action>
            <action>maincpu.mq@2EEE0 = 0C0000FE66040610</action>
            <action>maincpu.mq@2EEE8 = 00100C0000EF6604</action>
            <action>maincpu.mq@2EEF0 = 1E1060080C0000DF</action>
            <action>maincpu.mq@2EEF8 = 660642074EB82D2C</action>
            <action>maincpu.mq@2EF00 = 60B8FFFFFFFFFFFF</action>
            <!--
            2EEB0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($601000)
            2EEB4 | 43F9 00A0 0000 : lea     $a00000.l, A1  // watchdog address
            2EEBA | 1280           : move.b  D0, (A1)       // watchdog
            2EEBC | 1200           : move.b  D0, D1
            2EEBE | 1029 0004      : move.b  ($4,A1), D0    // read input ($A00004)
            2EEC2 | B200           : cmp.b   D0, D1
            2EEC4 | 67F4           : beq     $2eeba
            2EEC6 | 0C00 00FB      : cmpi.b  #-$5, D0
            2EECA | 6602           : bne     $2eece
            2EECC | 5310           : subq.b  #1, (A0)       // decrease code -01
            2EECE | 0C00 00F7      : cmpi.b  #-$9, D0
            2EED2 | 6602           : bne     $2eed6
            2EED4 | 5210           : addq.b  #1, (A0)       // increase code +01
            2EED6 | 0C00 00FD      : cmpi.b  #-$3, D0
            2EEDA | 6604           : bne     $2eee0
            2EEDC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            2EEE0 | 0C00 00FE      : cmpi.b  #-$2, D0
            2EEE4 | 6604           : bne     $2eeea
            2EEE6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2EEEA | 0C00 00EF      : cmpi.b  #-$11, D0
            2EEEE | 6604           : bne     $2eef4
            2EEF0 | 1E10           : move.b  (A0), D7       // play sound
            2EEF2 | 6008           : bra     $2eefc
            2EEF4 | 0C00 00DF      : cmpi.b  #-$21, D0
            2EEF8 | 6606           : bne     $2ef00
            2EEFA | 4207           : clr.b   D7             // stop sound
            2EEFC | 4EB8 2D2C      : jsr     $2d2c.w        // send sound code
            2EF00 | 60B8           : bra     $2eeba
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@601000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0402A = 3B7C01E01B2A4EBA</action>
            <action>maincpu.mq@2EEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2EF00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "walk speed" : Added new.
  • "multiple jump" : Rewritten routine.
  • "no jump wait" : Added new. This game has "wait" between pressing jump button and starting jump. This code ignores "wait" so that character jumps soon.
  • "sound test mode" : Adjusted address and fixed comment.