Page 1 of 1

[rotaryf] Rotary Fighter

Posted: Fri Sep 29, 2023 10:23 am
by jman

Code: Select all

<!-- Rotary Fighter -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mq@0bae = 753a4bc5da4febcd</action>
            <action>maincpu.mq@0bb6 = 70183a4c1ad20770</action>
            <action>maincpu.mq@0bbe = cd4b90ca04d61fe6</action>
            <action>maincpu.mq@0bc6 = 182aeb4c1ac34c20</action>
            <!--
            4bae | cd eb 4f : call $4feb
            4bb1 | da c5 4b : jc   $4bc5
            4bb4 | 3a 75 70 : lda  $7075
            4bb7 | 07       : rlc
            4bb8 | d2 1a 4c : jnc  $4c1a
            4bbb | 3a 18 70 : lda  $7018
            4bbe | e6 1f    : ani  $1f
            4bc0 | d6 04    : sui  $04
            4bc2 | ca 90 4b : jz   $4b90
            4bc5 | cd 20 4c : call $4c20
            4bc8 | c3 1a 4c : jmp  $4c1a
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0bae = 1ada4febcd4c20cd</action>
            <action>maincpu.mq@0bb6 = 4c1ad20770753a4c</action>
            <action>maincpu.mq@0bbe = c204d61fe670183a</action>
            <action>maincpu.mq@0bc6 = 182aeb70762a4c1a</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@09d6 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@09d6 = ff</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@03e8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@03e8 = 04</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@0a06 =             57f0</action>
            <action>maincpu.mq@17f0 = 4f5acd704a32833e</action>
            <action>maincpu.mq@17f8 = f000f000f000f0c9</action>
            <!--
            57f0 | 3e 83    : mvi  a,$83
            57f2 | 32 4a 70 : sta  $704a
            57f5 | cd 5a 4f : call $4f5a
            57f8 | c9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@03fe = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@03fe =               01</action>
            <action>maincpu.mw@0a06 =             4f5a</action>
            <action>maincpu.mq@17f0 = 7000f000f000f000</action>
            <action>maincpu.mq@17f8 = f000f000f000f000</action>
        </script>
    </cheat>

</mamecheat>
"invincibility" and "bullet speed up" in the database based on 0.257 don't work. Because ROM region changes. $4000 - $57ff are now $0000 - $17ff.