timesold.xml
Code: Select all
<!-- Time Soldiers (US Rev 3) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@E640 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@E640 = 66</action>
</script>
</cheat>
<cheat desc="auto fire - main shot">
<script state="on">
<action>maincpu.mb@134F3 = 00</action> <!-- power-up -->
<action>maincpu.mb@134FB = 00</action> <!-- normal -->
</script>
<script state="off">
<action>maincpu.mb@134F3 = 06</action>
<action>maincpu.mb@134FB = 20</action>
</script>
</cheat>
<cheat desc="auto fire - sub weapon">
<script state="on">
<action>maincpu.mb@13607 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@13607 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x000c">01 (slow)</item>
<item value="0x0018">02 </item>
<item value="0x0030">03 </item>
<item value="0x0048">04 </item>
<item value="0x0060">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@E508 = 143C</action>
</script>
<script state="change">
<action>maincpu.mw@E50A = param</action>
</script>
<script state="off">
<action>maincpu.md@E508 = 142C000E</action>
</script>
</cheat>
<cheat desc="sub weapon">
<parameter>
<item value="0x0000">none </item>
<item value="0x0001">beam 1 </item>
<item value="0x0002">5-way 1 </item>
<item value="0x0003">missile 1</item>
<item value="0x0005">beam 2 </item>
<item value="0x0006">5-way 2 </item>
<item value="0x0007">missile 2</item>
<item value="0x0009">beam 3 </item>
<item value="0x000a">5-way 3 </item>
<item value="0x000b">missile 3</item>
</parameter>
<script state="on">
<action>maincpu.mw@135D8 = 600E </action> <!-- check sub weapon and ammo -->
<action>maincpu.mw@1361C = 103C </action>
<action>maincpu.md@13672 = 60000006</action> <!-- beam 1 -->
<action>maincpu.md@13852 = 60000006</action> <!-- 5-way 1 -->
<action>maincpu.md@13CAE = 60000006</action> <!-- missile 1 -->
<action>maincpu.md@13722 = 60000006</action> <!-- beam 2 -->
<action>maincpu.md@139C6 = 60000006</action> <!-- 5-way 2 -->
<action>maincpu.md@13D26 = 60000006</action> <!-- missile 2 -->
<action>maincpu.md@137A2 = 60000006</action> <!-- beam 3 -->
<action>maincpu.md@13B3A = 60000006</action> <!-- 5-way 3 -->
<action>maincpu.md@13D9E = 60000006</action> <!-- missile 3 -->
</script>
<script state="change">
<action>maincpu.mw@1361E = param</action>
</script>
<script state="off">
<action>maincpu.mw@135D8 = 4A2C </action>
<action>maincpu.md@1361C = 102C001C</action>
<action>maincpu.md@13672 = 6500079A</action>
<action>maincpu.md@13852 = 650005BA</action>
<action>maincpu.md@13CAE = 6500015E</action>
<action>maincpu.md@13722 = 650006EA</action>
<action>maincpu.md@139C6 = 65000446</action>
<action>maincpu.md@13D26 = 650000E6</action>
<action>maincpu.md@137A2 = 6500066A</action>
<action>maincpu.md@13B3A = 650002D2</action>
<action>maincpu.md@13D9E = 6500006E</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.mq@0E460 = 4EB90003B3204E71</action> <!-- P1 -->
<action>maincpu.mq@0E472 = 4EB90003B3264E71</action> <!-- P2 -->
<action>maincpu.mq@3B320 = 102E010C6004102E</action>
<action>maincpu.mq@3B328 = 010D0240000F670A</action>
<action>maincpu.mq@3B330 = 123B000E1941001D</action>
<action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
<action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
<action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
<!--
3B320 | 102E 010C : move.b ($10c,A6), D0 // P1
3B324 | 6004 : bra $3b32a
3B326 | 102E 010D : move.b ($10d,A6), D0 // P2
3B32A | 0240 000F : andi.w #$f, D0
3B32E | 670A : beq $3b33a
3B330 | 123B 000E : move.b ($e,PC,D0.w), D1 // read table
3B334 | 1941 001D : move.b D1, ($1d,A4)
3B338 | 4E75 : rts
3B33A | 122C 001D : move.b ($1d,A4), D1
3B33E | 4E75 : rts
3B340 - 3B34A : input/direction conversion table
input direction
01 00 : up
02 06 : down
03 ff : (none)
04 09 : left
05 0a : upper-left
06 07 : lower-left
07 ff : (none)
08 03 : right
09 01 : upper-right
0a 04 : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@0E460 = 102E010C122E0016</action>
<action>maincpu.mq@0E472 = 102E010D122E0017</action>
<action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0x61 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@09FAA = 4EF90003B3504E71</action>
<action>maincpu.mq@3B350 = 41F90004010043F9</action>
<action>maincpu.mq@3B358 = 0008000112001011</action>
<action>maincpu.mq@3B360 = B20067F80C0000FB</action>
<action>maincpu.mq@3B368 = 660253100C0000F7</action>
<action>maincpu.mq@3B370 = 660252100C0000FD</action>
<action>maincpu.mq@3B378 = 6604041000100C00</action>
<action>maincpu.mq@3B380 = 00FE660406100010</action>
<action>maincpu.mq@3B388 = 0C0000EF66021290</action>
<action>maincpu.mq@3B390 = 0C0000DF660412BC</action>
<action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
<!--
3B350 | 41F9 0004 0100 : lea $40100.l, A0 // sound code address
3B356 | 43F9 0008 0001 : lea $80001.l, A1 // sound latch address
3B35C | 1200 : move.b D0, D1
3B35E | 1011 : move.b (A1), D0
3B360 | B200 : cmp.b D0, D1
3B362 | 67F8 : beq $3b35c
3B364 | 0C00 00FB : cmpi.b #-$5, D0
3B368 | 6602 : bne $3b36c
3B36A | 5310 : subq.b #1, (A0) // decrease code -01
3B36C | 0C00 00F7 : cmpi.b #-$9, D0
3B370 | 6602 : bne $3b374
3B372 | 5210 : addq.b #1, (A0) // increase code +01
3B374 | 0C00 00FD : cmpi.b #-$3, D0
3B378 | 6604 : bne $3b37e
3B37A | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3B37E | 0C00 00FE : cmpi.b #-$2, D0
3B382 | 6604 : bne $3b388
3B384 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3B388 | 0C00 00EF : cmpi.b #-$11, D0
3B38C | 6602 : bne $3b390
3B38E | 1290 : move.b (A0), (A1) // play sound
3B390 | 0C00 00DF : cmpi.b #-$21, D0
3B394 | 6604 : bne $3b39a
3B396 | 12BC 000F : move.b #$f, (A1) // stop sound
3B39A | 60C0 : bra $3b35c
-->
</script>
<script state="run">
<output format="----- time soldiers 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@40100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@09FAA = 3E3C0100426E0006</action>
<action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
<action>maincpu.mw@9242 = 601C </action> <!-- wait -->
<action>maincpu.mw@9726 = 4E71 </action> <!-- wait -->
</script>
<script state="off">
<action>maincpu.md@903A = 41F80080</action>
<action>maincpu.mw@9242 = 3C3C </action>
<action>maincpu.mw@9726 = 4E40 </action>
</script>
</cheat>
</mamecheat>
timesold1.xml
Code: Select all
<!-- Time Soldiers (US Rev 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@E45E = 60</action>
</script>
<script state="off">
<action>maincpu.mb@E45E = 66</action>
</script>
</cheat>
<cheat desc="auto fire - main shot">
<script state="on">
<action>maincpu.mb@13309 = 00</action> <!-- power-up -->
<action>maincpu.mb@13311 = 00</action> <!-- normal -->
</script>
<script state="off">
<action>maincpu.mb@13309 = 06</action>
<action>maincpu.mb@13311 = 20</action>
</script>
</cheat>
<cheat desc="auto fire - sub weapon">
<script state="on">
<action>maincpu.mb@1341D = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1341D = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x000c">01 (slow)</item>
<item value="0x0018">02 </item>
<item value="0x0030">03 </item>
<item value="0x0048">04 </item>
<item value="0x0060">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@E326 = 143C</action>
</script>
<script state="change">
<action>maincpu.mw@E328 = param</action>
</script>
<script state="off">
<action>maincpu.md@E326 = 142C000E</action>
</script>
</cheat>
<cheat desc="sub weapon">
<parameter>
<item value="0x0000">none </item>
<item value="0x0001">beam 1 </item>
<item value="0x0002">5-way 1 </item>
<item value="0x0003">missile 1</item>
<item value="0x0005">beam 2 </item>
<item value="0x0006">5-way 2 </item>
<item value="0x0007">missile 2</item>
<item value="0x0009">beam 3 </item>
<item value="0x000a">5-way 3 </item>
<item value="0x000b">missile 3</item>
</parameter>
<script state="on">
<action>maincpu.mw@133EE = 600E </action> <!-- check sub weapon and ammo -->
<action>maincpu.mw@13432 = 103C </action>
<action>maincpu.md@13488 = 60000006</action> <!-- beam 1 -->
<action>maincpu.md@13668 = 60000006</action> <!-- 5-way 1 -->
<action>maincpu.md@13AC4 = 60000006</action> <!-- missile 1 -->
<action>maincpu.md@13538 = 60000006</action> <!-- beam 2 -->
<action>maincpu.md@137DC = 60000006</action> <!-- 5-way 2 -->
<action>maincpu.md@13B3C = 60000006</action> <!-- missile 2 -->
<action>maincpu.md@135B8 = 60000006</action> <!-- beam 3 -->
<action>maincpu.md@13950 = 60000006</action> <!-- 5-way 3 -->
<action>maincpu.md@13BB4 = 60000006</action> <!-- missile 3 -->
</script>
<script state="change">
<action>maincpu.mw@13434 = param</action>
</script>
<script state="off">
<action>maincpu.mw@133EE = 4A2C </action>
<action>maincpu.md@13432 = 102C001C</action>
<action>maincpu.md@13488 = 6500079A</action>
<action>maincpu.md@13668 = 650005BA</action>
<action>maincpu.md@13AC4 = 6500015E</action>
<action>maincpu.md@13538 = 650006EA</action>
<action>maincpu.md@137DC = 65000446</action>
<action>maincpu.md@13B3C = 650000E6</action>
<action>maincpu.md@135B8 = 6500066A</action>
<action>maincpu.md@13950 = 650002D2</action>
<action>maincpu.md@13BB4 = 6500006E</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.mq@0E27E = 4EB90003B3204E71</action> <!-- P1 -->
<action>maincpu.mq@0E290 = 4EB90003B3264E71</action> <!-- P2 -->
<action>maincpu.mq@3B320 = 102E010C6004102E</action>
<action>maincpu.mq@3B328 = 010D0240000F670A</action>
<action>maincpu.mq@3B330 = 123B000E1941001D</action>
<action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
<action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
<action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
<!--
3B320 | 102E 010C : move.b ($10c,A6), D0 // P1
3B324 | 6004 : bra $3b32a
3B326 | 102E 010D : move.b ($10d,A6), D0 // P2
3B32A | 0240 000F : andi.w #$f, D0
3B32E | 670A : beq $3b33a
3B330 | 123B 000E : move.b ($e,PC,D0.w), D1 // read table
3B334 | 1941 001D : move.b D1, ($1d,A4)
3B338 | 4E75 : rts
3B33A | 122C 001D : move.b ($1d,A4), D1
3B33E | 4E75 : rts
3B340 - 3B34A : input/direction conversion table
input direction
01 00 : up
02 06 : down
03 ff : (none)
04 09 : left
05 0a : upper-left
06 07 : lower-left
07 ff : (none)
08 03 : right
09 01 : upper-right
0a 04 : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@0E27E = 102E010C122E0016</action>
<action>maincpu.mq@0E290 = 102E010D122E0017</action>
<action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0x61 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@09F14 = 4EF90003B3504E71</action>
<action>maincpu.mq@3B350 = 41F90004010043F9</action>
<action>maincpu.mq@3B358 = 0008000112001011</action>
<action>maincpu.mq@3B360 = B20067F80C000004</action>
<action>maincpu.mq@3B368 = 660253100C000008</action>
<action>maincpu.mq@3B370 = 660252100C000002</action>
<action>maincpu.mq@3B378 = 6604041000100C00</action>
<action>maincpu.mq@3B380 = 0001660406100010</action>
<action>maincpu.mq@3B388 = 0C00001066021290</action>
<action>maincpu.mq@3B390 = 0C000020660412BC</action>
<action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
<!--
3B350 | 41F9 0004 0100 : lea $40100.l, A0 // sound code address
3B356 | 43F9 0008 0001 : lea $80001.l, A1 // sound latch address
3B35C | 1200 : move.b D0, D1
3B35E | 1011 : move.b (A1), D0
3B360 | B200 : cmp.b D0, D1
3B362 | 67F8 : beq $3b35c
3B364 | 0C00 0004 : cmpi.b #$4, D0
3B368 | 6602 : bne $3b36c
3B36A | 5310 : subq.b #1, (A0) // decrease code -01
3B36C | 0C00 0008 : cmpi.b #$8, D0
3B370 | 6602 : bne $3b374
3B372 | 5210 : addq.b #1, (A0) // increase code +01
3B374 | 0C00 0002 : cmpi.b #$2, D0
3B378 | 6604 : bne $3b37e
3B37A | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3B37E | 0C00 0001 : cmpi.b #$1, D0
3B382 | 6604 : bne $3b388
3B384 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3B388 | 0C00 0010 : cmpi.b #$10, D0
3B38C | 6602 : bne $3b390
3B38E | 1290 : move.b (A0), (A1) // play sound
3B390 | 0C00 0020 : cmpi.b #$20, D0
3B394 | 6604 : bne $3b39a
3B396 | 12BC 000F : move.b #$f, (A1) // stop sound
3B39A | 60C0 : bra $3b35c
-->
</script>
<script state="run">
<output format="----- time soldiers 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@40100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@09F14 = 3E3C0100426E0006</action>
<action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
<action>maincpu.mw@9242 = 601C </action> <!-- wait -->
<action>maincpu.mw@96C4 = 4E71 </action> <!-- wait -->
</script>
<script state="off">
<action>maincpu.md@903A = 41F80080</action>
<action>maincpu.mw@9242 = 3C3C </action>
<action>maincpu.mw@96C4 = 4E40 </action>
</script>
</cheat>
</mamecheat>
btlfield.xml
Code: Select all
<!-- Battle Field (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@E452 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@E452 = 66</action>
</script>
</cheat>
<cheat desc="auto fire - main shot">
<script state="on">
<action>maincpu.mb@132FD = 00</action> <!-- power-up -->
<action>maincpu.mb@13305 = 00</action> <!-- normal -->
</script>
<script state="off">
<action>maincpu.mb@132FD = 06</action>
<action>maincpu.mb@13305 = 20</action>
</script>
</cheat>
<cheat desc="auto fire - sub weapon">
<script state="on">
<action>maincpu.mb@13411 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@13411 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x000c">01 (slow)</item>
<item value="0x0018">02 </item>
<item value="0x0030">03 </item>
<item value="0x0048">04 </item>
<item value="0x0060">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@E31A = 143C</action>
</script>
<script state="change">
<action>maincpu.mw@E31C = param</action>
</script>
<script state="off">
<action>maincpu.md@E31A = 142C000E</action>
</script>
</cheat>
<cheat desc="sub weapon">
<parameter>
<item value="0x0000">none </item>
<item value="0x0001">beam 1 </item>
<item value="0x0002">5-way 1 </item>
<item value="0x0003">missile 1</item>
<item value="0x0005">beam 2 </item>
<item value="0x0006">5-way 2 </item>
<item value="0x0007">missile 2</item>
<item value="0x0009">beam 3 </item>
<item value="0x000a">5-way 3 </item>
<item value="0x000b">missile 3</item>
</parameter>
<script state="on">
<action>maincpu.mw@133E2 = 600E </action> <!-- check sub weapon and ammo -->
<action>maincpu.mw@13426 = 103C </action>
<action>maincpu.md@1347C = 60000006</action> <!-- beam 1 -->
<action>maincpu.md@1365C = 60000006</action> <!-- 5-way 1 -->
<action>maincpu.md@13AB8 = 60000006</action> <!-- missile 1 -->
<action>maincpu.md@1352C = 60000006</action> <!-- beam 2 -->
<action>maincpu.md@137D0 = 60000006</action> <!-- 5-way 2 -->
<action>maincpu.md@13B30 = 60000006</action> <!-- missile 2 -->
<action>maincpu.md@135AC = 60000006</action> <!-- beam 3 -->
<action>maincpu.md@13944 = 60000006</action> <!-- 5-way 3 -->
<action>maincpu.md@13BA8 = 60000006</action> <!-- missile 3 -->
</script>
<script state="change">
<action>maincpu.mw@13428 = param</action>
</script>
<script state="off">
<action>maincpu.mw@133E2 = 4A2C </action>
<action>maincpu.md@13426 = 102C001C</action>
<action>maincpu.md@1347C = 6500079A</action>
<action>maincpu.md@1365C = 650005BA</action>
<action>maincpu.md@13AB8 = 6500015E</action>
<action>maincpu.md@1352C = 650006EA</action>
<action>maincpu.md@137D0 = 65000446</action>
<action>maincpu.md@13B30 = 650000E6</action>
<action>maincpu.md@135AC = 6500066A</action>
<action>maincpu.md@13944 = 650002D2</action>
<action>maincpu.md@13BA8 = 6500006E</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.mq@0E272 = 4EB90003B3204E71</action> <!-- P1 -->
<action>maincpu.mq@0E284 = 4EB90003B3264E71</action> <!-- P2 -->
<action>maincpu.mq@3B320 = 102E010C6004102E</action>
<action>maincpu.mq@3B328 = 010D0240000F670A</action>
<action>maincpu.mq@3B330 = 123B000E1941001D</action>
<action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
<action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
<action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
<!--
3B320 | 102E 010C : move.b ($10c,A6), D0 // P1
3B324 | 6004 : bra $3b32a
3B326 | 102E 010D : move.b ($10d,A6), D0 // P2
3B32A | 0240 000F : andi.w #$f, D0
3B32E | 670A : beq $3b33a
3B330 | 123B 000E : move.b ($e,PC,D0.w), D1 // read table
3B334 | 1941 001D : move.b D1, ($1d,A4)
3B338 | 4E75 : rts
3B33A | 122C 001D : move.b ($1d,A4), D1
3B33E | 4E75 : rts
3B340 - 3B34A : input/direction conversion table
input direction
01 00 : up
02 06 : down
03 ff : (none)
04 09 : left
05 0a : upper-left
06 07 : lower-left
07 ff : (none)
08 03 : right
09 01 : upper-right
0a 04 : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@0E272 = 102E010C122E0016</action>
<action>maincpu.mq@0E284 = 102E010D122E0017</action>
<action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0x61 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@09F10 = 4EF90003B3504E71</action>
<action>maincpu.mq@3B350 = 41F90004010043F9</action>
<action>maincpu.mq@3B358 = 0008000112001011</action>
<action>maincpu.mq@3B360 = B20067F80C000004</action>
<action>maincpu.mq@3B368 = 660253100C000008</action>
<action>maincpu.mq@3B370 = 660252100C000002</action>
<action>maincpu.mq@3B378 = 6604041000100C00</action>
<action>maincpu.mq@3B380 = 0001660406100010</action>
<action>maincpu.mq@3B388 = 0C00001066021290</action>
<action>maincpu.mq@3B390 = 0C000020660412BC</action>
<action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
<!--
3B350 | 41F9 0004 0100 : lea $40100.l, A0 // sound code address
3B356 | 43F9 0008 0001 : lea $80001.l, A1 // sound latch address
3B35C | 1200 : move.b D0, D1
3B35E | 1011 : move.b (A1), D0
3B360 | B200 : cmp.b D0, D1
3B362 | 67F8 : beq $3b35c
3B364 | 0C00 0004 : cmpi.b #$4, D0
3B368 | 6602 : bne $3b36c
3B36A | 5310 : subq.b #1, (A0) // decrease code -01
3B36C | 0C00 0008 : cmpi.b #$8, D0
3B370 | 6602 : bne $3b374
3B372 | 5210 : addq.b #1, (A0) // increase code +01
3B374 | 0C00 0002 : cmpi.b #$2, D0
3B378 | 6604 : bne $3b37e
3B37A | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3B37E | 0C00 0001 : cmpi.b #$1, D0
3B382 | 6604 : bne $3b388
3B384 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3B388 | 0C00 0010 : cmpi.b #$10, D0
3B38C | 6602 : bne $3b390
3B38E | 1290 : move.b (A0), (A1) // play sound
3B390 | 0C00 0020 : cmpi.b #$20, D0
3B394 | 6604 : bne $3b39a
3B396 | 12BC 000F : move.b #$f, (A1) // stop sound
3B39A | 60C0 : bra $3b35c
-->
</script>
<script state="run">
<output format="----- battle field 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@40100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@09F10 = 3E3C0100426E0006</action>
<action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
<action>maincpu.mw@9242 = 601C </action> <!-- wait -->
<action>maincpu.mw@96C4 = 4E71 </action> <!-- wait -->
</script>
<script state="off">
<action>maincpu.md@903A = 41F80080</action>
<action>maincpu.mw@9242 = 3C3C </action>
<action>maincpu.mw@96C4 = 4E40 </action>
</script>
</cheat>
</mamecheat>
btlfieldb.xml
Code: Select all
<!-- Battle Field (bootleg) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@E452 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@E452 = 66</action>
</script>
</cheat>
<cheat desc="auto fire - main shot">
<script state="on">
<action>maincpu.mb@132FD = 00</action> <!-- power-up -->
<action>maincpu.mb@13305 = 00</action> <!-- normal -->
</script>
<script state="off">
<action>maincpu.mb@132FD = 06</action>
<action>maincpu.mb@13305 = 20</action>
</script>
</cheat>
<cheat desc="auto fire - sub weapon">
<script state="on">
<action>maincpu.mb@13411 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@13411 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x000c">01 (slow)</item>
<item value="0x0018">02 </item>
<item value="0x0030">03 </item>
<item value="0x0048">04 </item>
<item value="0x0060">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@E31A = 143C</action>
</script>
<script state="change">
<action>maincpu.mw@E31C = param</action>
</script>
<script state="off">
<action>maincpu.md@E31A = 142C000E</action>
</script>
</cheat>
<cheat desc="sub weapon">
<parameter>
<item value="0x0000">none </item>
<item value="0x0001">beam 1 </item>
<item value="0x0002">5-way 1 </item>
<item value="0x0003">missile 1</item>
<item value="0x0005">beam 2 </item>
<item value="0x0006">5-way 2 </item>
<item value="0x0007">missile 2</item>
<item value="0x0009">beam 3 </item>
<item value="0x000a">5-way 3 </item>
<item value="0x000b">missile 3</item>
</parameter>
<script state="on">
<action>maincpu.mw@133E2 = 600E </action> <!-- check sub weapon and ammo -->
<action>maincpu.mw@13426 = 103C </action>
<action>maincpu.md@1347C = 60000006</action> <!-- beam 1 -->
<action>maincpu.md@1365C = 60000006</action> <!-- 5-way 1 -->
<action>maincpu.md@13AB8 = 60000006</action> <!-- missile 1 -->
<action>maincpu.md@1352C = 60000006</action> <!-- beam 2 -->
<action>maincpu.md@137D0 = 60000006</action> <!-- 5-way 2 -->
<action>maincpu.md@13B30 = 60000006</action> <!-- missile 2 -->
<action>maincpu.md@135AC = 60000006</action> <!-- beam 3 -->
<action>maincpu.md@13944 = 60000006</action> <!-- 5-way 3 -->
<action>maincpu.md@13BA8 = 60000006</action> <!-- missile 3 -->
</script>
<script state="change">
<action>maincpu.mw@13428 = param</action>
</script>
<script state="off">
<action>maincpu.mw@133E2 = 4A2C </action>
<action>maincpu.md@13426 = 102C001C</action>
<action>maincpu.md@1347C = 6500079A</action>
<action>maincpu.md@1365C = 650005BA</action>
<action>maincpu.md@13AB8 = 6500015E</action>
<action>maincpu.md@1352C = 650006EA</action>
<action>maincpu.md@137D0 = 65000446</action>
<action>maincpu.md@13B30 = 650000E6</action>
<action>maincpu.md@135AC = 6500066A</action>
<action>maincpu.md@13944 = 650002D2</action>
<action>maincpu.md@13BA8 = 6500006E</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.mq@0E272 = 4EB90003B3204E71</action> <!-- P1 -->
<action>maincpu.mq@0E284 = 4EB90003B3264E71</action> <!-- P2 -->
<action>maincpu.mq@3B320 = 102E010C6004102E</action>
<action>maincpu.mq@3B328 = 010D0240000F670A</action>
<action>maincpu.mq@3B330 = 123B000E1941001D</action>
<action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
<action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
<action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
<!--
3B320 | 102E 010C : move.b ($10c,A6), D0 // P1
3B324 | 6004 : bra $3b32a
3B326 | 102E 010D : move.b ($10d,A6), D0 // P2
3B32A | 0240 000F : andi.w #$f, D0
3B32E | 670A : beq $3b33a
3B330 | 123B 000E : move.b ($e,PC,D0.w), D1 // read table
3B334 | 1941 001D : move.b D1, ($1d,A4)
3B338 | 4E75 : rts
3B33A | 122C 001D : move.b ($1d,A4), D1
3B33E | 4E75 : rts
3B340 - 3B34A : input/direction conversion table
input direction
01 00 : up
02 06 : down
03 ff : (none)
04 09 : left
05 0a : upper-left
06 07 : lower-left
07 ff : (none)
08 03 : right
09 01 : upper-right
0a 04 : lower-right
-->
</script>
<script state="off">
<action>maincpu.mq@0E272 = 102E010C122E0016</action>
<action>maincpu.mq@0E284 = 102E010D122E0017</action>
<action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0x61 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@09F10 = 4EF90003B3504E71</action>
<action>maincpu.mq@3B350 = 41F90004010043F9</action>
<action>maincpu.mq@3B358 = 0008000112001011</action>
<action>maincpu.mq@3B360 = B20067F80C000004</action>
<action>maincpu.mq@3B368 = 660253100C000008</action>
<action>maincpu.mq@3B370 = 660252100C000002</action>
<action>maincpu.mq@3B378 = 6604041000100C00</action>
<action>maincpu.mq@3B380 = 0001660406100010</action>
<action>maincpu.mq@3B388 = 0C00001066021290</action>
<action>maincpu.mq@3B390 = 0C000020660412BC</action>
<action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
<!--
3B350 | 41F9 0004 0100 : lea $40100.l, A0 // sound code address
3B356 | 43F9 0008 0001 : lea $80001.l, A1 // sound latch address
3B35C | 1200 : move.b D0, D1
3B35E | 1011 : move.b (A1), D0
3B360 | B200 : cmp.b D0, D1
3B362 | 67F8 : beq $3b35c
3B364 | 0C00 0004 : cmpi.b #$4, D0
3B368 | 6602 : bne $3b36c
3B36A | 5310 : subq.b #1, (A0) // decrease code -01
3B36C | 0C00 0008 : cmpi.b #$8, D0
3B370 | 6602 : bne $3b374
3B372 | 5210 : addq.b #1, (A0) // increase code +01
3B374 | 0C00 0002 : cmpi.b #$2, D0
3B378 | 6604 : bne $3b37e
3B37A | 0410 0010 : subi.b #$10, (A0) // decrease code -10
3B37E | 0C00 0001 : cmpi.b #$1, D0
3B382 | 6604 : bne $3b388
3B384 | 0610 0010 : addi.b #$10, (A0) // increase code +10
3B388 | 0C00 0010 : cmpi.b #$10, D0
3B38C | 6602 : bne $3b390
3B38E | 1290 : move.b (A0), (A1) // play sound
3B390 | 0C00 0020 : cmpi.b #$20, D0
3B394 | 6604 : bne $3b39a
3B396 | 12BC 000F : move.b #$f, (A1) // stop sound
3B39A | 60C0 : bra $3b35c
-->
</script>
<script state="run">
<output format="----- battle field 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@40100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@09F10 = 3E3C0100426E0006</action>
<action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
<action>maincpu.mw@9242 = 601C </action> <!-- wait -->
<action>maincpu.mw@96C4 = 4E71 </action> <!-- wait -->
</script>
<script state="off">
<action>maincpu.md@903A = 41F80080</action>
<action>maincpu.mw@9242 = 3C3C </action>
<action>maincpu.mw@96C4 = 4E40 </action>
</script>
</cheat>
</mamecheat>