Small clean up.
Code: Select all
<!-- Mutation Nation (NGM-014 ~ NGH-014) -->
<mamecheat version="1">
<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="autp 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 // x position
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 // y position
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>
<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.rb@01303 = 06 </action> <!-- disable credit display -->
<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 // sound code address
80036 | 43E8 0001 : lea ($1,A0), A1 // bank address ($108001)
8003A | 45F9 0002 E534 : lea $2e534.l, A2 // sound latch routine address
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="<< bank %X >>" line="21" align="center" >
<argument>maincpu.pb@108001</argument>
</output>
<output format="<< sound code %02X >>" line="23" align="center" >
<argument>maincpu.pb@108000</argument>
</output>
</script>
<script state="off">
<action>maincpu.rb@01303 = 08 </action>
<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>
<cheat desc="skip ram/rom check">
<script state="on">
<action condition="maincpu.rd@c11afc == 3a3c7fff">temp0 = C11AFC, maincpu.rd@temp0 = 60000168</action> <!-- euro, euro-s1, japan-s2, japan-s1 -->
<action condition="maincpu.rd@c10c20 == 3a3c7fff">temp0 = C10C20, maincpu.rd@temp0 = 60000168</action> <!-- asia-mv1c, japan-mv1b -->
<action condition="maincpu.rd@c10afc == 3a3c7fff">temp0 = C10AFC, maincpu.rd@temp0 = 60000168</action> <!-- asia-mv1b, japan-mv1c -->
<action condition="maincpu.rd@c11ad2 == 3a3c7fff">temp0 = C11AD2, maincpu.rd@temp0 = 60000168</action> <!-- us, us-e, us-v2, us-u4 -->
<action condition="maincpu.rd@c11abc == 3a3c7fff">temp0 = C11ABC, maincpu.rd@temp0 = 60000104</action> <!-- us-u3 -->
<action condition="maincpu.rd@c11c24 == 3a3c7fff">temp0 = C11C24, maincpu.rd@temp0 = 60000168</action> <!-- japan -->
<action condition="maincpu.rd@c11ae6 == 3a3c7fff">temp0 = C11AE6, maincpu.rd@temp0 = 60000104</action> <!-- japan-j3a -->
<action condition="maincpu.rd@c11bc6 == 3a3c7fff">temp0 = C11BC6, maincpu.rd@temp0 = 6000017C</action> <!-- japan-hotel -->
</script>
<script state="off">
<action>maincpu.rd@temp0 = 3A3C7FFF</action>
</script>
</cheat>
</mamecheat>