desertbr.xml
Code: Select all
<!-- Desert Breaker (World) (FD1094 317-0196) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="run">
<action>maincpu.ow@16B4E = 4E71</action> <!-- enemy -->
<action>maincpu.ow@16C1A = 6004</action> <!-- tank -->
<action>maincpu.ow@1C7C6 = 6DF0</action> <!-- bullet -->
<action>maincpu.ow@1C84E = 6DF0</action> <!-- missile -->
<action>maincpu.ow@1C970 = 6DF0</action> <!-- bomb -->
<action>maincpu.ow@1C9C4 = 6DF0</action> <!-- torpedo -->
<action>maincpu.ow@1C9DC = 6DF0</action> <!-- spread bullet -->
</script>
<script state="off">
<action>maincpu.ow@16B4E = 6624</action>
<action>maincpu.ow@16C1A = 6704</action>
<action>maincpu.ow@1C7C6 = 6DF6</action>
<action>maincpu.ow@1C84E = 6DF6</action>
<action>maincpu.ow@1C970 = 6DF6</action>
<action>maincpu.ow@1C9C4 = 6DF6</action>
<action>maincpu.ow@1C9DC = 6DF6</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="run">
<action>maincpu.ob@5046 = 60</action> <!-- x position -->
<action>maincpu.ob@5076 = 60</action> <!-- y position -->
<action>maincpu.ob@9F3C = 60</action> <!-- x position (vehicle) -->
<action>maincpu.ob@9F70 = 60</action> <!-- y position (vehicle) -->
</script>
<script state="off">
<action>maincpu.ob@5046 = 67</action>
<action>maincpu.ob@5076 = 67</action>
<action>maincpu.ob@9F3C = 67</action>
<action>maincpu.ob@9F70 = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="run">
<action>maincpu.ob@4D79 = 18</action> <!-- shot -->
<action>maincpu.ob@4DAF = 18</action> <!-- flame thrower -->
<action>maincpu.ob@A071 = 18</action> <!-- vehicle -->
</script>
<script state="off">
<action>maincpu.ob@4D79 = 1A</action>
<action>maincpu.ob@4DAF = 1A</action>
<action>maincpu.ob@A071 = 1A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00018000">02 </item>
<item value="0x00028000">03 </item>
<item value="0x00038000">04 </item>
<item value="0x00048000">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.oq@05016 = 4EB90003FCA06600</action>
<action>maincpu.oq@3FCA0 = 203C000000004AAE</action>
<action>maincpu.oq@3FCA8 = 001867086A024480</action>
<action>maincpu.oq@3FCB0 = 2D400018203C0000</action>
<action>maincpu.oq@3FCB8 = 00004AAE001C6708</action>
<action>maincpu.oq@3FCC0 = 6A0244802D40001C</action>
<action>maincpu.oq@3FCC8 = 08AE000200014E75</action>
<action>maincpu.od@3FCA2 = param </action>
<action>maincpu.od@3FCB6 = param </action>
<!--
3FCA0 | 203C xxxx xxxx : move.l #$xxxx, D0 // x position
3FCA6 | 4AAE 0018 : tst.l ($18,A6)
3FCAA | 6708 : beq $3fcb4
3FCAC | 6A02 : bpl $3fcb0
3FCAE | 4480 : neg.l D0
3FCB0 | 2D40 0018 : move.l D0, ($18,A6)
3FCB4 | 203C xxxx xxxx : move.l #$xxxx, D0 // y position
3FCBA | 4AAE 001C : tst.l ($1c,A6)
3FCBE | 6708 : beq $3fcc8
3FCC0 | 6A02 : bpl $3fcc4
3FCC2 | 4480 : neg.l D0
3FCC4 | 2D40 001C : move.l D0, ($1c,A6)
3FCC8 | 08AE 0002 0001 : bclr #$2, ($1,A6)
3FCCE | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.oq@05016 = 08AE000200016600</action>
<action>maincpu.oq@3FCA0 = 8501850195019501</action>
<action>maincpu.oq@3FCA8 = 9501950185019501</action>
<action>maincpu.oq@3FCB0 = 8501850185019501</action>
<action>maincpu.oq@3FCB8 = 9501850185019501</action>
<action>maincpu.oq@3FCC0 = 8501850185019501</action>
<action>maincpu.oq@3FCC8 = 8501950185018501</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x8000">01 (slow)</item>
<item value="0x0800">02 </item>
<item value="0x0080">03 </item>
<item value="0x0040">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.ow@17BBE = param</action> <!-- game start -->
<action>maincpu.ow@17C52 = param</action> <!-- next level -->
<action>maincpu.ow@17EA4 = param</action>
</script>
<script state="change">
<action>maincpu.pw@FFF4B4 = param</action> <!-- initialize sub-timer -->
</script>
<script state="off">
<action>maincpu.ow@17BBE = 00AB</action>
<action>maincpu.ow@17C52 = 00AB</action>
<action>maincpu.ow@17EA4 = 00AB</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="run">
<action>maincpu.oq@01934 = 4EF90003FCD04FF8</action>
<action>maincpu.oq@3FCD0 = 41F8900043F900FE</action>
<action>maincpu.oq@3FCD8 = 00071200103900E4</action>
<action>maincpu.oq@3FCE0 = 0001B20067F40C00</action>
<action>maincpu.oq@3FCE8 = 007F660253100C00</action>
<action>maincpu.oq@3FCF0 = 00BF660252100C00</action>
<action>maincpu.oq@3FCF8 = 00EF660404100010</action>
<action>maincpu.oq@3FD00 = 0C0000DF66040610</action>
<action>maincpu.oq@3FD08 = 00100C0000FE6602</action>
<action>maincpu.oq@3FD10 = 12900C0000FD6604</action>
<action>maincpu.oq@3FD18 = 12BC00FF60BCFFFF</action>
<!--
3FCD0 | 41F8 9000 : lea $9000.w, A0 // sound code address ($ff9000)
3FCD4 | 43F9 00FE 0007 : lea $fe0007.l, A1 // sound latch address
3FCDA | 1200 : move.b D0, D1
3FCDC | 1039 00E4 0001 : move.b $e40001.l, D0 // read input
3FCE2 | B200 : cmp.b D0, D1
3FCE4 | 67F4 : beq $3fcda
3FCE6 | 0C00 007F : cmpi.b #$7f, D0
3FCEA | 6602 : bne $3fcee
3FCEC | 5310 : subq.b #1, (A0) // decrease code -01
3FCEE | 0C00 00BF : cmpi.b #-$41, D0
3FCF2 | 6602 : bne $3fcf6
3FCF4 | 5210 : addq.b #1, (A0) // increase code +01
3FCF6 | 0C00 00EF : cmpi.b #-$11, D0
3FCFA | 6604 : bne $3fd00
3FCFC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3FD00 | 0C00 00DF : cmpi.b #-$21, D0
3FD04 | 6604 : bne $3fd0a
3FD06 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3FD0A | 0C00 00FE : cmpi.b #-$2, D0
3FD0E | 6602 : bne $3fd12
3FD10 | 1290 : move.b (A0), (A1) // play sound
3FD12 | 0C00 00FD : cmpi.b #-$3, D0
3FD16 | 6604 : bne $3fd1c
3FD18 | 12BC 00FF : move.b #$ff, (A1) // stop sound
3FD1C | 60BC : bra $3fcda
-->
<output format="----- desert breaker 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 %02X >>" line="19" align="center" >
<argument>maincpu.pb@FF9000</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@01934 = 4E714E714E714FF8</action>
<action>maincpu.oq@3FCD0 = 8501950185018501</action>
<action>maincpu.oq@3FCD8 = 9501850195018501</action>
<action>maincpu.oq@3FCE0 = 8501850185019501</action>
<action>maincpu.oq@3FCE8 = 9501950185018501</action>
<action>maincpu.oq@3FCF0 = 9501950195018501</action>
<action>maincpu.oq@3FCF8 = 9501950195019501</action>
<action>maincpu.oq@3FD00 = 9501850185018501</action>
<action>maincpu.oq@3FD08 = 9501950185019501</action>
<action>maincpu.oq@3FD10 = 8501950195019501</action>
<action>maincpu.oq@3FD18 = 8501950195019501</action>
</script>
</cheat>
</mamecheat>
desertbrj.xml
Code: Select all
<!-- Desert Breaker (Japan) (FD1094 317-0194) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="run">
<action>maincpu.ow@16B4E = 4E71</action> <!-- enemy -->
<action>maincpu.ow@16C1A = 6004</action> <!-- tank -->
<action>maincpu.ow@1C7C6 = 6DF0</action> <!-- bullet -->
<action>maincpu.ow@1C84E = 6DF0</action> <!-- missile -->
<action>maincpu.ow@1C970 = 6DF0</action> <!-- bomb -->
<action>maincpu.ow@1C9C4 = 6DF0</action> <!-- torpedo -->
<action>maincpu.ow@1C9DC = 6DF0</action> <!-- spread bullet -->
</script>
<script state="off">
<action>maincpu.ow@16B4E = 6624</action>
<action>maincpu.ow@16C1A = 6704</action>
<action>maincpu.ow@1C7C6 = 6DF6</action>
<action>maincpu.ow@1C84E = 6DF6</action>
<action>maincpu.ow@1C970 = 6DF6</action>
<action>maincpu.ow@1C9C4 = 6DF6</action>
<action>maincpu.ow@1C9DC = 6DF6</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="run">
<action>maincpu.ob@5046 = 60</action> <!-- x position -->
<action>maincpu.ob@5076 = 60</action> <!-- y position -->
<action>maincpu.ob@9F3C = 60</action> <!-- x position (vehicle) -->
<action>maincpu.ob@9F70 = 60</action> <!-- y position (vehicle) -->
</script>
<script state="off">
<action>maincpu.ob@5046 = 67</action>
<action>maincpu.ob@5076 = 67</action>
<action>maincpu.ob@9F3C = 67</action>
<action>maincpu.ob@9F70 = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="run">
<action>maincpu.ob@4D79 = 18</action> <!-- shot -->
<action>maincpu.ob@4DAF = 18</action> <!-- flame thrower -->
<action>maincpu.ob@A071 = 18</action> <!-- vehicle -->
</script>
<script state="off">
<action>maincpu.ob@4D79 = 1A</action>
<action>maincpu.ob@4DAF = 1A</action>
<action>maincpu.ob@A071 = 1A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00018000">02 </item>
<item value="0x00028000">03 </item>
<item value="0x00038000">04 </item>
<item value="0x00048000">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.oq@05016 = 4EB90003FCA06600</action>
<action>maincpu.oq@3FCA0 = 203C000000004AAE</action>
<action>maincpu.oq@3FCA8 = 001867086A024480</action>
<action>maincpu.oq@3FCB0 = 2D400018203C0000</action>
<action>maincpu.oq@3FCB8 = 00004AAE001C6708</action>
<action>maincpu.oq@3FCC0 = 6A0244802D40001C</action>
<action>maincpu.oq@3FCC8 = 08AE000200014E75</action>
<action>maincpu.od@3FCA2 = param </action>
<action>maincpu.od@3FCB6 = param </action>
<!--
3FCA0 | 203C xxxx xxxx : move.l #$xxxx, D0 // x position
3FCA6 | 4AAE 0018 : tst.l ($18,A6)
3FCAA | 6708 : beq $3fcb4
3FCAC | 6A02 : bpl $3fcb0
3FCAE | 4480 : neg.l D0
3FCB0 | 2D40 0018 : move.l D0, ($18,A6)
3FCB4 | 203C xxxx xxxx : move.l #$xxxx, D0 // y position
3FCBA | 4AAE 001C : tst.l ($1c,A6)
3FCBE | 6708 : beq $3fcc8
3FCC0 | 6A02 : bpl $3fcc4
3FCC2 | 4480 : neg.l D0
3FCC4 | 2D40 001C : move.l D0, ($1c,A6)
3FCC8 | 08AE 0002 0001 : bclr #$2, ($1,A6)
3FCCE | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.oq@05016 = 08AE000200016600</action>
<action>maincpu.oq@3FCA0 = C510842495A09D20</action>
<action>maincpu.oq@3FCA8 = 9D809484CD009424</action>
<action>maincpu.oq@3FCB0 = 8424C404C5109484</action>
<action>maincpu.oq@3FCB8 = 94848D208D209590</action>
<action>maincpu.oq@3FCC0 = C5108D208D209424</action>
<action>maincpu.oq@3FCC8 = 84249424C4048424</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x8000">01 (slow)</item>
<item value="0x0800">02 </item>
<item value="0x0080">03 </item>
<item value="0x0040">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.ow@17BBE = param</action> <!-- game start -->
<action>maincpu.ow@17C52 = param</action> <!-- next level -->
<action>maincpu.ow@17EA4 = param</action>
</script>
<script state="change">
<action>maincpu.pw@FFF4B4 = param</action> <!-- initialize sub-timer -->
</script>
<script state="off">
<action>maincpu.ow@17BBE = 00AB</action>
<action>maincpu.ow@17C52 = 00AB</action>
<action>maincpu.ow@17EA4 = 00AB</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@01936 = 0003FCD0 </action>
<action>maincpu.oq@3FCD0 = 41F8900043F900FE</action>
<action>maincpu.oq@3FCD8 = 00071200103900E4</action>
<action>maincpu.oq@3FCE0 = 0001B20067F40C00</action>
<action>maincpu.oq@3FCE8 = 007F660253100C00</action>
<action>maincpu.oq@3FCF0 = 00BF660252100C00</action>
<action>maincpu.oq@3FCF8 = 00EF660404100010</action>
<action>maincpu.oq@3FD00 = 0C0000DF66040610</action>
<action>maincpu.oq@3FD08 = 00100C0000FE6602</action>
<action>maincpu.oq@3FD10 = 12900C0000FD6604</action>
<action>maincpu.oq@3FD18 = 12BC00FF60BCFFFF</action>
<!--
3FCD0 | 41F8 9000 : lea $9000.w, A0 // sound code address ($ff9000)
3FCD4 | 43F9 00FE 0007 : lea $fe0007.l, A1 // sound latch address
3FCDA | 1200 : move.b D0, D1
3FCDC | 1039 00E4 0001 : move.b $e40001.l, D0 // read input
3FCE2 | B200 : cmp.b D0, D1
3FCE4 | 67F4 : beq $3fcda
3FCE6 | 0C00 007F : cmpi.b #$7f, D0
3FCEA | 6602 : bne $3fcee
3FCEC | 5310 : subq.b #1, (A0) // decrease code -01
3FCEE | 0C00 00BF : cmpi.b #-$41, D0
3FCF2 | 6602 : bne $3fcf6
3FCF4 | 5210 : addq.b #1, (A0) // increase code +01
3FCF6 | 0C00 00EF : cmpi.b #-$11, D0
3FCFA | 6604 : bne $3fd00
3FCFC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3FD00 | 0C00 00DF : cmpi.b #-$21, D0
3FD04 | 6604 : bne $3fd0a
3FD06 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3FD0A | 0C00 00FE : cmpi.b #-$2, D0
3FD0E | 6602 : bne $3fd12
3FD10 | 1290 : move.b (A0), (A1) // play sound
3FD12 | 0C00 00FD : cmpi.b #-$3, D0
3FD16 | 6604 : bne $3fd1c
3FD18 | 12BC 00FF : move.b #$ff, (A1) // stop sound
3FD1C | 60BC : bra $3fcda
-->
<output format="----- desert breaker 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 %02X >>" line="19" align="center" >
<argument>maincpu.pb@FF9000</argument>
</output>
</script>
<script state="off">
<action>maincpu.od@01936 = 0000AFA2 </action>
<action>maincpu.oq@3FCD0 = 8D209484C5108D20</action>
<action>maincpu.oq@3FCD8 = 95A0CD009484CD00</action>
<action>maincpu.oq@3FCE0 = CD00C404CD009424</action>
<action>maincpu.oq@3FCE8 = 95A0942484248D20</action>
<action>maincpu.oq@3FCF0 = 95A094249D808D20</action>
<action>maincpu.oq@3FCF8 = 9484948495A09484</action>
<action>maincpu.oq@3FD00 = 9D8084248424C404</action>
<action>maincpu.oq@3FD08 = 9D809D208D209484</action>
<action>maincpu.oq@3FD10 = 8424942495909D20</action>
<action>maincpu.oq@3FD18 = CD00959095A09424</action>
</script>
</cheat>
</mamecheat>
desertbrd.xml
Code: Select all
<!-- Desert Breaker (World) (bootleg of FD1094 317-0196 set) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@16B4E = 4E71</action> <!-- enemy -->
<action>maincpu.mw@16C1A = 6004</action> <!-- tank -->
<action>maincpu.mw@1C7C6 = 6DF0</action> <!-- bullet -->
<action>maincpu.mw@1C84E = 6DF0</action> <!-- missile -->
<action>maincpu.mw@1C970 = 6DF0</action> <!-- bomb -->
<action>maincpu.mw@1C9C4 = 6DF0</action> <!-- torpedo -->
<action>maincpu.mw@1C9DC = 6DF0</action> <!-- spread bullet -->
</script>
<script state="off">
<action>maincpu.mw@16B4E = 6624</action>
<action>maincpu.mw@16C1A = 6704</action>
<action>maincpu.mw@1C7C6 = 6DF6</action>
<action>maincpu.mw@1C84E = 6DF6</action>
<action>maincpu.mw@1C970 = 6DF6</action>
<action>maincpu.mw@1C9C4 = 6DF6</action>
<action>maincpu.mw@1C9DC = 6DF6</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@5046 = 60</action> <!-- x position -->
<action>maincpu.mb@5076 = 60</action> <!-- y position -->
<action>maincpu.mb@9F3C = 60</action> <!-- x position (vehicle) -->
<action>maincpu.mb@9F70 = 60</action> <!-- y position (vehicle) -->
</script>
<script state="off">
<action>maincpu.mb@5046 = 67</action>
<action>maincpu.mb@5076 = 67</action>
<action>maincpu.mb@9F3C = 67</action>
<action>maincpu.mb@9F70 = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@4D79 = 18</action> <!-- shot -->
<action>maincpu.mb@4DAF = 18</action> <!-- flame thrower -->
<action>maincpu.mb@A071 = 18</action> <!-- vehicle -->
</script>
<script state="off">
<action>maincpu.mb@4D79 = 1A</action>
<action>maincpu.mb@4DAF = 1A</action>
<action>maincpu.mb@A071 = 1A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00018000">02 </item>
<item value="0x00028000">03 </item>
<item value="0x00038000">04 </item>
<item value="0x00048000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@05016 = 4EB90003FCA06600</action>
<action>maincpu.mq@3FCA0 = 203C000000004AAE</action>
<action>maincpu.mq@3FCA8 = 001867086A024480</action>
<action>maincpu.mq@3FCB0 = 2D400018203C0000</action>
<action>maincpu.mq@3FCB8 = 00004AAE001C6708</action>
<action>maincpu.mq@3FCC0 = 6A0244802D40001C</action>
<action>maincpu.mq@3FCC8 = 08AE000200014E75</action>
<!--
3FCA0 | 203C xxxx xxxx : move.l #$xxxx, D0 // x position
3FCA6 | 4AAE 0018 : tst.l ($18,A6)
3FCAA | 6708 : beq $3fcb4
3FCAC | 6A02 : bpl $3fcb0
3FCAE | 4480 : neg.l D0
3FCB0 | 2D40 0018 : move.l D0, ($18,A6)
3FCB4 | 203C xxxx xxxx : move.l #$xxxx, D0 // y position
3FCBA | 4AAE 001C : tst.l ($1c,A6)
3FCBE | 6708 : beq $3fcc8
3FCC0 | 6A02 : bpl $3fcc4
3FCC2 | 4480 : neg.l D0
3FCC4 | 2D40 001C : move.l D0, ($1c,A6)
3FCC8 | 08AE 0002 0001 : bclr #$2, ($1,A6)
3FCCE | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@3FCA2 = param</action>
<action>maincpu.md@3FCB6 = param</action>
</script>
<script state="off">
<action>maincpu.mq@05016 = 08AE000200016600</action>
<action>maincpu.mq@3FCA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCB8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCC8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x8000">01 (slow)</item>
<item value="0x0800">02 </item>
<item value="0x0080">03 </item>
<item value="0x0040">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pw@FFF4B4 = param</action> <!-- initialize sub-timer -->
<action>maincpu.mw@017BBE = param</action> <!-- game start -->
<action>maincpu.mw@017C52 = param</action> <!-- next level -->
<action>maincpu.mw@017EA4 = param</action>
</script>
<script state="off">
<action>maincpu.mw@17BBE = 00AB</action>
<action>maincpu.mw@17C52 = 00AB</action>
<action>maincpu.mw@17EA4 = 00AB</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@01934 = 4EF90003FCD04FF8</action>
<action>maincpu.mq@3FCD0 = 41F8900043F900FE</action>
<action>maincpu.mq@3FCD8 = 00071200103900E4</action>
<action>maincpu.mq@3FCE0 = 0001B20067F40C00</action>
<action>maincpu.mq@3FCE8 = 007F660253100C00</action>
<action>maincpu.mq@3FCF0 = 00BF660252100C00</action>
<action>maincpu.mq@3FCF8 = 00EF660404100010</action>
<action>maincpu.mq@3FD00 = 0C0000DF66040610</action>
<action>maincpu.mq@3FD08 = 00100C0000FE6602</action>
<action>maincpu.mq@3FD10 = 12900C0000FD6604</action>
<action>maincpu.mq@3FD18 = 12BC00FF60BCFFFF</action>
<!--
3FCD0 | 41F8 9000 : lea $9000.w, A0 // sound code address ($ff9000)
3FCD4 | 43F9 00FE 0007 : lea $fe0007.l, A1 // sound latch address
3FCDA | 1200 : move.b D0, D1
3FCDC | 1039 00E4 0001 : move.b $e40001.l, D0 // read input
3FCE2 | B200 : cmp.b D0, D1
3FCE4 | 67F4 : beq $3fcda
3FCE6 | 0C00 007F : cmpi.b #$7f, D0
3FCEA | 6602 : bne $3fcee
3FCEC | 5310 : subq.b #1, (A0) // decrease code -01
3FCEE | 0C00 00BF : cmpi.b #-$41, D0
3FCF2 | 6602 : bne $3fcf6
3FCF4 | 5210 : addq.b #1, (A0) // increase code +01
3FCF6 | 0C00 00EF : cmpi.b #-$11, D0
3FCFA | 6604 : bne $3fd00
3FCFC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3FD00 | 0C00 00DF : cmpi.b #-$21, D0
3FD04 | 6604 : bne $3fd0a
3FD06 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3FD0A | 0C00 00FE : cmpi.b #-$2, D0
3FD0E | 6602 : bne $3fd12
3FD10 | 1290 : move.b (A0), (A1) // play sound
3FD12 | 0C00 00FD : cmpi.b #-$3, D0
3FD16 | 6604 : bne $3fd1c
3FD18 | 12BC 00FF : move.b #$ff, (A1) // stop sound
3FD1C | 60BC : bra $3fcda
-->
</script>
<script state="run">
<output format="----- desert breaker 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 %02X >>" line="19" align="center" >
<argument>maincpu.pb@FF9000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@01934 = 4E714E714E714FF8</action>
<action>maincpu.mq@3FCD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD18 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
desertbrjd.xml
Code: Select all
<!-- Desert Breaker (Japan) (bootleg of FD1094 317-0194 set) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@16B4E = 4E71</action> <!-- enemy -->
<action>maincpu.mw@16C1A = 6004</action> <!-- tank -->
<action>maincpu.mw@1C7C6 = 6DF0</action> <!-- bullet -->
<action>maincpu.mw@1C84E = 6DF0</action> <!-- missile -->
<action>maincpu.mw@1C970 = 6DF0</action> <!-- bomb -->
<action>maincpu.mw@1C9C4 = 6DF0</action> <!-- torpedo -->
<action>maincpu.mw@1C9DC = 6DF0</action> <!-- spread bullet -->
</script>
<script state="off">
<action>maincpu.mw@16B4E = 6624</action>
<action>maincpu.mw@16C1A = 6704</action>
<action>maincpu.mw@1C7C6 = 6DF6</action>
<action>maincpu.mw@1C84E = 6DF6</action>
<action>maincpu.mw@1C970 = 6DF6</action>
<action>maincpu.mw@1C9C4 = 6DF6</action>
<action>maincpu.mw@1C9DC = 6DF6</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@5046 = 60</action> <!-- x position -->
<action>maincpu.mb@5076 = 60</action> <!-- y position -->
<action>maincpu.mb@9F3C = 60</action> <!-- x position (vehicle) -->
<action>maincpu.mb@9F70 = 60</action> <!-- y position (vehicle) -->
</script>
<script state="off">
<action>maincpu.mb@5046 = 67</action>
<action>maincpu.mb@5076 = 67</action>
<action>maincpu.mb@9F3C = 67</action>
<action>maincpu.mb@9F70 = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@4D79 = 18</action> <!-- shot -->
<action>maincpu.mb@4DAF = 18</action> <!-- flame thrower -->
<action>maincpu.mb@A071 = 18</action> <!-- vehicle -->
</script>
<script state="off">
<action>maincpu.mb@4D79 = 1A</action>
<action>maincpu.mb@4DAF = 1A</action>
<action>maincpu.mb@A071 = 1A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00018000">02 </item>
<item value="0x00028000">03 </item>
<item value="0x00038000">04 </item>
<item value="0x00048000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@05016 = 4EB90003FCA06600</action>
<action>maincpu.mq@3FCA0 = 203C000000004AAE</action>
<action>maincpu.mq@3FCA8 = 001867086A024480</action>
<action>maincpu.mq@3FCB0 = 2D400018203C0000</action>
<action>maincpu.mq@3FCB8 = 00004AAE001C6708</action>
<action>maincpu.mq@3FCC0 = 6A0244802D40001C</action>
<action>maincpu.mq@3FCC8 = 08AE000200014E75</action>
<!--
3FCA0 | 203C xxxx xxxx : move.l #$xxxx, D0 // x position
3FCA6 | 4AAE 0018 : tst.l ($18,A6)
3FCAA | 6708 : beq $3fcb4
3FCAC | 6A02 : bpl $3fcb0
3FCAE | 4480 : neg.l D0
3FCB0 | 2D40 0018 : move.l D0, ($18,A6)
3FCB4 | 203C xxxx xxxx : move.l #$xxxx, D0 // y position
3FCBA | 4AAE 001C : tst.l ($1c,A6)
3FCBE | 6708 : beq $3fcc8
3FCC0 | 6A02 : bpl $3fcc4
3FCC2 | 4480 : neg.l D0
3FCC4 | 2D40 001C : move.l D0, ($1c,A6)
3FCC8 | 08AE 0002 0001 : bclr #$2, ($1,A6)
3FCCE | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@3FCA2 = param</action>
<action>maincpu.md@3FCB6 = param</action>
</script>
<script state="off">
<action>maincpu.mq@05016 = 08AE000200016600</action>
<action>maincpu.mq@3FCA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCB8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCC8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x8000">01 (slow)</item>
<item value="0x0800">02 </item>
<item value="0x0080">03 </item>
<item value="0x0040">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pw@FFF4B4 = param</action> <!-- initialize sub-timer -->
<action>maincpu.mw@017BBE = param</action> <!-- game start -->
<action>maincpu.mw@017C52 = param</action> <!-- next level -->
<action>maincpu.mw@017EA4 = param</action>
</script>
<script state="off">
<action>maincpu.mw@17BBE = 00AB</action>
<action>maincpu.mw@17C52 = 00AB</action>
<action>maincpu.mw@17EA4 = 00AB</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@01936 = 0003FCD0 </action>
<action>maincpu.mq@3FCD0 = 41F8900043F900FE</action>
<action>maincpu.mq@3FCD8 = 00071200103900E4</action>
<action>maincpu.mq@3FCE0 = 0001B20067F40C00</action>
<action>maincpu.mq@3FCE8 = 007F660253100C00</action>
<action>maincpu.mq@3FCF0 = 00BF660252100C00</action>
<action>maincpu.mq@3FCF8 = 00EF660404100010</action>
<action>maincpu.mq@3FD00 = 0C0000DF66040610</action>
<action>maincpu.mq@3FD08 = 00100C0000FE6602</action>
<action>maincpu.mq@3FD10 = 12900C0000FD6604</action>
<action>maincpu.mq@3FD18 = 12BC00FF60BCFFFF</action>
<!--
3FCD0 | 41F8 9000 : lea $9000.w, A0 // sound code address ($ff9000)
3FCD4 | 43F9 00FE 0007 : lea $fe0007.l, A1 // sound latch address
3FCDA | 1200 : move.b D0, D1
3FCDC | 1039 00E4 0001 : move.b $e40001.l, D0 // read input
3FCE2 | B200 : cmp.b D0, D1
3FCE4 | 67F4 : beq $3fcda
3FCE6 | 0C00 007F : cmpi.b #$7f, D0
3FCEA | 6602 : bne $3fcee
3FCEC | 5310 : subq.b #1, (A0) // decrease code -01
3FCEE | 0C00 00BF : cmpi.b #-$41, D0
3FCF2 | 6602 : bne $3fcf6
3FCF4 | 5210 : addq.b #1, (A0) // increase code +01
3FCF6 | 0C00 00EF : cmpi.b #-$11, D0
3FCFA | 6604 : bne $3fd00
3FCFC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3FD00 | 0C00 00DF : cmpi.b #-$21, D0
3FD04 | 6604 : bne $3fd0a
3FD06 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3FD0A | 0C00 00FE : cmpi.b #-$2, D0
3FD0E | 6602 : bne $3fd12
3FD10 | 1290 : move.b (A0), (A1) // play sound
3FD12 | 0C00 00FD : cmpi.b #-$3, D0
3FD16 | 6604 : bne $3fd1c
3FD18 | 12BC 00FF : move.b #$ff, (A1) // stop sound
3FD1C | 60BC : bra $3fcda
-->
</script>
<script state="run">
<output format="----- desert breaker 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 %02X >>" line="19" align="center" >
<argument>maincpu.pb@FF9000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@01936 = 0000AFA2 </action>
<action>maincpu.mq@3FCD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FCF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3FD18 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>