Code: Select all
<!-- Chack'n Pop -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@1b4f = c9</action> <!-- objects -->
<action>maincpu.mb@2a42 = c9</action> <!-- pressed by moving block -->
</script>
<script state="off">
<action>maincpu.mb@1b4f = c0</action>
<action>maincpu.mb@2a42 = c8</action>
</script>
</cheat>
<cheat desc="unlimited jump">
<script state="on">
<action>maincpu.mw@15d7 = 8780</action>
<action>maincpu.mw@1352 = 8780</action>
</script>
<script state="run">
<action>maincpu.pq@8780 = 0b3a0820a7838b3a</action>
<action>maincpu.pq@8788 = 87c3108dc247cb80</action>
<action>maincpu.pq@8790 = 0000000000000010</action>
<!--
8780 | 3a 8b 83 : ld a,($838B) // check stage clear flag
8783 | a7 : and a
8784 | 20 08 : jr nz,$878E
8786 | 3a 0b 80 : ld a,($800B) // check input
8789 | cb 47 : bit 0,a
878b | c2 8d 10 : jp nz,$108D
878e | c3 87 10 : jp $1087
-->
</script>
<script state="off">
<action>maincpu.mw@15d7 = 1087</action>
<action>maincpu.mw@1352 = 1087</action>
<action>maincpu.pq@8780 = 0000000000000000</action>
<action>maincpu.pq@8788 = 0000000000000000</action>
<action>maincpu.pq@8790 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bomb explosion speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x18">02 </item>
<item value="0x10">03 </item>
<item value="0x08">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@233e = 01</action> <!-- sub timer -->
<action>maincpu.mb@2519 = 01</action> <!-- sub timer -->
</script>
<script state="change">
<action>maincpu.mb@2336 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2336 = 18</action>
<action>maincpu.mb@233e = 04</action>
<action>maincpu.mb@2519 = 04</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x4000">01 (slow)</item>
<item value="0x1000">02 </item>
<item value="0x0800">03 </item>
<item value="0x0300">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@3a84 = 22000021</action>
</script>
<script state="change">
<action>maincpu.mw@3a85 = param</action>
</script>
<script state="off">
<action>maincpu.md@3a84 = 2280b72a</action>
</script>
</cheat>
<cheat desc="special bonus">
<comment>doesn't work in maze 1</comment>
<script state="on">
<action>maincpu.mb@33a4 = c3</action> <!-- monsta -->
<action>maincpu.mb@3954 = c3</action> <!-- egg -->
</script>
<script state="off">
<action>maincpu.mb@33a4 = ca</action>
<action>maincpu.mb@3954 = ca</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@00b7 = c3</action> <!-- disable credit display -->
<action>maincpu.mb@0829 = c3</action> <!-- skip sound code check -->
<action>maincpu.mb@a1bb = 14</action> <!-- disable music after sfxs (code 0x02-0x12) -->
<action>maincpu.mq@076a = b888093a810021fb</action>
<action>maincpu.mq@0772 = 350120fefef92847</action>
<action>maincpu.mq@077a = 20fbfe340120fdfe</action>
<action>maincpu.mq@0782 = 20f7fe0618f03e04</action>
<action>maincpu.mq@078a = effe787786103e05</action>
<action>maincpu.mq@0792 = 20dffe06187e0320</action>
<action>maincpu.mq@079a = 0000ce18e7503e03</action>
<!--
076a | fb : ei // enable interrupt
076b | 21 00 81 : ld hl,$8100 // sound code address
076e | 3a 09 88 : ld a,($8809) // read input
0771 | b8 : cp b
0772 | 47 : ld b,a
0773 | 28 f9 : jr z,$076E
0775 | fe fe : cp $FE
0777 | 20 01 : jr nz,$077A
0779 | 35 : dec (hl) // decrease code -01
077a | fe fd : cp $FD
077c | 20 01 : jr nz,$077F
077e | 34 : inc (hl) // increase code +01
077f | fe fb : cp $FB
0781 | 20 04 : jr nz,$0787
0783 | 3e f0 : ld a,$F0 // decrease code -10
0785 | 18 06 : jr $078D
0787 | fe f7 : cp $F7
0789 | 20 05 : jr nz,$0790
078b | 3e 10 : ld a,$10 // increase code +10
078d | 86 : add a,(hl)
078e | 77 : ld (hl),a
078f | 78 : ld a,b
0790 | fe ef : cp $EF
0792 | 20 03 : jr nz,$0797
0794 | 7e : ld a,(hl) // play sound
0795 | 18 06 : jr $079D
0797 | fe df : cp $DF
0799 | 20 03 : jr nz,$079E
079b | 3e 50 : ld a,$50 // stop sound
079d | e7 : rst $20 // send sound code
079e | 18 ce : jr $076E
-->
</script>
<script state="run">
<output format="----- chack'n pop 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@8100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@00b7 = 9d</action>
<action>maincpu.mb@0829 = d2</action>
<action>maincpu.mb@a1bb = 2a</action>
<action>maincpu.mq@076a = 0006fb840032033e</action>
<action>maincpu.mq@0772 = 06022877cb84253a</action>
<action>maincpu.mq@077a = 02300f0f84273a03</action>
<action>maincpu.mq@0782 = 0c3284023278d8cb</action>
<action>maincpu.mq@078a = 5377cdcf500dcd88</action>
<action>maincpu.mq@0792 = 00cdcf2f2acdcfcf</action>
<action>maincpu.mq@079a = c8c3840032033e0d</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@06ca = 3418</action> <!-- boot -->
<action>maincpu.mw@14ec = 55d1</action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@06ca = 0006</action>
<action>maincpu.mw@14ec = 55d2</action>
</script>
</cheat>
</mamecheat>
"unlimited jump" uses a part of RAM because I can't find "unused" ROM area. it will cause wrong behavior if other game routines write or read this area.
Please tell me in this case.