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="<< sound code %2.2X >>" 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="<< sound code %2.2X >>" 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="<< sound code %2.2X >>" 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>