sandscrp.xml
Code: Select all
<!-- Sand Scorpion -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@B0A8 = 00E2</action> <!-- 1P enemy -->
<action>maincpu.mw@B0E6 = 00A4</action> <!-- 2P enemy -->
<action>maincpu.mw@B40E = FD7C</action> <!-- 1P bullet -->
<action>maincpu.mw@B446 = FD44</action> <!-- 2P bullet -->
<action>maincpu.mw@B5F6 = FB94</action> <!-- 1P laser -->
<action>maincpu.mw@B630 = FB5A</action> <!-- 2P laser -->
</script>
<script state="off">
<action>maincpu.mw@B0A8 = 006C</action>
<action>maincpu.mw@B0E6 = 002E</action>
<action>maincpu.mw@B40E = FD06</action>
<action>maincpu.mw@B446 = FCCE</action>
<action>maincpu.mw@B5F6 = FB1E</action>
<action>maincpu.mw@B630 = FAE4</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@E831 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@E831 = 40</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x303c0001">01 (slow)</item>
<item value="0x303c0002">02 </item>
<item value="0x303c0006">03 </item>
<item value="0x303c000a">04 </item>
<item value="0x303c000e">05 (slow)</item>
</parameter>
<script state="change">
<action>maincpu.md@9B0A = param</action> <!-- 1P right -->
<action>maincpu.md@9B3A = param</action> <!-- 1P left -->
<action>maincpu.md@9B76 = param</action> <!-- 2P right -->
<action>maincpu.md@9BA4 = param</action> <!-- 2P left -->
<action>maincpu.md@DC3C = param</action> <!-- up -->
<action>maincpu.md@DC76 = param</action> <!-- down -->
</script>
<script state="off">
<action>maincpu.md@9B0A = 06400002</action>
<action>maincpu.md@9B3A = 06400002</action>
<action>maincpu.md@9B76 = 06400002</action>
<action>maincpu.md@9BA4 = 06400002</action>
<action>maincpu.md@DC3C = 06400002</action>
<action>maincpu.md@DC76 = 06400002</action>
</script>
</cheat>
<cheat desc="bullet speed (test)">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.md@0D784 = 00040000 </action> <!-- 1P -->
<action>maincpu.md@0D7B8 = 00040000 </action> <!-- 2P -->
<action>maincpu.mq@40000 = 700048E782024EB9</action>
<action>maincpu.mq@40008 = 0000E8864CDF4041</action>
<action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
<!--
40000 | 70xx : moveq #$xx, D0
40002 | 48E7 8202 : movem.l D0/D6/A6, -(A7)
40006 | 4EB9 0000 E886 : jsr $e886.l
4000C | 4CDF 4041 : movem.l (A7)+, D0/D6/A6
40010 | 51C8 FFF0 : dbra D0, $40002
40014 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mb@40001 = param - 1</action>
</script>
<script state="off">
<action>maincpu.md@0D784 = 0000E886 </action>
<action>maincpu.md@0D7B8 = 0000E886 </action>
<action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="max bullets up">
<script state="on">
<action>maincpu.mb@F01A = 60</action> <!-- blue -->
<action>maincpu.mb@F410 = 60</action> <!-- green -->
<action>maincpu.mb@FEA0 = 60</action> <!-- red -->
</script>
<script state="off">
<action>maincpu.mb@F01A = 67</action>
<action>maincpu.mb@F410 = 67</action>
<action>maincpu.mb@FEA0 = 67</action>
</script>
</cheat>
<cheat desc="max missiles up">
<script state="on">
<action>maincpu.mb@F7BC = 60</action> <!-- homing -->
<action>maincpu.mb@FBE8 = 60</action> <!-- missile -->
</script>
<script state="off">
<action>maincpu.mb@F7BC = 67</action>
<action>maincpu.mb@FBE8 = 67</action>
</script>
</cheat>
<cheat desc="hidden character finder">
<script state="on">
<action>maincpu.mb@20517 = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@20517 = 96</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<!-- shot -->
<action>maincpu.mb@F391 = 01</action>
<action>maincpu.mb@F3B6 = 60</action>
<!-- missile -->
<action>maincpu.mb@FDEB = 01</action>
<action>maincpu.mb@FE10 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@F391 = 03</action>
<action>maincpu.mb@F3B6 = 67</action>
<action>maincpu.mb@FDEB = 03</action>
<action>maincpu.mb@FE10 = 67</action>
</script>
</cheat>
<cheat desc="damage level">
<parameter>
<item value="0x303C00014E714E75">01 (low) </item>
<item value="0x303C00084E714E75">02 </item>
<item value="0x303C00104E714E75">03 </item>
<item value="0x303C00184E714E75">04 </item>
<item value="0x303C01004E714E75">05 (high)</item>
</parameter>
<script state="change">
<action>maincpu.mq@B024 = param</action> <!-- 1P -->
<action>maincpu.mq@B06A = param</action> <!-- 2P -->
<action>maincpu.mq@B2CA = param</action> <!-- 1P -->
<action>maincpu.mq@B310 = param</action> <!-- 2P -->
</script>
<script state="off">
<action>maincpu.mq@B024 = D079007002D84E75</action>
<action>maincpu.mq@B06A = D079007002D84E75</action>
<action>maincpu.mq@B2CA = D079007002D84E75</action>
<action>maincpu.mq@B310 = D079007002D84E75</action>
</script>
</cheat>
<cheat desc="1 hit kill (test)">
<script state="on">
<action>maincpu.mb@B023 = 7F</action> <!-- 1P air -->
<action>maincpu.mb@B069 = 7F</action> <!-- 2P air -->
<action>maincpu.mb@B2C9 = 7F</action> <!-- 1P ground -->
<action>maincpu.mb@B30F = 7F</action> <!-- 2P ground -->
</script>
<script state="off">
<action>maincpu.mb@B023 = 01</action>
<action>maincpu.mb@B069 = 01</action>
<action>maincpu.mb@B2C9 = 01</action>
<action>maincpu.mb@B30F = 01</action>
</script>
</cheat>
<cheat desc="auto damage">
<script state="on">
<action>maincpu.mq@0AF5C = 4EB90004008041F9</action>
<action>maincpu.mq@0B1FC = 4EB90004008041F9</action>
<action>maincpu.mq@40080 = 082E000700086734</action>
<action>maincpu.mq@40088 = 222E000A0C4100D8</action>
<action>maincpu.mq@40090 = 642A0C4100086524</action>
<action>maincpu.mq@40098 = 48414A416B1E0C41</action>
<action>maincpu.mq@400A0 = 00F864180C410008</action>
<action>maincpu.mq@400A8 = 651208EE00030008</action>
<action>maincpu.mq@400B0 = 47F9007060607002</action>
<action>maincpu.mq@400B8 = 221F4E7508AE0003</action>
<action>maincpu.mq@400C0 = 00084E75FFFFFFFF</action>
<!--
40080 | 082E 0007 0008 : btst #$7, ($8,A6)
40086 | 6734 : beq $400bc
40088 | 222E 000A : move.l ($a,A6), D1
4008C | 0C41 00D8 : cmpi.w #$d8, D1 // check x position
40090 | 642A : bcc $400bc
40092 | 0C41 0008 : cmpi.w #$8, D1
40096 | 6524 : bcs $400bc
40098 | 4841 : swap D1
4009A | 4A41 : tst.w D1 // check y position
4009C | 6B1E : bmi $400bc
4009E | 0C41 00F8 : cmpi.w #$f8, D1
400A2 | 6418 : bcc $400bc
400A4 | 0C41 0008 : cmpi.w #$8, D1
400A8 | 6512 : bcs $400bc
400AA | 08EE 0003 0008 : bset #$3, ($8,A6) // set parameters
400B0 | 47F9 0070 6060 : lea $706060.l, A3
400B6 | 7002 : moveq #$2, D0
400B8 | 221F : move.l (A7)+, D1
400BA | 4E75 : rts
400BC | 08AE 0003 0008 : bclr #$3, ($8,A6)
400C2 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@0AF5C = 08AE0003000841F9</action>
<action>maincpu.mq@0B1FC = 08AE0003000841F9</action>
<action>maincpu.mq@40080 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40088 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40090 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40098 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400C0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@00A14 = 4EF9000400204298</action>
<action>maincpu.mq@40020 = 46FC200043E81000</action>
<action>maincpu.mq@40028 = 45F900E000011401</action>
<action>maincpu.mq@40030 = 12280009B40167F6</action>
<action>maincpu.mq@40038 = 0C0100FB66025311</action>
<action>maincpu.mq@40040 = 0C0100F766025211</action>
<action>maincpu.mq@40048 = 0C0100FD66040411</action>
<action>maincpu.mq@40050 = 00100C0100FE6604</action>
<action>maincpu.mq@40058 = 061100100C0100EF</action>
<action>maincpu.mq@40060 = 6608101100000080</action>
<action>maincpu.mq@40068 = 14800C0100DF6604</action>
<action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
<!--
40020 | 46FC 2000 : move #$2000,SR // enable interrupt
40024 | 43E8 1000 : lea ($1000,A0),A1 // sound code address ($700100)
40028 | 45F9 00E0 0001 : lea $e00001.l,A2 // sound latch address
4002E | 1401 : move.b D1,D2
40030 | 1228 0009 : move.b ($9,A0),D1 // read input ($700009)
40034 | B401 : cmp.b D1,D2
40036 | 67F6 : beq $4002e
40038 | 0C01 00FB : cmpi.b #-$5,D1
4003C | 6602 : bne $40040
4003E | 5311 : subq.b #1,(A1) // decrease code -01
40040 | 0C01 00F7 : cmpi.b #-$9,D1
40044 | 6602 : bne $40048
40046 | 5211 : addq.b #1,(A1) // increase code +01
40048 | 0C01 00FD : cmpi.b #-$3,D1
4004C | 6604 : bne $40052
4004E | 0411 0010 : subi.b #$10,(A1) // decrease code -10
40052 | 0C01 00FE : cmpi.b #-$2,D1
40056 | 6604 : bne $4005c
40058 | 0611 0010 : addi.b #$10,(A1) // increase code +10
4005C | 0C01 00EF : cmpi.b #-$11,D1
40060 | 6608 : bne $4006a
40062 | 1011 : move.b (A1),D0 // play sound
40064 | 0000 0080 : ori.b #$80,D0
40068 | 1480 : move.b D0,(A2)
4006A | 0C01 00DF : cmpi.b #-$21,D1
4006E | 6604 : bne $40074
40070 | 14BC 0080 : move.b #$80,(A2) // stop sound
40074 | 60B8 : bra $4002e
-->
</script>
<script state="run">
<output format="----- 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@701000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@00A14 = 323C0FF042984298</action>
<action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
sandscrpa.xml
Code: Select all
<!-- Sand Scorpion (Earlier) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@B038 = 00E2</action> <!-- 1P enemy -->
<action>maincpu.mw@B076 = 00A4</action> <!-- 2P enemy -->
<action>maincpu.mw@B39E = FD7C</action> <!-- 1P bullet -->
<action>maincpu.mw@B3D6 = FD44</action> <!-- 2P bullet -->
<action>maincpu.mw@B586 = FB94</action> <!-- 1P laser -->
<action>maincpu.mw@B5C0 = FB5A</action> <!-- 2P laser -->
</script>
<script state="off">
<action>maincpu.mw@B038 = 006C</action>
<action>maincpu.mw@B076 = 002E</action>
<action>maincpu.mw@B39E = FD06</action>
<action>maincpu.mw@B3D6 = FCCE</action>
<action>maincpu.mw@B586 = FB1E</action>
<action>maincpu.mw@B5C0 = FAE4</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@E7C9 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@E7C9 = 40</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x303c0001">01 (slow)</item>
<item value="0x303c0002">02 </item>
<item value="0x303c0006">03 </item>
<item value="0x303c000a">04 </item>
<item value="0x303c000e">05 (slow)</item>
</parameter>
<script state="change">
<action>maincpu.md@9AEE = param</action> <!-- 1P right -->
<action>maincpu.md@9B1E = param</action> <!-- 1P left -->
<action>maincpu.md@9B5A = param</action> <!-- 2P right -->
<action>maincpu.md@9B88 = param</action> <!-- 2P left -->
<action>maincpu.md@DBD4 = param</action> <!-- up -->
<action>maincpu.md@DC0E = param</action> <!-- down -->
</script>
<script state="off">
<action>maincpu.md@9AEE = 06400002</action>
<action>maincpu.md@9B1E = 06400002</action>
<action>maincpu.md@9B5A = 06400002</action>
<action>maincpu.md@9B88 = 06400002</action>
<action>maincpu.md@DBD4 = 06400002</action>
<action>maincpu.md@DC0E = 06400002</action>
</script>
</cheat>
<cheat desc="bullet speed (test)">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.md@0D71C = 00040000 </action> <!-- 1P -->
<action>maincpu.md@0D750 = 00040000 </action> <!-- 2P -->
<action>maincpu.mq@40000 = 700048E782024EB9</action>
<action>maincpu.mq@40008 = 0000E81E4CDF4041</action>
<action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
<!--
40000 | 70xx : moveq #$xx, D0
40002 | 48E7 8202 : movem.l D0/D6/A6, -(A7)
40006 | 4EB9 0000 E81E : jsr $e81e.l
4000C | 4CDF 4041 : movem.l (A7)+, D0/D6/A6
40010 | 51C8 FFF0 : dbra D0, $40002
40014 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mb@40001 = param - 1</action>
</script>
<script state="off">
<action>maincpu.md@0D71C = 0000E81E </action>
<action>maincpu.md@0D750 = 0000E81E </action>
<action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="max bullets up">
<script state="on">
<action>maincpu.mb@EFB2 = 60</action> <!-- blue -->
<action>maincpu.mb@F3A8 = 60</action> <!-- green -->
<action>maincpu.mb@FE38 = 60</action> <!-- red -->
</script>
<script state="off">
<action>maincpu.mb@EFB2 = 67</action>
<action>maincpu.mb@F3A8 = 67</action>
<action>maincpu.mb@FE38 = 67</action>
</script>
</cheat>
<cheat desc="max missiles up">
<script state="on">
<action>maincpu.mb@F754 = 60</action> <!-- homing -->
<action>maincpu.mb@FB80 = 60</action> <!-- missile -->
</script>
<script state="off">
<action>maincpu.mb@F754 = 67</action>
<action>maincpu.mb@FB80 = 67</action>
</script>
</cheat>
<cheat desc="hidden character finder">
<script state="on">
<action>maincpu.mb@204AF = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@204AF = 96</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<!-- shot -->
<action>maincpu.mb@F329 = 01</action>
<action>maincpu.mb@F34E = 60</action>
<!-- missile -->
<action>maincpu.mb@FD83 = 01</action>
<action>maincpu.mb@FDA8 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@F329 = 03</action>
<action>maincpu.mb@F34E = 67</action>
<action>maincpu.mb@FD83 = 03</action>
<action>maincpu.mb@FDA8 = 67</action>
</script>
</cheat>
<cheat desc="damage level">
<parameter>
<item value="0x303C00014E714E75">01 (low) </item>
<item value="0x303C00084E714E75">02 </item>
<item value="0x303C00104E714E75">03 </item>
<item value="0x303C00184E714E75">04 </item>
<item value="0x303C01004E714E75">05 (high)</item>
</parameter>
<script state="change">
<action>maincpu.mq@AFB4 = param</action> <!-- 1P -->
<action>maincpu.mq@AFFA = param</action> <!-- 2P -->
<action>maincpu.mq@B25A = param</action> <!-- 1P -->
<action>maincpu.mq@B2A0 = param</action> <!-- 2P -->
</script>
<script state="off">
<action>maincpu.mq@AFB4 = D079007002D84E75</action>
<action>maincpu.mq@AFFA = D079007002D84E75</action>
<action>maincpu.mq@B25A = D079007002D84E75</action>
<action>maincpu.mq@B2A0 = D079007002D84E75</action>
</script>
</cheat>
<cheat desc="1 hit kill (test)">
<script state="on">
<action>maincpu.mb@AFB3 = 7F</action> <!-- 1P air -->
<action>maincpu.mb@AFF9 = 7F</action> <!-- 2P air -->
<action>maincpu.mb@B259 = 7F</action> <!-- 1P ground -->
<action>maincpu.mb@B29F = 7F</action> <!-- 2P ground -->
</script>
<script state="off">
<action>maincpu.mb@AFB3 = 01</action>
<action>maincpu.mb@AFF9 = 01</action>
<action>maincpu.mb@B259 = 01</action>
<action>maincpu.mb@B29F = 01</action>
</script>
</cheat>
<cheat desc="auto damage">
<script state="on">
<action>maincpu.mq@0AEEC = 4EB90004008041F9</action>
<action>maincpu.mq@0B18C = 4EB90004008041F9</action>
<action>maincpu.mq@40080 = 082E000700086734</action>
<action>maincpu.mq@40088 = 222E000A0C4100D8</action>
<action>maincpu.mq@40090 = 642A0C4100086524</action>
<action>maincpu.mq@40098 = 48414A416B1E0C41</action>
<action>maincpu.mq@400A0 = 00F864180C410008</action>
<action>maincpu.mq@400A8 = 651208EE00030008</action>
<action>maincpu.mq@400B0 = 47F9007060607002</action>
<action>maincpu.mq@400B8 = 221F4E7508AE0003</action>
<action>maincpu.mq@400C0 = 00084E75FFFFFFFF</action>
<!--
40080 | 082E 0007 0008 : btst #$7, ($8,A6)
40086 | 6734 : beq $400bc
40088 | 222E 000A : move.l ($a,A6), D1
4008C | 0C41 00D8 : cmpi.w #$d8, D1 // check x position
40090 | 642A : bcc $400bc
40092 | 0C41 0008 : cmpi.w #$8, D1
40096 | 6524 : bcs $400bc
40098 | 4841 : swap D1
4009A | 4A41 : tst.w D1 // check y position
4009C | 6B1E : bmi $400bc
4009E | 0C41 00F8 : cmpi.w #$f8, D1
400A2 | 6418 : bcc $400bc
400A4 | 0C41 0008 : cmpi.w #$8, D1
400A8 | 6512 : bcs $400bc
400AA | 08EE 0003 0008 : bset #$3, ($8,A6) // set parameters
400B0 | 47F9 0070 6060 : lea $706060.l, A3
400B6 | 7002 : moveq #$2, D0
400B8 | 221F : move.l (A7)+, D1
400BA | 4E75 : rts
400BC | 08AE 0003 0008 : bclr #$3, ($8,A6)
400C2 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@0AEEC = 08AE0003000841F9</action>
<action>maincpu.mq@0B18C = 08AE0003000841F9</action>
<action>maincpu.mq@40080 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40088 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40090 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40098 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400C0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@00A14 = 4EF9000400204298</action>
<action>maincpu.mq@40020 = 46FC200043E81000</action>
<action>maincpu.mq@40028 = 45F900E000011401</action>
<action>maincpu.mq@40030 = 12280009B40167F6</action>
<action>maincpu.mq@40038 = 0C0100FB66025311</action>
<action>maincpu.mq@40040 = 0C0100F766025211</action>
<action>maincpu.mq@40048 = 0C0100FD66040411</action>
<action>maincpu.mq@40050 = 00100C0100FE6604</action>
<action>maincpu.mq@40058 = 061100100C0100EF</action>
<action>maincpu.mq@40060 = 6608101100000080</action>
<action>maincpu.mq@40068 = 14800C0100DF6604</action>
<action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
<!--
40020 | 46FC 2000 : move #$2000,SR // enable interrupt
40024 | 43E8 1000 : lea ($1000,A0),A1 // sound code address ($701000)
40028 | 45F9 00E0 0001 : lea $e00001.l,A2 // sound latch address
4002E | 1401 : move.b D1,D2
40030 | 1228 0009 : move.b ($9,A0),D1 // read input ($700009)
40034 | B401 : cmp.b D1,D2
40036 | 67F6 : beq $4002e
40038 | 0C01 00FB : cmpi.b #-$5,D1
4003C | 6602 : bne $40040
4003E | 5311 : subq.b #1,(A1) // decrease code -01
40040 | 0C01 00F7 : cmpi.b #-$9,D1
40044 | 6602 : bne $40048
40046 | 5211 : addq.b #1,(A1) // increase code +01
40048 | 0C01 00FD : cmpi.b #-$3,D1
4004C | 6604 : bne $40052
4004E | 0411 0010 : subi.b #$10,(A1) // decrease code -10
40052 | 0C01 00FE : cmpi.b #-$2,D1
40056 | 6604 : bne $4005c
40058 | 0611 0010 : addi.b #$10,(A1) // increase code +10
4005C | 0C01 00EF : cmpi.b #-$11,D1
40060 | 6608 : bne $4006a
40062 | 1011 : move.b (A1),D0 // play sound
40064 | 0000 0080 : ori.b #$80,D0
40068 | 1480 : move.b D0,(A2)
4006A | 0C01 00DF : cmpi.b #-$21,D1
4006E | 6604 : bne $40074
40070 | 14BC 0080 : move.b #$80,(A2) // stop sound
40074 | 60B8 : bra $4002e
-->
</script>
<script state="run">
<output format="----- 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@701000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@00A14 = 323C0FF042984298</action>
<action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
sandscrpb.xml
Code: Select all
<!-- Kuai Da Shizi Huangdi (China?, Revised Hardware) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@B0B4 = 00E2</action> <!-- 1P enemy -->
<action>maincpu.mw@B0F2 = 00A4</action> <!-- 2P enemy -->
<action>maincpu.mw@B41A = FD7C</action> <!-- 1P bullet -->
<action>maincpu.mw@B452 = FD44</action> <!-- 2P bullet -->
<action>maincpu.mw@B602 = FB94</action> <!-- 1P laser -->
<action>maincpu.mw@B63C = FB5A</action> <!-- 2P laser -->
</script>
<script state="off">
<action>maincpu.mw@B0B4 = 006C</action>
<action>maincpu.mw@B0F2 = 002E</action>
<action>maincpu.mw@B41A = FD06</action>
<action>maincpu.mw@B452 = FCCE</action>
<action>maincpu.mw@B602 = FB1E</action>
<action>maincpu.mw@B63C = FAE4</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@E83D = 01</action>
</script>
<script state="off">
<action>maincpu.mb@E83D = 40</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x303c0001">01 (slow)</item>
<item value="0x303c0002">02 </item>
<item value="0x303c0006">03 </item>
<item value="0x303c000a">04 </item>
<item value="0x303c000e">05 (slow)</item>
</parameter>
<script state="change">
<action>maincpu.md@9B16 = param</action> <!-- 1P right -->
<action>maincpu.md@9B46 = param</action> <!-- 1P left -->
<action>maincpu.md@9B82 = param</action> <!-- 2P right -->
<action>maincpu.md@9BB0 = param</action> <!-- 2P left -->
<action>maincpu.md@DC48 = param</action> <!-- up -->
<action>maincpu.md@DC82 = param</action> <!-- down -->
</script>
<script state="off">
<action>maincpu.md@9B16 = 06400002</action>
<action>maincpu.md@9B46 = 06400002</action>
<action>maincpu.md@9B82 = 06400002</action>
<action>maincpu.md@9BB0 = 06400002</action>
<action>maincpu.md@DC48 = 06400002</action>
<action>maincpu.md@DC82 = 06400002</action>
</script>
</cheat>
<cheat desc="bullet speed (test)">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.md@0D790 = 00040000 </action> <!-- 1P -->
<action>maincpu.md@0D7C4 = 00040000 </action> <!-- 2P -->
<action>maincpu.mq@40000 = 700048E782024EB9</action>
<action>maincpu.mq@40008 = 0000E8924CDF4041</action>
<action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
<!--
40000 | 70xx : moveq #$xx, D0
40002 | 48E7 8202 : movem.l D0/D6/A6, -(A7)
40006 | 4EB9 0000 E892 : jsr $e892.l
4000C | 4CDF 4041 : movem.l (A7)+, D0/D6/A6
40010 | 51C8 FFF0 : dbra D0, $40002
40014 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mb@40001 = param - 1</action>
</script>
<script state="off">
<action>maincpu.md@0D790 = 0000E892 </action>
<action>maincpu.md@0D7C4 = 0000E892 </action>
<action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="max bullets up">
<script state="on">
<action>maincpu.mb@F026 = 60</action> <!-- blue -->
<action>maincpu.mb@F41C = 60</action> <!-- green -->
<action>maincpu.mb@FEAC = 60</action> <!-- red -->
</script>
<script state="off">
<action>maincpu.mb@F026 = 67</action>
<action>maincpu.mb@F41C = 67</action>
<action>maincpu.mb@FEAC = 67</action>
</script>
</cheat>
<cheat desc="max missiles up">
<script state="on">
<action>maincpu.mb@F7C8 = 60</action> <!-- homing -->
<action>maincpu.mb@FBF4 = 60</action> <!-- missile -->
</script>
<script state="off">
<action>maincpu.mb@F7C8 = 67</action>
<action>maincpu.mb@FBF4 = 67</action>
</script>
</cheat>
<cheat desc="hidden character finder">
<script state="on">
<action>maincpu.mb@20523 = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@20523 = 96</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<!-- shot -->
<action>maincpu.mb@F39D = 01</action>
<action>maincpu.mb@F3C2 = 60</action>
<!-- missile -->
<action>maincpu.mb@FDF7 = 01</action>
<action>maincpu.mb@FE1C = 60</action>
</script>
<script state="off">
<action>maincpu.mb@F39D = 03</action>
<action>maincpu.mb@F3C2 = 67</action>
<action>maincpu.mb@FDF7 = 03</action>
<action>maincpu.mb@FE1C = 67</action>
</script>
</cheat>
<cheat desc="damage level">
<parameter>
<item value="0x303C00014E714E75">01 (low) </item>
<item value="0x303C00084E714E75">02 </item>
<item value="0x303C00104E714E75">03 </item>
<item value="0x303C00184E714E75">04 </item>
<item value="0x303C01004E714E75">05 (high)</item>
</parameter>
<script state="change">
<action>maincpu.mq@B030 = param</action> <!-- 1P -->
<action>maincpu.mq@B076 = param</action> <!-- 2P -->
<action>maincpu.mq@B2D6 = param</action> <!-- 1P -->
<action>maincpu.mq@B31C = param</action> <!-- 2P -->
</script>
<script state="off">
<action>maincpu.mq@B030 = D079007002D84E75</action>
<action>maincpu.mq@B076 = D079007002D84E75</action>
<action>maincpu.mq@B2D6 = D079007002D84E75</action>
<action>maincpu.mq@B31C = D079007002D84E75</action>
</script>
</cheat>
<cheat desc="1 hit kill (test)">
<script state="on">
<action>maincpu.mb@B02F = 7F</action> <!-- 1P air -->
<action>maincpu.mb@B075 = 7F</action> <!-- 2P air -->
<action>maincpu.mb@B2D5 = 7F</action> <!-- 1P ground -->
<action>maincpu.mb@B31B = 7F</action> <!-- 2P ground -->
</script>
<script state="off">
<action>maincpu.mb@B02F = 01</action>
<action>maincpu.mb@B075 = 01</action>
<action>maincpu.mb@B2D5 = 01</action>
<action>maincpu.mb@B31B = 01</action>
</script>
</cheat>
<cheat desc="auto damage">
<script state="on">
<action>maincpu.mq@0AF68 = 4EB90004008041F9</action>
<action>maincpu.mq@0B208 = 4EB90004008041F9</action>
<action>maincpu.mq@40080 = 082E000700086734</action>
<action>maincpu.mq@40088 = 222E000A0C4100D8</action>
<action>maincpu.mq@40090 = 642A0C4100086524</action>
<action>maincpu.mq@40098 = 48414A416B1E0C41</action>
<action>maincpu.mq@400A0 = 00F864180C410008</action>
<action>maincpu.mq@400A8 = 651208EE00030008</action>
<action>maincpu.mq@400B0 = 47F9007060607002</action>
<action>maincpu.mq@400B8 = 221F4E7508AE0003</action>
<action>maincpu.mq@400C0 = 00084E75FFFFFFFF</action>
<!--
40080 | 082E 0007 0008 : btst #$7, ($8,A6)
40086 | 6734 : beq $400bc
40088 | 222E 000A : move.l ($a,A6), D1
4008C | 0C41 00D8 : cmpi.w #$d8, D1 // check x position
40090 | 642A : bcc $400bc
40092 | 0C41 0008 : cmpi.w #$8, D1
40096 | 6524 : bcs $400bc
40098 | 4841 : swap D1
4009A | 4A41 : tst.w D1 // check y position
4009C | 6B1E : bmi $400bc
4009E | 0C41 00F8 : cmpi.w #$f8, D1
400A2 | 6418 : bcc $400bc
400A4 | 0C41 0008 : cmpi.w #$8, D1
400A8 | 6512 : bcs $400bc
400AA | 08EE 0003 0008 : bset #$3, ($8,A6) // set parameters
400B0 | 47F9 0070 6060 : lea $706060.l, A3
400B6 | 7002 : moveq #$2, D0
400B8 | 221F : move.l (A7)+, D1
400BA | 4E75 : rts
400BC | 08AE 0003 0008 : bclr #$3, ($8,A6)
400C2 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@0AF68 = 08AE0003000841F9</action>
<action>maincpu.mq@0B208 = 08AE0003000841F9</action>
<action>maincpu.mq@40080 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40088 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40090 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40098 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@400C0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@00A14 = 4EF9000400204298</action>
<action>maincpu.mq@40020 = 46FC200043E81000</action>
<action>maincpu.mq@40028 = 45F900E000011401</action>
<action>maincpu.mq@40030 = 12280009B40167F6</action>
<action>maincpu.mq@40038 = 0C0100FB66025311</action>
<action>maincpu.mq@40040 = 0C0100F766025211</action>
<action>maincpu.mq@40048 = 0C0100FD66040411</action>
<action>maincpu.mq@40050 = 00100C0100FE6604</action>
<action>maincpu.mq@40058 = 061100100C0100EF</action>
<action>maincpu.mq@40060 = 6608101100000080</action>
<action>maincpu.mq@40068 = 14800C0100DF6604</action>
<action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
<!--
40020 | 46FC 2000 : move #$2000,SR // enable interrupt
40024 | 43E8 0100 : lea ($1000,A0),A1 // sound code address ($701000)
40028 | 45F9 00E0 0001 : lea $e00001.l,A2 // sound latch address
4002E | 1401 : move.b D1,D2
40030 | 1228 0009 : move.b ($9,A0),D1 // read input ($700009)
40034 | B401 : cmp.b D1,D2
40036 | 67F6 : beq $4002e
40038 | 0C01 00FB : cmpi.b #-$5,D1
4003C | 6602 : bne $40040
4003E | 5311 : subq.b #1,(A1) // decrease code -01
40040 | 0C01 00F7 : cmpi.b #-$9,D1
40044 | 6602 : bne $40048
40046 | 5211 : addq.b #1,(A1) // increase code +01
40048 | 0C01 00FD : cmpi.b #-$3,D1
4004C | 6604 : bne $40052
4004E | 0411 0010 : subi.b #$10,(A1) // decrease code -10
40052 | 0C01 00FE : cmpi.b #-$2,D1
40056 | 6604 : bne $4005c
40058 | 0611 0010 : addi.b #$10,(A1) // increase code +10
4005C | 0C01 00EF : cmpi.b #-$11,D1
40060 | 6608 : bne $4006a
40062 | 1011 : move.b (A1),D0 // play sound
40064 | 0000 0080 : ori.b #$80,D0
40068 | 1480 : move.b D0,(A2)
4006A | 0C01 00DF : cmpi.b #-$21,D1
4006E | 6604 : bne $40074
40070 | 14BC 0080 : move.b #$80,(A2) // stop sound
40074 | 60B8 : bra $4002e
-->
</script>
<script state="run">
<output format="----- 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@701000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@00A14 = 323C0FF042984298</action>
<action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
"damage level" and "auto damage" : Added new.