Page 1 of 1

[gradius] Nemesis/Gradius

Posted: Wed Jan 26, 2022 10:28 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="run">
        <action condition="maincpu.pw@1f260 == 0028">maincpu.pw@1f260 = 4e75</action> <!-- enemy : copy from $93760 -->
        <action condition="maincpu.pw@1f2be == 13fc">maincpu.pw@1f2be = 4e75</action> <!-- bullet : copy from $937be -->
        <action condition="maincpu.pw@1dc76 == 13fc">maincpu.pw@1dc76 = 4e75</action> <!-- boss : copy from $92176 -->
        <action condition="maincpu.pw@1ed5a == 47f9">maincpu.pw@1ed5a = 4e75</action> <!-- background : copy from $9325a -->
    </script>
    <script state="off">
        <action condition="maincpu.pw@1f260 == 4e75">maincpu.pw@1f260 = 0028</action>
        <action condition="maincpu.pw@1f2be == 4e75">maincpu.pw@1f2be = 13fc</action>
        <action condition="maincpu.pw@1dc76 == 4e75">maincpu.pw@1dc76 = 13fc</action>
        <action condition="maincpu.pw@1ed5a == 4e75">maincpu.pw@1ed5a = 47f9</action>
    </script>
</cheat>

<cheat desc="no hit - shield">
    <script state="run">
        <action condition="maincpu.pw@1f5e0 == 0028">maincpu.pw@1f5e0 = 4e75</action> <!-- enemy : copy from $93ae0 -->
        <action condition="maincpu.pw@1f95a == 117c">maincpu.pw@1f95a = 4e75</action> <!-- bullet : copy from $93e5a-->
        <action condition="maincpu.pw@149d2 == 6734">maincpu.pw@149d2 = 6034</action> <!-- background : copy from $84ed2 -->
    </script>
    <script state="off">
        <action condition="maincpu.pw@1f5e0 == 4e75">maincpu.pw@1f5e0 = 0028</action>
        <action condition="maincpu.pw@1f95a == 4e75">maincpu.pw@1f95a = 117c</action>
        <action condition="maincpu.pw@149d2 == 6034">maincpu.pw@149d2 = 6734</action>
    </script>
</cheat>

<cheat desc="auto fire - shot">
    <script state="run">
        <action condition="maincpu.pb@15000 == 66">maincpu.pb@15000 = 60</action> <!-- copy from $85500 -->
    </script>
    <script state="off">
        <action condition="maincpu.pb@15000 == 60">maincpu.pb@15000 = 66</action>
    </script>
</cheat>

<cheat desc="auto fire - missile">
    <script state="run">
        <action condition="maincpu.pb@14f6a == 66">maincpu.pb@14f6a = 60</action> <!-- copy from $8546a -->
    </script>
    <script state="off">
        <action condition="maincpu.pb@14f6a == 60">maincpu.pb@14f6a = 66</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0100">02       </item>
        <item value="0x0300">03       </item>
        <item value="0x0500">04       </item>
        <item value="0x0700">05 (fast)</item>
    </parameter>
    <script state="run">
        <action condition="maincpu.pw@140d0 == 3e2b">maincpu.pw@140d0 =             3e3c</action> <!-- x position : copy from $845d0-->
        <action condition="maincpu.pw@14112 == 3e2b">maincpu.pw@14112 =             3e3c</action> <!-- y position : copy from $84612-->
        <action condition="maincpu.pw@1444e == 3a39">maincpu.pq@1444e = 3a3c00004e71cdc5</action> <!-- option : copy from $8494e -->
        <action condition="maincpu.pw@140d0 == 3e3c">maincpu.pw@140d2 =            param</action>
        <action condition="maincpu.pw@14112 == 3e3c">maincpu.pw@14114 =            param</action>
        <action condition="maincpu.pw@1444e == 3a3c">maincpu.pw@14450 =            param</action>
    </script>
    <script state="off">
        <action condition="maincpu.pw@140d0 == 3e3c">maincpu.pd@140d0 =         3e2b000e</action>
        <action condition="maincpu.pw@14112 == 3e3c">maincpu.pd@14112 =         3e2b000e</action>
        <action condition="maincpu.pw@1444e == 3a3c">maincpu.pd@1444e = 3a390007080ecdcd</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check error skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.md@8133a =         000002e0</action> <!-- copy to $10e3a -->
        <action>maincpu.mq@002e0 = 41f90007010043f9</action>
        <action>maincpu.mq@002e8 = 0005e00412001039</action>
        <action>maincpu.mq@002f0 = 0005cc03b20067f4</action>
        <action>maincpu.mq@002f8 = 0c0000fe66025310</action>
        <action>maincpu.mq@00300 = 0c0000fd66025210</action>
        <action>maincpu.mq@00308 = 0c0000f766040410</action>
        <action>maincpu.mq@00310 = 00100c0000fb6604</action>
        <action>maincpu.mq@00318 = 061000100c0000ef</action>
        <action>maincpu.mq@00320 = 6604141060080c01</action>
        <action>maincpu.mq@00328 = 00df6610420212bc</action>
        <action>maincpu.mq@00330 = 000013c20005c001</action>
        <action>maincpu.mq@00338 = 12bc000160aeffff</action>
        <!--
        02e0 | 41f9 0007 0100 : lea    $70100.l,A0 // sound code address
        02e6 | 43f9 0005 e004 : lea    $5e004.l,A1
        02ec | 1200           : move.b D0,D1
        02ee | 1039 0005 cc03 : move.b $5cc03.l,D0 // read input
        02f4 | b200           : cmp.b  D0,D1
        02f6 | 67f4           : beq    $2ec
        02f8 | 0c00 00fe      : cmpi.b #-$2,D0
        02fc | 6602           : bne    $300
        02fe | 5310           : subq.b #1,(A0)     // decrease code -01
        0300 | 0c00 00fd      : cmpi.b #-$3,D0
        0304 | 6602           : bne    $308
        0306 | 5210           : addq.b #1,(A0)     // increase code +01
        0308 | 0c00 00f7      : cmpi.b #-$9,D0
        030c | 6604           : bne    $312
        030e | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        0312 | 0c00 00fb      : cmpi.b #-$5,D0
        0316 | 6604           : bne    $31c
        0318 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        031c | 0c00 00ef      : cmpi.b #-$11,D0
        0320 | 6604           : bne    $326
        0322 | 1410           : move.b (A0),D2     // play sound
        0324 | 6008           : bra    $32e
        0326 | 0c01 00df      : cmpi.b #-$21,D1
        032a | 6610           : bne    $33c
        032c | 4202           : clr.b  D2          // stop sound
        032e | 12bc 0000      : move.b #$0,(A1)
        0332 | 13c2 0005 c001 : move.b D2,$5c001.l // send sound code
        0338 | 12bc 0001      : move.b #$1,(A1)
        033c | 60ae           : bra    $2ec
        -->
    </script>
    <script state="run">
        <output format="----- gradius 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="up : increase code +10"              line="13" align="center" />
        <output format="down : decrease code -10"            line="14" align="center" />
        <output format="button 1 : play sound"               line="15" align="center" />
        <output format="button 2 : stop sound"               line="16" align="center" />
        <output format="----------------------------"        line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"  line="19" align="center">
            <argument>maincpu.pb@70100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@8133a =         00010e56</action>
        <action>maincpu.mq@002e0 = ffffffffffffffff</action>
        <action>maincpu.mq@002e8 = ffffffffffffffff</action>
        <action>maincpu.mq@002f0 = ffffffffffffffff</action>
        <action>maincpu.mq@002f8 = ffffffffffffffff</action>
        <action>maincpu.mq@00300 = ffffffffffffffff</action>
        <action>maincpu.mq@00308 = ffffffffffffffff</action>
        <action>maincpu.mq@00310 = ffffffffffffffff</action>
        <action>maincpu.mq@00318 = ffffffffffffffff</action>
        <action>maincpu.mq@00320 = ffffffffffffffff</action>
        <action>maincpu.mq@00328 = ffffffffffffffff</action>
        <action>maincpu.mq@00330 = ffffffffffffffff</action>
        <action>maincpu.mq@00338 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check error">
    <script state="run">
        <action condition="maincpu.pw@1028c == 000c">maincpu.pw@1028c = 0002</action> <!-- ram : copy from $8028c -->
        <action condition="maincpu.pw@102c6 == 6608">maincpu.pw@102c6 = 4e71</action> <!-- rom : copy from $802c6 -->
    </script>
    <script state="off">
        <action condition="maincpu.pw@1028c == 0002">maincpu.pw@1028c = 000c</action>
        <action condition="maincpu.pw@102c6 == 4e71">maincpu.pw@102c6 = 6608</action>
    </script>
</cheat>