Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.md@25a7 = 1f77ddaf</action> <!-- xor a / ld (ix+$1f),a -->
<action>maincpu.md@272e = 1f77ddaf</action> <!-- xor a / ld (ix+$1f),a -->
</script>
<script state="off">
<action>maincpu.md@25a7 = a71f7edd</action>
<action>maincpu.md@272e = a71f7edd</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@25cd = 27</action>
<action>maincpu.mb@25d5 = 27</action>
<action>maincpu.mb@2761 = 27</action>
<action>maincpu.mb@2769 = 27</action>
</script>
<script state="off">
<action>maincpu.mb@25cd = 28</action>
<action>maincpu.mb@25d5 = 28</action>
<action>maincpu.mb@2761 = 28</action>
<action>maincpu.mb@2769 = 28</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@294a = c9</action>
</script>
<script state="off">
<action>maincpu.mb@294a = c8</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0280">03 </item>
<item value="0x0380">04 </item>
<item value="0x0480">05 (fast)</item>
</parameter>
<script state="on">
<!-- ground -->
<action>maincpu.md@025f2 = cfbf10cd</action> <!-- x position -->
<action>maincpu.md@02674 = e7bf15cd</action> <!-- y position -->
<!-- air -->
<action>maincpu.md@02790 = cfbf10cd</action> <!-- x position -->
<action>maincpu.md@027b9 = e7bf15cd</action> <!-- y position -->
<!-- common routine -->
<action>maincpu.mq@13f10 = 0356fd03180156fd</action>
<action>maincpu.mq@13f18 = a70010117ac8b37a</action>
<action>maincpu.mq@13f20 = ffffffc910ff11f0</action>
<!--
bf10 | fd 56 01 : ld d,(iy+$01) // x position
bf13 | 18 03 : jr $BF18
bf15 | fd 56 03 : ld d,(iy+$03) // y position
bf18 | 7a : ld a,d
bf19 | b3 : or e
bf1a | c8 : ret z
bf1b | 7a : ld a,d
bf1c | 11 xx xx : ld de,$xxxx
bf1f | a7 : and a
bf20 | f0 : ret p
bf21 | 11 xx xx : ld de,$xxxx
bf24 | c9 : ret
-->
</script>
<script state="change">
<action>maincpu.mw@13f1d = param</action>
<action>maincpu.mw@13f22 = -param</action>
</script>
<script state="off">
<action>maincpu.md@025f2 = cf0156fd</action>
<action>maincpu.md@02674 = e70356fd</action>
<action>maincpu.md@02790 = cf0156fd</action>
<action>maincpu.md@027b9 = e70356fd</action>
<action>maincpu.mq@13f10 = ffffffffffffffff</action>
<action>maincpu.mq@13f18 = ffffffffffffffff</action>
<action>maincpu.mq@13f20 = 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.mb@00dc2 = 00</action> <!-- disable next sequence -->
<action>maincpu.mw@00dad = b600</action>
<action>maincpu.mq@17600 = e33ae010211b58cd</action>
<action>maincpu.mq@17608 = 20fdfef92847b8e3</action>
<action>maincpu.mq@17610 = fe340120fefe3501</action>
<action>maincpu.mq@17618 = fe0618f03e0420fb</action>
<action>maincpu.mq@17620 = 787786103e0520f7</action>
<action>maincpu.mq@17628 = fe05187e03207ffe</action>
<action>maincpu.mq@17630 = 80f600d3af0720df</action>
<action>maincpu.mq@17638 = ffffffffca1800d3</action>
<!--
b600 | cd 58 1b : call $1B58 // erase screen
b603 | 21 10 e0 : ld hl,$E010 // sound code address
b606 | 3a e3 e3 : ld a,($E3E3) // read input
b609 | b8 : cp b
b60a | 47 : ld b,a
b60b | 28 f9 : jr z,$B606
b60d | fe fd : cp $FD
b60f | 20 01 : jr nz,$B612
b611 | 35 : dec (hl) // decrease code -01
b612 | fe fe : cp $FE
b614 | 20 01 : jr nz,$B617
b616 | 34 : inc (hl) // increase code +01
b617 | fe fb : cp $FB
b619 | 20 04 : jr nz,$B61F
b61b | 3e f0 : ld a,$F0 // decrease code -10
b61d | 18 06 : jr $B625
b61f | fe f7 : cp $F7
b621 | 20 05 : jr nz,$B628
b623 | 3e 10 : ld a,$10 // increase code +10
b625 | 86 : add a,(hl)
b626 | 77 : ld (hl),a
b627 | 78 : ld a,b
b628 | fe 7f : cp $7F
b62a | 20 03 : jr nz,$B62F
b62c | 7e : ld a,(hl) // play sound
b62d | 18 05 : jr $B634
b62f | fe df : cp $DF
b631 | 20 07 : jr nz,$B63A
b633 | af : xor a // stop sound
b634 | d3 00 : out ($00),a // send sound code
b636 | f6 80 : or $80
b638 | d3 00 : out ($00),a
b63a | 18 ca : jr $B606
-->
</script>
<script state="run">
<output format="----- youjyuden 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@e010</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@00dc2 = 18</action>
<action>maincpu.mw@00dad = 1b58</action>
<action>maincpu.mq@17600 = ffffffffffffffff</action>
<action>maincpu.mq@17608 = ffffffffffffffff</action>
<action>maincpu.mq@17610 = ffffffffffffffff</action>
<action>maincpu.mq@17618 = ffffffffffffffff</action>
<action>maincpu.mq@17620 = ffffffffffffffff</action>
<action>maincpu.mq@17628 = ffffffffffffffff</action>
<action>maincpu.mq@17630 = ffffffffffffffff</action>
<action>maincpu.mq@17638 = ffffffffffffffff</action>
</script>
</cheat>