[rastsag2] Nastar/Rastan Saga 2

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

[rastsag2] Nastar/Rastan Saga 2

Post 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.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[rastsag2] update

Post 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>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[nastar]+ Nastar/Rastan Saga 2

Post 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.
Post Reply