[exerion] Exerion

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

[exerion] Exerion

Post by jman »

Code: Select all

<cheat desc="auto fire - twin shot">
    <script state="on">
        <action>maincpu.mb@26b6 = 7e</action>
    </script>
    <script state="off">
        <action>maincpu.mb@26b6 = a6</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <!-- x position -->
        <action>maincpu.mw@0b52 =             0020</action>
        <action>maincpu.mw@0b68 =             0020</action>
        <action>maincpu.mq@0020 = 61165f1fe60f0f7e</action>
        <action>maincpu.mq@0028 = 000009a0c312003e</action>
        <!--
        0b51 | da 20 00 : jp   c,$0020
        0b67 | d2 20 00 : jp   nc,$0020
        0020 | 7e       : ld   a,(hl)
        0021 | 0f       : rrca
        0022 | 0f       : rrca
        0023 | e6 1f    : and  $1f
        0025 | 5f       : ld   e,a
        0026 | 16 61    : ld   d,$61
        0028 | 3e xx    : ld   a,$xx
        002a | 12       : ld   (de),a
        002b | c3 a0 09 : jp   $09a0
        -->
        <!-- y position -->
        <action>maincpu.mw@0b94 =             0030</action>
        <action>maincpu.mw@0b9e =             0030</action>
        <action>maincpu.mq@0030 = 61165f0f0f7ce67e</action>
        <action>maincpu.mq@0038 = 000009c0c312003e</action>
        <!--
        0b93 | da 30 00 : jp  c,$0030
        0b9d | d2 30 00 : jp  nc,$0030
        0030 | 7e       : ld  a,(hl)
        0031 | e6 7c    : and $7c
        0033 | 0f       : rrca
        0034 | 0f       : rrca
        0035 | 5f       : ld  e,a
        0036 | 16 61    : ld  d,$61
        0038 | 3e xx    : ld  a,$xx
        003a | 12       : ld  (de),a
        003b | c3 c0 09 : jp  $09c0
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@0029 = param</action>
        <action>maincpu.mb@0039 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0b52 =             09a0</action>
        <action>maincpu.mw@0b68 =             09a0</action>
        <action>maincpu.mq@0020 = 0000000000000000</action>
        <action>maincpu.mq@0028 = 0000000000000000</action>
        <action>maincpu.mw@0b94 =             09c0</action>
        <action>maincpu.mw@0b9e =             09c0</action>
        <action>maincpu.mq@0030 = 0000000000000000</action>
        <action>maincpu.mq@0038 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="move manually">
    <script state="on">
        <action>maincpu.mq@093a = 0000c92d772c77af</action>
        <!--
        093a | af : xor a
        093b | 77 : ld  (hl),a
        093c | 2c : inc l
        093d | 77 : ld  (hl),a
        093e | 2d : dec l
        093f | c9 : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@093a = 00c97701c680e62f</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mw@0819 =             0040</action> <!-- normal stage -->
        <action>maincpu.mw@0efc =             0040</action> <!-- bonus stage -->
        <action>maincpu.mq@0040 = 00cd2620cdc50006</action>
        <action>maincpu.mq@0048 = 000000c9f610c126</action>
        <!--
        0040 | 06 xx    : ld   b,$xx
        0042 | c5       : push bc
        0043 | cd 20 26 : call $2620
        0046 | cd 00 26 : call $2600
        0049 | c1       : pop  bc
        004a | 10 f6    : djnz $0042
        004c | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@0041 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0819 =             2620</action>
        <action>maincpu.mw@0efc =             2620</action>
        <action>maincpu.mq@0040 = 0000000000000000</action>
        <action>maincpu.mq@0048 = 0000000000000000</action>
    </script>
</cheat>
"bullet speed" requires more test. It may cause some gfx buggy or broken bonus challenge.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[exerion] update

Post by jman »

Code: Select all

<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@09a8 =         780020cd</action> <!-- x position -->
        <action>maincpu.md@09ca =         2c0020cd</action> <!-- y position -->
        <action>maincpu.md@09e1 =         2c0020cd</action> <!-- y position -->
        <action>maincpu.mq@0020 = 03fe60803a61165f</action>
        <action>maincpu.mq@0028 = 12003ec0fcfe7dd8</action>
        <action>maincpu.mq@0030 = 00000000000000c9</action>
        <!--
        0020 | 5f       : ld  e,a
        0021 | 16 61    : ld  d,$61
        0023 | 3a 80 60 : ld  a,($6080) // check auto moving flag
        0026 | fe 03    : cp  $03
        0028 | d8       : ret c
        0029 | 7d       : ld  a,l
        002a | fe fc    : cp  $FC
        002c | c0       : ret nz
        002d | 3e xx    : ld  a,$xx
        002f | 12       : ld  (de),a
        0030 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@002e = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@09a8 =         7861165f</action>
        <action>maincpu.md@09ca =         2c61165f</action>
        <action>maincpu.md@09e1 =         2c61165f</action>
        <action>maincpu.mq@0020 = 0000000000000000</action>
        <action>maincpu.mq@0028 = 0000000000000000</action>
        <action>maincpu.mq@0030 = 0000000000000000</action>
    </script>
</cheat>
"player speed" : rewrite routine. merge two routines into one. check auto-moving flag at player start.

Code: Select all

<cheat desc="move manually">
    <script state="on">
        <action>maincpu.md@093d =         c90040cd</action>
        <action>maincpu.mq@0040 = 03fe60803a7701c6</action>
        <action>maincpu.mq@0048 = 00c92d772c77afd8</action>
        <!--
        0040 | c6 01    : add a,$01
        0042 | 77       : ld  (hl),a
        0043 | 3a 80 60 : ld  a,($6080) // check auto moving flag
        0046 | fe 03    : cp  $03
        0048 | d8       : ret c
        0049 | af       : xor a
        004a | 77       : ld  (hl),a
        004b | 2c       : inc l
        004c | 77       : ld  (hl),a
        004d | 2d       : dec l
        004e | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.md@093d =         c97701c6</action>
        <action>maincpu.mq@0040 = 0000000000000000</action>
        <action>maincpu.mq@0048 = 0000000000000000</action>
    </script>
</cheat>
"move manulally" : reallocate address for custom routine. check auto-moving flag at player start.

Code: Select all

<cheat desc="bullet speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mw@0819 =             1770</action> <!-- normal stage -->
        <action>maincpu.mw@0efc =             1770</action> <!-- bonus stage -->
        <action>maincpu.mq@1770 = 00cd2620cdc50006</action>
        <action>maincpu.mq@1778 = 000000c9f610c126</action>
        <!--
        1770 | 06 xx    : ld   b,$xx
        1772 | c5       : push bc
        1773 | cd 20 26 : call $2620
        1776 | cd 00 26 : call $2600
        1779 | c1       : pop  bc
        177a | 10 f6    : djnz $1772
        177c | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@1771 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0819 =             2620</action>
        <action>maincpu.mw@0efc =             2620</action>
        <action>maincpu.mq@1770 = 0000000000000000</action>
        <action>maincpu.mq@1778 = 0000000000000000</action>
    </script>
</cheat>
"bullet speed" : reallocate address for custom routine. gfx buggy still happens.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[exerion]+ Exerion

Post by jman »

exerion.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@32D6 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@32D6 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire - twin shot">
        <script state="on">
            <action>maincpu.mb@26B6 = 7E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26B6 = A6</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@09A8 = 780020CD        </action> <!-- x position -->
            <action>maincpu.md@09CA = 2C0020CD        </action> <!-- y position -->
            <action>maincpu.md@09E1 = 2C0020CD        </action> <!-- y position -->
            <action>maincpu.mq@0020 = 03FE60803A61165F</action>
            <action>maincpu.mq@0028 = 12003EC0FCFE7DD8</action>
            <action>maincpu.mq@0030 = 00000000000000C9</action>
            <!--
            0020 | 5F       : ld   e,a
            0021 | 16 61    : ld   d,$61
            0023 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0026 | FE 03    : cp   $03
            0028 | D8       : ret  c
            0029 | 7D       : ld   a,l
            002A | FE FC    : cp   $FC
            002C | C0       : ret  nz
            002D | 3E xx    : ld   a,$xx
            002F | 12       : ld   (de),a
            0030 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@002E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@09A8 = 7861165F        </action>
            <action>maincpu.md@09CA = 2C61165F        </action>
            <action>maincpu.md@09E1 = 2C61165F        </action>
            <action>maincpu.mq@0020 = 0000000000000000</action>
            <action>maincpu.mq@0028 = 0000000000000000</action>
            <action>maincpu.mq@0030 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.md@093D = C90040CD        </action>
            <action>maincpu.mq@0040 = 03FE60803A7701C6</action>
            <action>maincpu.mq@0048 = 00C92D772C77AFD8</action>
            <!--
            0040 | C6 01    : add  a,$01
            0042 | 77       : ld   (hl),a
            0043 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0046 | FE 03    : cp   $03
            0048 | D8       : ret  c
            0049 | AF       : xor  a
            004A | 77       : ld   (hl),a
            004B | 2C       : inc  l
            004C | 77       : ld   (hl),a
            004D | 2D       : dec  l
            004E | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@093D = C97701C6        </action>
            <action>maincpu.mq@0040 = 0000000000000000</action>
            <action>maincpu.mq@0048 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0819 = 1770            </action> <!-- normal stage -->
            <action>maincpu.mw@0EFC = 1770            </action> <!-- bonus stage -->
            <action>maincpu.mq@1770 = 00CD2620CDC50006</action>
            <action>maincpu.mq@1778 = 000000C9F610C126</action>
            <!--
            1770 | 06 xx    : ld   b,$xx
            1772 | C5       : push bc
            1773 | CD 20 26 : call $2620
            1776 | CD 00 26 : call $2600
            1779 | C1       : pop  bc
            177A | 10 F6    : djnz $1772
            177C | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1771 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0819 = 2620            </action>
            <action>maincpu.mw@0EFC = 2620            </action>
            <action>maincpu.mq@1770 = 0000000000000000</action>
            <action>maincpu.mq@1778 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
exeriont.xml

Code: Select all

<!-- Exerion (Taito) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@32D6 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@32D6 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire - twin shot">
        <script state="on">
            <action>maincpu.mb@26B6 = 7E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26B6 = A6</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@09A8 = 780020CD        </action> <!-- x position -->
            <action>maincpu.md@09CA = 2C0020CD        </action> <!-- y position -->
            <action>maincpu.md@09E1 = 2C0020CD        </action> <!-- y position -->
            <action>maincpu.mq@0020 = 03FE60803A61165F</action>
            <action>maincpu.mq@0028 = 12003EC0FCFE7DD8</action>
            <action>maincpu.mq@0030 = 00000000000000C9</action>
            <!--
            0020 | 5F       : ld   e,a
            0021 | 16 61    : ld   d,$61
            0023 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0026 | FE 03    : cp   $03
            0028 | D8       : ret  c
            0029 | 7D       : ld   a,l
            002A | FE FC    : cp   $FC
            002C | C0       : ret  nz
            002D | 3E xx    : ld   a,$xx
            002F | 12       : ld   (de),a
            0030 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@002E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@09A8 = 7861165F        </action>
            <action>maincpu.md@09CA = 2C61165F        </action>
            <action>maincpu.md@09E1 = 2C61165F        </action>
            <action>maincpu.mq@0020 = 0000000000000000</action>
            <action>maincpu.mq@0028 = 0000000000000000</action>
            <action>maincpu.mq@0030 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.md@093D = C90040CD        </action>
            <action>maincpu.mq@0040 = 03FE60803A7701C6</action>
            <action>maincpu.mq@0048 = 00C92D772C77AFD8</action>
            <!--
            0040 | C6 01    : add  a,$01
            0042 | 77       : ld   (hl),a
            0043 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0046 | FE 03    : cp   $03
            0048 | D8       : ret  c
            0049 | AF       : xor  a
            004A | 77       : ld   (hl),a
            004B | 2C       : inc  l
            004C | 77       : ld   (hl),a
            004D | 2D       : dec  l
            004E | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@093D = C97701C6        </action>
            <action>maincpu.mq@0040 = 0000000000000000</action>
            <action>maincpu.mq@0048 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0819 = 1770            </action> <!-- normal stage -->
            <action>maincpu.mw@0EFC = 1770            </action> <!-- bonus stage -->
            <action>maincpu.mq@1770 = 00CD2620CDC50006</action>
            <action>maincpu.mq@1778 = 000000C9F610C126</action>
            <!--
            1770 | 06 xx    : ld   b,$xx
            1772 | C5       : push bc
            1773 | CD 20 26 : call $2620
            1776 | CD 00 26 : call $2600
            1779 | C1       : pop  bc
            177A | 10 F6    : djnz $1772
            177C | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1771 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0819 = 2620            </action>
            <action>maincpu.mw@0EFC = 2620            </action>
            <action>maincpu.mq@1770 = 0000000000000000</action>
            <action>maincpu.mq@1778 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
exerionb.xml

Code: Select all

<!-- Exerion (bootleg, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@32D6 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@32D6 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire - twin shot">
        <script state="on">
            <action>maincpu.mb@26B6 = 7E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26B6 = A6</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@09A8 = 780020CD        </action> <!-- x position -->
            <action>maincpu.md@09CA = 2C0020CD        </action> <!-- y position -->
            <action>maincpu.md@09E1 = 2C0020CD        </action> <!-- y position -->
            <action>maincpu.mq@0020 = 03FE60803A61165F</action>
            <action>maincpu.mq@0028 = 12003EC0FCFE7DD8</action>
            <action>maincpu.mq@0030 = 00000000000000C9</action>
            <!--
            0020 | 5F       : ld   e,a
            0021 | 16 61    : ld   d,$61
            0023 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0026 | FE 03    : cp   $03
            0028 | D8       : ret  c
            0029 | 7D       : ld   a,l
            002A | FE FC    : cp   $FC
            002C | C0       : ret  nz
            002D | 3E xx    : ld   a,$xx
            002F | 12       : ld   (de),a
            0030 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@002E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@09A8 = 7861165F        </action>
            <action>maincpu.md@09CA = 2C61165F        </action>
            <action>maincpu.md@09E1 = 2C61165F        </action>
            <action>maincpu.mq@0020 = 0000000000000000</action>
            <action>maincpu.mq@0028 = 0000000000000000</action>
            <action>maincpu.mq@0030 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.md@093D = C91770CD        </action>
            <action>maincpu.mq@1770 = 03FE60803A7701C6</action>
            <action>maincpu.mq@1778 = 00C92D772C77AFD8</action>
            <!--
            1770 | C6 01    : add  a,$01
            1772 | 77       : ld   (hl),a
            1773 | 3A 80 60 : ld   a,($6080) // check auto move flag
            1776 | FE 03    : cp   $03
            1778 | D8       : ret  c
            1779 | AF       : xor  a
            177A | 77       : ld   (hl),a
            177B | 2C       : inc  l
            177C | 77       : ld   (hl),a
            177D | 2D       : dec  l
            177E | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@093D = C97749C6        </action>
            <action>maincpu.mq@1770 = 0000000000000000</action>
            <action>maincpu.mq@1778 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0819 = 1780            </action> <!-- normal stage -->
            <action>maincpu.mw@0EFC = 1780            </action> <!-- bonus stage -->
            <action>maincpu.mq@1780 = 00CD2620CDC50006</action>
            <action>maincpu.mq@1788 = 000000C9F610C126</action>
            <!--
            1780 | 06 xx    : ld   b,$xx
            1782 | C5       : push bc
            1783 | CD 20 26 : call $2620
            1786 | CD 00 26 : call $2600
            1789 | C1       : pop  bc
            178A | 10 F6    : djnz $1782
            178C | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1781 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0819 = 2620            </action>
            <action>maincpu.mw@0EFC = 2620            </action>
            <action>maincpu.mq@1780 = 0000000000000000</action>
            <action>maincpu.mq@1788 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
exerionb2.xml

Code: Select all

<!-- Exerion (bootleg, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@32D6 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@32D6 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire - twin shot">
        <script state="on">
            <action>maincpu.mb@26B6 = 7E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26B6 = A6</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@09A8 = 780040CD        </action> <!-- x position -->
            <action>maincpu.md@09CA = 2C0040CD        </action> <!-- y position -->
            <action>maincpu.md@09E1 = 2C0040CD        </action> <!-- y position -->
            <action>maincpu.mq@0040 = 03FE60803A61165F</action>
            <action>maincpu.mq@0048 = 12003EC0FCFE7DD8</action>
            <action>maincpu.mq@0050 = 00000000000000C9</action>
            <!--
            0040 | 5F       : ld   e,a
            0041 | 16 61    : ld   d,$61
            0043 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0046 | FE 03    : cp   $03
            0048 | D8       : ret  c
            0049 | 7D       : ld   a,l
            004A | FE FC    : cp   $FC
            004C | C0       : ret  nz
            004D | 3E xx    : ld   a,$xx
            004F | 12       : ld   (de),a
            0050 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@004E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@09A8 = 7861165F        </action>
            <action>maincpu.md@09CA = 2C61165F        </action>
            <action>maincpu.md@09E1 = 2C61165F        </action>
            <action>maincpu.mq@0040 = 0000000000000000</action>
            <action>maincpu.mq@0048 = 0000000000000000</action>
            <action>maincpu.mq@0050 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.md@093D = C91770CD        </action>
            <action>maincpu.mq@1770 = 03FE60803A7701C6</action>
            <action>maincpu.mq@1778 = 00C92D772C77AFD8</action>
            <!--
            1770 | C6 01    : add  a,$01
            1772 | 77       : ld   (hl),a
            1773 | 3A 80 60 : ld   a,($6080) // check auto move flag
            1776 | FE 03    : cp   $03
            1778 | D8       : ret  c
            1779 | AF       : xor  a
            177A | 77       : ld   (hl),a
            177B | 2C       : inc  l
            177C | 77       : ld   (hl),a
            177D | 2D       : dec  l
            177E | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@093D = C97701C6        </action>
            <action>maincpu.mq@1770 = 0000000000000000</action>
            <action>maincpu.mq@1778 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0819 = 1780            </action> <!-- normal stage -->
            <action>maincpu.mw@0EFC = 1780            </action> <!-- bonus stage -->
            <action>maincpu.mq@1780 = 00CD2620CDC50006</action>
            <action>maincpu.mq@1788 = 000000C9F610C126</action>
            <!--
            1780 | 06 xx    : ld   b,$xx
            1782 | C5       : push bc
            1783 | CD 20 26 : call $2620
            1786 | CD 00 26 : call $2600
            1789 | C1       : pop  bc
            178A | 10 F6    : djnz $1782
            178C | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1781 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0819 = 2620            </action>
            <action>maincpu.mw@0EFC = 2620            </action>
            <action>maincpu.mq@1780 = 0000000000000000</action>
            <action>maincpu.mq@1788 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
exerionba.xml

Code: Select all

<!-- Exerion (Assa, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@32D6 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@32D6 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire - twin shot">
        <script state="on">
            <action>maincpu.mb@26B6 = 7E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26B6 = A6</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@09A8 = 780040CD        </action> <!-- x position -->
            <action>maincpu.md@09CA = 2C0040CD        </action> <!-- y position -->
            <action>maincpu.md@09E1 = 2C0040CD        </action> <!-- y position -->
            <action>maincpu.mq@0040 = 03FE60803A61165F</action>
            <action>maincpu.mq@0048 = 12003EC0FCFE7DD8</action>
            <action>maincpu.mq@0050 = 00000000000000C9</action>
            <!--
            0040 | 5F       : ld   e,a
            0041 | 16 61    : ld   d,$61
            0043 | 3A 80 60 : ld   a,($6080) // check auto move flag
            0046 | FE 03    : cp   $03
            0048 | D8       : ret  c
            0049 | 7D       : ld   a,l
            004A | FE FC    : cp   $FC
            004C | C0       : ret  nz
            004D | 3E xx    : ld   a,$xx
            004F | 12       : ld   (de),a
            0050 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@004E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@09A8 = 7861165F        </action>
            <action>maincpu.md@09CA = 2C61165F        </action>
            <action>maincpu.md@09E1 = 2C61165F        </action>
            <action>maincpu.mq@0040 = 0000000000000000</action>
            <action>maincpu.mq@0048 = 0000000000000000</action>
            <action>maincpu.mq@0050 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.md@093D = C91770CD        </action>
            <action>maincpu.mq@1770 = 03FE60803A7701C6</action>
            <action>maincpu.mq@1778 = 00C92D772C77AFD8</action>
            <!--
            1770 | C6 01    : add  a,$01
            1772 | 77       : ld   (hl),a
            1773 | 3A 80 60 : ld   a,($6080) // check auto move flag
            1776 | FE 03    : cp   $03
            1778 | D8       : ret  c
            1779 | AF       : xor  a
            177A | 77       : ld   (hl),a
            177B | 2C       : inc  l
            177C | 77       : ld   (hl),a
            177D | 2D       : dec  l
            177E | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@093D = C97701C6        </action>
            <action>maincpu.mq@1770 = 0000000000000000</action>
            <action>maincpu.mq@1778 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0819 = 1780            </action> <!-- normal stage -->
            <action>maincpu.mw@0EFC = 1780            </action> <!-- bonus stage -->
            <action>maincpu.mq@1780 = 00CD2620CDC50006</action>
            <action>maincpu.mq@1788 = 000000C9F610C126</action>
            <!--
            1780 | 06 xx    : ld   b,$xx
            1782 | C5       : push bc
            1783 | CD 20 26 : call $2620
            1786 | CD 00 26 : call $2600
            1789 | C1       : pop  bc
            178A | 10 F6    : djnz $1782
            178C | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1781 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0819 = 2620            </action>
            <action>maincpu.mw@0EFC = 2620            </action>
            <action>maincpu.mq@1780 = 0000000000000000</action>
            <action>maincpu.mq@1788 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
irion.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@32D6 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@32D6 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire - twin shot">
        <script state="on">
            <action>maincpu.mb@26B6 = 7E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26B6 = A6</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@09A8 = 7810D0CD        </action> <!-- x position -->
            <action>maincpu.md@09CA = 2C10D0CD        </action> <!-- y position -->
            <action>maincpu.md@09E1 = 2C10D0CD        </action> <!-- y position -->
            <action>maincpu.mq@10D0 = 03FE60803A61165F</action>
            <action>maincpu.mq@10D8 = 12003EC0FCFE7DD8</action>
            <action>maincpu.mq@10E0 = 00000000000000C9</action>
            <!--
            10D0 | 5F       : ld   e,a
            10D1 | 16 61    : ld   d,$61
            10D3 | 3A 80 60 : ld   a,($6080) // check auto move flag
            10D6 | FE 03    : cp   $03
            10D8 | D8       : ret  c
            10D9 | 7D       : ld   a,l
            10DA | FE FC    : cp   $FC
            10DC | C0       : ret  nz
            10DD | 3E xx    : ld   a,$xx
            10DF | 12       : ld   (de),a
            10E0 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@10DE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@09A8 = 7861165F        </action>
            <action>maincpu.md@09CA = 2C61165F        </action>
            <action>maincpu.md@09E1 = 2C61165F        </action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
            <action>maincpu.mq@10E0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <script state="on">
            <action>maincpu.md@093D = C910F0CD        </action>
            <action>maincpu.mq@10F0 = 03FE60803A7701C6</action>
            <action>maincpu.mq@10F8 = 00C92D772C77AFD8</action>
            <!--
            10F0 | C6 01    : add  a,$01
            10F2 | 77       : ld   (hl),a
            10F3 | 3A 80 60 : ld   a,($6080) // check auto move flag
            10F6 | FE 03    : cp   $03
            10F8 | D8       : ret  c
            10F9 | AF       : xor  a
            10FA | 77       : ld   (hl),a
            10FB | 2C       : inc  l
            10FC | 77       : ld   (hl),a
            10FD | 2D       : dec  l
            10FE | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@093D = C97749C6        </action>
            <action>maincpu.mq@10F0 = 0000000000000000</action>
            <action>maincpu.mq@10F8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0819 = 16A0            </action> <!-- normal stage -->
            <action>maincpu.mw@0EFC = 16A0            </action> <!-- bonus stage -->
            <action>maincpu.mq@16A0 = 00CD2620CDC50006</action>
            <action>maincpu.mq@16A8 = 000000C9F610C126</action>
            <!--
            16A0 | 06 xx    : ld   b,$xx
            16A2 | C5       : push bc
            16A3 | CD 20 26 : call $2620
            16A6 | CD 00 26 : call $2600
            16A9 | C1       : pop  bc
            16AA | 10 F6    : djnz $16A2
            16AC | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@16A1 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0819 = 2620            </action>
            <action>maincpu.mw@0EFC = 2620            </action>
            <action>maincpu.mq@16A0 = 0000000000000000</action>
            <action>maincpu.mq@16A8 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Post Reply