nitrobal.xml
Code: Select all
<!-- Nitro Ball (World, set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mq@01A370 = 4EB9001000006512</action>
<action>maincpu.mq@100000 = B1FC00FEC6E06E10</action>
<action>maincpu.mq@100008 = 0C29001000066508</action>
<action>maincpu.mq@100010 = 0C68000C00206F08</action>
<action>maincpu.mq@100018 = 4EB90001A4084E75</action>
<action>maincpu.mq@100020 = 027CFFFE4E750000</action>
<!--
100000 | B1FC 00FE C6E0 : cmpa.l #$fec6e0, A0 // player or bullet?
100006 | 6E10 : bgt $100018
100008 | 0C29 0010 0006 : cmpi.b #$10, ($6,A1) // is target enemy or gate?
10000E | 6508 : bcs $100018
100010 | 0C68 000C 0020 : cmpi.w #$c, ($20,A0) // is current status ball?
100016 | 6F08 : ble $100020
100018 | 4EB9 0001 A408 : jsr $1a408.l // call collision check
10001E | 4E75 : rts
100020 | 027C FFFE : andi #$fffe, SR // no hit
100024 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@01A370 = 4EBA00964E716512</action>
<action>maincpu.mq@100000 = 0000000000000000</action>
<action>maincpu.mq@100008 = 0000000000000000</action>
<action>maincpu.mq@100010 = 0000000000000000</action>
<action>maincpu.mq@100018 = 0000000000000000</action>
<action>maincpu.mq@100020 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@C8C7 = 30</action> <!-- normal shot -->
<action>maincpu.mb@C985 = 30</action> <!-- missile launcher -->
<action>maincpu.mb@CA09 = 30</action> <!-- ring laser -->
<action>maincpu.mb@CAE3 = 30</action> <!-- flame thrower -->
<action>maincpu.mb@CB63 = 30</action> <!-- rail blaster -->
</script>
<script state="off">
<action>maincpu.mb@C8C7 = 31</action>
<action>maincpu.mb@C985 = 31</action>
<action>maincpu.mb@CA09 = 31</action>
<action>maincpu.mb@CAE3 = 31</action>
<action>maincpu.mb@CB63 = 31</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@7EB8 = 4E71</action> <!-- x position -->
<action>maincpu.mw@7EF4 = 4E71</action> <!-- y position -->
</script>
<script state="off">
<action>maincpu.mw@7EB8 = 660A</action>
<action>maincpu.mw@7EF4 = 660A</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@007EBA = 4EB9001000304E71</action> <!-- x position -->
<action>maincpu.mq@007EF6 = 4EB9001000484E71</action> <!-- y position -->
<action>maincpu.mq@100030 = 223C000000002028</action>
<action>maincpu.mq@100038 = 002867066A024481</action>
<action>maincpu.mq@100040 = 2001D1A800084E75</action>
<action>maincpu.mq@100048 = 223C000000002028</action>
<action>maincpu.mq@100050 = 002C67066A024481</action>
<action>maincpu.mq@100058 = 2001D1A8000C4E75</action>
<!--
100030 | 223C xxxx xxxx : move.l #$xxxx, D1 // x position
100036 | 2028 0028 : move.l ($28,A0), D0
10003A | 6706 : beq $100042
10003C | 6A02 : bpl $100040
10003E | 4481 : neg.l D1
100040 | 2001 : move.l D1, D0
100042 | D1A8 0008 : add.l D0, ($8,A0)
100046 | 4E75 : rts
100048 | 223C xxxx xxxx : move.l #$xxxx, D1 // y position
10004E | 2028 002C : move.l ($2c,A0), D0
100052 | 6706 : beq $10005a
100054 | 6A02 : bpl $100058
100056 | 4481 : neg.l D1
100058 | 2001 : move.l D1, D0
10005A | D1A8 000C : add.l D0, ($c,A0)
10005E | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@100032 = param</action>
<action>maincpu.md@10004A = param</action>
</script>
<script state="off">
<action>maincpu.mq@007EBA = 20280028D1A80008</action>
<action>maincpu.mq@007EF6 = 2028002CD1A8000C</action>
<action>maincpu.mq@100030 = 0000000000000000</action>
<action>maincpu.mq@100038 = 0000000000000000</action>
<action>maincpu.mq@100040 = 0000000000000000</action>
<action>maincpu.mq@100048 = 0000000000000000</action>
<action>maincpu.mq@100050 = 0000000000000000</action>
<action>maincpu.mq@100058 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@08C6C = param</action> <!-- main timer -->
<action>maincpu.mw@1BF5A = param</action> <!-- event timer (level 1) -->
<action>maincpu.mw@1C3CE = param</action> <!-- event timer (level 2) -->
<action>maincpu.mw@1C660 = param</action> <!-- event timer (level 4) -->
<action>maincpu.mw@1C914 = param</action> <!-- event timer (level 3-2) -->
<action>maincpu.mw@1CABE = param</action> <!-- event timer (level 5) -->
<action>maincpu.mw@2F864 = param</action> <!-- event timer (level 1) initialize -->
<action>maincpu.mw@30610 = param</action> <!-- event timer (level 2) initialize -->
<action>maincpu.mw@31384 = param</action> <!-- event timer (level 4) initialize -->
<action>maincpu.mw@32126 = param</action> <!-- event timer (level 3-2) initialize -->
<action>maincpu.mw@32ECA = param</action> <!-- event timer (level 5) initialize -->
<action>maincpu.mw@65B92 = param</action> <!-- event timer (level 3-1) initialize -->
<action>maincpu.mw@65BC2 = param</action> <!-- event timer (level 3-1) -->
</script>
<script state="off">
<action>maincpu.mw@08C6C = 003C</action>
<action>maincpu.mw@1BF5A = 003A</action>
<action>maincpu.mw@1C3CE = 003A</action>
<action>maincpu.mw@1C660 = 003A</action>
<action>maincpu.mw@1C914 = 003A</action>
<action>maincpu.mw@1CABE = 003A</action>
<action>maincpu.mw@2F864 = 003A</action>
<action>maincpu.mw@30610 = 003A</action>
<action>maincpu.mw@31384 = 003A</action>
<action>maincpu.mw@32126 = 003A</action>
<action>maincpu.mw@32ECA = 003A</action>
<action>maincpu.mw@65B92 = 003A</action>
<action>maincpu.mw@65BC2 = 003A</action>
</script>
</cheat>
<cheat desc="weapon timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@0A5D0 = param</action> <!-- main -->
<action>maincpu.mw@1BA28 = param</action> <!-- initialize -->
</script>
<script state="off">
<action>maincpu.mw@0A5D0 = 003A</action>
<action>maincpu.mw@1BA28 = 003A</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@000A58 = 4EF9001000604E71</action>
<action>maincpu.mq@100060 = 41F900FEC00043F9</action>
<action>maincpu.mq@100068 = 00FF426112001029</action>
<action>maincpu.mq@100070 = 0322B20067F60C00</action>
<action>maincpu.mq@100078 = 00FB660253100C00</action>
<action>maincpu.mq@100080 = 00F7660252100C00</action>
<action>maincpu.mq@100088 = 00FD660404100010</action>
<action>maincpu.mq@100090 = 0C0000FE66040610</action>
<action>maincpu.mq@100098 = 00100C0000EF6602</action>
<action>maincpu.mq@1000A0 = 12900C0000DF6602</action>
<action>maincpu.mq@1000A8 = 421160C000000000</action>
<!--
100060 | 41F9 00FE C000 : lea $fec000.l, A0 // sound code address
100066 | 43F9 00FF 4261 : lea $ff4261.l, A1 // sound latch address
10006C | 1200 : move.b D0, D1
10006E | 1029 0322 : move.b ($322,A1), D0 // read input ($ff4583)
100072 | B200 : cmp.b D0, D1
100074 | 67F6 : beq $10006c
100076 | 0C00 00FB : cmpi.b #-$5, D0
10007A | 6602 : bne $10007e
10007C | 5310 : subq.b #1, (A0) // decrease code -01
10007E | 0C00 00F7 : cmpi.b #-$9, D0
100082 | 6602 : bne $100086
100084 | 5210 : addq.b #1, (A0) // increase code +01
100086 | 0C00 00FD : cmpi.b #-$3, D0
10008A | 6604 : bne $100090
10008C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
100090 | 0C00 00FE : cmpi.b #-$2, D0
100094 | 6604 : bne $10009a
100096 | 0610 0010 : addi.b #$10, (A0) // increase code +10
10009A | 0C00 00EF : cmpi.b #-$11, D0
10009E | 6602 : bne $1000a2
1000A0 | 1290 : move.b (A0), (A1) // play sound
1000A2 | 0C00 00DF : cmpi.b #-$21, D0
1000A6 | 6602 : bne $1000aa
1000A8 | 4211 : clr.b (A1) // stop sound
1000AA | 60C0 : bra $10006c
-->
</script>
<script state="run">
<output format="----- nitro ball 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@FEC000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@000A58 = 33FCFFFF00FEC020</action>
<action>maincpu.mq@100060 = 0000000000000000</action>
<action>maincpu.mq@100068 = 0000000000000000</action>
<action>maincpu.mq@100070 = 0000000000000000</action>
<action>maincpu.mq@100078 = 0000000000000000</action>
<action>maincpu.mq@100080 = 0000000000000000</action>
<action>maincpu.mq@100088 = 0000000000000000</action>
<action>maincpu.mq@100090 = 0000000000000000</action>
<action>maincpu.mq@100098 = 0000000000000000</action>
<action>maincpu.mq@1000A0 = 0000000000000000</action>
<action>maincpu.mq@1000A8 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
nitrobala.xml
Code: Select all
<!-- Nitro Ball (World, set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mq@01A320 = 4EB9001000006512</action>
<action>maincpu.mq@100000 = B1FC00FEC6E06E10</action>
<action>maincpu.mq@100008 = 0C29001000066508</action>
<action>maincpu.mq@100010 = 0C68000C00206F08</action>
<action>maincpu.mq@100018 = 4EB90001A3B84E75</action>
<action>maincpu.mq@100020 = 027CFFFE4E750000</action>
<!--
100000 | B1FC 00FE C6E0 : cmpa.l #$fec6e0, A0 // player or bullet?
100006 | 6E10 : bgt $100018
100008 | 0C29 0010 0006 : cmpi.b #$10, ($6,A1) // is target enemy or gate?
10000E | 6508 : bcs $100018
100010 | 0C68 000C 0020 : cmpi.w #$c, ($20,A0) // is current status ball?
100016 | 6F08 : ble $100020
100018 | 4EB9 0001 A3B8 : jsr $1a3b8.l // call collision check
10001E | 4E75 : rts
100020 | 027C FFFE : andi #$fffe, SR // no hit
100024 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@01A320 = 4EBA00964E716512</action>
<action>maincpu.mq@100000 = 0000000000000000</action>
<action>maincpu.mq@100008 = 0000000000000000</action>
<action>maincpu.mq@100010 = 0000000000000000</action>
<action>maincpu.mq@100018 = 0000000000000000</action>
<action>maincpu.mq@100020 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@C8A7 = 30</action> <!-- normal shot -->
<action>maincpu.mb@C965 = 30</action> <!-- missile launcher -->
<action>maincpu.mb@C9E9 = 30</action> <!-- ring laser -->
<action>maincpu.mb@CAC3 = 30</action> <!-- flame thrower -->
<action>maincpu.mb@CB43 = 30</action> <!-- rail blaster -->
</script>
<script state="off">
<action>maincpu.mb@C8A7 = 31</action>
<action>maincpu.mb@C965 = 31</action>
<action>maincpu.mb@C9E9 = 31</action>
<action>maincpu.mb@CAC3 = 31</action>
<action>maincpu.mb@CB43 = 31</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@7E78 = 4E71</action> <!-- x position -->
<action>maincpu.mw@7EB4 = 4E71</action> <!-- y position -->
</script>
<script state="off">
<action>maincpu.mw@7E78 = 660A</action>
<action>maincpu.mw@7EB4 = 660A</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@007E7A = 4EB9001000304E71</action> <!-- x position -->
<action>maincpu.mq@007EB6 = 4EB9001000484E71</action> <!-- y position -->
<action>maincpu.mq@100030 = 223C000000002028</action>
<action>maincpu.mq@100038 = 002867066A024481</action>
<action>maincpu.mq@100040 = 2001D1A800084E75</action>
<action>maincpu.mq@100048 = 223C000000002028</action>
<action>maincpu.mq@100050 = 002C67066A024481</action>
<action>maincpu.mq@100058 = 2001D1A8000C4E75</action>
<!--
100030 | 223C xxxx xxxx : move.l #$xxxx, D1 // x position
100036 | 2028 0028 : move.l ($28,A0), D0
10003A | 6706 : beq $100042
10003C | 6A02 : bpl $100040
10003E | 4481 : neg.l D1
100040 | 2001 : move.l D1, D0
100042 | D1A8 0008 : add.l D0, ($8,A0)
100046 | 4E75 : rts
100048 | 223C xxxx xxxx : move.l #$xxxx, D1 // y position
10004E | 2028 002C : move.l ($2c,A0), D0
100052 | 6706 : beq $10005a
100054 | 6A02 : bpl $100058
100056 | 4481 : neg.l D1
100058 | 2001 : move.l D1, D0
10005A | D1A8 000C : add.l D0, ($c,A0)
10005E | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@100032 = param</action>
<action>maincpu.md@10004A = param</action>
</script>
<script state="off">
<action>maincpu.mq@007E7A = 20280028D1A80008</action>
<action>maincpu.mq@007EB6 = 2028002CD1A8000C</action>
<action>maincpu.mq@100030 = 0000000000000000</action>
<action>maincpu.mq@100038 = 0000000000000000</action>
<action>maincpu.mq@100040 = 0000000000000000</action>
<action>maincpu.mq@100048 = 0000000000000000</action>
<action>maincpu.mq@100050 = 0000000000000000</action>
<action>maincpu.mq@100058 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@08BEC = param</action> <!-- main timer -->
<action>maincpu.mw@1BF0A = param</action> <!-- event timer (level 2) -->
<action>maincpu.mw@1C37E = param</action> <!-- event timer (level 1) -->
<action>maincpu.mw@1C610 = param</action> <!-- event timer (level 4) -->
<action>maincpu.mw@1C8C4 = param</action> <!-- event timer (level 3-2) -->
<action>maincpu.mw@1CA6E = param</action> <!-- event timer (level 5) -->
<action>maincpu.mw@2F868 = param</action> <!-- event timer (level 2) initialize -->
<action>maincpu.mw@30614 = param</action> <!-- event timer (level 1) initialize -->
<action>maincpu.mw@31388 = param</action> <!-- event timer (level 4) initialize -->
<action>maincpu.mw@3212A = param</action> <!-- event timer (level 3-2) initialize -->
<action>maincpu.mw@32ECE = param</action> <!-- event timer (level 5) initialize -->
<action>maincpu.mw@65B8C = param</action> <!-- event timer (level 3-1) initialize -->
<action>maincpu.mw@65BBC = param</action> <!-- event timer (level 3-1) -->
</script>
<script state="off">
<action>maincpu.mw@08BEC = 003C</action>
<action>maincpu.mw@1BF0A = 003A</action>
<action>maincpu.mw@1C37E = 003A</action>
<action>maincpu.mw@1C610 = 003A</action>
<action>maincpu.mw@1C8C4 = 003A</action>
<action>maincpu.mw@1CA6E = 003A</action>
<action>maincpu.mw@2F868 = 003A</action>
<action>maincpu.mw@30614 = 003A</action>
<action>maincpu.mw@31388 = 003A</action>
<action>maincpu.mw@3212A = 003A</action>
<action>maincpu.mw@32ECE = 003A</action>
<action>maincpu.mw@65B8C = 003A</action>
<action>maincpu.mw@65BBC = 003A</action>
</script>
</cheat>
<cheat desc="weapon timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@0A550 = param</action> <!-- main -->
<action>maincpu.mw@1B9D8 = param</action> <!-- initialize -->
</script>
<script state="off">
<action>maincpu.mw@0A550 = 003A</action>
<action>maincpu.mw@1B9D8 = 003A</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@000A58 = 4EF9001000604E71</action>
<action>maincpu.mq@100060 = 41F900FEC00043F9</action>
<action>maincpu.mq@100068 = 00FF426112001029</action>
<action>maincpu.mq@100070 = 0322B20067F60C00</action>
<action>maincpu.mq@100078 = 00FB660253100C00</action>
<action>maincpu.mq@100080 = 00F7660252100C00</action>
<action>maincpu.mq@100088 = 00FD660404100010</action>
<action>maincpu.mq@100090 = 0C0000FE66040610</action>
<action>maincpu.mq@100098 = 00100C0000EF6602</action>
<action>maincpu.mq@1000A0 = 12900C0000DF6602</action>
<action>maincpu.mq@1000A8 = 421160C000000000</action>
<!--
100060 | 41F9 00FE C000 : lea $fec000.l, A0 // sound code address
100066 | 43F9 00FF 4261 : lea $ff4261.l, A1 // sound latch address
10006C | 1200 : move.b D0, D1
10006E | 1029 0322 : move.b ($322,A1), D0 // read input ($ff4583)
100072 | B200 : cmp.b D0, D1
100074 | 67F6 : beq $10006c
100076 | 0C00 00FB : cmpi.b #-$5, D0
10007A | 6602 : bne $10007e
10007C | 5310 : subq.b #1, (A0) // decrease code -01
10007E | 0C00 00F7 : cmpi.b #-$9, D0
100082 | 6602 : bne $100086
100084 | 5210 : addq.b #1, (A0) // increase code +01
100086 | 0C00 00FD : cmpi.b #-$3, D0
10008A | 6604 : bne $100090
10008C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
100090 | 0C00 00FE : cmpi.b #-$2, D0
100094 | 6604 : bne $10009a
100096 | 0610 0010 : addi.b #$10, (A0) // increase code +10
10009A | 0C00 00EF : cmpi.b #-$11, D0
10009E | 6602 : bne $1000a2
1000A0 | 1290 : move.b (A0), (A1) // play sound
1000A2 | 0C00 00DF : cmpi.b #-$21, D0
1000A6 | 6602 : bne $1000aa
1000A8 | 4211 : clr.b (A1) // stop sound
1000AA | 60C0 : bra $10006c
-->
</script>
<script state="run">
<output format="----- nitro ball 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@FEC000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@000A58 = 33FCFFFF00FEC020</action>
<action>maincpu.mq@100060 = 0000000000000000</action>
<action>maincpu.mq@100068 = 0000000000000000</action>
<action>maincpu.mq@100070 = 0000000000000000</action>
<action>maincpu.mq@100078 = 0000000000000000</action>
<action>maincpu.mq@100080 = 0000000000000000</action>
<action>maincpu.mq@100088 = 0000000000000000</action>
<action>maincpu.mq@100090 = 0000000000000000</action>
<action>maincpu.mq@100098 = 0000000000000000</action>
<action>maincpu.mq@1000A0 = 0000000000000000</action>
<action>maincpu.mq@1000A8 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
nitrobalb.xml
Code: Select all
<!-- Nitro Ball (World, set 3) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mq@01A380 = 4EB9001000006512</action>
<action>maincpu.mq@100000 = B1FC00FEC6E06E10</action>
<action>maincpu.mq@100008 = 0C29001000066508</action>
<action>maincpu.mq@100010 = 0C68000C00206F08</action>
<action>maincpu.mq@100018 = 4EB90001A4184E75</action>
<action>maincpu.mq@100020 = 027CFFFE4E750000</action>
<!--
100000 | B1FC 00FE C6E0 : cmpa.l #$fec6e0, A0 // player or bullet?
100006 | 6E10 : bgt $100018
100008 | 0C29 0010 0006 : cmpi.b #$10, ($6,A1) // is target enemy or gate?
10000E | 6508 : bcs $100018
100010 | 0C68 000C 0020 : cmpi.w #$c, ($20,A0) // is current status ball?
100016 | 6F08 : ble $100020
100018 | 4EB9 0001 A418 : jsr $1a418.l // call collision check
10001E | 4E75 : rts
100020 | 027C FFFE : andi #$fffe, SR // no hit
100024 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@01A380 = 4EBA00964E716512</action>
<action>maincpu.mq@100000 = 0000000000000000</action>
<action>maincpu.mq@100008 = 0000000000000000</action>
<action>maincpu.mq@100010 = 0000000000000000</action>
<action>maincpu.mq@100018 = 0000000000000000</action>
<action>maincpu.mq@100020 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@C8C7 = 30</action> <!-- normal shot -->
<action>maincpu.mb@C985 = 30</action> <!-- missile launcher -->
<action>maincpu.mb@CA09 = 30</action> <!-- ring laser -->
<action>maincpu.mb@CAE3 = 30</action> <!-- flame thrower -->
<action>maincpu.mb@CB63 = 30</action> <!-- rail blaster -->
</script>
<script state="off">
<action>maincpu.mb@C8C7 = 31</action>
<action>maincpu.mb@C985 = 31</action>
<action>maincpu.mb@CA09 = 31</action>
<action>maincpu.mb@CAE3 = 31</action>
<action>maincpu.mb@CB63 = 31</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@7EB8 = 4E71</action> <!-- x position -->
<action>maincpu.mw@7EF4 = 4E71</action> <!-- y position -->
</script>
<script state="off">
<action>maincpu.mw@7EB8 = 660A</action>
<action>maincpu.mw@7EF4 = 660A</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@007EBA = 4EB9001000304E71</action> <!-- x position -->
<action>maincpu.mq@007EF6 = 4EB9001000484E71</action> <!-- y position -->
<action>maincpu.mq@100030 = 223C000000002028</action>
<action>maincpu.mq@100038 = 002867066A024481</action>
<action>maincpu.mq@100040 = 2001D1A800084E75</action>
<action>maincpu.mq@100048 = 223C000000002028</action>
<action>maincpu.mq@100050 = 002C67066A024481</action>
<action>maincpu.mq@100058 = 2001D1A8000C4E75</action>
<!--
100030 | 223C xxxx xxxx : move.l #$xxxx, D1 // x position
100036 | 2028 0028 : move.l ($28,A0), D0
10003A | 6706 : beq $100042
10003C | 6A02 : bpl $100040
10003E | 4481 : neg.l D1
100040 | 2001 : move.l D1, D0
100042 | D1A8 0008 : add.l D0, ($8,A0)
100046 | 4E75 : rts
100048 | 223C xxxx xxxx : move.l #$xxxx, D1 // y position
10004E | 2028 002C : move.l ($2c,A0), D0
100052 | 6706 : beq $10005a
100054 | 6A02 : bpl $100058
100056 | 4481 : neg.l D1
100058 | 2001 : move.l D1, D0
10005A | D1A8 000C : add.l D0, ($c,A0)
10005E | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@100032 = param</action>
<action>maincpu.md@10004A = param</action>
</script>
<script state="off">
<action>maincpu.mq@007EBA = 20280028D1A80008</action>
<action>maincpu.mq@007EF6 = 2028002CD1A8000C</action>
<action>maincpu.mq@100030 = 0000000000000000</action>
<action>maincpu.mq@100038 = 0000000000000000</action>
<action>maincpu.mq@100040 = 0000000000000000</action>
<action>maincpu.mq@100048 = 0000000000000000</action>
<action>maincpu.mq@100050 = 0000000000000000</action>
<action>maincpu.mq@100058 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@08C6C = param</action> <!-- main timer -->
<action>maincpu.mw@1BF6A = param</action> <!-- event timer (level 2) -->
<action>maincpu.mw@1C3DE = param</action> <!-- event timer (level 1) -->
<action>maincpu.mw@1C670 = param</action> <!-- event timer (level 4) -->
<action>maincpu.mw@1C924 = param</action> <!-- event timer (level 3-2) -->
<action>maincpu.mw@1CACE = param</action> <!-- event timer (level 5) -->
<action>maincpu.mw@2F874 = param</action> <!-- event timer (level 2) initialize -->
<action>maincpu.mw@30620 = param</action> <!-- event timer (level 1) initialize -->
<action>maincpu.mw@31394 = param</action> <!-- event timer (level 4) initialize -->
<action>maincpu.mw@32136 = param</action> <!-- event timer (level 3-2) initialize -->
<action>maincpu.mw@32EDA = param</action> <!-- event timer (level 5) initialize -->
<action>maincpu.mw@65B92 = param</action> <!-- event timer (level 3-1) initialize -->
<action>maincpu.mw@65BC2 = param</action> <!-- event timer (level 3-1) -->
</script>
<script state="off">
<action>maincpu.mw@08C6C = 003C</action>
<action>maincpu.mw@1BF6A = 003A</action>
<action>maincpu.mw@1C3DE = 003A</action>
<action>maincpu.mw@1C670 = 003A</action>
<action>maincpu.mw@1C924 = 003A</action>
<action>maincpu.mw@1CACE = 003A</action>
<action>maincpu.mw@2F874 = 003A</action>
<action>maincpu.mw@30620 = 003A</action>
<action>maincpu.mw@31394 = 003A</action>
<action>maincpu.mw@32136 = 003A</action>
<action>maincpu.mw@32EDA = 003A</action>
<action>maincpu.mw@65B92 = 003A</action>
<action>maincpu.mw@65BC2 = 003A</action>
</script>
</cheat>
<cheat desc="weapon timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@0A5D0 = param</action> <!-- main -->
<action>maincpu.mw@1BA38 = param</action> <!-- initialize -->
</script>
<script state="off">
<action>maincpu.mw@0A5D0 = 003A</action>
<action>maincpu.mw@1BA38 = 003A</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@000A58 = 4EF9001000604E71</action>
<action>maincpu.mq@100060 = 41F900FEC00043F9</action>
<action>maincpu.mq@100068 = 00FF426112001029</action>
<action>maincpu.mq@100070 = 0322B20067F60C00</action>
<action>maincpu.mq@100078 = 00FB660253100C00</action>
<action>maincpu.mq@100080 = 00F7660252100C00</action>
<action>maincpu.mq@100088 = 00FD660404100010</action>
<action>maincpu.mq@100090 = 0C0000FE66040610</action>
<action>maincpu.mq@100098 = 00100C0000EF6602</action>
<action>maincpu.mq@1000A0 = 12900C0000DF6602</action>
<action>maincpu.mq@1000A8 = 421160C000000000</action>
<!--
100060 | 41F9 00FE C000 : lea $fec000.l, A0 // sound code address
100066 | 43F9 00FF 4261 : lea $ff4261.l, A1 // sound latch address
10006C | 1200 : move.b D0, D1
10006E | 1029 0322 : move.b ($322,A1), D0 // read input ($ff4583)
100072 | B200 : cmp.b D0, D1
100074 | 67F6 : beq $10006c
100076 | 0C00 00FB : cmpi.b #-$5, D0
10007A | 6602 : bne $10007e
10007C | 5310 : subq.b #1, (A0) // decrease code -01
10007E | 0C00 00F7 : cmpi.b #-$9, D0
100082 | 6602 : bne $100086
100084 | 5210 : addq.b #1, (A0) // increase code +01
100086 | 0C00 00FD : cmpi.b #-$3, D0
10008A | 6604 : bne $100090
10008C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
100090 | 0C00 00FE : cmpi.b #-$2, D0
100094 | 6604 : bne $10009a
100096 | 0610 0010 : addi.b #$10, (A0) // increase code +10
10009A | 0C00 00EF : cmpi.b #-$11, D0
10009E | 6602 : bne $1000a2
1000A0 | 1290 : move.b (A0), (A1) // play sound
1000A2 | 0C00 00DF : cmpi.b #-$21, D0
1000A6 | 6602 : bne $1000aa
1000A8 | 4211 : clr.b (A1) // stop sound
1000AA | 60C0 : bra $10006c
-->
</script>
<script state="run">
<output format="----- nitro ball 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@FEC000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@000A58 = 33FCFFFF00FEC020</action>
<action>maincpu.mq@100060 = 0000000000000000</action>
<action>maincpu.mq@100068 = 0000000000000000</action>
<action>maincpu.mq@100070 = 0000000000000000</action>
<action>maincpu.mq@100078 = 0000000000000000</action>
<action>maincpu.mq@100080 = 0000000000000000</action>
<action>maincpu.mq@100088 = 0000000000000000</action>
<action>maincpu.mq@100090 = 0000000000000000</action>
<action>maincpu.mq@100098 = 0000000000000000</action>
<action>maincpu.mq@1000A0 = 0000000000000000</action>
<action>maincpu.mq@1000A8 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
gunball.xml
Code: Select all
<!-- Gun Ball (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mq@01A3E6 = 4EB9001000006512</action>
<action>maincpu.mq@100000 = B1FC00FEC6E06E10</action>
<action>maincpu.mq@100008 = 0C29001000066508</action>
<action>maincpu.mq@100010 = 0C68000C00206F08</action>
<action>maincpu.mq@100018 = 4EB90001A47E4E75</action>
<action>maincpu.mq@100020 = 027CFFFE4E750000</action>
<!--
100000 | B1FC 00FE C6E0 : cmpa.l #$fec6e0, A0 // player or bullet?
100006 | 6E10 : bgt $100018
100008 | 0C29 0010 0006 : cmpi.b #$10, ($6,A1) // is target enemy or gate?
10000E | 6508 : bcs $100018
100010 | 0C68 000C 0020 : cmpi.w #$c, ($20,A0) // is current status ball?
100016 | 6F08 : ble $100020
100018 | 4EB9 0001 A47E : jsr $1a47e.l // call collision check
10001E | 4E75 : rts
100020 | 027C FFFE : andi #$fffe, SR // no hit
100024 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@01A3E6 = 4EBA00964E716512</action>
<action>maincpu.mq@100000 = 0000000000000000</action>
<action>maincpu.mq@100008 = 0000000000000000</action>
<action>maincpu.mq@100010 = 0000000000000000</action>
<action>maincpu.mq@100018 = 0000000000000000</action>
<action>maincpu.mq@100020 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@C90D = 30</action> <!-- normal shot -->
<action>maincpu.mb@C9CB = 30</action> <!-- missile launcher -->
<action>maincpu.mb@CA4F = 30</action> <!-- ring laser -->
<action>maincpu.mb@CB29 = 30</action> <!-- flame thrower -->
<action>maincpu.mb@CBA9 = 30</action> <!-- rail blaster -->
</script>
<script state="off">
<action>maincpu.mb@C90D = 31</action>
<action>maincpu.mb@C9CB = 31</action>
<action>maincpu.mb@CA4F = 31</action>
<action>maincpu.mb@CB29 = 31</action>
<action>maincpu.mb@CBA9 = 31</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@7EFE = 4E71</action> <!-- x position -->
<action>maincpu.mw@7F3A = 4E71</action> <!-- y position -->
</script>
<script state="off">
<action>maincpu.mw@7EFE = 660A</action>
<action>maincpu.mw@7F3A = 660A</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@007F00 = 4EB9001000304E71</action> <!-- x position -->
<action>maincpu.mq@007F3C = 4EB9001000484E71</action> <!-- y position -->
<action>maincpu.mq@100030 = 223C000000002028</action>
<action>maincpu.mq@100038 = 002867066A024481</action>
<action>maincpu.mq@100040 = 2001D1A800084E75</action>
<action>maincpu.mq@100048 = 223C000000002028</action>
<action>maincpu.mq@100050 = 002C67066A024481</action>
<action>maincpu.mq@100058 = 2001D1A8000C4E75</action>
<!--
100030 | 223C xxxx xxxx : move.l #$xxxx, D1 // x position
100036 | 2028 0028 : move.l ($28,A0), D0
10003A | 6706 : beq $100042
10003C | 6A02 : bpl $100040
10003E | 4481 : neg.l D1
100040 | 2001 : move.l D1, D0
100042 | D1A8 0008 : add.l D0, ($8,A0)
100046 | 4E75 : rts
100048 | 223C xxxx xxxx : move.l #$xxxx, D1 // y position
10004E | 2028 002C : move.l ($2c,A0), D0
100052 | 6706 : beq $10005a
100054 | 6A02 : bpl $100058
100056 | 4481 : neg.l D1
100058 | 2001 : move.l D1, D0
10005A | D1A8 000C : add.l D0, ($c,A0)
10005E | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@100032 = param</action>
<action>maincpu.md@10004A = param</action>
</script>
<script state="off">
<action>maincpu.mq@007F00 = 20280028D1A80008</action>
<action>maincpu.mq@007F3C = 2028002CD1A8000C</action>
<action>maincpu.mq@100030 = 0000000000000000</action>
<action>maincpu.mq@100038 = 0000000000000000</action>
<action>maincpu.mq@100040 = 0000000000000000</action>
<action>maincpu.mq@100048 = 0000000000000000</action>
<action>maincpu.mq@100050 = 0000000000000000</action>
<action>maincpu.mq@100058 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@08CB2 = param</action> <!-- main timer -->
<action>maincpu.mw@1BF9E = param</action> <!-- event timer (level 2) -->
<action>maincpu.mw@1C412 = param</action> <!-- event timer (level 1) -->
<action>maincpu.mw@1C6A4 = param</action> <!-- event timer (level 4) -->
<action>maincpu.mw@1C958 = param</action> <!-- event timer (level 3-2) -->
<action>maincpu.mw@1CB02 = param</action> <!-- event timer (level 5) -->
<action>maincpu.mw@2F7A6 = param</action> <!-- event timer (level 2) initialize -->
<action>maincpu.mw@3045C = param</action> <!-- event timer (level 1) initialize -->
<action>maincpu.mw@310DA = param</action> <!-- event timer (level 4) initialize -->
<action>maincpu.mw@31D86 = param</action> <!-- event timer (level 3-2) initialize -->
<action>maincpu.mw@32A34 = param</action> <!-- event timer (level 5) initialize -->
<action>maincpu.mw@660EC = param</action> <!-- event timer (level 3-1) initialize -->
<action>maincpu.mw@6611C = param</action> <!-- event timer (level 3-1) -->
</script>
<script state="off">
<action>maincpu.mw@08CB2 = 003C</action>
<action>maincpu.mw@1BF9E = 003A</action>
<action>maincpu.mw@1C412 = 003A</action>
<action>maincpu.mw@1C6A4 = 003A</action>
<action>maincpu.mw@1C958 = 003A</action>
<action>maincpu.mw@1CB02 = 003A</action>
<action>maincpu.mw@2F7A6 = 003A</action>
<action>maincpu.mw@3045C = 003A</action>
<action>maincpu.mw@310DA = 003A</action>
<action>maincpu.mw@31D86 = 003A</action>
<action>maincpu.mw@32A34 = 003A</action>
<action>maincpu.mw@660EC = 003A</action>
<action>maincpu.mw@6611C = 003A</action>
</script>
</cheat>
<cheat desc="weapon timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x003c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@0A616 = param</action> <!-- main -->
<action>maincpu.mw@1BA98 = param</action> <!-- initialize -->
</script>
<script state="off">
<action>maincpu.mw@0A616 = 003A</action>
<action>maincpu.mw@1BA98 = 003A</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@07BED4 = 4EF9001000604E71</action>
<action>maincpu.mq@100060 = 41F900FEC00043F9</action>
<action>maincpu.mq@100068 = 00FF426112001029</action>
<action>maincpu.mq@100070 = 0322B20067F60C00</action>
<action>maincpu.mq@100078 = 00FB660253100C00</action>
<action>maincpu.mq@100080 = 00F7660252100C00</action>
<action>maincpu.mq@100088 = 00FD660404100010</action>
<action>maincpu.mq@100090 = 0C0000FE66040610</action>
<action>maincpu.mq@100098 = 00100C0000EF6602</action>
<action>maincpu.mq@1000A0 = 12900C0000DF6602</action>
<action>maincpu.mq@1000A8 = 421160C000000000</action>
<!--
100060 | 41F9 00FE C000 : lea $fec000.l, A0 // sound code address
100066 | 43F9 00FF 4261 : lea $ff4261.l, A1 // sound latch address
10006C | 1200 : move.b D0, D1
10006E | 1029 0322 : move.b ($322,A1), D0 // read input ($ff4583)
100072 | B200 : cmp.b D0, D1
100074 | 67F6 : beq $10006c
100076 | 0C00 00FB : cmpi.b #-$5, D0
10007A | 6602 : bne $10007e
10007C | 5310 : subq.b #1, (A0) // decrease code -01
10007E | 0C00 00F7 : cmpi.b #-$9, D0
100082 | 6602 : bne $100086
100084 | 5210 : addq.b #1, (A0) // increase code +01
100086 | 0C00 00FD : cmpi.b #-$3, D0
10008A | 6604 : bne $100090
10008C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
100090 | 0C00 00FE : cmpi.b #-$2, D0
100094 | 6604 : bne $10009a
100096 | 0610 0010 : addi.b #$10, (A0) // increase code +10
10009A | 0C00 00EF : cmpi.b #-$11, D0
10009E | 6602 : bne $1000a2
1000A0 | 1290 : move.b (A0), (A1) // play sound
1000A2 | 0C00 00DF : cmpi.b #-$21, D0
1000A6 | 6602 : bne $1000aa
1000A8 | 4211 : clr.b (A1) // stop sound
1000AA | 60C0 : bra $10006c
-->
</script>
<script state="run">
<output format="----- gun ball 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@FEC000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@07BED4 = 33FCD02000FF2D58</action>
<action>maincpu.mq@100060 = 0000000000000000</action>
<action>maincpu.mq@100068 = 0000000000000000</action>
<action>maincpu.mq@100070 = 0000000000000000</action>
<action>maincpu.mq@100078 = 0000000000000000</action>
<action>maincpu.mq@100080 = 0000000000000000</action>
<action>maincpu.mq@100088 = 0000000000000000</action>
<action>maincpu.mq@100090 = 0000000000000000</action>
<action>maincpu.mq@100098 = 0000000000000000</action>
<action>maincpu.mq@1000A0 = 0000000000000000</action>
<action>maincpu.mq@1000A8 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>