[vfive] Grind Stormer/V-Five

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: 842
Joined: Tue Dec 01, 2020 1:24 pm

[vfive] Grind Stormer/V-Five

Post 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.
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[grindstm]+ Grind Stormer/V-Five

Post 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>
Post Reply