Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2339 = c9</action> <!-- pipe -->
<action>maincpu.mb@3272 = c9</action> <!-- pipe -->
<action>maincpu.mb@58dc = c9</action> <!-- bullet -->
<action>maincpu.mb@5af5 = c3</action> <!-- mine -->
<action>maincpu.mb@5e3d = c9</action> <!-- laser -->
<action>maincpu.mb@60f0 = af</action> <!-- bullet from ground -->
<action>maincpu.mb@756a = c3</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mb@2339 = cb</action>
<action>maincpu.mb@3272 = 21</action>
<action>maincpu.mb@58dc = d0</action>
<action>maincpu.mb@5af5 = d2</action>
<action>maincpu.mb@5e3d = d0</action>
<action>maincpu.mb@60f0 = b9</action>
<action>maincpu.mb@756a = c2</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2930 = 18</action> <!-- shot -->
<action>maincpu.mb@294f = 18</action> <!-- shot -->
<action>maincpu.mb@29a2 = 18</action> <!-- bomb -->
</script>
<script state="off">
<action>maincpu.mb@2930 = 28</action>
<action>maincpu.mb@294f = 28</action>
<action>maincpu.mb@29a2 = 28</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0200">02 </item>
<item value="0x0400">03 </item>
<item value="0x0600">04 </item>
<item value="0x0800">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@205c = 00000011</action> <!-- left scroll -->
<action>maincpu.md@2085 = 00000011</action> <!-- right scroll -->
<action>maincpu.md@215b = 00000011</action> <!-- down -->
<action>maincpu.md@2172 = 00000011</action> <!-- up -->
<action>maincpu.md@2cd0 = 00000011</action> <!-- bomb? -->
<action>maincpu.md@5848 = 00000001</action> <!-- left/right -->
</script>
<script state="change">
<action>maincpu.mw@205d = param</action>
<action>maincpu.mw@2086 = param</action>
<action>maincpu.mw@215c = param</action>
<action>maincpu.mw@2173 = param</action>
<action>maincpu.mw@2cd1 = param</action>
<action>maincpu.mw@5849 = param</action>
</script>
<script state="off">
<action>maincpu.md@205c = fc645bed</action>
<action>maincpu.md@2085 = fc645bed</action>
<action>maincpu.md@215b = fc625bed</action>
<action>maincpu.md@2172 = fc625bed</action>
<action>maincpu.md@2cd0 = fc645bed</action>
<action>maincpu.md@5848 = fc644bed</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@1121b = param</action> <!-- shot ($921b) -->
<action>maincpu.mb@11228 = param</action> <!-- shot ($9228) -->
<action>maincpu.mb@11235 = param</action> <!-- v-shot ($9235) -->
<action>maincpu.mb@1123f = param</action> <!-- v-shot ($923f) -->
<action>maincpu.mb@1124c = param</action> <!-- twin shot ($924c) -->
<action>maincpu.mb@11256 = param</action> <!-- twin shot ($9256) -->
</script>
<script state="off">
<action>maincpu.mb@1121b = 08</action>
<action>maincpu.mb@11228 = 0a</action>
<action>maincpu.mb@11235 = 08</action>
<action>maincpu.mb@1123f = 08</action>
<action>maincpu.mb@1124c = 08</action>
<action>maincpu.mb@11256 = 08</action>
</script>
</cheat>
<cheat desc="weapon - shot">
<parameter>
<item value="0x00">single shot </item>
<item value="0x01">fast single shot</item>
<item value="0x02">v-shot </item>
<item value="0x03">twin shot </item>
<item value="0x06">laser </item>
</parameter>
<script state="on">
<action>maincpu.md@28f2 = cd00003e</action>
<action>maincpu.md@2bfd = cd00003e</action>
</script>
<script state="change">
<action>maincpu.mb@28f3 = param</action>
<action>maincpu.mb@2bfe = param</action>
</script>
<script state="off">
<action>maincpu.md@28f2 = cde0803a</action>
<action>maincpu.md@2bfd = cde0803a</action>
</script>
</cheat>
<cheat desc="weapon - bomb">
<parameter>
<item value="0x04">twin </item>
<item value="0x05">missile</item>
<item value="0x07">laser </item>
</parameter>
<script state="on">
<action>maincpu.md@2912 = cd00003e</action>
<action>maincpu.md@2c0f = cd00003e</action>
</script>
<script state="change">
<action>maincpu.mb@2913 = param</action>
<action>maincpu.mb@2c10 = param</action>
</script>
<script state="off">
<action>maincpu.md@2912 = cde0813a</action>
<action>maincpu.md@2c0f = cde0813a</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.mw@02a55 = 9e70</action> <!-- twin -->
<action>maincpu.mw@02a88 = 9e70</action> <!-- missile -->
<action>maincpu.mq@11e70 = dd040436dd2b8bcd</action>
<action>maincpu.mq@11e78 = c90c77dd66c60c7e</action>
<!--
9e70 | cd 8b 2b : call $2B8B
9e73 | dd 36 04 04 : ld (ix+$04),$04
9e77 | dd 7e 0c : ld a,(ix+$0c)
9e7a | c6 66 : add a,$66
9e7c | dd 77 0c : ld (ix+$0c),a
9e7f | c9 : ret
-->
<action>maincpu.mb@2a93 = 04</action> <!-- missile at boss area -->
</script>
<script state="off">
<action>maincpu.mw@02a55 = 2b8b</action>
<action>maincpu.mw@02a88 = 2b8b</action>
<action>maincpu.mq@11e70 = 0000000000000000</action>
<action>maincpu.mq@11e78 = 0000000000000000</action>
<action>maincpu.mb@02a93 = 68</action>
</script>
</cheat>
<cheat desc="landing successful">
<script state="on">
<action>maincpu.mb@3b2c = 00</action> <!-- wind -->
<action>maincpu.mb@3b44 = 18</action> <!-- runway -->
</script>
<script state="off">
<action>maincpu.mb@3b2c = 1b</action>
<action>maincpu.mb@3b44 = 30</action>
</script>
</cheat>
<cheat desc="unlock test mode">
<comment>reset the game (F3) to enter test mode</comment>
<script state="on">
<action>maincpu.mb@0339 = 3b</action>
</script>
<script state="off">
<action>maincpu.mb@0339 = 43</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@00005 = 3b</action> <!-- go to test mode directly -->
<action>maincpu.mw@1502c = 9c00</action> <!-- ($902c) -->
<action>maincpu.mq@15c00 = 47b8c0013ae10021</action>
<action>maincpu.mq@15c08 = fe350120fdfef928</action>
<action>maincpu.mq@15c10 = 0420fbfe340120fe</action>
<action>maincpu.mq@15c18 = 0520f7fe0618f03e</action>
<action>maincpu.mq@15c20 = 20effe787786103e</action>
<action>maincpu.mq@15c28 = 0420dffe05187e03</action>
<action>maincpu.mq@15c30 = ffffcd18c20032af</action>
<!--
9c00 | 21 00 e1 : ld hl,$E100 // sound code address
9c03 | 3a 01 c0 : ld a,($C001) // read input
9c06 | b8 : cp b
9c07 | 47 : ld b,a
9c08 | 28 f9 : jr z,$9C03
9c0a | fe fd : cp $FD
9c0c | 20 01 : jr nz,$9C0F
9c0e | 35 : dec (hl) // decrease code -01
9c0f | fe fe : cp $FE
9c11 | 20 01 : jr nz,$9C14
9c13 | 34 : inc (hl) // increase code +01
9c14 | fe fb : cp $FB
9c16 | 20 04 : jr nz,$9C1C
9c18 | 3e f0 : ld a,$F0 // decrease code -10
9c1a | 18 06 : jr $9C22
9c1c | fe f7 : cp $F7
9c1e | 20 05 : jr nz,$9C25
9c20 | 3e 10 : ld a,$10 // increase code +10
9c22 | 86 : add a,(hl)
9c23 | 77 : ld (hl),a
9c24 | 78 : ld a,b
9c25 | fe ef : cp $EF
9c27 | 20 03 : jr nz,$9C2C
9c29 | 7e : ld a,(hl) // play sound
9c2a | 18 05 : jr $9C31
9c2c | fe df : cp $DF
9c2e | 20 04 : jr nz,$9C34
9c30 | af : xor a // stop sound
9c31 | 32 00 c2 : ld ($C200),a // send sound code
9c34 | 18 cd : jr $9C03
-->
</script>
<script state="run">
<output format="----- argus 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@e100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@00005 = 33</action>
<action>maincpu.mw@1502c = 94d9</action>
<action>maincpu.mq@15c00 = ffffffffffffffff</action>
<action>maincpu.mq@15c08 = ffffffffffffffff</action>
<action>maincpu.mq@15c10 = ffffffffffffffff</action>
<action>maincpu.mq@15c18 = ffffffffffffffff</action>
<action>maincpu.mq@15c20 = ffffffffffffffff</action>
<action>maincpu.mq@15c28 = ffffffffffffffff</action>
<action>maincpu.mq@15c30 = ffffffffffffffff</action>
</script>
</cheat>