Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@39d4 = 60</action> <!-- enemy (x position) -->
<action>maincpu.mb@3aec = 60</action> <!-- enemy (y position) -->
<action>maincpu.mw@574c = 4e75</action> <!-- bomb -->
<action>maincpu.mw@6600 = 4e75</action> <!-- laser -->
<action>maincpu.mw@67fa = 4e75</action> <!-- bullet -->
<action>maincpu.mw@6874 = 4e75</action> <!-- missile (small) -->
<action>maincpu.mw@6904 = 4e75</action> <!-- missile (large) -->
</script>
<script state="off">
<action>maincpu.mb@39d4 = 64</action>
<action>maincpu.mb@3aec = 64</action>
<action>maincpu.mw@574c = 552e</action>
<action>maincpu.mw@6600 = 572e</action>
<action>maincpu.mw@67fa = 042e</action>
<action>maincpu.mw@6874 = 7040</action>
<action>maincpu.mw@6904 = 7040</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@39ad = ff</action>
</script>
<script state="off">
<action>maincpu.mb@39ad = 00</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@3ed9 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@3ed9 = 30</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="change">
<action>maincpu.mb@31c9 = param</action> <!-- up -->
<action>maincpu.mb@31cd = -param</action> <!-- down -->
<action>maincpu.mb@31d9 = param</action> <!-- right -->
<action>maincpu.mb@31dd = -param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mb@31c9 = 01</action>
<action>maincpu.mb@31cd = ff</action>
<action>maincpu.mb@31d9 = 01</action>
<action>maincpu.mb@31dd = ff</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.mq@33c8 = 4eb90000d9104e71</action>
<action>maincpu.mq@d910 = 102e000d0240000f</action>
<action>maincpu.mq@d918 = 103b00081d400104</action>
<action>maincpu.mq@d920 = 4e75000001ff0203</action>
<action>maincpu.mq@d928 = 04ff050607ffffff</action>
<!--
d910 | 102e 000d : move.b ($d,A6),D0
d914 | 0240 000f : andi.w #$f,D0
d918 | 103b 0008 : move.b ($8,PC,D0.w),D0
d91c | 1d40 0104 : move.b D0,($104,A6)
d920 | 4e75 : rts
d922 - d92c : input/direction conversion table
input direction
01 00 : up
02 01 : down
04 02 : right
05 03 : upper-right
06 04 : lower-right
08 05 : left
09 06 : upper-left
0a 07 : lower-left
-->
</script>
<script state="off">
<action>maincpu.mq@33c8 = 103b00341d400104</action>
<action>maincpu.mq@d910 = ffffffffffffffff</action>
<action>maincpu.mq@d918 = ffffffffffffffff</action>
<action>maincpu.mq@d920 = ffffffffffffffff</action>
<action>maincpu.mq@d928 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2f75 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2f75 = 0f</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set ram/rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@1680 = d930</action>
<action>maincpu.mq@d930 = 41ee010043f9000e</action>
<action>maincpu.mq@d938 = 000012001039000c</action>
<action>maincpu.mq@d940 = 0001b20067f40c00</action>
<action>maincpu.mq@d948 = 0008660253100c00</action>
<action>maincpu.mq@d950 = 0004660252100c00</action>
<action>maincpu.mq@d958 = 0002660404100010</action>
<action>maincpu.mq@d960 = 0c00000166040610</action>
<action>maincpu.mq@d968 = 00100c0000106606</action>
<action>maincpu.mq@d970 = 1290115000010c00</action>
<action>maincpu.mq@d978 = 0020660a14280001</action>
<action>maincpu.mq@d980 = 020200f0128260b2</action>
<!--
d930 | 41ee 0100 : lea ($100,A6),A0 // sound code address
d934 | 43f9 000e 0000 : lea $e0000.l,A1
d93a | 1200 : move.b D0,D1
d93c | 1039 000c 0001 : move.b $c0001.l,D0 // read input
d942 | b200 : cmp.b D0,D1
d944 | 67f4 : beq $d93a
d946 | 0c00 0008 : cmpi.b #$8,D0
d94a | 6602 : bne $d94e
d94c | 5310 : subq.b #1,(A0) // decrease code -01
d94e | 0c00 0004 : cmpi.b #$4,D0
d952 | 6602 : bne $d956
d954 | 5210 : addq.b #1,(A0) // increase code +01
d956 | 0c00 0002 : cmpi.b #$2,D0
d95a | 6604 : bne $d960
d95c | 0410 0010 : subi.b #$10,(A0) // decrease code -10
d960 | 0c00 0001 : cmpi.b #$1,D0
d964 | 6604 : bne $d96a
d966 | 0610 0010 : addi.b #$10,(A0) // increase code +10
d96a | 0c00 0010 : cmpi.b #$10,D0
d96e | 6606 : bne $d976
d970 | 1290 : move.b (A0),(A1) // play sound
d972 | 1150 0001 : move.b (A0),($1,A0)
d976 | 0c00 0020 : cmpi.b #$20,D0
d97a | 660a : bne $d986
d97c | 1428 0001 : move.b ($1,A0),D2 // stop sound
d980 | 0202 00f0 : andi.b #$f0,D2
d984 | 1282 : move.b D2,(A1)
d986 | 60b2 : bra $d93a
-->
</script>
<script state="run">
<output format="----- super stingray sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="up : increase code +10" line="13" align="center" />
<output format="down : decrease code -10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %2.2X >>" line="19" align="center">
<argument>maincpu.pb@20100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@1680 = 6ca6</action>
<action>maincpu.mq@d930 = ffffffffffffffff</action>
<action>maincpu.mq@d938 = ffffffffffffffff</action>
<action>maincpu.mq@d940 = ffffffffffffffff</action>
<action>maincpu.mq@d948 = ffffffffffffffff</action>
<action>maincpu.mq@d950 = ffffffffffffffff</action>
<action>maincpu.mq@d958 = ffffffffffffffff</action>
<action>maincpu.mq@d960 = ffffffffffffffff</action>
<action>maincpu.mq@d968 = ffffffffffffffff</action>
<action>maincpu.mq@d970 = ffffffffffffffff</action>
<action>maincpu.mq@d978 = ffffffffffffffff</action>
<action>maincpu.mq@d980 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@1668 = 0002</action>
</script>
<script state="off">
<action>maincpu.mw@1668 = 0790</action>
</script>
</cheat>