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.
jman
Posts: 1255 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Sun Mar 27, 2022 1:36 pm
Code: Select all
<cheat desc="auto fire">
<script state="run">
<action>maincpu.ob@3285 = 0a</action>
</script>
<script state="off">
<action>maincpu.ob@3285 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0c00">01 (slow)</item>
<item value="0x1800">02 </item>
<item value="0x2400">03 </item>
<item value="0x3000">04 </item>
<item value="0x3c00">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.od@31aa = 343c0000</action> <!-- left -->
<action>maincpu.od@31ea = 343c0000</action> <!-- right -->
<action>maincpu.od@323e = 323c0000</action> <!-- up -->
<action>maincpu.od@325a = 323c0000</action> <!-- down -->
<action>maincpu.ow@31ac = param</action>
<action>maincpu.ow@31ec = param</action>
<action>maincpu.ow@3240 = param</action>
<action>maincpu.ow@325c = param</action>
</script>
<script state="off">
<action>maincpu.od@0031aa = 342d0016</action>
<action>maincpu.od@0031ea = 342d0016</action>
<action>maincpu.od@00323e = 322d0014</action>
<action>maincpu.od@00325a = 322d0014</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0004">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.od@03ada = 303c0000</action> <!-- player -->
<action>maincpu.oq@03a48 = 4eb9000400004e71</action> <!-- sidefighters -->
<action>maincpu.oq@40000 = 303c00004a6d0014</action>
<action>maincpu.oq@40008 = 6a024440d16d0008</action>
<action>maincpu.oq@40010 = 4e75000000000000</action>
<!--
40000 | 303c 00xx : move.w #$xx,D0
40004 | 4a6d 0014 : tst.w ($14,A5)
40008 | 6a02 : bpl $4000c
4000a | 4440 : neg.w D0
4000c | d16d 0008 : add.w D0,($8,A5)
40010 | 4e75 : rts
-->
<action>maincpu.ow@03adc = param</action>
<action>maincpu.ow@40002 = param</action>
</script>
<script state="change">
</script>
<script state="off">
<action>maincpu.od@03ada = 302d0014</action>
<action>maincpu.oq@03a48 = 302d0014d16d0008</action>
<action>maincpu.oq@40000 = 0000000000000000</action>
<action>maincpu.oq@40008 = 0000000000000000</action>
<action>maincpu.oq@40010 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="run">
<action>maincpu.od@01114 = 00040020</action>
<action>maincpu.oq@40020 = 41f8c20043f90012</action>
<action>maincpu.oq@40028 = 34071200103900c4</action>
<action>maincpu.oq@40030 = 1003b20067f40c00</action>
<action>maincpu.oq@40038 = 007f660253100c00</action>
<action>maincpu.oq@40040 = 00bf660252100c00</action>
<action>maincpu.oq@40048 = 00ef660404100010</action>
<action>maincpu.oq@40050 = 0c0000df66040610</action>
<action>maincpu.oq@40058 = 00100c0000fd6602</action>
<action>maincpu.oq@40060 = 12900c0000fb6602</action>
<action>maincpu.oq@40068 = 421160be00000000</action>
<!--
40020 | 41f8 c200 : lea $c200.w,A0 // sound code address
40024 | 43f9 0012 3407 : lea $123407.l,A1 // sound latch address
4002a | 1200 : move.b D0,D1
4002c | 1039 00c4 1003 : move.b $c41003.l,D0 // read input
40032 | b200 : cmp.b D0,D1
40034 | 67f4 : beq $4002a
40036 | 0c00 007f : cmpi.b #$7f,D0
4003a | 6602 : bne $4003e
4003c | 5310 : subq.b #1,(A0) // decrease code -01
4003e | 0c00 00bf : cmpi.b #-$41,D0
40042 | 6602 : bne $40046
40044 | 5210 : addq.b #1,(A0) // increase code +01
40046 | 0c00 00ef : cmpi.b #-$11,D0
4004a | 6604 : bne $40050
4004c | 0410 0010 : subi.b #$10,(A0) // decrease code -10
40050 | 0c00 00df : cmpi.b #-$21,D0
40054 | 6604 : bne $4005a
40056 | 0610 0010 : addi.b #$10,(A0) // increase code +10
4005a | 0c00 00fd : cmpi.b #-$3,D0
4005e | 6602 : bne $40062
40060 | 1290 : move.b (A0),(A1) // play sound
40062 | 0c00 00fb : cmpi.b #-$5,D0
40066 | 6602 : bne $4006a
40068 | 4211 : clr.b (A1) // stop sound
4006a | 60be : bra $4002a
-->
<output format="----- sonic boom 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="<< sound code %2.2X >>" line="19" align="center">
<argument>maincpu.pb@ffc200</argument>
</output>
</script>
<script state="off">
<action>maincpu.od@01114 = 000081e2</action>
<action>maincpu.oq@40020 = 0000000000000000</action>
<action>maincpu.oq@40028 = 0000000000000000</action>
<action>maincpu.oq@40030 = 0000000000000000</action>
<action>maincpu.oq@40038 = 0000000000000000</action>
<action>maincpu.oq@40040 = 0000000000000000</action>
<action>maincpu.oq@40048 = 0000000000000000</action>
<action>maincpu.oq@40050 = 0000000000000000</action>
<action>maincpu.oq@40058 = 0000000000000000</action>
<action>maincpu.oq@40060 = 0000000000000000</action>
<action>maincpu.oq@40068 = 0000000000000000</action>
</script>
</cheat>
Cheat state "on" and "change" have soft-reset problem in case of ROM hack (program code is reset at re-boot). So it will be better to use "run".
jman
Posts: 1255 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Thu Nov 02, 2023 11:11 pm
sonicbom.xml
Code: Select all
<!-- Sonic Boom (FD1094 317-0053) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="run">
<action>maincpu.ob@0361A = 60</action> <!-- enemy -->
<action>maincpu.ob@0377A = 60</action> <!-- bullet -->
<action>maincpu.ob@04786 = 60</action> <!-- large enemy -->
<action>maincpu.ob@09E5A = 60</action> <!-- electronic line (operation 4) -->
<action>maincpu.ob@122BE = 60</action> <!-- explosion (operation 2) -->
</script>
<script state="off">
<action>maincpu.ob@0361A = 6E</action>
<action>maincpu.ob@0377A = 6E</action>
<action>maincpu.ob@04786 = 66</action>
<action>maincpu.ob@09E5A = 6E</action>
<action>maincpu.ob@122BE = 64</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="run">
<action>maincpu.ob@37DA = 60</action>
</script>
<script state="off">
<action>maincpu.ob@37DA = 6E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="run">
<action>maincpu.ob@3285 = 0A</action>
</script>
<script state="off">
<action>maincpu.ob@3285 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0c00">01 (slow)</item>
<item value="0x1800">02 </item>
<item value="0x2800">03 </item>
<item value="0x3800">04 </item>
<item value="0x4800">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.ow@31AA = 343C </action> <!-- left -->
<action>maincpu.ow@31EA = 343C </action> <!-- right -->
<action>maincpu.ow@323E = 323C </action> <!-- up -->
<action>maincpu.ow@325A = 323C </action> <!-- down -->
<action>maincpu.ow@31AC = param</action>
<action>maincpu.ow@31EC = param</action>
<action>maincpu.ow@3240 = param</action>
<action>maincpu.ow@325C = param</action>
</script>
<script state="off">
<action>maincpu.od@31AA = 342D0016</action>
<action>maincpu.od@31EA = 342D0016</action>
<action>maincpu.od@323E = 322D0014</action>
<action>maincpu.od@325A = 322D0014</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0004">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.ow@03ADA = 303C </action> <!-- player -->
<action>maincpu.oq@03A48 = 4EB900039EA04E71</action> <!-- sidefighters -->
<action>maincpu.oq@39EA0 = 303C00004A6D0014</action>
<action>maincpu.oq@39EA8 = 6A024440D16D0008</action>
<action>maincpu.oq@39EB0 = 4E75FFFFFFFFFFFF</action>
<!--
39EA0 | 303C xxxx : move.w #$xxxx, D0
39EA4 | 4A6D 0014 : tst.w ($14,A5)
39EA8 | 6A02 : bpl $39eac
39EAA | 4440 : neg.w D0
39EAC | D16D 0008 : add.w D0, ($8,A5)
39EB0 | 4E75 : rts
-->
<action>maincpu.ow@03ADC = param</action>
<action>maincpu.ow@39EA2 = param</action>
</script>
<script state="off">
<action>maincpu.od@03ADA = 302D0014 </action>
<action>maincpu.oq@03A48 = 302D0014D16D0008</action>
<action>maincpu.oq@39EA0 = 21F021F021F021F0</action>
<action>maincpu.oq@39EA8 = 21F021F021F021F0</action>
<action>maincpu.oq@39EB0 = 21F021F021F021F0</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="run">
<action>maincpu.od@01114 = 00039EC0 </action>
<action>maincpu.oq@39EC0 = 41F8C20043F90012</action>
<action>maincpu.oq@39EC8 = 34071200103900C4</action>
<action>maincpu.oq@39ED0 = 1003B20067F40C00</action>
<action>maincpu.oq@39ED8 = 007F660253100C00</action>
<action>maincpu.oq@39EE0 = 00BF660252100C00</action>
<action>maincpu.oq@39EE8 = 00EF660404100010</action>
<action>maincpu.oq@39EF0 = 0C0000DF66040610</action>
<action>maincpu.oq@39EF8 = 00100C0000FD6602</action>
<action>maincpu.oq@39F00 = 12900C0000FB6602</action>
<action>maincpu.oq@39F08 = 421160BEFFFFFFFF</action>
<!--
39EC0 | 41F8 C200 : lea $c200.w, A0 // sound code address ($ffc200)
39EC4 | 43F9 0012 3407 : lea $123407.l, A1 // sound latch address
39ECA | 1200 : move.b D0, D1
39ECC | 1039 00C4 1003 : move.b $c41003.l, D0 // read input
39ED2 | B200 : cmp.b D0, D1
39ED4 | 67F4 : beq $39eca
39ED6 | 0C00 007F : cmpi.b #$7f, D0
39EDA | 6602 : bne $39ede
39EDC | 5310 : subq.b #1, (A0) // decrease code -01
39EDE | 0C00 00BF : cmpi.b #-$41, D0
39EE2 | 6602 : bne $39ee6
39EE4 | 5210 : addq.b #1, (A0) // increase code +01
39EE6 | 0C00 00EF : cmpi.b #-$11, D0
39EEA | 6604 : bne $39ef0
39EEC | 0410 0010 : subi.b #$10, (A0) // decrease code -01
39EF0 | 0C00 00DF : cmpi.b #-$21, D0
39EF4 | 6604 : bne $39efa
39EF6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
39EFA | 0C00 00FD : cmpi.b #-$3, D0
39EFE | 6602 : bne $39f02
39F00 | 1290 : move.b (A0), (A1) // play sound
39F02 | 0C00 00FB : cmpi.b #-$5, D0
39F06 | 6602 : bne $39f0a
39F08 | 4211 : clr.b (A1) // stop sound
39F0A | 60BE : bra $39eca
-->
<output format="----- sonic boom 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@FFC200</argument>
</output>
</script>
<script state="off">
<action>maincpu.od@01114 = 000081E2 </action>
<action>maincpu.oq@39EC0 = 21F021F021F021F0</action>
<action>maincpu.oq@39EC8 = 21F021F021F021F0</action>
<action>maincpu.oq@39ED0 = 21F021F021F021F0</action>
<action>maincpu.oq@39ED8 = 21F021F021F021F0</action>
<action>maincpu.oq@39EE0 = 21F021F021F021F0</action>
<action>maincpu.oq@39EE8 = 21F021F021F021F0</action>
<action>maincpu.oq@39EF0 = 21F021F021F021F0</action>
<action>maincpu.oq@39EF8 = 21F021F021F021F0</action>
</script>
</cheat>
</mamecheat>
sonicbomd.xml
Code: Select all
<!-- Sonic Boom (bootleg of FD1094 317-0053 set) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@0361A = 60</action> <!-- enemy -->
<action>maincpu.mb@0377A = 60</action> <!-- bullet -->
<action>maincpu.mb@04786 = 60</action> <!-- large enemy -->
<action>maincpu.mb@09E5A = 60</action> <!-- electronic line (operation 4) -->
<action>maincpu.mb@122BE = 60</action> <!-- explosion (operation 2) -->
</script>
<script state="off">
<action>maincpu.mb@0361A = 6E</action>
<action>maincpu.mb@0377A = 6E</action>
<action>maincpu.mb@04786 = 66</action>
<action>maincpu.mb@09E5A = 6E</action>
<action>maincpu.mb@122BE = 64</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mb@37DA = 60</action>
</script>
<script state="off">
<action>maincpu.mb@37DA = 6E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@3285 = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@3285 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0c00">01 (slow)</item>
<item value="0x1800">02 </item>
<item value="0x2800">03 </item>
<item value="0x3800">04 </item>
<item value="0x4800">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@31AA = 343C</action> <!-- left -->
<action>maincpu.mw@31EA = 343C</action> <!-- right -->
<action>maincpu.mw@323E = 323C</action> <!-- up -->
<action>maincpu.mw@325A = 323C</action> <!-- down -->
</script>
<script state="change">
<action>maincpu.mw@31AC = param</action>
<action>maincpu.mw@31EC = param</action>
<action>maincpu.mw@3240 = param</action>
<action>maincpu.mw@325C = param</action>
</script>
<script state="off">
<action>maincpu.md@31AA = 342D0016</action>
<action>maincpu.md@31EA = 342D0016</action>
<action>maincpu.md@323E = 322D0014</action>
<action>maincpu.md@325A = 322D0014</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0004">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@03ADA = 303C </action> <!-- player -->
<action>maincpu.mq@03A48 = 4EB900039EA04E71</action> <!-- sidefighters -->
<action>maincpu.mq@39EA0 = 303C00004A6D0014</action>
<action>maincpu.mq@39EA8 = 6A024440D16D0008</action>
<action>maincpu.mq@39EB0 = 4E75FFFFFFFFFFFF</action>
<!--
39EA0 | 303C xxxx : move.w #$xxxx, D0
39EA4 | 4A6D 0014 : tst.w ($14,A5)
39EA8 | 6A02 : bpl $39eac
39EAA | 4440 : neg.w D0
39EAC | D16D 0008 : add.w D0, ($8,A5)
39EB0 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@03ADC = param</action>
<action>maincpu.mw@39EA2 = param</action>
</script>
<script state="off">
<action>maincpu.md@03ADA = 302D0014 </action>
<action>maincpu.mq@03A48 = 302D0014D16D0008</action>
<action>maincpu.mq@39EA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EB0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="run">
<action>maincpu.md@01114 = 00039EC0 </action>
<action>maincpu.mq@39EC0 = 41F8C20043F90012</action>
<action>maincpu.mq@39EC8 = 34071200103900C4</action>
<action>maincpu.mq@39ED0 = 1003B20067F40C00</action>
<action>maincpu.mq@39ED8 = 007F660253100C00</action>
<action>maincpu.mq@39EE0 = 00BF660252100C00</action>
<action>maincpu.mq@39EE8 = 00EF660404100010</action>
<action>maincpu.mq@39EF0 = 0C0000DF66040610</action>
<action>maincpu.mq@39EF8 = 00100C0000FD6602</action>
<action>maincpu.mq@39F00 = 12900C0000FB6602</action>
<action>maincpu.mq@39F08 = 421160BEFFFFFFFF</action>
<!--
39EC0 | 41F8 C200 : lea $c200.w, A0 // sound code address ($ffc200)
39EC4 | 43F9 0012 3407 : lea $123407.l, A1 // sound latch address
39ECA | 1200 : move.b D0, D1
39ECC | 1039 00C4 1003 : move.b $c41003.l, D0 // read input
39ED2 | B200 : cmp.b D0, D1
39ED4 | 67F4 : beq $39eca
39ED6 | 0C00 007F : cmpi.b #$7f, D0
39EDA | 6602 : bne $39ede
39EDC | 5310 : subq.b #1, (A0) // decrease code -01
39EDE | 0C00 00BF : cmpi.b #-$41, D0
39EE2 | 6602 : bne $39ee6
39EE4 | 5210 : addq.b #1, (A0) // increase code +01
39EE6 | 0C00 00EF : cmpi.b #-$11, D0
39EEA | 6604 : bne $39ef0
39EEC | 0410 0010 : subi.b #$10, (A0) // decrease code -01
39EF0 | 0C00 00DF : cmpi.b #-$21, D0
39EF4 | 6604 : bne $39efa
39EF6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
39EFA | 0C00 00FD : cmpi.b #-$3, D0
39EFE | 6602 : bne $39f02
39F00 | 1290 : move.b (A0), (A1) // play sound
39F02 | 0C00 00FB : cmpi.b #-$5, D0
39F06 | 6602 : bne $39f0a
39F08 | 4211 : clr.b (A1) // stop sound
39F0A | 60BE : bra $39eca
-->
<output format="----- sonic boom 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@FFC200</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@01114 = 000081E2 </action>
<action>maincpu.mq@39EC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39ED0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39ED8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39EF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39F00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@39F08 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>