Code: Select all
<!-- Doki Doki Penguin Land -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@22EC = C9</action> <!-- rock -->
<action>maincpu.mb@25CB = C9</action> <!-- white bear -->
</script>
<script state="off">
<action>maincpu.mb@22EC = C0</action>
<action>maincpu.mb@25CB = C8</action>
</script>
</cheat>
<cheat desc="no hit - egg">
<script state="on">
<action>maincpu.mb@0616 = 0A </action> <!-- fall down -->
<action>maincpu.mq@1501 = 32103EC9C28032AF</action> <!-- fall down out of line -->
<action>maincpu.mb@1554 = C9 </action> <!-- white bear -->
<action>maincpu.mq@16FA = 32103EC9C29032AF</action> <!-- fall down via egg block -->
<action>maincpu.mb@1E21 = 8C </action> <!-- rock -->
<action>maincpu.mb@20DB = 56 </action> <!-- pressed by player -->
<action>maincpu.mb@25D8 = 18 </action> <!-- pressed by white bear -->
<action>maincpu.mb@2BA1 = C9 </action> <!-- mole -->
<action>maincpu.mb@2DF9 = 2C </action> <!-- fall down out of screen -->
<action>maincpu.mb@3993 = C9 </action> <!-- egg timer -->
</script>
<script state="off">
<action>maincpu.mb@0616 = 05 </action>
<action>maincpu.mq@1501 = 32103EC34032843E</action>
<action>maincpu.mb@1554 = D8 </action>
<action>maincpu.mq@16FA = 32103EC34032843E</action>
<action>maincpu.mb@1E21 = 82 </action>
<action>maincpu.mb@20DB = 4C </action>
<action>maincpu.mb@25D8 = 30 </action>
<action>maincpu.mb@2BA1 = D0 </action>
<action>maincpu.mb@2DF9 = 22 </action>
<action>maincpu.mb@3993 = C0 </action>
</script>
</cheat>
<cheat desc="walk through wall - player">
<script state="on">
<action>maincpu.mb@18F4 = 96</action> <!-- left -->
<action>maincpu.mb@191D = 9E</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@18F4 = D6</action>
<action>maincpu.mb@191D = DE</action>
</script>
</cheat>
<cheat desc="walk through wall - egg">
<script state="on">
<action>maincpu.mb@1A16 = 96</action> <!-- left -->
<action>maincpu.mb@1A34 = 9E</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@1A16 = D6</action>
<action>maincpu.mb@1A34 = DE</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@1152 = CB8800CD </action>
<action>maincpu.mq@8800 = FD052046CBC24721</action>
<action>maincpu.mq@8808 = 052861CBC84E09CB</action>
<action>maincpu.mq@8810 = C2443AC9C24432AF</action>
<action>maincpu.mq@8818 = CBFDC24832AFC0A7</action>
<action>maincpu.mq@8820 = FFC98ECB86CB8E09</action>
<!--
8800 | 21 47 C2 : ld hl,$C247
8803 | CB 46 : bit 0,(hl)
8805 | 20 05 : jr nz,$880C
8807 | FD CB 09 4E : bit 1,(iy+$09)
880B | C8 : ret z
880C | CB 61 : bit 4,c
880E | 28 05 : jr z,$8815
8810 | AF : xor a
8811 | 32 44 C2 : ld ($C244),a
8814 | C9 : ret
8815 | 3A 44 C2 : ld a,($C244)
8818 | A7 : and a
8819 | C0 : ret nz
881A | AF : xor a
881B | 32 48 C2 : ld ($C248),a
881E | FD CB 09 8E : res 1,(iy+$09)
8822 | CB 86 : res 0,(hl)
8824 | CB 8E : res 1,(hl)
8826 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@1152 = CBC24721 </action>
<action>maincpu.mq@8800 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8808 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8810 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8818 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8820 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="digging speed up">
<script state="on">
<action>maincpu.mb@2019 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2019 = 06</action>
</script>
</cheat>
<cheat desc="no slip">
<script state="on">
<action>maincpu.mb@23FD = C9</action>
</script>
<script state="off">
<action>maincpu.mb@23FD = FD</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@00CC = 8830 </action>
<action>maincpu.mq@8830 = 47B8C2403AC00021</action>
<action>maincpu.mq@8838 = FE350120FBFEF928</action>
<action>maincpu.mq@8840 = 0420FDFE340120F7</action>
<action>maincpu.mq@8848 = 0520FEFE0618F03E</action>
<action>maincpu.mq@8850 = 20EFFE787786103E</action>
<action>maincpu.mq@8858 = DFFE051880F67E05</action>
<action>maincpu.mq@8860 = CB18C34032AF0420</action>
<!--
8830 | 21 00 C0 : ld hl,$C000 // sound code address
8833 | 3A 40 C2 : ld a,($C240) // read input
8836 | B8 : cp b
8837 | 47 : ld b,a
8838 | 28 F9 : jr z,$8833
883A | FE FB : cp $FB
883C | 20 01 : jr nz,$883F
883E | 35 : dec (hl) // decrease code -01
883F | FE F7 : cp $F7
8841 | 20 01 : jr nz,$8844
8843 | 34 : inc (hl) // increase code +01
8844 | FE FD : cp $FD
8846 | 20 04 : jr nz,$884C
8848 | 3E F0 : ld a,$F0 // decrease code -10
884A | 18 06 : jr $8852
884C | FE FE : cp $FE
884E | 20 05 : jr nz,$8855
8850 | 3E 10 : ld a,$10 // increase code +10
8852 | 86 : add a,(hl)
8853 | 77 : ld (hl),a
8854 | 78 : ld a,b
8855 | FE EF : cp $EF
8857 | 20 05 : jr nz,$885E
8859 | 7E : ld a,(hl) // play sound
885A | F6 80 : or $80
885C | 18 05 : jr $8863
885E | FE DF : cp $DF
8860 | 20 04 : jr nz,$8866
8862 | AF : xor a // stop sound
8863 | 32 40 C3 : ld ($C340),a // send sound code
8866 | 18 CB : jr $8833
-->
</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@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@00CC = 01F9 </action>
<action>maincpu.mq@8830 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8838 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8840 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8848 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@8860 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>