[mutnat] Mutation Nation

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

[mutnat] Mutation Nation

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.rb@b8bc = 60</action>
    </script>
    <script state="off">
        <action>maincpu.rb@b8bc = 62</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <comment>you can't charge the power</comment>
    <script state="on">
        <action>maincpu.rw@0e632 = 0002</action> <!-- normal attack -->
        <action>maincpu.rw@1078e = 0002</action> <!-- P1 catch attack -->
        <action>maincpu.rw@108f8 = 0002</action> <!-- P2 catch attack -->
    </script>
    <script state="off">
        <action>maincpu.rw@0e632 = 0040</action>
        <action>maincpu.rw@1078e = d1da</action>
        <action>maincpu.rw@108f8 = d070</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0060">01 (slow)</item>
        <item value="0x00c0">02       </item>
        <item value="0x0120">03       </item>
        <item value="0x0180">04       </item>
        <item value="0x01e0">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.rq@0e21a = 4eb9000800004e71</action>
        <action>maincpu.rq@80000 = 363c000030312000</action>
        <action>maincpu.rq@80008 = 67066a0244433003</action>
        <action>maincpu.rq@80010 = 363c000032312002</action>
        <action>maincpu.rq@80018 = 67066a0244433203</action>
        <action>maincpu.rq@80020 = 4e75000000000000</action>
        <!--
        80000 | 363c xxxx : move.w #$xx,D3
        80004 | 3031 2000 : move.w (A1,D2.w),D0
        80008 | 6706      : beq    $80010
        8000a | 6a02      : bpl    $8000e
        8000c | 4443      : neg.w  D3
        8000e | 3003      : move.w D3,D0
        80010 | 363c xxxx : move.w #$xx,D3
        80014 | 3231 2002 : move.w ($2,A1,D2.w),D1
        80018 | 6706      : beq    $80020
        8001a | 6a02      : bpl    $8001e
        8001c | 4443      : neg.w  D3
        8001e | 3203      : move.w D3,D1
        80020 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.rw@80002 = param</action>
        <action>maincpu.rw@80012 = param</action>
    </script>
    <script state="off">
        <action>maincpu.rq@0e21a = 3031200032312002</action>
        <action>maincpu.rq@80000 = 0000000000000000</action>
        <action>maincpu.rq@80008 = 0000000000000000</action>
        <action>maincpu.rq@80010 = 0000000000000000</action>
        <action>maincpu.rq@80018 = 0000000000000000</action>
        <action>maincpu.rq@80020 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="attack speed up">
    <script state="on">
        <!-- P1 -->
        <action>maincpu.rb@54f63 = 00</action>
        <action>maincpu.rb@56927 = 00</action>
        <action>maincpu.rb@56adf = 00</action>
        <action>maincpu.rb@56aeb = 00</action>
        <action>maincpu.rb@56b43 = 00</action>
        <action>maincpu.rb@56c5f = 00</action>
        <action>maincpu.rb@56c13 = 00</action>
        <!-- P2 -->
        <action>maincpu.rb@5693f = 00</action>
        <action>maincpu.rb@56af7 = 00</action>
        <action>maincpu.rb@56b03 = 00</action>
        <action>maincpu.rb@56b57 = 00</action>
        <action>maincpu.rb@56c2f = 00</action>
        <action>maincpu.rb@56c87 = 00</action>
        <action>maincpu.rb@56c9b = 00</action>
        <action>maincpu.rb@56cbf = 00</action>
    </script>
    <script state="off">
        <action>maincpu.rb@54f63 = 03</action>
        <action>maincpu.rb@56927 = 04</action>
        <action>maincpu.rb@56adf = 07</action>
        <action>maincpu.rb@56aeb = 11</action>
        <action>maincpu.rb@56b43 = 03</action>
        <action>maincpu.rb@56c5f = 03</action>
        <action>maincpu.rb@56c13 = 03</action>
        <action>maincpu.rb@5693f = 03</action>
        <action>maincpu.rb@56af7 = 07</action>
        <action>maincpu.rb@56b03 = 11</action>
        <action>maincpu.rb@56b57 = 03</action>
        <action>maincpu.rb@56c2f = 02</action>
        <action>maincpu.rb@56c87 = 03</action>
        <action>maincpu.rb@56c9b = 02</action>
        <action>maincpu.rb@56cbf = 03</action>
    </script>
</cheat>

<cheat desc="boss timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x78">02       </item>
        <item value="0x3c">03       </item>
        <item value="0x1e">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.rb@458d = param</action>
    </script>
    <script state="off">
        <action>maincpu.rb@458d = 78</action>
    </script>
</cheat>
If you set "player speed" as 0x03 or faster, you can walk out of field though. The cause is unknown.

I omit "skip ram/rom check" because it has already posted here.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[mutnat] Mutation Nation (update)

Post by jman »

Code: Select all

<cheat desc="sound test mode">
    <!-- don't play code 0x01, 0x03, and 0x10 because of no sound response -->
    <!-- valid bank number seems to be 0x00 and 0x08 -->
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.rd@028d6 =         00080030</action>
        <action>maincpu.rq@80030 = 41f90010800043e8</action>
        <action>maincpu.rq@80038 = 000145f90002e534</action>
        <action>maincpu.rq@80040 = 1401123900300000</action>
        <action>maincpu.rq@80048 = b40167f40c0100fb</action>
        <action>maincpu.rq@80050 = 660253100c0100f7</action>
        <action>maincpu.rq@80058 = 660252100c0100fd</action>
        <action>maincpu.rq@80060 = 6604041000100c01</action>
        <action>maincpu.rq@80068 = 00fe660406100010</action>
        <action>maincpu.rq@80070 = 0c0100bb66025311</action>
        <action>maincpu.rq@80078 = 0c0100b766025211</action>
        <action>maincpu.rq@80080 = 0211000f0c0100ef</action>
        <action>maincpu.rq@80088 = 6610424010116706</action>
        <action>maincpu.rq@80090 = 06000010e1488010</action>
        <action>maincpu.rq@80098 = 4e920c0100df6612</action>
        <action>maincpu.rq@800a0 = 303c00014e92303c</action>
        <action>maincpu.rq@800a8 = 00034e92303c0007</action>
        <action>maincpu.rq@800b0 = 4e92608c00000000</action>
        <!--
        80030 | 41f9 0010 8000 : lea    $108000.l,A0 // $108000 : sound code address
        80036 | 43e8 0001      : lea    ($1,A0),A1   // $108001 : bank number address
        8003a | 45f9 0002 e534 : lea    $2e534.l,A2
        80040 | 1401           : move.b D1,D2
        80042 | 1239 0030 0000 : move.b $300000.l,D1 // read input
        80048 | b401           : cmp.b  D1,D2
        8004a | 67f4           : beq    $80040
        8004c | 0c01 00fb      : cmpi.b #-$5,D1
        80050 | 6602           : bne    $80054
        80052 | 5310           : subq.b #1,(A0)      // decrease code -01
        80054 | 0c01 00f7      : cmpi.b #-$9,D1
        80058 | 6602           : bne    $8005c
        8005a | 5210           : addq.b #1,(A0)      // increase code +01
        8005c | 0c01 00fd      : cmpi.b #-$3,D1
        80060 | 6604           : bne    $80066
        80062 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        80066 | 0c01 00fe      : cmpi.b #-$2,D1
        8006a | 6604           : bne    $80070
        8006c | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        80070 | 0c01 00bb      : cmpi.b #-$45,D1
        80074 | 6602           : bne    $80078
        80076 | 5311           : subq.b #1,(A1)      // decrease bank -01
        80078 | 0c01 00b7      : cmpi.b #-$49,D1
        8007c | 6602           : bne    $80080
        8007e | 5211           : addq.b #1,(A1)      // increase bank +01
        80080 | 0211 000f      : andi.b #$f,(A1)
        80084 | 0c01 00ef      : cmpi.b #-$11,D1
        80088 | 6610           : bne    $8009a
        8008a | 4240           : clr.w  D0           // play sound
        8008c | 1011           : move.b (A1),D0
        8008e | 6706           : beq    $80096
        80090 | 0600 0010      : addi.b #$10,D0
        80094 | e148           : lsl.w  #8,D0
        80096 | 8010           : or.b   (A0),D0
        80098 | 4e92           : jsr    (A2)
        8009a | 0c01 00df      : cmpi.b #-$21,D1
        8009e | 6612           : bne    $800b2
        800a0 | 303c 0001      : move.w #$1,D0       // stop sound
        800a4 | 4e92           : jsr    (A2)
        800a6 | 303c 0003      : move.w #$3,D0
        800aa | 4e92           : jsr    (A2)
        800ac | 303c 0007      : move.w #$7,D0
        800b0 | 4e92           : jsr    (A2)
        800b2 | 608c           : bra    $80040
        -->
    </script>
    <script state="run">
        <output format="----- mutation nation 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 3 + left : decrease bank -01"         line="15" align="center" />
        <output format="button 3 + right : increase bank +01"        line="16" align="center" />
        <output format="button 1 : play sound"                       line="17" align="center" />
        <output format="button 2 : stop sound"                       line="18" align="center" />
        <output format="----------------------------"                line="19" align="center" />
        <output format="&lt;&lt; bank %2.2X &gt;&gt;"                line="21" align="center"  >
            <argument>maincpu.pb@108001</argument>
        </output>
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"          line="23" align="center"  >
            <argument>maincpu.pb@108000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.rd@028d6 =         00002990</action>
        <action>maincpu.rq@80030 = 0000000000000000</action>
        <action>maincpu.rq@80038 = 0000000000000000</action>
        <action>maincpu.rq@80040 = 0000000000000000</action>
        <action>maincpu.rq@80048 = 0000000000000000</action>
        <action>maincpu.rq@80050 = 0000000000000000</action>
        <action>maincpu.rq@80058 = 0000000000000000</action>
        <action>maincpu.rq@80060 = 0000000000000000</action>
        <action>maincpu.rq@80068 = 0000000000000000</action>
        <action>maincpu.rq@80070 = 0000000000000000</action>
        <action>maincpu.rq@80078 = 0000000000000000</action>
        <action>maincpu.rq@80080 = 0000000000000000</action>
        <action>maincpu.rq@80088 = 0000000000000000</action>
        <action>maincpu.rq@80090 = 0000000000000000</action>
        <action>maincpu.rq@80098 = 0000000000000000</action>
        <action>maincpu.rq@800a0 = 0000000000000000</action>
        <action>maincpu.rq@800a8 = 0000000000000000</action>
        <action>maincpu.rq@800b0 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : add new.
Post Reply