Code: Select all
<!-- Wonder Boy III - Monster Lair (Europe) ~ Monster Lair (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>mdslot:cart:rom.mb@0D140 = 60</action> <!-- enemy -->
<action>mdslot:cart:rom.mb@0F996 = 60</action> <!-- stone -->
<!-- bullet/candy -->
<action>mdslot:cart:rom.mw@1558E = 7C00 </action>
<action>mdslot:cart:rom.mq@07C00 = 4EB90000EDC80C2D</action>
<action>mdslot:cart:rom.mq@07C08 = 00090004670608AE</action>
<action>mdslot:cart:rom.mq@07C10 = 0001000A4E75FFFF</action>
<!--
7C00 | 4EB9 0000 EDC8 : jsr $edc8.l
7C06 | 0C2D 0009 0004 : cmpi.b #$9, ($4,A5) // is candy?
7C0C | 6706 : beq $7c14
7C0E | 08AE 0001 000A : bclr #$1, ($a,A6)
7C14 | 4E75 : rts
-->
<action>mdslot:cart:rom.mb@1C232 = 60</action> <!-- boss -->
</script>
<script state="off">
<action>mdslot:cart:rom.mb@0D140 = 67 </action>
<action>mdslot:cart:rom.mb@0F996 = 67 </action>
<action>mdslot:cart:rom.mw@1558E = EDC8 </action>
<action>mdslot:cart:rom.mq@07C00 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@07C08 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@07C10 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mb@1C232 = 67 </action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>mdslot:cart:rom.mb@550D = 86</action> <!-- normal stage -->
<action>mdslot:cart:rom.mb@5D01 = 86</action> <!-- boss stage -->
</script>
<script state="off">
<action>mdslot:cart:rom.mb@550D = 87</action>
<action>mdslot:cart:rom.mb@5D01 = 87</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>mdslot:cart:rom.mw@5A4E = 21D2 </action>
<action>mdslot:cart:rom.mq@7C20 = 4EB85C3E08380004</action>
<action>mdslot:cart:rom.mq@7C28 = C889660831FC1111</action>
<action>mdslot:cart:rom.mq@7C30 = 92924E7531FC1111</action>
<action>mdslot:cart:rom.mq@7C38 = 92944E75FFFFFFFF</action>
<!--
7C20 | 4EB8 5C3E : jsr $5c3e.w
7C24 | 0838 0004 C889 : btst #$4, $c889.w
7C2A | 6608 : bne $7c34
7C2C | 31FC 1111 9292 : move.w #$1111, $9292.w // 1P
7C32 | 4E75 : rts
7C34 | 31FC 1111 9294 : move.w #$1111, $9294.w // 2P
7C3A | 4E75 : rts
-->
<action>mdslot:cart:rom.mw@5A70 = 4E71</action>
<action>mdslot:cart:rom.mw@5B1C = 4E71</action>
</script>
<script state="off">
<action>mdslot:cart:rom.mw@5A4E = 01F0 </action>
<action>mdslot:cart:rom.mq@7C20 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C28 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C30 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C38 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mw@5A70 = 661C </action>
<action>mdslot:cart:rom.mw@5B1C = 6630 </action>
</script>
</cheat>
<cheat desc="vitality speed">
<parameter>
<item value="0x0280">01 (slow)</item>
<item value="0x0200">02 </item>
<item value="0x0180">03 </item>
<item value="0x0100">04 </item>
<item value="0x0000">05 (fast)</item>
</parameter>
<script state="change">
<!-- 1P -->
<action> maincpu.pw@FF90C4 = param</action> <!-- initialize parameter -->
<action>mdslot:cart:rom.mw@003584 = param</action> <!-- player start -->
<action>mdslot:cart:rom.mw@0035E6 = param</action> <!-- level start -->
<action>mdslot:cart:rom.mw@0037AE = param</action>
<!-- 2P -->
<action> maincpu.pw@FF90C6 = param</action> <!-- initialize parameter -->
<action>mdslot:cart:rom.mw@00361E = param</action> <!-- player start -->
<action>mdslot:cart:rom.mw@003680 = param</action> <!-- level start -->
<action>mdslot:cart:rom.mw@0038E4 = param</action>
</script>
<script state="off">
<action> maincpu.pw@FF90C4 = 00F0</action>
<action>mdslot:cart:rom.mw@003584 = 00F0</action>
<action>mdslot:cart:rom.mw@0035E6 = 00F0</action>
<action>mdslot:cart:rom.mw@0037AE = 00F0</action>
<action> maincpu.pw@FF90C6 = 00F0</action>
<action>mdslot:cart:rom.mw@00361E = 00F0</action>
<action>mdslot:cart:rom.mw@003680 = 00F0</action>
<action>mdslot:cart:rom.mw@0038E4 = 00F0</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- music : 0x01 - 0x0d, sfx : 0x10 - 0x3f -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>mdslot:cart:rom.mw@30C0 = 7C40 </action>
<action>mdslot:cart:rom.mq@7C40 = 41F8800011FC0004</action>
<action>mdslot:cart:rom.mq@7C48 = 86564EB8093E1238</action>
<action>mdslot:cart:rom.mq@7C50 = 861D0C0100046602</action>
<action>mdslot:cart:rom.mq@7C58 = 53100C0100086602</action>
<action>mdslot:cart:rom.mq@7C60 = 52100C0100026604</action>
<action>mdslot:cart:rom.mq@7C68 = 041000100C010001</action>
<action>mdslot:cart:rom.mq@7C70 = 6604061000100C01</action>
<action>mdslot:cart:rom.mq@7C78 = 0040660810100000</action>
<action>mdslot:cart:rom.mq@7C80 = 0080600A0C010010</action>
<action>mdslot:cart:rom.mq@7C88 = 660A103C008E4EB9</action>
<action>mdslot:cart:rom.mq@7C90 = 0000CE3860AEFFFF</action>
<!--
7C40 | 41F8 8000 : lea $8000.w, A0 // sound code address ($ff8000)
7C44 | 11FC 0004 8656 : move.b #$4, $8656.w
7C4A | 4EB8 093E : jsr $93e.w // wait interrupt
7C4E | 1238 861D : move.b $861d.w, D1 // read input ($ff861d)
7C52 | 0C01 0004 : cmpi.b #$4, D1
7C56 | 6602 : bne $7c5a
7C58 | 5310 : subq.b #1, (A0) // decrease code -01
7C5A | 0C01 0008 : cmpi.b #$8, D1
7C5E | 6602 : bne $7c62
7C60 | 5210 : addq.b #1, (A0) // increase code +01
7C62 | 0C01 0002 : cmpi.b #$2, D1
7C66 | 6604 : bne $7c6c
7C68 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
7C6C | 0C01 0001 : cmpi.b #$1, D1
7C70 | 6604 : bne $7c76
7C72 | 0610 0010 : addi.b #$10, (A0) // increase code +10
7C76 | 0C01 0040 : cmpi.b #$40, D1
7C7A | 6608 : bne $7c84
7C7C | 1010 : move.b (A0), D0 // play sound
7C7E | 0000 0080 : ori.b #$80, D0
7C82 | 600A : bra $7c8e
7C84 | 0C01 0010 : cmpi.b #$10, D1
7C88 | 660A : bne $7c94
7C8A | 103C 008E : move.b #$8e, D0 // stop sound
7C8E | 4EB9 0000 CE38 : jsr $ce38.l // send sound code
7C94 | 60AE : bra $7c44
-->
</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@FF8000</argument>
</output>
</script>
<script state="off">
<action>mdslot:cart:rom.mw@30C0 = 2968 </action>
<action>mdslot:cart:rom.mq@7C40 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C48 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C50 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C58 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C60 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C68 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C70 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C78 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C80 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C88 = FFFFFFFFFFFFFFFF</action>
<action>mdslot:cart:rom.mq@7C90 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>