Page 1 of 1

[zedblade] Zed Blade/Operation Ragnarok

Posted: Sat Jul 16, 2022 8:05 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.rb@9328 = 60</action> <!-- enemy -->
        <action>maincpu.rb@87ba = 60</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.rb@9328 = 66</action>
        <action>maincpu.rb@87ba = 66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.rw@766e = 4e71</action>
    </script>
    <script state="off">
        <action>maincpu.rw@766e = 640e</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x00008000">01 (slow)</item>
        <item value="0x00028000">02       </item>
        <item value="0x00048000">03       </item>
        <item value="0x00068000">04       </item>
        <item value="0x00088000">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.rq@6d48 = 4eb90000fad04e71</action>
        <action>maincpu.rq@fad0 = 243c000000002230</action>
        <action>maincpu.rq@fad8 = 000067066a024482</action>
        <action>maincpu.rq@fae0 = 2202243c00000000</action>
        <action>maincpu.rq@fae8 = 2030000467066a02</action>
        <action>maincpu.rq@faf0 = 448220024e75ffff</action>
        <!--
        fad0 | 243c xxxx xxxx : move.l #$xxxx,D2
        fad6 | 2230 0000      : move.l (A0,D0.w),D1
        fada | 6706           : beq    $fae2
        fadc | 6a02           : bpl    $fae0
        fade | 4482           : neg.l  D2
        fae0 | 2202           : move.l D2,D1
        fae2 | 243c xxxx xxxx : move.l #$xxxx,D2
        fae8 | 2030 0004      : move.l ($4,A0,D0.w),D0
        faec | 6706           : beq    $faf4
        faee | 6a02           : bpl    $faf2
        faf0 | 4482           : neg.l  D2
        faf2 | 2002           : move.l D2,D0
        faf4 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.rd@fad2 = param</action>
        <action>maincpu.rd@fae4 = param</action>
    </script>
    <script state="off">
        <action>maincpu.rq@6d48 = 2230000020300004</action>
        <action>maincpu.rq@fad0 = ffffffffffffffff</action>
        <action>maincpu.rq@fad8 = ffffffffffffffff</action>
        <action>maincpu.rq@fae0 = ffffffffffffffff</action>
        <action>maincpu.rq@fae8 = ffffffffffffffff</action>
        <action>maincpu.rq@faf0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="max bullets up">
    <script state="on">
        <action>maincpu.rq@76c4 = 4eb90000fb003218</action>
        <action>maincpu.rq@fb00 = 49f500003018e318</action>
        <action>maincpu.rq@fb08 = 4e75ffffffffffff</action>
        <!--
        fb00 | 49f5 0000 : lea    (A5,D0.w),A4
        fb04 | 3018      : move.w (A0)+,D0
        fb06 | e318      : rol.b  #1,D0
        fb08 | 4e75      : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.rq@76c4 = 49f5000030183218</action>
        <action>maincpu.rq@fb00 = ffffffffffffffff</action>
        <action>maincpu.rq@fb08 = ffffffffffffffff</action>
    </script>
</cheat>
I omit "skip ram/rom check" because it has already posted here.

[zedblade] Zed Blade/Operation Ragnarok (update)

Posted: Fri Dec 16, 2022 11:42 am
by jman

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <!-- don't play code 0x01, 0x03, and 0x10 because of no sound response -->
    <!-- valid bank number seems to be 0x00 and 0x0a -->
    <script state="on">
        <action>maincpu.rd@660a =         0000b61e</action> <!-- enable sound code check in interrupt -->
        <action>maincpu.rq@60e0 = 4ef90000fb105240</action>
        <action>maincpu.rq@fb10 = 41f90010800043e8</action>
        <action>maincpu.rq@fb18 = 0001247c0000b578</action>
        <action>maincpu.rq@fb20 = 1401123900300000</action>
        <action>maincpu.rq@fb28 = b40167f40c0100fb</action>
        <action>maincpu.rq@fb30 = 660253100c0100f7</action>
        <action>maincpu.rq@fb38 = 660252100c0100fd</action>
        <action>maincpu.rq@fb40 = 6604041000100c01</action>
        <action>maincpu.rq@fb48 = 00fe660406100010</action>
        <action>maincpu.rq@fb50 = 0c0100bb66025311</action>
        <action>maincpu.rq@fb58 = 0c0100b766025211</action>
        <action>maincpu.rq@fb60 = 0211000f0c0100ef</action>
        <action>maincpu.rq@fb68 = 6610424010116706</action>
        <action>maincpu.rq@fb70 = 06000010e1488010</action>
        <action>maincpu.rq@fb78 = 4e920c0100df660c</action>
        <action>maincpu.rq@fb80 = 303c01034e92303c</action>
        <action>maincpu.rq@fb88 = 07004e926092ffff</action>
        <!--
        fb10 | 41f9 0010 8000 : lea     $108000.l,A0 // $108000 : sound code address
        fb16 | 43e8 0001      : lea     ($1,A0),A1   // $108001 : bank number address
        fb1a | 247c 0000 b578 : movea.l #$b578,A2
        fb20 | 1401           : move.b  D1,D2
        fb22 | 1239 0030 0000 : move.b  $300000.l,D1 // read input
        fb28 | b401           : cmp.b   D1,D2
        fb2a | 67f4           : beq     $fb20
        fb2c | 0c01 00fb      : cmpi.b  #-$5,D1
        fb30 | 6602           : bne     $fb34
        fb32 | 5310           : subq.b  #1,(A0)      // decrease code -01
        fb34 | 0c01 00f7      : cmpi.b  #-$9,D1
        fb38 | 6602           : bne     $fb3c
        fb3a | 5210           : addq.b  #1,(A0)      // increase code +01
        fb3c | 0c01 00fd      : cmpi.b  #-$3,D1
        fb40 | 6604           : bne     $fb46
        fb42 | 0410 0010      : subi.b  #$10,(A0)    // decrease code -10
        fb46 | 0c01 00fe      : cmpi.b  #-$2,D1
        fb4a | 6604           : bne     $fb50
        fb4c | 0610 0010      : addi.b  #$10,(A0)    // increase code +10
        fb50 | 0c01 00bb      : cmpi.b  #-$45,D1
        fb54 | 6602           : bne     $fb58
        fb56 | 5311           : subq.b  #1,(A1)      // decrease bank -01
        fb58 | 0c01 00b7      : cmpi.b  #-$49,D1
        fb5c | 6602           : bne     $fb60
        fb5e | 5211           : addq.b  #1,(A1)      // increase bank +01
        fb60 | 0211 000f      : andi.b  #$f,(A1)
        fb64 | 0c01 00ef      : cmpi.b  #-$11,D1
        fb68 | 6610           : bne     $fb7a
        fb6a | 4240           : clr.w   D0           // play sound
        fb6c | 1011           : move.b  (A1),D0
        fb6e | 6706           : beq     $fb76
        fb70 | 0600 0010      : addi.b  #$10,D0
        fb74 | e148           : lsl.w   #8,D0
        fb76 | 8010           : or.b    (A0),D0
        fb78 | 4e92           : jsr     (A2)
        fb7a | 0c01 00df      : cmpi.b  #-$21,D1
        fb7e | 660c           : bne     $fb8c
        fb80 | 303c 0103      : move.w  #$103,D0     // stop sound
        fb84 | 4e92           : jsr     (A2)
        fb86 | 303c 0700      : move.w  #$700,D0
        fb8a | 4e92           : jsr     (A2)
        fb8c | 6092           : bra     $fb20
        -->
    </script>
    <script state="run">
        <output format="----- operation ragnarok 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@660a =         00c0044a</action>
        <action>maincpu.rq@60e0 = 10390010fd895240</action>
        <action>maincpu.rq@fb10 = ffffffffffffffff</action>
        <action>maincpu.rq@fb18 = ffffffffffffffff</action>
        <action>maincpu.rq@fb20 = ffffffffffffffff</action>
        <action>maincpu.rq@fb28 = ffffffffffffffff</action>
        <action>maincpu.rq@fb30 = ffffffffffffffff</action>
        <action>maincpu.rq@fb38 = ffffffffffffffff</action>
        <action>maincpu.rq@fb40 = ffffffffffffffff</action>
        <action>maincpu.rq@fb48 = ffffffffffffffff</action>
        <action>maincpu.rq@fb50 = ffffffffffffffff</action>
        <action>maincpu.rq@fb58 = ffffffffffffffff</action>
        <action>maincpu.rq@fb60 = ffffffffffffffff</action>
        <action>maincpu.rq@fb68 = ffffffffffffffff</action>
        <action>maincpu.rq@fb70 = ffffffffffffffff</action>
        <action>maincpu.rq@fb78 = ffffffffffffffff</action>
        <action>maincpu.rq@fb80 = ffffffffffffffff</action>
        <action>maincpu.rq@fb88 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : add new. Valid bank number seems to be 0x00 and 0x0a (not 0x08).

[zedblade] Zed Blade/Operation Ragnarok

Posted: Wed Jul 03, 2024 10:50 am
by jman
Small clean up.

zedblade.xml

Code: Select all

<!-- Zed Blade / Operation Ragnarok -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.rb@87BA = 60</action> <!-- bullet -->
            <action>maincpu.rb@9328 = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.rb@87BA = 66</action>
            <action>maincpu.rb@9328 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.rw@766E = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.rw@766E = 640E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.rq@6D48 = 4EB90000FAD04E71</action>
            <action>maincpu.rq@FAD0 = 243C000000002230</action>
            <action>maincpu.rq@FAD8 = 000067066A024482</action>
            <action>maincpu.rq@FAE0 = 2202243C00000000</action>
            <action>maincpu.rq@FAE8 = 2030000467066A02</action>
            <action>maincpu.rq@FAF0 = 448220024E75FFFF</action>
            <!--
            FAD0 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            FAD6 | 2230 0000      : move.l  (A0,D0.w), D1
            FADA | 6706           : beq     $fae2
            FADC | 6A02           : bpl     $fae0
            FADE | 4482           : neg.l   D2
            FAE0 | 2202           : move.l  D2, D1
            FAE2 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            FAE8 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            FAEC | 6706           : beq     $faf4
            FAEE | 6A02           : bpl     $faf2
            FAF0 | 4482           : neg.l   D2
            FAF2 | 2002           : move.l  D2, D0
            FAF4 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.rd@FAD2 = param</action>
            <action>maincpu.rd@FAE4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.rq@6D48 = 2230000020300004</action>
            <action>maincpu.rq@FAD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FAD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FAE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FAE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FAF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up - main shot">
        <script state="on">
            <action>maincpu.rq@76C4 = 4EB90000FB003218</action>
            <action>maincpu.rq@FB00 = 49F500003018E318</action>
            <action>maincpu.rq@FB08 = 4E75FFFFFFFFFFFF</action>
            <!--
            FB00 | 49F5 0000 : lea     (A5,D0.w), A4
            FB04 | 3018      : move.w  (A0)+, D0
            FB06 | E318      : rol.b   #1, D0
            FB08 | 4E75      : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.rq@76C4 = 49F5000030183218</action>
            <action>maincpu.rq@FB00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB08 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.rd@7604 = 4EB90000FB906002</action>
            <action>maincpu.rq@FB90 = 3D7C0001003C588D</action>
            <action>maincpu.rq@FB98 = 201D02800000FFFF</action>
            <action>maincpu.rq@FBA0 = 66F6598D2D4D0038</action>
            <action>maincpu.rq@FBA8 = 4E75FFFFFFFFFFFF</action>
            <!--
            FB90 | 3D7C 0001 003C : move.w  #$1, ($3c,A6)
            FB96 | 588D           : addq.l  #4, A5
            FB98 | 201D           : move.l  (A5)+, D0
            FB9A | 0280 0000 FFFF : andi.l  #$ffff, D0
            FBA0 | 66F6           : bne     $fb98
            FBA2 | 598D           : subq.l  #4, A5
            FBA4 | 2D4D 0038      : move.l  A5, ($38,A6)
            FBA8 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.rd@7604 = 3D7C0001003C6002</action>
            <action>maincpu.rq@FB90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FBA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FBA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <!-- don't play code 0x01, 0x03, and 0x10 because of no sound response -->
        <!-- valid bank number seems to be 0x00 and 0x0a -->
        <script state="on">
            <action>maincpu.rd@660A = 0000B61E        </action> <!-- check sound code in interrupt -->
            <action>maincpu.rq@60E0 = 4EF90000FB105240</action>
            <action>maincpu.rq@FB10 = 41F90010800043E8</action>
            <action>maincpu.rq@FB18 = 0001247C0000B578</action>
            <action>maincpu.rq@FB20 = 1401123900300000</action>
            <action>maincpu.rq@FB28 = B40167F40C0100FB</action>
            <action>maincpu.rq@FB30 = 660253100C0100F7</action>
            <action>maincpu.rq@FB38 = 660252100C0100FD</action>
            <action>maincpu.rq@FB40 = 6604041000100C01</action>
            <action>maincpu.rq@FB48 = 00FE660406100010</action>
            <action>maincpu.rq@FB50 = 0C0100BB66025311</action>
            <action>maincpu.rq@FB58 = 0C0100B766025211</action>
            <action>maincpu.rq@FB60 = 0211000F0C0100EF</action>
            <action>maincpu.rq@FB68 = 6610424010116706</action>
            <action>maincpu.rq@FB70 = 06000010E1488010</action>
            <action>maincpu.rq@FB78 = 4E920C0100DF660C</action>
            <action>maincpu.rq@FB80 = 303C01034E92303C</action>
            <action>maincpu.rq@FB88 = 07004E926092FFFF</action>
            <!--
            FB10 | 41F9 0010 8000 : lea     $108000.l, A0 // sound code address
            FB16 | 43E8 0001      : lea     ($1,A0), A1   // bank address ($108001)
            FB1A | 247C 0000 B578 : movea.l #$b578, A2    // sound latch routine address
            FB20 | 1401           : move.b  D1, D2
            FB22 | 1239 0030 0000 : move.b  $300000.l, D1 // read input
            FB28 | B401           : cmp.b   D1, D2
            FB2A | 67F4           : beq     $fb20
            FB2C | 0C01 00FB      : cmpi.b  #-$5, D1
            FB30 | 6602           : bne     $fb34
            FB32 | 5310           : subq.b  #1, (A0)      // decrease code -01
            FB34 | 0C01 00F7      : cmpi.b  #-$9, D1
            FB38 | 6602           : bne     $fb3c
            FB3A | 5210           : addq.b  #1, (A0)      // increase code +01
            FB3C | 0C01 00FD      : cmpi.b  #-$3, D1
            FB40 | 6604           : bne     $fb46
            FB42 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            FB46 | 0C01 00FE      : cmpi.b  #-$2, D1
            FB4A | 6604           : bne     $fb50
            FB4C | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            FB50 | 0C01 00BB      : cmpi.b  #-$45, D1
            FB54 | 6602           : bne     $fb58
            FB56 | 5311           : subq.b  #1, (A1)      // decrease bank -01
            FB58 | 0C01 00B7      : cmpi.b  #-$49, D1
            FB5C | 6602           : bne     $fb60
            FB5E | 5211           : addq.b  #1, (A1)      // increase bank +01
            FB60 | 0211 000F      : andi.b  #$f, (A1)
            FB64 | 0C01 00EF      : cmpi.b  #-$11, D1
            FB68 | 6610           : bne     $fb7a
            FB6A | 4240           : clr.w   D0            // play sound
            FB6C | 1011           : move.b  (A1), D0
            FB6E | 6706           : beq     $fb76
            FB70 | 0600 0010      : addi.b  #$10, D0
            FB74 | E148           : lsl.w   #8, D0
            FB76 | 8010           : or.b    (A0), D0
            FB78 | 4E92           : jsr     (A2)
            FB7A | 0C01 00DF      : cmpi.b  #-$21, D1
            FB7E | 660C           : bne     $fb8c
            FB80 | 303C 0103      : move.w  #$103, D0     // stop sound
            FB84 | 4E92           : jsr     (A2)
            FB86 | 303C 0700      : move.w  #$700, D0
            FB8A | 4E92           : jsr     (A2)
            FB8C | 6092           : bra     $fb20
            -->
        </script>
        <script state="run">
            <output format="----- zed blade/operation ragnarok 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 %X &gt;&gt;"                                line="21" align="center"  >
                <argument>maincpu.pb@108001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"                        line="23" align="center"  >
                <argument>maincpu.pb@108000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.rd@660A = 00C0044A        </action>
            <action>maincpu.rq@60E0 = 10390010FD895240</action>
            <action>maincpu.rq@FB10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.rq@FB88 = FFFFFFFFFFFFFFFF</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>
"short hit mark" : Added new as test code. Unverified.