Page 1 of 1

[vfive] Grind Stormer/V-Five

Posted: Fri May 06, 2022 1:12 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@1f584 = 60</action> <!-- bullet -->
        <action>maincpu.mb@1f63e = 60</action> <!-- enemy -->
    </script>
    <script state="off">
        <action>maincpu.mb@1f584 = 64</action>
        <action>maincpu.mb@1f63e = 65</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0010">01 (slow)</item>
        <item value="0x0100">02       </item>
        <item value="0x0200">03       </item>
        <item value="0x0300">04       </item>
        <item value="0x0400">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@06306 = 4eb90003f9b04e71</action>
        <action>maincpu.mq@3f9b0 = 08390000001005df</action>
        <action>maincpu.mq@3f9b8 = 6624bdfc001005e2</action>
        <action>maincpu.mq@3f9c0 = 661c303c00004a42</action>
        <action>maincpu.mq@3f9c8 = 67066a0244403400</action>
        <action>maincpu.mq@3f9d0 = 303c00004a436706</action>
        <action>maincpu.mq@3f9d8 = 6a0244403600d56e</action>
        <action>maincpu.mq@3f9e0 = 0006d76e00084e75</action>
        <!--
        3f9b0 | 0839 0000 0010 05df : btst   #$0,$1005df.l // is name entry?
        3f9b8 | 6624                : bne    $3f9de
        3f9ba | bdfc 0010 05e2      : cmpa.l #$1005e2,A6   // is player?
        3f9c0 | 661c                : bne    $3f9de
        3f9c2 | 303c xxxx           : move.w #$xx,D0
        3f9c6 | 4a42                : tst.w  D2
        3f9c8 | 6706                : beq    $3f9d0
        3f9ca | 6a02                : bpl    $3f9ce
        3f9cc | 4440                : neg.w  D0
        3f9ce | 3400                : move.w D0,D2
        3f9d0 | 303c xxxx           : move.w #$xx,D0
        3f9d4 | 4a43                : tst.w  D3
        3f9d6 | 6706                : beq    $3f9de
        3f9d8 | 6a02                : bpl    $3f9dc
        3f9da | 4440                : neg.w  D0
        3f9dc | 3600                : move.w D0,D3
        3f9de | d56e 0006           : add.w  D2,($6,A6)
        3f9e2 | d76e 0008           : add.w  D3,($8,A6)
        3f9e6 | 4e75                : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@3f9c4 = param</action>
        <action>maincpu.mw@3f9d2 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@06306 = d56e0006d76e0008</action>
        <action>maincpu.mq@3f9b0 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9b8 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9c0 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9c8 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9d0 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9d8 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9e0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="next cursor by start button">
    <script state="on">
        <action>maincpu.mq@021a4 = 4eb90003f9f0670a</action>
        <action>maincpu.mq@3f9f0 = 41f9001030001020</action>
        <action>maincpu.mq@3f9f8 = 0200002046001239</action>
        <action>maincpu.mq@3fa00 = 0020001910c1c001</action>
        <action>maincpu.mq@3fa08 = 10804a10671041f9</action>
        <action>maincpu.mq@3fa10 = 0010064752100c10</action>
        <action>maincpu.mq@3fa18 = 0007650242103039</action>
        <action>maincpu.mq@3fa20 = 001006464e75ffff</action>
        <!--
        3f9f0 | 41f9 0010 3000 : lea    $103000.l,A0 // start button check routine
        3f9f6 | 1020           : move.b -(A0),D0
        3f9f8 | 0200 0020      : andi.b #$20,D0
        3f9fc | 4600           : not.b  D0
        3f9fe | 1239 0020 0019 : move.b $200019.l,D1
        3fa04 | 10c1           : move.b D1,(A0)+
        3fa06 | c001           : and.b  D1,D0
        3fa08 | 1080           : move.b D0,(A0)
        3fa0a | 4a10           : tst.b  (A0)
        3fa0c | 6710           : beq    $3fa1e
        3fa0e | 41f9 0010 0647 : lea    $100647.l,A0 // next cursor routine
        3fa14 | 5210           : addq.b #1,(A0)
        3fa16 | 0c10 0007      : cmpi.b #$7,(A0)
        3fa1a | 6502           : bcs    $3fa1e
        3fa1c | 4210           : clr.b  (A0)
        3fa1e | 3039 0010 0646 : move.w $100646.l,D0
        3fa24 | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@021a4 = 303900100646670a</action>
        <action>maincpu.mq@3f9f0 = ffffffffffffffff</action>
        <action>maincpu.mq@3f9f8 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa00 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa08 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa10 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa18 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa20 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@208e4 = 4ef90003fa30323c</action>
        <action>maincpu.mq@3fa30 = 41f90010100043f9</action>
        <action>maincpu.mq@3fa38 = 0021f00112001039</action>
        <action>maincpu.mq@3fa40 = 00200011b20067f4</action>
        <action>maincpu.mq@3fa48 = 0c00000466025310</action>
        <action>maincpu.mq@3fa50 = 0c00000866025210</action>
        <action>maincpu.mq@3fa58 = 0c00000266040410</action>
        <action>maincpu.mq@3fa60 = 00100c0000016604</action>
        <action>maincpu.mq@3fa68 = 061000100c000010</action>
        <action>maincpu.mq@3fa70 = 66081290137c0006</action>
        <action>maincpu.mq@3fa78 = 00020c0000206608</action>
        <action>maincpu.mq@3fa80 = 4211137c00010002</action>
        <action>maincpu.mq@3fa88 = 60b2ffffffffffff</action>
        <!--
        3fa30 | 41f9 0010 1000 : lea    $101000.l,A0 // sound code address
        3fa36 | 43f9 0021 f001 : lea    $21f001.l,A1 // sound latch address
        3fa3c | 1200           : move.b D0,D1
        3fa3e | 1039 0020 0011 : move.b $200011.l,D0 // read input
        3fa44 | b200           : cmp.b  D0,D1
        3fa46 | 67f4           : beq    $3fa3c
        3fa48 | 0c00 0004      : cmpi.b #$4,D0
        3fa4c | 6602           : bne    $3fa50
        3fa4e | 5310           : subq.b #1,(A0)      // decrease code -01
        3fa50 | 0c00 0008      : cmpi.b #$8,D0
        3fa54 | 6602           : bne    $3fa58
        3fa56 | 5210           : addq.b #1,(A0)      // increase code +01
        3fa58 | 0c00 0002      : cmpi.b #$2,D0
        3fa5c | 6604           : bne    $3fa62
        3fa5e | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        3fa62 | 0c00 0001      : cmpi.b #$1,D0
        3fa66 | 6604           : bne    $3fa6c
        3fa68 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        3fa6c | 0c00 0010      : cmpi.b #$10,D0
        3fa70 | 6608           : bne    $3fa7a
        3fa72 | 1290           : move.b (A0),(A1)    // play sound
        3fa74 | 137c 0006 0002 : move.b #$6,($2,A1)
        3fa7a | 0c00 0020      : cmpi.b #$20,D0
        3fa7e | 6608           : bne    $3fa88
        3fa80 | 4211           : clr.b  (A1)         // stop sound
        3fa82 | 137c 0001 0002 : move.b #$1,($2,A1)
        3fa88 | 60b2           : bra    $3fa3c
        -->
    </script>
    <script state="run">
        <output format="----- v-five 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@101000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@208e4 = 43f900400000323c</action>
        <action>maincpu.mq@3fa30 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa38 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa40 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa48 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa50 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa58 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa60 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa68 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa70 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa78 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa80 = ffffffffffffffff</action>
        <action>maincpu.mq@3fa88 = ffffffffffffffff</action>
    </script>
</cheat>
"next cursor by start button" is unique. Cursor position is changed when you pressed player 1 start button.

[grindstm]+ Grind Stormer/V-Five

Posted: Thu Dec 07, 2023 10:19 am
by jman
grindstm.xml

Code: Select all

<!-- Grind Stormer -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1F52C = 60</action> <!-- bullet -->
            <action>maincpu.mb@1F5E6 = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@1F52C = 64</action>
            <action>maincpu.mb@1F5E6 = 65</action>
        </script>
    </cheat>

    <cheat desc="fast fire">
        <script state="on">
            <action>maincpu.mb@1691 = 00</action> <!-- shot (1st, 2nd units) -->
            <action>maincpu.mb@169D = 00</action> <!-- shot (1st, 2nd units level max) -->
            <action>maincpu.mb@171B = 00</action> <!-- shot (3rd, 4th units) -->
            <action>maincpu.mb@1727 = 00</action> <!-- shot (3rd, 4th units level max) -->
            <action>maincpu.mb@184B = 00</action> <!-- missile -->
            <action>maincpu.mb@1C63 = FF</action> <!-- search -->
            <action>maincpu.mb@2975 = 00</action> <!-- player -->
        </script>
        <script state="off">
            <action>maincpu.mb@1691 = 03</action>
            <action>maincpu.mb@169D = 01</action>
            <action>maincpu.mb@171B = 03</action>
            <action>maincpu.mb@1727 = 01</action>
            <action>maincpu.mb@184B = 03</action>
            <action>maincpu.mb@1C63 = 01</action>
            <action>maincpu.mb@2975 = 01</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0010">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@0628A = 4EB90003F9B04E71</action>
            <action>maincpu.mq@3F9B0 = 08390000001005E5</action>
            <action>maincpu.mq@3F9B8 = 6624BDFC001005E8</action>
            <action>maincpu.mq@3F9C0 = 661C303C00004A42</action>
            <action>maincpu.mq@3F9C8 = 67066A0244403400</action>
            <action>maincpu.mq@3F9D0 = 303C00004A436706</action>
            <action>maincpu.mq@3F9D8 = 6A0244403600D56E</action>
            <action>maincpu.mq@3F9E0 = 0006D76E00084E75</action>
            <!--
            3F9B0 | 0839 0000 0010 05E5 : btst    #$0, $1005e5.l // is name entry?
            3F9B8 | 6624                : bne     $3f9de
            3F9BA | BDFC 0010 05E8      : cmpa.l  #$1005e8, A6   // is player?
            3F9C0 | 661C                : bne     $3f9de
            3F9C2 | 303C xxxx           : move.w  #$xx, D0
            3F9C6 | 4A42                : tst.w   D2
            3F9C8 | 6706                : beq     $3f9d0
            3F9CA | 6A02                : bpl     $3f9ce
            3F9CC | 4440                : neg.w   D0
            3F9CE | 3400                : move.w  D0, D2
            3F9D0 | 303C xxxx           : move.w  #$xx, D0
            3F9D4 | 4A43                : tst.w   D3
            3F9D6 | 6706                : beq     $3f9de
            3F9D8 | 6A02                : bpl     $3f9dc
            3F9DA | 4440                : neg.w   D0
            3F9DC | 3600                : move.w  D0, D3
            3F9DE | D56E 0006           : add.w   D2, ($6,A6)
            3F9E2 | D76E 0008           : add.w   D3, ($8,A6)
            3F9E6 | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3F9C4 = param</action>
            <action>maincpu.mw@3F9D2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0628A = D56E0006D76E0008</action>
            <action>maincpu.mq@3F9B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="next cursor by start button">
        <script state="on">
            <action>maincpu.mq@02328 = 4EB90003F9F0670A</action>
            <action>maincpu.mq@3F9F0 = 41F9001030001020</action>
            <action>maincpu.mq@3F9F8 = 0200002046001239</action>
            <action>maincpu.mq@3FA00 = 0020001910C1C001</action>
            <action>maincpu.mq@3FA08 = 10804A10671041F9</action>
            <action>maincpu.mq@3FA10 = 0010064D52100C10</action>
            <action>maincpu.mq@3FA18 = 0007650242103039</action>
            <action>maincpu.mq@3FA20 = 0010064C4E75FFFF</action>
            <!--
            3F9F0 | 41F9 0010 3000 : lea     $103000.l, A0 // start button check routine
            3F9F6 | 1020           : move.b  -(A0), D0
            3F9F8 | 0200 0020      : andi.b  #$20, D0
            3F9FC | 4600           : not.b   D0
            3F9FE | 1239 0020 0019 : move.b  $200019.l, D1
            3FA04 | 10C1           : move.b  D1, (A0)+
            3FA06 | C001           : and.b   D1, D0
            3FA08 | 1080           : move.b  D0, (A0)
            3FA0A | 4A10           : tst.b   (A0)
            3FA0C | 6710           : beq     $3fa1e
            3FA0E | 41F9 0010 064D : lea     $10064d.l, A0 // next cursor routine
            3FA14 | 5210           : addq.b  #1, (A0)
            3FA16 | 0C10 0007      : cmpi.b  #$7, (A0)
            3FA1A | 6502           : bcs     $3fa1e
            3FA1C | 4210           : clr.b   (A0)
            3FA1E | 3039 0010 064C : move.w  $10064c.l, D0
            3FA24 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@02328 = 30390010064C670A</action>
            <action>maincpu.mq@3F9F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@2084A = 4EF90003FA30323C</action>
            <action>maincpu.mq@3FA30 = 41F90010000043F9</action>
            <action>maincpu.mq@3FA38 = 0021F00112001039</action>
            <action>maincpu.mq@3FA40 = 00200011B20067F4</action>
            <action>maincpu.mq@3FA48 = 0C00000466025310</action>
            <action>maincpu.mq@3FA50 = 0C00000866025210</action>
            <action>maincpu.mq@3FA58 = 0C00000266040410</action>
            <action>maincpu.mq@3FA60 = 00100C0000016604</action>
            <action>maincpu.mq@3FA68 = 061000100C000010</action>
            <action>maincpu.mq@3FA70 = 66081290137C0006</action>
            <action>maincpu.mq@3FA78 = 00020C0000206608</action>
            <action>maincpu.mq@3FA80 = 4211137C00010002</action>
            <action>maincpu.mq@3FA88 = 60B2FFFFFFFFFFFF</action>
            <!--
            3FA30 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            3FA36 | 43F9 0021 F001 : lea     $21f001.l, A1 // sound latch address
            3FA3C | 1200           : move.b  D0, D1
            3FA3E | 1039 0020 0011 : move.b  $200011.l, D0 // read input
            3FA44 | B200           : cmp.b   D0, D1
            3FA46 | 67F4           : beq     $3fa3c
            3FA48 | 0C00 0004      : cmpi.b  #$4, D0
            3FA4C | 6602           : bne     $3fa50
            3FA4E | 5310           : subq.b  #1, (A0)      // decrease code -01
            3FA50 | 0C00 0008      : cmpi.b  #$8, D0
            3FA54 | 6602           : bne     $3fa58
            3FA56 | 5210           : addq.b  #1, (A0)      // increase code +01
            3FA58 | 0C00 0002      : cmpi.b  #$2, D0
            3FA5C | 6604           : bne     $3fa62
            3FA5E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            3FA62 | 0C00 0001      : cmpi.b  #$1, D0
            3FA66 | 6604           : bne     $3fa6c
            3FA68 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            3FA6C | 0C00 0010      : cmpi.b  #$10, D0
            3FA70 | 6608           : bne     $3fa7a
            3FA72 | 1290           : move.b  (A0), (A1)    // play sound
            3FA74 | 137C 0006 0002 : move.b  #$6, ($2,A1)
            3FA7A | 0C00 0020      : cmpi.b  #$20, D0
            3FA7E | 6608           : bne     $3fa88
            3FA80 | 4211           : clr.b   (A1)          // stop sound
            3FA82 | 137C 0001 0002 : move.b  #$1, ($2,A1)
            3FA88 | 60B2           : bra     $3fa3c
            -->
        </script>
        <script state="run">
            <output format="----- grind stormer 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 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@2084A = 43F900400000323C</action>
            <action>maincpu.mq@3FA30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
grindstma.xml

Code: Select all

<!-- Grind Stormer (older set) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1F4B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@1F570 = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@1F4B6 = 64</action>
            <action>maincpu.mb@1F570 = 65</action>
        </script>
    </cheat>

    <cheat desc="fast fire">
        <script state="on">
            <action>maincpu.mb@15F9 = 00</action> <!-- shot (1st, 2nd units) -->
            <action>maincpu.mb@1605 = 00</action> <!-- shot (1st, 2nd units level max) -->
            <action>maincpu.mb@1683 = 00</action> <!-- shot (3rd, 4th units) -->
            <action>maincpu.mb@168F = 00</action> <!-- shot (3rd, 4th units level max) -->
            <action>maincpu.mb@17B3 = 00</action> <!-- missile -->
            <action>maincpu.mb@1BCB = FF</action> <!-- search -->
            <action>maincpu.mb@28DD = 00</action> <!-- player -->
        </script>
        <script state="off">
            <action>maincpu.mb@15F9 = 03</action>
            <action>maincpu.mb@1605 = 01</action>
            <action>maincpu.mb@1683 = 03</action>
            <action>maincpu.mb@168F = 01</action>
            <action>maincpu.mb@17B3 = 03</action>
            <action>maincpu.mb@1BCB = 01</action>
            <action>maincpu.mb@28DD = 01</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0010">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@0620A = 4EB90003F9B04E71</action>
            <action>maincpu.mq@3F9B0 = 08390000001005E1</action>
            <action>maincpu.mq@3F9B8 = 6624BDFC001005E4</action>
            <action>maincpu.mq@3F9C0 = 661C303C00004A42</action>
            <action>maincpu.mq@3F9C8 = 67066A0244403400</action>
            <action>maincpu.mq@3F9D0 = 303C00004A436706</action>
            <action>maincpu.mq@3F9D8 = 6A0244403600D56E</action>
            <action>maincpu.mq@3F9E0 = 0006D76E00084E75</action>
            <!--
            3F9B0 | 0839 0000 0010 05E1 : btst    #$0, $1005e1.l // is name entry?
            3F9B8 | 6624                : bne     $3f9de
            3F9BA | BDFC 0010 05E4      : cmpa.l  #$1005e4, A6   // is player?
            3F9C0 | 661C                : bne     $3f9de
            3F9C2 | 303C xxxx           : move.w  #$xx, D0
            3F9C6 | 4A42                : tst.w   D2
            3F9C8 | 6706                : beq     $3f9d0
            3F9CA | 6A02                : bpl     $3f9ce
            3F9CC | 4440                : neg.w   D0
            3F9CE | 3400                : move.w  D0, D2
            3F9D0 | 303C xxxx           : move.w  #$xx, D0
            3F9D4 | 4A43                : tst.w   D3
            3F9D6 | 6706                : beq     $3f9de
            3F9D8 | 6A02                : bpl     $3f9dc
            3F9DA | 4440                : neg.w   D0
            3F9DC | 3600                : move.w  D0, D3
            3F9DE | D56E 0006           : add.w   D2, ($6,A6)
            3F9E2 | D76E 0008           : add.w   D3, ($8,A6)
            3F9E6 | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3F9C4 = param</action>
            <action>maincpu.mw@3F9D2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06306 = D56E0006D76E0008</action>
            <action>maincpu.mq@3F9B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="next cursor by start button">
        <script state="on">
            <action>maincpu.mq@02290 = 4EB90003F9F0670A</action>
            <action>maincpu.mq@3F9F0 = 41F9001030001020</action>
            <action>maincpu.mq@3F9F8 = 0200002046001239</action>
            <action>maincpu.mq@3FA00 = 0020001910C1C001</action>
            <action>maincpu.mq@3FA08 = 10804A10671041F9</action>
            <action>maincpu.mq@3FA10 = 0010064952100C10</action>
            <action>maincpu.mq@3FA18 = 0007650242103039</action>
            <action>maincpu.mq@3FA20 = 001006484E75FFFF</action>
            <!--
            3F9F0 | 41F9 0010 3000 : lea     $103000.l, A0 // start button check routine
            3F9F6 | 1020           : move.b  -(A0), D0
            3F9F8 | 0200 0020      : andi.b  #$20, D0
            3F9FC | 4600           : not.b   D0
            3F9FE | 1239 0020 0019 : move.b  $200019.l, D1
            3FA04 | 10C1           : move.b  D1, (A0)+
            3FA06 | C001           : and.b   D1, D0
            3FA08 | 1080           : move.b  D0, (A0)
            3FA0A | 4A10           : tst.b   (A0)
            3FA0C | 6710           : beq     $3fa1e
            3FA0E | 41F9 0010 0649 : lea     $100649.l, A0 // next cursor routine
            3FA14 | 5210           : addq.b  #1, (A0)
            3FA16 | 0C10 0007      : cmpi.b  #$7, (A0)
            3FA1A | 6502           : bcs     $3fa1e
            3FA1C | 4210           : clr.b   (A0)
            3FA1E | 3039 0010 0648 : move.w  $100648.l, D0
            3FA24 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@02290 = 303900100648670A</action>
            <action>maincpu.mq@3F9F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@2081A = 4EF90003FA30323C</action>
            <action>maincpu.mq@3FA30 = 41F90010000043F9</action>
            <action>maincpu.mq@3FA38 = 0021F00112001039</action>
            <action>maincpu.mq@3FA40 = 00200011B20067F4</action>
            <action>maincpu.mq@3FA48 = 0C00000466025310</action>
            <action>maincpu.mq@3FA50 = 0C00000866025210</action>
            <action>maincpu.mq@3FA58 = 0C00000266040410</action>
            <action>maincpu.mq@3FA60 = 00100C0000016604</action>
            <action>maincpu.mq@3FA68 = 061000100C000010</action>
            <action>maincpu.mq@3FA70 = 66081290137C0006</action>
            <action>maincpu.mq@3FA78 = 00020C0000206608</action>
            <action>maincpu.mq@3FA80 = 4211137C00010002</action>
            <action>maincpu.mq@3FA88 = 60B2FFFFFFFFFFFF</action>
            <!--
            3FA30 | 41F9 0010 1000 : lea     $100000.l, A0 // sound code address
            3FA36 | 43F9 0021 F001 : lea     $21f001.l, A1 // sound latch address
            3FA3C | 1200           : move.b  D0, D1
            3FA3E | 1039 0020 0011 : move.b  $200011.l, D0 // read input
            3FA44 | B200           : cmp.b   D0, D1
            3FA46 | 67F4           : beq     $3fa3c
            3FA48 | 0C00 0004      : cmpi.b  #$4, D0
            3FA4C | 6602           : bne     $3fa50
            3FA4E | 5310           : subq.b  #1, (A0)      // decrease code -01
            3FA50 | 0C00 0008      : cmpi.b  #$8, D0
            3FA54 | 6602           : bne     $3fa58
            3FA56 | 5210           : addq.b  #1, (A0)      // increase code +01
            3FA58 | 0C00 0002      : cmpi.b  #$2, D0
            3FA5C | 6604           : bne     $3fa62
            3FA5E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            3FA62 | 0C00 0001      : cmpi.b  #$1, D0
            3FA66 | 6604           : bne     $3fa6c
            3FA68 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            3FA6C | 0C00 0010      : cmpi.b  #$10, D0
            3FA70 | 6608           : bne     $3fa7a
            3FA72 | 1290           : move.b  (A0), (A1)    // play sound
            3FA74 | 137C 0006 0002 : move.b  #$6, ($2,A1)
            3FA7A | 0C00 0020      : cmpi.b  #$20, D0
            3FA7E | 6608           : bne     $3fa88
            3FA80 | 4211           : clr.b   (A1)          // stop sound
            3FA82 | 137C 0001 0002 : move.b  #$1, ($2,A1)
            3FA88 | 60B2           : bra     $3fa3c
            -->
        </script>
        <script state="run">
            <output format="----- grind stormer 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 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@2081A = 43F900400000323C</action>
            <action>maincpu.mq@3FA30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
vfive.xml

Code: Select all

<!-- V-Five (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1F584 = 60</action> <!-- bullet -->
            <action>maincpu.mb@1F63E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@1F584 = 64</action>
            <action>maincpu.mb@1F63E = 65</action>
        </script>
    </cheat>

    <cheat desc="fast fire">
        <script state="on">
            <action>maincpu.mb@14B1 = 00</action> <!-- shot (1st, 2nd units) -->
            <action>maincpu.mb@14BD = 00</action> <!-- shot (1st, 2nd units level max) -->
            <action>maincpu.mb@153B = 00</action> <!-- shot (3rd, 4th units) -->
            <action>maincpu.mb@1547 = 00</action> <!-- shot (3rd, 4th units level max) -->
            <action>maincpu.mb@166B = 00</action> <!-- missile -->
            <action>maincpu.mb@1A83 = FF</action> <!-- search -->
            <action>maincpu.mb@27F1 = 00</action> <!-- player -->
        </script>
        <script state="off">
            <action>maincpu.mb@14B1 = 03</action>
            <action>maincpu.mb@14BD = 01</action>
            <action>maincpu.mb@153B = 03</action>
            <action>maincpu.mb@1547 = 01</action>
            <action>maincpu.mb@166B = 03</action>
            <action>maincpu.mb@1A83 = 01</action>
            <action>maincpu.mb@27F1 = 01</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0010">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@06306 = 4EB90003F9B04E71</action>
            <action>maincpu.mq@3F9B0 = 08390000001005DF</action>
            <action>maincpu.mq@3F9B8 = 6624BDFC001005E2</action>
            <action>maincpu.mq@3F9C0 = 661C303C00004A42</action>
            <action>maincpu.mq@3F9C8 = 67066A0244403400</action>
            <action>maincpu.mq@3F9D0 = 303C00004A436706</action>
            <action>maincpu.mq@3F9D8 = 6A0244403600D56E</action>
            <action>maincpu.mq@3F9E0 = 0006D76E00084E75</action>
            <!--
            3F9B0 | 0839 0000 0010 05DF : btst    #$0, $1005df.l // is name entry?
            3F9B8 | 6624                : bne     $3f9de
            3F9BA | BDFC 0010 05E2      : cmpa.l  #$1005e2, A6   // is player?
            3F9C0 | 661C                : bne     $3f9de
            3F9C2 | 303C xxxx           : move.w  #$xx, D0
            3F9C6 | 4A42                : tst.w   D2
            3F9C8 | 6706                : beq     $3f9d0
            3F9CA | 6A02                : bpl     $3f9ce
            3F9CC | 4440                : neg.w   D0
            3F9CE | 3400                : move.w  D0, D2
            3F9D0 | 303C xxxx           : move.w  #$xx, D0
            3F9D4 | 4A43                : tst.w   D3
            3F9D6 | 6706                : beq     $3f9de
            3F9D8 | 6A02                : bpl     $3f9dc
            3F9DA | 4440                : neg.w   D0
            3F9DC | 3600                : move.w  D0, D3
            3F9DE | D56E 0006           : add.w   D2, ($6,A6)
            3F9E2 | D76E 0008           : add.w   D3, ($8,A6)
            3F9E6 | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3F9C4 = param</action>
            <action>maincpu.mw@3F9D2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06306 = D56E0006D76E0008</action>
            <action>maincpu.mq@3F9B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="next cursor by start button">
        <script state="on">
            <action>maincpu.mq@021A4 = 4EB90003F9F0670A</action>
            <action>maincpu.mq@3F9F0 = 41F9001030001020</action>
            <action>maincpu.mq@3F9F8 = 0200002046001239</action>
            <action>maincpu.mq@3FA00 = 0020001910C1C001</action>
            <action>maincpu.mq@3FA08 = 10804A10671041F9</action>
            <action>maincpu.mq@3FA10 = 0010064752100C10</action>
            <action>maincpu.mq@3FA18 = 0007650242103039</action>
            <action>maincpu.mq@3FA20 = 001006464E75FFFF</action>
            <!--
            3F9F0 | 41F9 0010 3000 : lea     $103000.l, A0 // start button check routine
            3F9F6 | 1020           : move.b  -(A0), D0
            3F9F8 | 0200 0020      : andi.b  #$20, D0
            3F9FC | 4600           : not.b   D0
            3F9FE | 1239 0020 0019 : move.b  $200019.l, D1
            3FA04 | 10C1           : move.b  D1, (A0)+
            3FA06 | C001           : and.b   D1, D0
            3FA08 | 1080           : move.b  D0, (A0)
            3FA0A | 4A10           : tst.b   (A0)
            3FA0C | 6710           : beq     $3fa1e
            3FA0E | 41F9 0010 0647 : lea     $100647.l, A0 // next cursor routine
            3FA14 | 5210           : addq.b  #1, (A0)
            3FA16 | 0C10 0007      : cmpi.b  #$7, (A0)
            3FA1A | 6502           : bcs     $3fa1e
            3FA1C | 4210           : clr.b   (A0)
            3FA1E | 3039 0010 0646 : move.w  $100646.l, D0
            3FA24 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@021A4 = 303900100646670A</action>
            <action>maincpu.mq@3F9F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F9F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@208E4 = 4EF90003FA30323C</action>
            <action>maincpu.mq@3FA30 = 41F90010000043F9</action>
            <action>maincpu.mq@3FA38 = 0021F00112001039</action>
            <action>maincpu.mq@3FA40 = 00200011B20067F4</action>
            <action>maincpu.mq@3FA48 = 0C00000466025310</action>
            <action>maincpu.mq@3FA50 = 0C00000866025210</action>
            <action>maincpu.mq@3FA58 = 0C00000266040410</action>
            <action>maincpu.mq@3FA60 = 00100C0000016604</action>
            <action>maincpu.mq@3FA68 = 061000100C000010</action>
            <action>maincpu.mq@3FA70 = 66081290137C0006</action>
            <action>maincpu.mq@3FA78 = 00020C0000206608</action>
            <action>maincpu.mq@3FA80 = 4211137C00010002</action>
            <action>maincpu.mq@3FA88 = 60B2FFFFFFFFFFFF</action>
            <!--
            3FA30 | 41F9 0010 1000 : lea     $100000.l, A0 // sound code address
            3FA36 | 43F9 0021 F001 : lea     $21f001.l, A1 // sound latch address
            3FA3C | 1200           : move.b  D0, D1
            3FA3E | 1039 0020 0011 : move.b  $200011.l, D0 // read input
            3FA44 | B200           : cmp.b   D0, D1
            3FA46 | 67F4           : beq     $3fa3c
            3FA48 | 0C00 0004      : cmpi.b  #$4, D0
            3FA4C | 6602           : bne     $3fa50
            3FA4E | 5310           : subq.b  #1, (A0)      // decrease code -01
            3FA50 | 0C00 0008      : cmpi.b  #$8, D0
            3FA54 | 6602           : bne     $3fa58
            3FA56 | 5210           : addq.b  #1, (A0)      // increase code +01
            3FA58 | 0C00 0002      : cmpi.b  #$2, D0
            3FA5C | 6604           : bne     $3fa62
            3FA5E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            3FA62 | 0C00 0001      : cmpi.b  #$1, D0
            3FA66 | 6604           : bne     $3fa6c
            3FA68 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            3FA6C | 0C00 0010      : cmpi.b  #$10, D0
            3FA70 | 6608           : bne     $3fa7a
            3FA72 | 1290           : move.b  (A0), (A1)    // play sound
            3FA74 | 137C 0006 0002 : move.b  #$6, ($2,A1)
            3FA7A | 0C00 0020      : cmpi.b  #$20, D0
            3FA7E | 6608           : bne     $3fa88
            3FA80 | 4211           : clr.b   (A1)          // stop sound
            3FA82 | 137C 0001 0002 : move.b  #$1, ($2,A1)
            3FA88 | 60B2           : bra     $3fa3c
            -->
        </script>
        <script state="run">
            <output format="----- v-five 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 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@208E4 = 43F900400000323C</action>
            <action>maincpu.mq@3FA30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3FA88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "fast fire" : Added new. This game has software auto fire but it is limited interval. This code is faster than normal auto fire.
  • "next cursor by start button" : In grindstm and grindstma, the bottom gauge gfx is broken when you set cursor. I don't know how to unlock "power-up gauge" system in these sets.
You can select game mode (power-up gague mode or bomber mode) by the following RAM codes. All addresses are different.

grindstm.xml

Code: Select all

    <cheat desc="select game mode">
        <parameter>
            <item value="0x00">bomber mode        </item>
            <item value="0x01">power-up gauge mode</item>
        </parameter>
        <script state="run">
            <action>maincpu.pb@1005DF = param</action>
        </script>
    </cheat>
grindstma.xml

Code: Select all

    <cheat desc="select game mode">
        <parameter>
            <item value="0x00">bomber mode        </item>
            <item value="0x01">power-up gauge mode</item>
        </parameter>
        <script state="run">
            <action>maincpu.pb@1005DB = param</action>
        </script>
    </cheat>
vfive.xml

Code: Select all

    <cheat desc="select game mode">
        <parameter>
            <item value="0x00">bomber mode        </item>
            <item value="0x01">power-up gauge mode</item>
        </parameter>
        <script state="run">
            <action>maincpu.pb@1005D9 = param</action>
        </script>
    </cheat>