[marioj] Mario Bros.

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

[marioj] Mario Bros.

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@53e7 = d2</action> <!-- enemy -->
        <action>maincpu.mb@53eb = d2</action> <!-- fireball 1 -->
        <action>maincpu.mb@247f = 18</action> <!-- fireball 2 -->
        <action>maincpu.mb@11fe = 18</action> <!-- fireball 3 -->
        <action>maincpu.mb@2496 = c9</action> <!-- ice 1 -->
        <action>maincpu.mb@1a2e = c9</action> <!-- ice 2 -->
    </script>
    <script state="off">
        <action>maincpu.mb@53e7 = 8d</action>
        <action>maincpu.mb@53eb = 8d</action>
        <action>maincpu.mb@247f = 28</action>
        <action>maincpu.mb@11fe = 28</action>
        <action>maincpu.mb@2496 = c0</action>
        <action>maincpu.mb@1a2e = d8</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="on">
        <action>maincpu.md@0493 = dd000006</action>
    </script>
    <script state="change">
        <action>maincpu.mb@0494 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@0493 = dd0646dd</action>
    </script>
</cheat>

<cheat desc="slip level">
    <parameter>
        <item value="0x01">no slip  </item>
        <item value="0x10">01       </item>
        <item value="0x20">02       </item>
        <item value="0x40">03       </item>
        <item value="0x80">04       </item>
        <item value="0xff">long slip</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@041f = param</action> <!-- normal floor -->
        <action>maincpu.mb@043b = param</action> <!-- ice floor -->
        <action>maincpu.mb@0cbe = param</action> <!-- bonus floor -->
    </script>
    <script state="off">
        <action>maincpu.mb@041f = 0a</action>
        <action>maincpu.mb@043b = 16</action>
        <action>maincpu.mb@0cbe = 19</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.md@038f =         4ff740cd</action>
        <action>maincpu.mq@f740 = 062880e64f127edd</action>
        <action>maincpu.mq@f748 = 7edd0177dd7fe679</action>
        <action>maincpu.mw@f750 =             c901</action>
        <!--
        038F | cd 40 f7    : call $f740
        f740 | dd 7e 12    : ld   a,(ix+$12)
        f743 | 4f          : ld   c,a
        f744 | e6 80       : and  $80
        f746 | 28 06       : jr   z,$F74e
        f748 | 79          : ld   a,c
        f749 | e6 7f       : and  $7f
        f74b | dd 77 01    : ld   (ix+$01),a
        f74e | dd 7e 01    : ld   a,(ix+$01)
        f751 | C9          : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.md@038f =         4f017edd</action>
        <action>maincpu.mq@f740 = ffffffffffffffff</action>
        <action>maincpu.mq@f748 = ffffffffffffffff</action>
        <action>maincpu.mw@f750 =             ffff</action>
    </script>
</cheat>
"no hit" code is improved version of current "invincibility" because it doesn't take care of any ice enemies. But I give up testing to phase 25 so that "no hit" code doesn't work correctly when new enemy appears in later phase.
jman
Posts: 901
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[marioj] Mario Bros. (update)

Post by jman »

Code: Select all

<!-- Mario Bros. (Japan, Revision C) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11fe = 18</action> <!-- fireball -->
            <action>maincpu.mb@1a2e = c9</action> <!-- ice -->
            <action>maincpu.mb@247f = 18</action> <!-- fireball -->
            <action>maincpu.mb@2496 = c9</action> <!-- ice -->
            <action>maincpu.mb@53e7 = d2</action> <!-- enemy -->
            <action>maincpu.mb@53eb = d2</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11fe = 28</action>
            <action>maincpu.mb@1a2e = d8</action>
            <action>maincpu.mb@247f = 28</action>
            <action>maincpu.mb@2496 = c0</action>
            <action>maincpu.mb@53e7 = 8d</action>
            <action>maincpu.mb@53eb = 8d</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0493 =         ddf740cd</action>
            <action>maincpu.mq@f740 = 0cfe600a3a0646dd</action>
            <action>maincpu.mq@f748 = ffffffffc90006c0</action>
            <!--
            f740 | dd 46 06 : ld  b,(ix+$06)
            f743 | 3a 0a 60 : ld  a,($600A)
            f746 | fe 0c    : cp  $0C
            f748 | c0       : ret nz
            f749 | 06 xx    : ld  b,$xx
            f74b | c9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@f74a = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0493 =         dd0646dd</action>
            <action>maincpu.mq@f740 = ffffffffffffffff</action>
            <action>maincpu.mq@f748 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="slip level">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041e =         28f750cd</action> <!-- normal floor -->
            <action>maincpu.md@043a =         28f754cd</action> <!-- ice floor -->
            <action>maincpu.md@043f =         28f754cd</action> <!-- ice floor -->
            <action>maincpu.mq@f750 = 3af5161602180a16</action>
            <action>maincpu.mq@f758 = 001602200cfe600a</action>
            <action>maincpu.mq@f760 = ffffffffffc93df1</action>
            <!--
            f750 | 16 0a    : ld   d,$0A
            f752 | 18 02    : jr   $F756
            f754 | 16 16    : ld   d,$16
            f756 | f5       : push af
            f757 | 3a 0a 60 : ld   a,($600A)
            f75a | fe 0c    : cp   $0C
            f75c | 20 02    : jr   nz,$F760
            f75e | 16 xx    : ld   d,$xx
            f760 | f1       : pop  af
            f761 | 3d       : dec  a
            f762 | c9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@f75f = param</action>
            <action>maincpu.mb@0cbe = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041e =         283d0a16</action>
            <action>maincpu.md@043a =         283d1616</action>
            <action>maincpu.md@043f =         283d1616</action>
            <action>maincpu.mq@f750 = ffffffffffffffff</action>
            <action>maincpu.mq@f758 = ffffffffffffffff</action>
            <action>maincpu.mq@f760 = ffffffffffffffff</action>
            <action>maincpu.mb@0cbe =               19</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mw@0345 =             f770</action>
            <action>maincpu.mq@f770 = 600a3ac8a7007edd</action>
            <action>maincpu.mq@f778 = cb127edd0c200cfe</action>
            <action>maincpu.mq@f780 = 0177ddbfcb05287f</action>
            <action>maincpu.mq@f788 = ffffffffff038fc3</action>
            <!--
            f770 | dd 7e 00 : ld  a,(ix+$00)
            f773 | a7       : and a
            f774 | c8       : ret z
            f775 | 3a 0a 60 : ld  a,($600A)
            f778 | fe 0c    : cp  $0C
            f77a | 20 0c    : jr  nz,$F788
            f77c | dd 7e 12 : ld  a,(ix+$12)
            f77f | cb 7f    : bit 7,a
            f781 | 28 05    : jr  z,$F788
            f783 | cb bf    : res 7,a
            f785 | dd 77 01 : ld  (ix+$01),a
            f788 | c3 8f 03 : jp  $038F
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0345 =             f770</action>
            <action>maincpu.mq@f770 = ffffffffffffffff</action>
            <action>maincpu.mq@f778 = ffffffffffffffff</action>
            <action>maincpu.mq@f780 = ffffffffffffffff</action>
            <action>maincpu.mq@f788 = ffffffffffffffff</action>
        </script>
    </cheat>

</mamecheat>
"player speed", "slip level", "multiple jump" : previous codes works even in title and intermission. So Mario and Luigi move strangely in there scenes. New codes fix it.
jman
Posts: 901
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[mario]+ Mario Bros.

Post by jman »

mario.xml

Code: Select all

<!-- Mario Bros. (US, Revision G) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11F3 = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A36 = C9</action> <!-- ice -->
            <action>maincpu.mb@2487 = 18</action> <!-- fireball -->
            <action>maincpu.mb@249E = C9</action> <!-- ice -->
            <action>maincpu.mb@53AF = 9A</action> <!-- enemy -->
            <action>maincpu.mb@53B3 = 9A</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11FE = 28</action>
            <action>maincpu.mb@1A2E = D8</action>
            <action>maincpu.mb@247F = 28</action>
            <action>maincpu.mb@2496 = C0</action>
            <action>maincpu.mb@53E7 = 55</action>
            <action>maincpu.mb@53EB = 55</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0494 = DDF710CD        </action>
            <action>maincpu.mq@F710 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F718 = FFFFFFFFC90006C0</action>
            <!--
            F710 | DD 46 06 : ld   b,(ix+$06)
            F713 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F716 | FE 0C    : cp   $0C
            F718 | C0       : ret  nz
            F719 | 06 xx    : ld   b,$xx
            F71B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F71A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0494 = DD0646DD        </action>
            <action>maincpu.mq@F710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F718 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041F = 28F720CD        </action> <!-- normal floor -->
            <action>maincpu.md@043B = 28F724CD        </action> <!-- ice floor -->
            <action>maincpu.md@0440 = 28F724CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F720 = 3AF5161602180A16</action>
            <action>maincpu.mq@F728 = 001602200CFE600A</action>
            <action>maincpu.mq@F730 = FFFFFFFFFFC93DF1</action>
            <!--
            F720 | 16 0A    : ld   d,$0A
            F722 | 18 02    : jr   $F726
            F724 | 16 16    : ld   d,$16
            F726 | F5       : push af
            F727 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F72A | FE 0C    : cp   $0C
            F72C | 20 02    : jr   nz,$F730
            F72E | 16 xx    : ld   d,$xx
            F730 | F1       : pop  af
            F731 | 3D       : dec  a
            F732 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F72F = param</action>
            <action>maincpu.mb@0CB3 = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041F = 283D0A16        </action>
            <action>maincpu.md@043B = 283D1616        </action>
            <action>maincpu.md@0440 = 283D1616        </action>
            <action>maincpu.mq@F720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F728 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CB3 = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF740CD        </action>
            <action>maincpu.mq@F740 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F748 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F750 = FFFFC90177DD03E6</action>
            <!--
            F740 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F743 | FE 0C    : cp   $0C
            F745 | DD 7E 01 : ld   a,(ix+$01) // read status
            F748 | C0       : ret  nz
            F749 | DD 4E 12 : ld   c,(ix+$12) // read input
            F74C | CB 79    : bit  7,c
            F74E | C8       : ret  z
            F74F | 79       : ld   a,c
            F750 | E6 03    : and  $03
            F752 | DD 77 01 : ld   (ix+$01),a
            F755 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F750 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
mariof.xml

Code: Select all

<!-- Mario Bros. (US, Revision F) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11F3 = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A36 = C9</action> <!-- ice -->
            <action>maincpu.mb@2487 = 18</action> <!-- fireball -->
            <action>maincpu.mb@249E = C9</action> <!-- ice -->
            <action>maincpu.mb@53AF = 9A</action> <!-- enemy -->
            <action>maincpu.mb@53B3 = 9A</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11F3 = 28</action>
            <action>maincpu.mb@1A36 = D8</action>
            <action>maincpu.mb@2487 = 28</action>
            <action>maincpu.mb@249E = C0</action>
            <action>maincpu.mb@53AF = 55</action>
            <action>maincpu.mb@53B3 = 55</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0494 = DDF710CD        </action>
            <action>maincpu.mq@F710 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F718 = FFFFFFFFC90006C0</action>
            <!--
            F710 | DD 46 06 : ld   b,(ix+$06)
            F713 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F716 | FE 0C    : cp   $0C
            F718 | C0       : ret  nz
            F719 | 06 xx    : ld   b,$xx
            F71B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F71A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0494 = DD0646DD        </action>
            <action>maincpu.mq@F710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F718 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041F = 28F720CD        </action> <!-- normal floor -->
            <action>maincpu.md@043B = 28F724CD        </action> <!-- ice floor -->
            <action>maincpu.md@0440 = 28F724CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F720 = 3AF5161602180A16</action>
            <action>maincpu.mq@F728 = 001602200CFE600A</action>
            <action>maincpu.mq@F730 = FFFFFFFFFFC93DF1</action>
            <!--
            F720 | 16 0A    : ld   d,$0A
            F722 | 18 02    : jr   $F726
            F724 | 16 16    : ld   d,$16
            F726 | F5       : push af
            F727 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F72A | FE 0C    : cp   $0C
            F72C | 20 02    : jr   nz,$F730
            F72E | 16 xx    : ld   d,$xx
            F730 | F1       : pop  af
            F731 | 3D       : dec  a
            F732 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F72F = param</action>
            <action>maincpu.mb@0CB3 = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041F = 283D0A16        </action>
            <action>maincpu.md@043B = 283D1616        </action>
            <action>maincpu.md@0440 = 283D1616        </action>
            <action>maincpu.mq@F720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F728 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CB3 = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF740CD        </action>
            <action>maincpu.mq@F740 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F748 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F750 = FFFFC90177DD03E6</action>
            <!--
            F740 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F743 | FE 0C    : cp   $0C
            F745 | DD 7E 01 : ld   a,(ix+$01) // read status
            F748 | C0       : ret  nz
            F749 | DD 4E 12 : ld   c,(ix+$12) // read input
            F74C | CB 79    : bit  7,c
            F74E | C8       : ret  z
            F74F | 79       : ld   a,c
            F750 | E6 03    : and  $03
            F752 | DD 77 01 : ld   (ix+$01),a
            F755 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F750 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
marioe.xml

Code: Select all

<!-- Mario Bros. (US, Revision E) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11F3 = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A36 = C9</action> <!-- ice -->
            <action>maincpu.mb@2487 = 18</action> <!-- fireball -->
            <action>maincpu.mb@249E = C9</action> <!-- ice -->
            <action>maincpu.mb@53AF = 9A</action> <!-- enemy -->
            <action>maincpu.mb@53B3 = 9A</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11F3 = 28</action>
            <action>maincpu.mb@1A36 = D8</action>
            <action>maincpu.mb@2487 = 28</action>
            <action>maincpu.mb@249E = C0</action>
            <action>maincpu.mb@53AF = 55</action>
            <action>maincpu.mb@53B3 = 55</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0494 = DDF740CD        </action>
            <action>maincpu.mq@F740 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F748 = FFFFFFFFC90006C0</action>
            <!--
            F740 | DD 46 06 : ld   b,(ix+$06)
            F743 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F746 | FE 0C    : cp   $0C
            F748 | C0       : ret  nz
            F749 | 06 xx    : ld   b,$xx
            F74B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F74A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0494 = DD0646DD        </action>
            <action>maincpu.mq@F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F748 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041F = 28F750CD        </action> <!-- normal floor -->
            <action>maincpu.md@043B = 28F754CD        </action> <!-- ice floor -->
            <action>maincpu.md@0440 = 28F754CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F750 = 3AF5161602180A16</action>
            <action>maincpu.mq@F758 = 001602200CFE600A</action>
            <action>maincpu.mq@F760 = FFFFFFFFFFC93DF1</action>
            <!--
            F750 | 16 0A    : ld   d,$0A
            F752 | 18 02    : jr   $F756
            F754 | 16 16    : ld   d,$16
            F756 | F5       : push af
            F757 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F75A | FE 0C    : cp   $0C
            F75C | 20 02    : jr   nz,$F760
            F75E | 16 xx    : ld   d,$xx
            F760 | F1       : pop  af
            F761 | 3D       : dec  a
            F762 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F75F = param</action>
            <action>maincpu.mb@0CB3 = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041F = 283D0A16        </action>
            <action>maincpu.md@043B = 283D1616        </action>
            <action>maincpu.md@0440 = 283D1616        </action>
            <action>maincpu.mq@F750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CB3 = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF770CD        </action>
            <action>maincpu.mq@F770 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F778 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F780 = FFFFC90177DD03E6</action>
            <!--
            F770 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F773 | FE 0C    : cp   $0C
            F775 | DD 7E 01 : ld   a,(ix+$01) // read status
            F778 | C0       : ret  nz
            F779 | DD 4E 12 : ld   c,(ix+$12) // read input
            F77C | CB 79    : bit  7,c
            F77E | C8       : ret  z
            F77F | 79       : ld   a,c
            F780 | E6 03    : and  $03
            F782 | DD 77 01 : ld   (ix+$01),a
            F785 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F770 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F778 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F780 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
marioj.xml

Code: Select all

<!-- Mario Bros. (Japan, Revision C) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11FE = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A2E = C9</action> <!-- ice -->
            <action>maincpu.mb@247F = 18</action> <!-- fireball -->
            <action>maincpu.mb@2496 = C9</action> <!-- ice -->
            <action>maincpu.mb@53E7 = D2</action> <!-- enemy -->
            <action>maincpu.mb@53EB = D2</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11FE = 28</action>
            <action>maincpu.mb@1A2E = D8</action>
            <action>maincpu.mb@247F = 28</action>
            <action>maincpu.mb@2496 = C0</action>
            <action>maincpu.mb@53E7 = 8D</action>
            <action>maincpu.mb@53EB = 8D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0493 = DDF740CD        </action>
            <action>maincpu.mq@F740 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F748 = FFFFFFFFC90006C0</action>
            <!--
            F740 | DD 46 06 : ld   b,(ix+$06)
            F743 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F746 | FE 0C    : cp   $0C
            F748 | C0       : ret  nz
            F749 | 06 xx    : ld   b,$xx
            F74B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F74A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0493 = DD0646DD        </action>
            <action>maincpu.mq@F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F748 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041E = 28F750CD        </action> <!-- normal floor -->
            <action>maincpu.md@043A = 28F754CD        </action> <!-- ice floor -->
            <action>maincpu.md@043F = 28F754CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F750 = 3AF5161602180A16</action>
            <action>maincpu.mq@F758 = 001602200CFE600A</action>
            <action>maincpu.mq@F760 = FFFFFFFFFFC93DF1</action>
            <!--
            F750 | 16 0A    : ld   d,$0A
            F752 | 18 02    : jr   $F756
            F754 | 16 16    : ld   d,$16
            F756 | F5       : push af
            F757 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F75A | FE 0C    : cp   $0C
            F75C | 20 02    : jr   nz,$F760
            F75E | 16 xx    : ld   d,$xx
            F760 | F1       : pop  af
            F761 | 3D       : dec  a
            F762 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F75F = param</action>
            <action>maincpu.mb@0CBE = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041E = 283D0A16        </action>
            <action>maincpu.md@043A = 283D1616        </action>
            <action>maincpu.md@043F = 283D1616        </action>
            <action>maincpu.mq@F750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CBE = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF770CD        </action>
            <action>maincpu.mq@F770 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F778 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F780 = FFFFC90177DD03E6</action>
            <!--
            F770 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F773 | FE 0C    : cp   $0C
            F775 | DD 7E 01 : ld   a,(ix+$01) // read status
            F778 | C0       : ret  nz
            F779 | DD 4E 12 : ld   c,(ix+$12) // read input
            F77C | CB 79    : bit  7,c
            F77E | C8       : ret  z
            F77F | 79       : ld   a,c
            F780 | E6 03    : and  $03
            F782 | DD 77 01 : ld   (ix+$01),a
            F785 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F770 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F778 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F780 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
masao.xml

Code: Select all

<!-- Masao -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11F3 = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A36 = C9</action> <!-- ice -->
            <action>maincpu.mb@2487 = 18</action> <!-- fireball -->
            <action>maincpu.mb@249E = C9</action> <!-- ice -->
            <action>maincpu.mb@53AF = 9A</action> <!-- enemy -->
            <action>maincpu.mb@53B3 = 9A</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11F3 = 28</action>
            <action>maincpu.mb@1A36 = D8</action>
            <action>maincpu.mb@2487 = 28</action>
            <action>maincpu.mb@249E = C0</action>
            <action>maincpu.mb@53AF = 55</action>
            <action>maincpu.mb@53B3 = 55</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0494 = DDF710CD        </action>
            <action>maincpu.mq@F710 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F718 = FFFFFFFFC90006C0</action>
            <!--
            F710 | DD 46 06 : ld   b,(ix+$06)
            F713 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F716 | FE 0C    : cp   $0C
            F718 | C0       : ret  nz
            F719 | 06 xx    : ld   b,$xx
            F71B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F71A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0494 = DD0646DD        </action>
            <action>maincpu.mq@F710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F718 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041F = 28F720CD        </action> <!-- normal floor -->
            <action>maincpu.md@043B = 28F724CD        </action> <!-- ice floor -->
            <action>maincpu.md@0440 = 28F724CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F720 = 3AF5161602180A16</action>
            <action>maincpu.mq@F728 = 001602200CFE600A</action>
            <action>maincpu.mq@F730 = FFFFFFFFFFC93DF1</action>
            <!--
            F720 | 16 0A    : ld   d,$0A
            F722 | 18 02    : jr   $F726
            F724 | 16 16    : ld   d,$16
            F726 | F5       : push af
            F727 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F72A | FE 0C    : cp   $0C
            F72C | 20 02    : jr   nz,$F730
            F72E | 16 xx    : ld   d,$xx
            F730 | F1       : pop  af
            F731 | 3D       : dec  a
            F732 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F72F = param</action>
            <action>maincpu.mb@0CB3 = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041F = 283D0A16        </action>
            <action>maincpu.md@043B = 283D1616        </action>
            <action>maincpu.md@0440 = 283D1616        </action>
            <action>maincpu.mq@F720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F728 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CB3 = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF740CD        </action>
            <action>maincpu.mq@F740 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F748 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F750 = FFFFC90177DD03E6</action>
            <!--
            F740 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F743 | FE 0C    : cp   $0C
            F745 | DD 7E 01 : ld   a,(ix+$01) // read status
            F748 | C0       : ret  nz
            F749 | DD 4E 12 : ld   c,(ix+$12) // read input
            F74C | CB 79    : bit  7,c
            F74E | C8       : ret  z
            F74F | 79       : ld   a,c
            F750 | E6 03    : and  $03
            F752 | DD 77 01 : ld   (ix+$01),a
            F755 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F750 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
pestplce.xml

Code: Select all

<!-- Pest Place -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11FE = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A2E = C9</action> <!-- ice -->
            <action>maincpu.mb@247F = 18</action> <!-- fireball -->
            <action>maincpu.mb@2496 = C9</action> <!-- ice -->
            <action>maincpu.mb@53E7 = D2</action> <!-- enemy -->
            <action>maincpu.mb@53EB = D2</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11FE = 28</action>
            <action>maincpu.mb@1A2E = D8</action>
            <action>maincpu.mb@247F = 28</action>
            <action>maincpu.mb@2496 = C0</action>
            <action>maincpu.mb@53E7 = 8D</action>
            <action>maincpu.mb@53EB = 8D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0493 = DDB7E0CD        </action>
            <action>maincpu.mq@B7E0 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@B7E8 = FFFFFFFFC90006C0</action>
            <!--
            B7E0 | DD 46 06 : ld   b,(ix+$06)
            B7E3 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            B7E6 | FE 0C    : cp   $0C
            B7E8 | C0       : ret  nz
            B7E9 | 06 xx    : ld   b,$xx
            B7EB | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B7EA = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0493 = DD0646DD        </action>
            <action>maincpu.mq@B7E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041E = 28B7F0CD        </action> <!-- normal floor -->
            <action>maincpu.md@043A = 28B7F4CD        </action> <!-- ice floor -->
            <action>maincpu.md@043F = 28B7F4CD        </action> <!-- ice floor -->
            <action>maincpu.mq@B7F0 = 3AF5161602180A16</action>
            <action>maincpu.mq@B7F8 = 001602200CFE600A</action>
            <action>maincpu.mq@B800 = FFFFFFFFFFC93DF1</action>
            <!--
            B7F0 | 16 0A    : ld   d,$0A
            B7F2 | 18 02    : jr   $B7E6
            B7F4 | 16 16    : ld   d,$16
            B7F6 | F5       : push af
            B7F7 | 3A 0A 60 : ld   a,($600A) // check demonstration
            B7FA | FE 0C    : cp   $0C
            B7FC | 20 02    : jr   nz,$B800
            B7FE | 16 xx    : ld   d,$xx
            B800 | F1       : pop  af
            B801 | 3D       : dec  a
            B802 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B7FF = param</action>
            <action>maincpu.mb@0CBE = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041E = 283D0A16        </action>
            <action>maincpu.md@043A = 283D1616        </action>
            <action>maincpu.md@043F = 283D1616        </action>
            <action>maincpu.mq@B7F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B800 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CBE = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FB810CD        </action>
            <action>maincpu.mq@B810 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@B818 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@B820 = FFFFC90177DD03E6</action>
            <!--
            B810 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            B813 | FE 0C    : cp   $0C
            B815 | DD 7E 01 : ld   a,(ix+$01) // read status
            B818 | C0       : ret  nz
            B819 | DD 4E 12 : ld   c,(ix+$12) // read input
            B81C | CB 79    : bit  7,c
            B81E | C8       : ret  z
            B81F | 79       : ld   a,c
            B820 | E6 03    : and  $03
            B822 | DD 77 01 : ld   (ix+$01),a
            B825 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@B810 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B818 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B820 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
mariobl.xml

Code: Select all

<!-- Mario Bros. (bootleg on Ambush Hardware, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11FE = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A2E = C9</action> <!-- ice -->
            <action>maincpu.mb@247F = 18</action> <!-- fireball -->
            <action>maincpu.mb@2496 = C9</action> <!-- ice -->
            <action>maincpu.mb@53E7 = D2</action> <!-- enemy -->
            <action>maincpu.mb@53EB = D2</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11FE = 28</action>
            <action>maincpu.mb@1A2E = D8</action>
            <action>maincpu.mb@247F = 28</action>
            <action>maincpu.mb@2496 = C0</action>
            <action>maincpu.mb@53E7 = 8D</action>
            <action>maincpu.mb@53EB = 8D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0493 = DDF950CD        </action>
            <action>maincpu.mq@F950 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F958 = FFFFFFFFC90006C0</action>
            <!--
            F950 | DD 46 06 : ld   b,(ix+$06)
            F953 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F956 | FE 0C    : cp   $0C
            F958 | C0       : ret  nz
            F959 | 06 xx    : ld   b,$xx
            F95B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F95A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0493 = DD0646DD        </action>
            <action>maincpu.mq@F950 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F958 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041E = 28F960CD        </action> <!-- normal floor -->
            <action>maincpu.md@043A = 28F964CD        </action> <!-- ice floor -->
            <action>maincpu.md@043F = 28F964CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F960 = 3AF5161602180A16</action>
            <action>maincpu.mq@F968 = 001602200CFE600A</action>
            <action>maincpu.mq@F970 = FFFFFFFFFFC93DF1</action>
            <!--
            F960 | 16 0A    : ld   d,$0A
            F962 | 18 02    : jr   $F966
            F964 | 16 16    : ld   d,$16
            F966 | F5       : push af
            F967 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F96A | FE 0C    : cp   $0C
            F96C | 20 02    : jr   nz,$F970
            F96E | 16 xx    : ld   d,$xx
            F970 | F1       : pop  af
            F971 | 3D       : dec  a
            F972 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F96F = param</action>
            <action>maincpu.mb@0CBE = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041E = 283D0A16        </action>
            <action>maincpu.md@043A = 283D1616        </action>
            <action>maincpu.md@043F = 283D1616        </action>
            <action>maincpu.mq@F960 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F968 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F970 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CBE = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF980CD        </action>
            <action>maincpu.mq@F980 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F988 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F990 = FFFFC90177DD03E6</action>
            <!--
            F980 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F983 | FE 0C    : cp   $0C
            F985 | DD 7E 01 : ld   a,(ix+$01) // read status
            F988 | C0       : ret  nz
            F989 | DD 4E 12 : ld   c,(ix+$12) // read input
            F98C | CB 79    : bit  7,c
            F98E | C8       : ret  z
            F98F | 79       : ld   a,c
            F990 | E6 03    : and  $03
            F992 | DD 77 01 : ld   (ix+$01),a
            F995 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F980 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F988 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F990 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
mariobla.xml

Code: Select all

<!-- Mario Bros. (bootleg on Ambush Hardware, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@11FE = 18</action> <!-- fireball -->
            <action>maincpu.mb@1A2E = C9</action> <!-- ice -->
            <action>maincpu.mb@247F = 18</action> <!-- fireball -->
            <action>maincpu.mb@2496 = C9</action> <!-- ice -->
            <action>maincpu.mb@53E7 = D2</action> <!-- enemy -->
            <action>maincpu.mb@53EB = D2</action> <!-- fireball -->
        </script>
        <script state="off">
            <action>maincpu.mb@11FE = 28</action>
            <action>maincpu.mb@1A2E = D8</action>
            <action>maincpu.mb@247F = 28</action>
            <action>maincpu.mb@2496 = C0</action>
            <action>maincpu.mb@53E7 = 8D</action>
            <action>maincpu.mb@53EB = 8D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0493 = DDF960CD        </action>
            <action>maincpu.mq@F960 = 0CFE600A3A0646DD</action>
            <action>maincpu.mq@F968 = FFFFFFFFC90006C0</action>
            <!--
            F960 | DD 46 06 : ld   b,(ix+$06)
            F963 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F966 | FE 0C    : cp   $0C
            F968 | C0       : ret  nz
            F969 | 06 xx    : ld   b,$xx
            F96B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F96A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0493 = DD0646DD        </action>
            <action>maincpu.mq@F960 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F968 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="slip speed">
        <parameter>
            <item value="0x01">01 (no slip)  </item>
            <item value="0x10">02            </item>
            <item value="0x20">03            </item>
            <item value="0x40">04            </item>
            <item value="0x80">05 (long slip)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@041E = 28F970CD        </action> <!-- normal floor -->
            <action>maincpu.md@043A = 28F974CD        </action> <!-- ice floor -->
            <action>maincpu.md@043F = 28F974CD        </action> <!-- ice floor -->
            <action>maincpu.mq@F970 = 3AF5161602180A16</action>
            <action>maincpu.mq@F978 = 001602200CFE600A</action>
            <action>maincpu.mq@F980 = FFFFFFFFFFC93DF1</action>
            <!--
            F970 | 16 0A    : ld   d,$0A
            F972 | 18 02    : jr   $F976
            F974 | 16 16    : ld   d,$16
            F976 | F5       : push af
            F977 | 3A 0A 60 : ld   a,($600A) // check demonstration
            F97A | FE 0C    : cp   $0C
            F97C | 20 02    : jr   nz,$F980
            F97E | 16 xx    : ld   d,$xx
            F980 | F1       : pop  af
            F981 | 3D       : dec  a
            F982 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@F97F = param</action>
            <action>maincpu.mb@0CBE = param</action> <!-- bonus floor -->
        </script>
        <script state="off">
            <action>maincpu.md@041E = 283D0A16        </action>
            <action>maincpu.md@043A = 283D1616        </action>
            <action>maincpu.md@043F = 283D1616        </action>
            <action>maincpu.mq@F970 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F978 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F980 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0CBE = 19              </action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.md@038F = 4FF990CD        </action>
            <action>maincpu.mq@F990 = 017EDD0CFE600A3A</action>
            <action>maincpu.mq@F998 = 79C879CB124EDDC0</action>
            <action>maincpu.mq@F9A0 = FFFFC90177DD03E6</action>
            <!--
            F990 | 3A 0A 60 : ld   a,($600A)  // check demonstration
            F993 | FE 0C    : cp   $0C
            F995 | DD 7E 01 : ld   a,(ix+$01) // read status
            F998 | C0       : ret  nz
            F999 | DD 4E 12 : ld   c,(ix+$12) // read input
            F99C | CB 79    : bit  7,c
            F99E | C8       : ret  z
            F99F | 79       : ld   a,c
            F9A0 | E6 03    : and  $03
            F9A2 | DD 77 01 : ld   (ix+$01),a
            F9A5 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@038F = 4F007EDD        </action>
            <action>maincpu.mq@F990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F998 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F9A0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
"multiple jump" : Rewritten routine.
Post Reply