Code: Select all
<!-- Wonder Boy (set 1, 315-5177) -->
<mamecheat version="1">
<cheat desc="no hit">
<comment>you hit an enemy on the skateboard</comment>
<script state="on">
<action>maincpu.ob@2E72 = 18</action> <!-- boss (body) -->
<action>maincpu.ob@3027 = 18</action> <!-- boss (head) -->
<action>maincpu.ob@31B6 = 18</action> <!-- boss (fireball) -->
<action>maincpu.ob@36F1 = C9</action> <!-- stone -->
<action>maincpu.ob@37C8 = C9</action> <!-- bonfire -->
<action>maincpu.ob@383B = C9</action> <!-- snail -->
<action>maincpu.ob@3899 = C9</action> <!-- skull -->
<action>maincpu.ob@3B52 = C9</action> <!-- cobra -->
<action>maincpu.ob@3CB2 = C9</action> <!-- rock -->
<action>maincpu.ob@3D0A = C9</action> <!-- blue people -->
<action>maincpu.ob@4248 = C9</action> <!-- frog -->
<action>maincpu.ob@42AF = C9</action> <!-- bee -->
<action>maincpu.ob@4357 = C9</action> <!-- bat -->
<action>maincpu.ob@4513 = C9</action> <!-- spider -->
<action>maincpu.ob@47C2 = C9</action> <!-- coyote -->
<action>maincpu.ob@4ADD = C9</action> <!-- swordfish -->
<action>maincpu.ob@4B98 = C9</action> <!-- octopus -->
<action>maincpu.ob@4CDC = C9</action> <!-- icicle -->
</script>
<script state="off">
<action>maincpu.ob@2E72 = 30</action>
<action>maincpu.ob@3027 = 30</action>
<action>maincpu.ob@31B6 = 30</action>
<action>maincpu.ob@36F1 = 21</action>
<action>maincpu.ob@37C8 = 21</action>
<action>maincpu.ob@383B = 21</action>
<action>maincpu.ob@3899 = 21</action>
<action>maincpu.ob@3B52 = 21</action>
<action>maincpu.ob@3CB2 = 21</action>
<action>maincpu.ob@3D0A = 21</action>
<action>maincpu.ob@4248 = 21</action>
<action>maincpu.ob@42AF = 21</action>
<action>maincpu.ob@4357 = 21</action>
<action>maincpu.ob@4513 = 21</action>
<action>maincpu.ob@47C2 = 21</action>
<action>maincpu.ob@4ADD = 21</action>
<action>maincpu.ob@4B98 = 21</action>
<action>maincpu.ob@4CDC = 21</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2B60 = 86</action>
<action>maincpu.ob@2B63 = 4F</action>
</script>
<script state="off">
<action>maincpu.mb@2B60 = 84</action>
<action>maincpu.ob@2B63 = 67</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.od@29A1 = 00FFFFCD </action> <!-- jump -->
<action>maincpu.md@29A1 = FFBFE0FF </action>
<action>maincpu.od@2A25 = 00FFFFCD </action> <!-- fall down -->
<action>maincpu.md@2A25 = FFBFE0FF </action>
<action>maincpu.mq@BFE0 = CB08286ECBC08421</action>
<action>maincpu.mq@BFE8 = DDC9E1031F36DDAE</action>
<action>maincpu.mq@BFF0 = FFFFFFFFC97E1FCB</action>
<!--
BFE0 | 21 84 C0 : ld hl,$C084 // check jump button
BFE3 | CB 6E : bit 5,(hl)
BFE5 | 28 08 : jr z,$BFEF
BFE7 | CB AE : res 5,(hl)
BFE9 | DD 36 1F 03 : ld (ix+$1f),$03 // set jump flag
BFED | E1 : pop hl
BFEE | C9 : ret
BFEF | DD CB 1F 7E : bit 7,(ix+$1f)
BFF3 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@29A1 = 2E5BCBDD </action>
<action>maincpu.md@29A1 = 7E1F9B99 </action>
<action>maincpu.od@2A25 = 3B4FCBDD </action>
<action>maincpu.md@2A25 = 7E1FCF8D </action>
<action>maincpu.mq@BFE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no slip">
<script state="on">
<action>maincpu.ob@263D = CD </action>
<action>maincpu.mw@263E = 96D0 </action>
<action>maincpu.mq@96D0 = 01280CE6C0843A47</action>
<action>maincpu.mq@96D8 = FFFFFFC91477DD78</action>
<!--
96D0 | 47 : ld b,a
96D1 | 3A 84 C0 : ld a,($C084)
96D4 | E6 0C : and $0C
96D6 | 28 01 : jr z,$96D9
96D8 | 78 : ld a,b
96D9 | DD 77 14 : ld (ix+$14),a
96DC | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.ob@263D = DD </action>
<action>maincpu.mw@263E = 1432 </action>
<action>maincpu.mq@96D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="vitality speed">
<parameter>
<item value="0x0000">no decrease</item>
<item value="0x0001">01 (slow) </item>
<item value="0x0002">02 </item>
<item value="0x0008">03 </item>
<item value="0x0020">04 </item>
<item value="0x0100">05 (fast) </item>
</parameter>
<script state="change">
<action>maincpu.mw@4E58 = -param</action>
<action>maincpu.mw@4E61 = -param</action>
</script>
<script state="off">
<action>maincpu.mw@4E58 = FFFF</action>
<action>maincpu.mw@4E61 = FFF8</action>
</script>
</cheat>
<cheat desc="hidden panel finder">
<script state="on">
<action>maincpu.ob@4725 = 00</action>
</script>
<script state="off">
<action>maincpu.ob@4725 = D0</action>
</script>
</cheat>
<cheat desc="hidden fried potato finder">
<script state="on">
<action>maincpu.mw@3958 = 96E0 </action>
<action>maincpu.mq@96E0 = 3705FE0FE6187EDD</action>
<action>maincpu.mq@96E8 = FFFFFFFFC9206AC4</action>
<!--
96E0 | DD 7E 18 : ld a,(ix+$18)
96E3 | E6 0F : and $0F
96E5 | FE 05 : cp $05
96E7 | 37 : scf
96E8 | C4 6A 20 : call nz,$206A
96EB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@3958 = 206A </action>
<action>maincpu.mq@96E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96E8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no fruit disappearance">
<script state="on">
<action>maincpu.ob@3922 = 18</action> <!-- fruit -->
<action>maincpu.mb@39C3 = C5</action> <!-- fried potato -->
<action>maincpu.ob@4753 = 18</action> <!-- panel -->
</script>
<script state="off">
<action>maincpu.ob@3922 = 20</action>
<action>maincpu.mb@39C3 = 24</action>
<action>maincpu.ob@4753 = 20</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@015E = 8000 </action>
<action>maincpu.mq@8000 = 10E62F08DBC10021</action>
<action>maincpu.mq@8008 = 2847B8B12F00DB4F</action>
<action>maincpu.mq@8010 = 40FE35012080FEF2</action>
<action>maincpu.mq@8018 = 3E042090FE340120</action>
<action>maincpu.mq@8020 = 3E052050FE0618F0</action>
<action>maincpu.mq@8028 = 032002FE78778610</action>
<action>maincpu.mq@8030 = AF032004FE05187E</action>
<action>maincpu.mq@8038 = 00000000C71818D3</action>
<!--
8000 | 21 00 C1 : ld hl,$C100 // sound code address
8003 | DB 08 : in a,($08) // read start button
8005 | 2F : cpl
8006 | E6 10 : and $10
8008 | 4F : ld c,a
8009 | DB 00 : in a,($00) // read other inputs
800B | 2F : cpl
800C | B1 : or c
800D | B8 : cp b
800E | 47 : ld b,a
800F | 28 F2 : jr z,$8003
8011 | FE 80 : cp $80
8013 | 20 01 : jr nz,$8016
8015 | 35 : dec (hl) // decrease code -01
8016 | FE 40 : cp $40
8018 | 20 01 : jr nz,$801B
801A | 34 : inc (hl) // increase code +01
801B | FE 90 : cp $90
801D | 20 04 : jr nz,$8023
801F | 3E F0 : ld a,$F0 // decrease code -10
8021 | 18 06 : jr $8029
8023 | FE 50 : cp $50
8025 | 20 05 : jr nz,$802C
8027 | 3E 10 : ld a,$10 // increase code +10
8029 | 86 : add a,(hl)
802A | 77 : ld (hl),a
802B | 78 : ld a,b
802C | FE 02 : cp $02
802E | 20 03 : jr nz,$8033
8030 | 7E : ld a,(hl) // play sound
8031 | 18 05 : jr $8038
8033 | FE 04 : cp $04
8035 | 20 03 : jr nz,$803A
8037 | AF : xor a // stop sound
8038 | D3 18 : out ($18),a // send sound code
803A | 18 C7 : jr $8003
-->
</script>
<script state="run">
<output format="----- wonder boy 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="start + left : decrease code -10" line="13" align="center" />
<output format="start + right : 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@015E = 0755 </action>
<action>maincpu.mq@8000 = 2032302220323022</action>
<action>maincpu.mq@8008 = C47F7F7F7F7F7F1A</action>
<action>maincpu.mq@8010 = 3123210401B6B4A6</action>
<action>maincpu.mq@8018 = 3123213331232133</action>
<action>maincpu.mq@8020 = 7F7F7F7F7F1B2133</action>
<action>maincpu.mq@8028 = 240401B7B5A7C57F</action>
<action>maincpu.mq@8030 = 2436342624363426</action>
<action>maincpu.mq@8038 = 7F7F7F1E240B0926</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mb@015B = 27</action>
</script>
<script state="off">
<action>maincpu.mb@015B = 09</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Wonder Boy (set 2, 315-5135) -->
<mamecheat version="1">
<cheat desc="no hit">
<comment>you hit an enemy on the skateboard</comment>
<script state="on">
<action>maincpu.ob@2E72 = 18</action> <!-- boss (body) -->
<action>maincpu.ob@3027 = 18</action> <!-- boss (head) -->
<action>maincpu.ob@31B6 = 18</action> <!-- boss (fireball) -->
<action>maincpu.ob@36F1 = C9</action> <!-- stone -->
<action>maincpu.ob@37C8 = C9</action> <!-- bonfire -->
<action>maincpu.ob@383B = C9</action> <!-- snail -->
<action>maincpu.ob@3899 = C9</action> <!-- skull -->
<action>maincpu.ob@3B52 = C9</action> <!-- cobra -->
<action>maincpu.ob@3CB2 = C9</action> <!-- rock -->
<action>maincpu.ob@3D0A = C9</action> <!-- blue people -->
<action>maincpu.ob@4248 = C9</action> <!-- frog -->
<action>maincpu.ob@42AF = C9</action> <!-- bee -->
<action>maincpu.ob@4357 = C9</action> <!-- bat -->
<action>maincpu.ob@4513 = C9</action> <!-- spider -->
<action>maincpu.ob@47C2 = C9</action> <!-- coyote -->
<action>maincpu.ob@4ADD = C9</action> <!-- swordfish -->
<action>maincpu.ob@4B98 = C9</action> <!-- octopus -->
<action>maincpu.ob@4CDC = C9</action> <!-- icicle -->
</script>
<script state="off">
<action>maincpu.ob@2E72 = 30</action>
<action>maincpu.ob@3027 = 30</action>
<action>maincpu.ob@31B6 = 30</action>
<action>maincpu.ob@36F1 = 21</action>
<action>maincpu.ob@37C8 = 21</action>
<action>maincpu.ob@383B = 21</action>
<action>maincpu.ob@3899 = 21</action>
<action>maincpu.ob@3B52 = 21</action>
<action>maincpu.ob@3CB2 = 21</action>
<action>maincpu.ob@3D0A = 21</action>
<action>maincpu.ob@4248 = 21</action>
<action>maincpu.ob@42AF = 21</action>
<action>maincpu.ob@4357 = 21</action>
<action>maincpu.ob@4513 = 21</action>
<action>maincpu.ob@47C2 = 21</action>
<action>maincpu.ob@4ADD = 21</action>
<action>maincpu.ob@4B98 = 21</action>
<action>maincpu.ob@4CDC = 21</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2B60 = 86</action>
<action>maincpu.ob@2B63 = 4F</action>
</script>
<script state="off">
<action>maincpu.mb@2B60 = 84</action>
<action>maincpu.ob@2B63 = 67</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.od@29A1 = 00FFFFCD </action> <!-- jump -->
<action>maincpu.md@29A1 = FFBFE0FF </action>
<action>maincpu.od@2A25 = 00FFFFCD </action> <!-- fall down -->
<action>maincpu.md@2A25 = FFBFE0FF </action>
<action>maincpu.mq@BFE0 = CB08286ECBC08421</action>
<action>maincpu.mq@BFE8 = DDC9E1031F36DDAE</action>
<action>maincpu.mq@BFF0 = FFFFFFFFC97E1FCB</action>
<!--
BFE0 | 21 84 C0 : ld hl,$C084 // check jump button
BFE3 | CB 6E : bit 5,(hl)
BFE5 | 28 08 : jr z,$BFEF
BFE7 | CB AE : res 5,(hl)
BFE9 | DD 36 1F 03 : ld (ix+$1f),$03 // set jump flag
BFED | E1 : pop hl
BFEE | C9 : ret
BFEF | DD CB 1F 7E : bit 7,(ix+$1f)
BFF3 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@29A1 = 2E5BCBDD </action>
<action>maincpu.md@29A1 = 7E1F9B99 </action>
<action>maincpu.od@2A25 = 3B4FCBDD </action>
<action>maincpu.md@2A25 = 7E1FCF8D </action>
<action>maincpu.mq@BFE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no slip">
<script state="on">
<action>maincpu.ob@263D = CD </action>
<action>maincpu.mw@263E = 96D0 </action>
<action>maincpu.mq@96D0 = 01280CE6C0843A47</action>
<action>maincpu.mq@96D8 = FFFFFFC91477DD78</action>
<!--
96D0 | 47 : ld b,a
96D1 | 3A 84 C0 : ld a,($C084)
96D4 | E6 0C : and $0C
96D6 | 28 01 : jr z,$96D9
96D8 | 78 : ld a,b
96D9 | DD 77 14 : ld (ix+$14),a
96DC | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.ob@263D = DD </action>
<action>maincpu.mw@263E = 1432 </action>
<action>maincpu.mq@96D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="vitality speed">
<parameter>
<item value="0x0000">no decrease</item>
<item value="0x0001">01 (slow) </item>
<item value="0x0002">02 </item>
<item value="0x0008">03 </item>
<item value="0x0020">04 </item>
<item value="0x0100">05 (fast) </item>
</parameter>
<script state="change">
<action>maincpu.mw@4E58 = -param</action>
<action>maincpu.mw@4E61 = -param</action>
</script>
<script state="off">
<action>maincpu.mw@4E58 = FFFF</action>
<action>maincpu.mw@4E61 = FFF8</action>
</script>
</cheat>
<cheat desc="hidden panel finder">
<script state="on">
<action>maincpu.ob@4725 = 00</action>
</script>
<script state="off">
<action>maincpu.ob@4725 = D0</action>
</script>
</cheat>
<cheat desc="hidden fried potato finder">
<script state="on">
<action>maincpu.mw@3958 = 96E0 </action>
<action>maincpu.mq@96E0 = 3705FE0FE6187EDD</action>
<action>maincpu.mq@96E8 = FFFFFFFFC9206AC4</action>
<!--
96E0 | DD 7E 18 : ld a,(ix+$18)
96E3 | E6 0F : and $0F
96E5 | FE 05 : cp $05
96E7 | 37 : scf
96E8 | C4 6A 20 : call nz,$206A
96EB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@3958 = 206A </action>
<action>maincpu.mq@96E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96E8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no fruit disappearance">
<script state="on">
<action>maincpu.ob@3922 = 18</action> <!-- fruit -->
<action>maincpu.mb@39C3 = C5</action> <!-- fried potato -->
<action>maincpu.ob@4753 = 18</action> <!-- panel -->
</script>
<script state="off">
<action>maincpu.ob@3922 = 20</action>
<action>maincpu.mb@39C3 = 24</action>
<action>maincpu.ob@4753 = 20</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@015E = 8000 </action>
<action>maincpu.mq@8000 = 10E62F08DBC10021</action>
<action>maincpu.mq@8008 = 2847B8B12F00DB4F</action>
<action>maincpu.mq@8010 = 40FE35012080FEF2</action>
<action>maincpu.mq@8018 = 3E042090FE340120</action>
<action>maincpu.mq@8020 = 3E052050FE0618F0</action>
<action>maincpu.mq@8028 = 032002FE78778610</action>
<action>maincpu.mq@8030 = AF032004FE05187E</action>
<action>maincpu.mq@8038 = 00000000C71818D3</action>
<!--
8000 | 21 00 C1 : ld hl,$C100 // sound code address
8003 | DB 08 : in a,($08) // read start button
8005 | 2F : cpl
8006 | E6 10 : and $10
8008 | 4F : ld c,a
8009 | DB 00 : in a,($00) // read other inputs
800B | 2F : cpl
800C | B1 : or c
800D | B8 : cp b
800E | 47 : ld b,a
800F | 28 F2 : jr z,$8003
8011 | FE 80 : cp $80
8013 | 20 01 : jr nz,$8016
8015 | 35 : dec (hl) // decrease code -01
8016 | FE 40 : cp $40
8018 | 20 01 : jr nz,$801B
801A | 34 : inc (hl) // increase code +01
801B | FE 90 : cp $90
801D | 20 04 : jr nz,$8023
801F | 3E F0 : ld a,$F0 // decrease code -10
8021 | 18 06 : jr $8029
8023 | FE 50 : cp $50
8025 | 20 05 : jr nz,$802C
8027 | 3E 10 : ld a,$10 // increase code +10
8029 | 86 : add a,(hl)
802A | 77 : ld (hl),a
802B | 78 : ld a,b
802C | FE 02 : cp $02
802E | 20 03 : jr nz,$8033
8030 | 7E : ld a,(hl) // play sound
8031 | 18 05 : jr $8038
8033 | FE 04 : cp $04
8035 | 20 03 : jr nz,$803A
8037 | AF : xor a // stop sound
8038 | D3 18 : out ($18),a // send sound code
803A | 18 C7 : jr $8003
-->
</script>
<script state="run">
<output format="----- wonder boy 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="start + left : decrease code -10" line="13" align="center" />
<output format="start + right : 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@015E = 0755 </action>
<action>maincpu.mq@8000 = 2032302220323022</action>
<action>maincpu.mq@8008 = C47F7F7F7F7F7F1A</action>
<action>maincpu.mq@8010 = 3123210401B6B4A6</action>
<action>maincpu.mq@8018 = 3123213331232133</action>
<action>maincpu.mq@8020 = 7F7F7F7F7F1B2133</action>
<action>maincpu.mq@8028 = 240401B7B5A7C57F</action>
<action>maincpu.mq@8030 = 2436342624363426</action>
<action>maincpu.mq@8038 = 7F7F7F1E240B0926</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mb@015B = 27</action>
</script>
<script state="off">
<action>maincpu.mb@015B = 09</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Wonder Boy (set 3, 315-5135) -->
<mamecheat version="1">
<cheat desc="no hit">
<comment>you hit an enemy on the skateboard</comment>
<script state="on">
<action>maincpu.ob@2E70 = 18</action> <!-- boss (body) -->
<action>maincpu.ob@3025 = 18</action> <!-- boss (head) -->
<action>maincpu.ob@31B4 = 18</action> <!-- boss (fireball) -->
<action>maincpu.ob@36EF = C9</action> <!-- stone -->
<action>maincpu.ob@37C6 = C9</action> <!-- bonfire -->
<action>maincpu.ob@3839 = C9</action> <!-- snail -->
<action>maincpu.ob@3897 = C9</action> <!-- skull -->
<action>maincpu.ob@3B50 = C9</action> <!-- cobra -->
<action>maincpu.ob@3CB0 = C9</action> <!-- rock -->
<action>maincpu.ob@3D08 = C9</action> <!-- blue people -->
<action>maincpu.ob@4246 = C9</action> <!-- frog -->
<action>maincpu.ob@42AD = C9</action> <!-- bee -->
<action>maincpu.ob@4355 = C9</action> <!-- bat -->
<action>maincpu.ob@4511 = C9</action> <!-- spider -->
<action>maincpu.ob@47C0 = C9</action> <!-- coyote -->
<action>maincpu.ob@4ADB = C9</action> <!-- swordfish -->
<action>maincpu.ob@4B96 = C9</action> <!-- octopus -->
<action>maincpu.ob@4CDA = C9</action> <!-- icicle -->
</script>
<script state="off">
<action>maincpu.ob@2E70 = 30</action>
<action>maincpu.ob@3025 = 30</action>
<action>maincpu.ob@31B4 = 30</action>
<action>maincpu.ob@36EF = 21</action>
<action>maincpu.ob@37C6 = 21</action>
<action>maincpu.ob@3839 = 21</action>
<action>maincpu.ob@3897 = 21</action>
<action>maincpu.ob@3B50 = 21</action>
<action>maincpu.ob@3CB0 = 21</action>
<action>maincpu.ob@3D08 = 21</action>
<action>maincpu.ob@4246 = 21</action>
<action>maincpu.ob@42AD = 21</action>
<action>maincpu.ob@4355 = 21</action>
<action>maincpu.ob@4511 = 21</action>
<action>maincpu.ob@47C0 = 21</action>
<action>maincpu.ob@4ADB = 21</action>
<action>maincpu.ob@4B96 = 21</action>
<action>maincpu.ob@4CDA = 21</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2B5E = 86</action>
<action>maincpu.ob@2B61 = 4F</action>
</script>
<script state="off">
<action>maincpu.mb@2B5E = 84</action>
<action>maincpu.ob@2B61 = 67</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.od@299F = 00FFFFCD </action> <!-- jump -->
<action>maincpu.md@299F = FFBFD0FF </action>
<action>maincpu.od@2A23 = 00FFFFCD </action> <!-- fall down -->
<action>maincpu.md@2A23 = FFBFD0FF </action>
<action>maincpu.mq@BFD0 = CB08286ECBC08421</action>
<action>maincpu.mq@BFD8 = DDC9E1031F36DDAE</action>
<action>maincpu.mq@BFE0 = FFFFFFFFC97E1FCB</action>
<!--
BFD0 | 21 84 C0 : ld hl,$C084 // check jump button
BFD3 | CB 6E : bit 5,(hl)
BFD5 | 28 08 : jr z,$BFDF
BFD7 | CB AE : res 5,(hl)
BFD9 | DD 36 1F 03 : ld (ix+$1f),$03 // set jump flag
BFDD | E1 : pop hl
BFDE | C9 : ret
BFDF | DD CB 1F 7E : bit 7,(ix+$1f)
BFE3 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@299F = 7E1FCBDD </action>
<action>maincpu.md@299F = 7E1F437D </action>
<action>maincpu.od@2A23 = 5697CBDD </action>
<action>maincpu.md@2A23 = 7E1FE3DD </action>
<action>maincpu.mq@BFD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFE0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no slip">
<script state="on">
<action>maincpu.ob@263B = CD </action>
<action>maincpu.mw@263C = 96D0 </action>
<action>maincpu.mq@96D0 = 01280CE6C0843A47</action>
<action>maincpu.mq@96D8 = FFFFFFC91477DD78</action>
<!--
96D0 | 47 : ld b,a
96D1 | 3A 84 C0 : ld a,($C084)
96D4 | E6 0C : and $0C
96D6 | 28 01 : jr z,$96D9
96D8 | 78 : ld a,b
96D9 | DD 77 14 : ld (ix+$14),a
96DC | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.ob@263B = DD </action>
<action>maincpu.mw@263C = 145F </action>
<action>maincpu.mq@96D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="vitality speed">
<parameter>
<item value="0x0000">no decrease</item>
<item value="0x0001">01 (slow) </item>
<item value="0x0002">02 </item>
<item value="0x0008">03 </item>
<item value="0x0020">04 </item>
<item value="0x0100">05 (fast) </item>
</parameter>
<script state="change">
<action>maincpu.mw@4E56 = -param</action>
<action>maincpu.mw@4E5F = -param</action>
</script>
<script state="off">
<action>maincpu.mw@4E55 = FFFF</action>
<action>maincpu.mw@4E5F = FFF8</action>
</script>
</cheat>
<cheat desc="hidden panel finder">
<script state="on">
<action>maincpu.ob@4723 = 00</action>
</script>
<script state="off">
<action>maincpu.ob@4723 = D0</action>
</script>
</cheat>
<cheat desc="hidden fried potato finder">
<script state="on">
<action>maincpu.mw@3956 = 96E0 </action>
<action>maincpu.mq@96E0 = 3705FE0FE6187EDD</action>
<action>maincpu.mq@96E8 = FFFFFFFFC92068C4</action>
<!--
96E0 | DD 7E 18 : ld a,(ix+$18)
96E3 | E6 0F : and $0F
96E5 | FE 05 : cp $05
96E7 | 37 : scf
96E8 | C4 68 20 : call nz,$2068
96EB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@3956 = 2068 </action>
<action>maincpu.mq@96E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96E8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no fruit disappearance">
<script state="on">
<action>maincpu.ob@3920 = 18</action> <!-- fruit -->
<action>maincpu.mb@39C1 = C3</action> <!-- fried potato -->
<action>maincpu.ob@4751 = 18</action> <!-- panel -->
</script>
<script state="off">
<action>maincpu.ob@3920 = 20</action>
<action>maincpu.mb@39C1 = 22</action>
<action>maincpu.ob@4751 = 20</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@015E = 8000 </action>
<action>maincpu.mq@8000 = 10E62F08DBC10021</action>
<action>maincpu.mq@8008 = 2847B8B12F00DB4F</action>
<action>maincpu.mq@8010 = 40FE35012080FEF2</action>
<action>maincpu.mq@8018 = 3E042090FE340120</action>
<action>maincpu.mq@8020 = 3E052050FE0618F0</action>
<action>maincpu.mq@8028 = 032002FE78778610</action>
<action>maincpu.mq@8030 = AF032004FE05187E</action>
<action>maincpu.mq@8038 = 00000000C71818D3</action>
<!--
8000 | 21 00 C1 : ld hl,$C100 // sound code address
8003 | DB 08 : in a,($08) // read start button
8005 | 2F : cpl
8006 | E6 10 : and $10
8008 | 4F : ld c,a
8009 | DB 00 : in a,($00) // read other inputs
800B | 2F : cpl
800C | B1 : or c
800D | B8 : cp b
800E | 47 : ld b,a
800F | 28 F2 : jr z,$8003
8011 | FE 80 : cp $80
8013 | 20 01 : jr nz,$8016
8015 | 35 : dec (hl) // decrease code -01
8016 | FE 40 : cp $40
8018 | 20 01 : jr nz,$801B
801A | 34 : inc (hl) // increase code +01
801B | FE 90 : cp $90
801D | 20 04 : jr nz,$8023
801F | 3E F0 : ld a,$F0 // decrease code -10
8021 | 18 06 : jr $8029
8023 | FE 50 : cp $50
8025 | 20 05 : jr nz,$802C
8027 | 3E 10 : ld a,$10 // increase code +10
8029 | 86 : add a,(hl)
802A | 77 : ld (hl),a
802B | 78 : ld a,b
802C | FE 02 : cp $02
802E | 20 03 : jr nz,$8033
8030 | 7E : ld a,(hl) // play sound
8031 | 18 05 : jr $8038
8033 | FE 04 : cp $04
8035 | 20 03 : jr nz,$803A
8037 | AF : xor a // stop sound
8038 | D3 18 : out ($18),a // send sound code
803A | 18 C7 : jr $8003
-->
</script>
<script state="run">
<output format="----- wonder boy 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="start + left : decrease code -10" line="13" align="center" />
<output format="start + right : 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@015E = 0755 </action>
<action>maincpu.mq@8000 = 7F1A203230222032</action>
<action>maincpu.mq@8008 = B4A6C47F7F7F7F7F</action>
<action>maincpu.mq@8010 = 21333123210401B6</action>
<action>maincpu.mq@8018 = 2133312321333123</action>
<action>maincpu.mq@8020 = C57F7F7F7F7F7F1B</action>
<action>maincpu.mq@8028 = 3426240401B7B5A7</action>
<action>maincpu.mq@8030 = 0926243634262436</action>
<action>maincpu.mq@8038 = 7F7F7F7F7F1E240B</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mb@015B = 27</action>
</script>
<script state="off">
<action>maincpu.mb@015B = 09</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Wonder Boy (315-5162, 4-D Warriors Conversion) -->
<mamecheat version="1">
<cheat desc="no hit">
<comment>you hit an enemy on the skateboard</comment>
<script state="on">
<action>maincpu.ob@2E72 = 18</action> <!-- boss (body) -->
<action>maincpu.ob@3027 = 18</action> <!-- boss (head) -->
<action>maincpu.ob@31B6 = 18</action> <!-- boss (fireball) -->
<action>maincpu.ob@36F1 = C9</action> <!-- stone -->
<action>maincpu.ob@37C8 = C9</action> <!-- bonfire -->
<action>maincpu.ob@383B = C9</action> <!-- snail -->
<action>maincpu.ob@3899 = C9</action> <!-- skull -->
<action>maincpu.ob@3B52 = C9</action> <!-- cobra -->
<action>maincpu.ob@3CB2 = C9</action> <!-- rock -->
<action>maincpu.ob@3D0A = C9</action> <!-- blue people -->
<action>maincpu.ob@4248 = C9</action> <!-- frog -->
<action>maincpu.ob@42AF = C9</action> <!-- bee -->
<action>maincpu.ob@4357 = C9</action> <!-- bat -->
<action>maincpu.ob@4513 = C9</action> <!-- spider -->
<action>maincpu.ob@47C2 = C9</action> <!-- coyote -->
<action>maincpu.ob@4ADD = C9</action> <!-- swordfish -->
<action>maincpu.ob@4B98 = C9</action> <!-- octopus -->
<action>maincpu.ob@4CDC = C9</action> <!-- icicle -->
</script>
<script state="off">
<action>maincpu.ob@2E72 = 30</action>
<action>maincpu.ob@3027 = 30</action>
<action>maincpu.ob@31B6 = 30</action>
<action>maincpu.ob@36F1 = 21</action>
<action>maincpu.ob@37C8 = 21</action>
<action>maincpu.ob@383B = 21</action>
<action>maincpu.ob@3899 = 21</action>
<action>maincpu.ob@3B52 = 21</action>
<action>maincpu.ob@3CB2 = 21</action>
<action>maincpu.ob@3D0A = 21</action>
<action>maincpu.ob@4248 = 21</action>
<action>maincpu.ob@42AF = 21</action>
<action>maincpu.ob@4357 = 21</action>
<action>maincpu.ob@4513 = 21</action>
<action>maincpu.ob@47C2 = 21</action>
<action>maincpu.ob@4ADD = 21</action>
<action>maincpu.ob@4B98 = 21</action>
<action>maincpu.ob@4CDC = 21</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@2B60 = 86</action>
<action>maincpu.ob@2B63 = 4F</action>
</script>
<script state="off">
<action>maincpu.mb@2B60 = 84</action>
<action>maincpu.ob@2B63 = 67</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.od@29A1 = 00FFFFCD </action> <!-- jump -->
<action>maincpu.md@29A1 = FFBFE0FF </action>
<action>maincpu.od@2A25 = 00FFFFCD </action> <!-- fall down -->
<action>maincpu.md@2A25 = FFBFE0FF </action>
<action>maincpu.mq@BFE0 = CB08286ECBC08421</action>
<action>maincpu.mq@BFE8 = DDC9E1031F36DDAE</action>
<action>maincpu.mq@BFF0 = FFFFFFFFC97E1FCB</action>
<!--
BFE0 | 21 84 C0 : ld hl,$C084 // check jump button
BFE3 | CB 6E : bit 5,(hl)
BFE5 | 28 08 : jr z,$BFEF
BFE7 | CB AE : res 5,(hl)
BFE9 | DD 36 1F 03 : ld (ix+$1f),$03 // set jump flag
BFED | E1 : pop hl
BFEE | C9 : ret
BFEF | DD CB 1F 7E : bit 7,(ix+$1f)
BFF3 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@29A1 = 2E4BCBDD </action>
<action>maincpu.md@29A1 = 7E1F9B89 </action>
<action>maincpu.od@2A25 = 2E4BCBDD </action>
<action>maincpu.md@2A25 = 7E1F9B89 </action>
<action>maincpu.mq@BFE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BFF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no slip">
<script state="on">
<action>maincpu.ob@263D = CD </action>
<action>maincpu.mw@263E = 96D0 </action>
<action>maincpu.mq@96D0 = 01280CE6C0843A47</action>
<action>maincpu.mq@96D8 = FFFFFFC91477DD78</action>
<!--
96D0 | 47 : ld b,a
96D1 | 3A 84 C0 : ld a,($C084)
96D4 | E6 0C : and $0C
96D6 | 28 01 : jr z,$96D9
96D8 | 78 : ld a,b
96D9 | DD 77 14 : ld (ix+$14),a
96DC | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.ob@263D = DD </action>
<action>maincpu.mw@263E = 1427 </action>
<action>maincpu.mq@96D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="vitality speed">
<parameter>
<item value="0x0000">no decrease</item>
<item value="0x0001">01 (slow) </item>
<item value="0x0002">02 </item>
<item value="0x0008">03 </item>
<item value="0x0020">04 </item>
<item value="0x0100">05 (fast) </item>
</parameter>
<script state="change">
<action>maincpu.mw@4E58 = -param</action>
<action>maincpu.mw@4E61 = -param</action>
</script>
<script state="off">
<action>maincpu.mw@4E58 = FFFF</action>
<action>maincpu.mw@4E61 = FFF8</action>
</script>
</cheat>
<cheat desc="hidden panel finder">
<script state="on">
<action>maincpu.ob@4725 = 00</action>
</script>
<script state="off">
<action>maincpu.ob@4725 = D0</action>
</script>
</cheat>
<cheat desc="hidden fried potato finder">
<script state="on">
<action>maincpu.mw@3958 = 96E0 </action>
<action>maincpu.mq@96E0 = 3705FE0FE6187EDD</action>
<action>maincpu.mq@96E8 = FFFFFFFFC9206AC4</action>
<!--
96E0 | DD 7E 18 : ld a,(ix+$18)
96E3 | E6 0F : and $0F
96E5 | FE 05 : cp $05
96E7 | 37 : scf
96E8 | C4 6A 20 : call nz,$206A
96EB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@3958 = 206A </action>
<action>maincpu.mq@96E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@96E8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="no fruit disappearance">
<script state="on">
<action>maincpu.ob@3922 = 18</action> <!-- fruit -->
<action>maincpu.mb@39C3 = C5</action> <!-- fried potato -->
<action>maincpu.ob@4753 = 18</action> <!-- panel -->
</script>
<script state="off">
<action>maincpu.ob@3922 = 20</action>
<action>maincpu.mb@39C3 = 24</action>
<action>maincpu.ob@4753 = 20</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@015E = 8000 </action>
<action>maincpu.mq@8000 = 10E62F08DBC10021</action>
<action>maincpu.mq@8008 = 2847B8B12F00DB4F</action>
<action>maincpu.mq@8010 = 40FE35012080FEF2</action>
<action>maincpu.mq@8018 = 3E042090FE340120</action>
<action>maincpu.mq@8020 = 3E052050FE0618F0</action>
<action>maincpu.mq@8028 = 032002FE78778610</action>
<action>maincpu.mq@8030 = AF032004FE05187E</action>
<action>maincpu.mq@8038 = 00000000C71818D3</action>
<!--
8000 | 21 00 C1 : ld hl,$C100 // sound code address
8003 | DB 08 : in a,($08) // read start button
8005 | 2F : cpl
8006 | E6 10 : and $10
8008 | 4F : ld c,a
8009 | DB 00 : in a,($00) // read other inputs
800B | 2F : cpl
800C | B1 : or c
800D | B8 : cp b
800E | 47 : ld b,a
800F | 28 F2 : jr z,$8003
8011 | FE 80 : cp $80
8013 | 20 01 : jr nz,$8016
8015 | 35 : dec (hl) // decrease code -01
8016 | FE 40 : cp $40
8018 | 20 01 : jr nz,$801B
801A | 34 : inc (hl) // increase code +01
801B | FE 90 : cp $90
801D | 20 04 : jr nz,$8023
801F | 3E F0 : ld a,$F0 // decrease code -10
8021 | 18 06 : jr $8029
8023 | FE 50 : cp $50
8025 | 20 05 : jr nz,$802C
8027 | 3E 10 : ld a,$10 // increase code +10
8029 | 86 : add a,(hl)
802A | 77 : ld (hl),a
802B | 78 : ld a,b
802C | FE 02 : cp $02
802E | 20 03 : jr nz,$8033
8030 | 7E : ld a,(hl) // play sound
8031 | 18 05 : jr $8038
8033 | FE 04 : cp $04
8035 | 20 03 : jr nz,$803A
8037 | AF : xor a // stop sound
8038 | D3 18 : out ($18),a // send sound code
803A | 18 C7 : jr $8003
-->
</script>
<script state="run">
<output format="----- wonder boy 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="start + left : decrease code -10" line="13" align="center" />
<output format="start + right : 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@015E = 0755 </action>
<action>maincpu.mq@8000 = 2032302220323022</action>
<action>maincpu.mq@8008 = C47F7F7F7F7F7F1A</action>
<action>maincpu.mq@8010 = 3123210401B6B4A6</action>
<action>maincpu.mq@8018 = 3123213331232133</action>
<action>maincpu.mq@8020 = 7F7F7F7F7F1B2133</action>
<action>maincpu.mq@8028 = 240401B7B5A7C57F</action>
<action>maincpu.mq@8030 = 2436342624363426</action>
<action>maincpu.mq@8038 = 7F7F7F1E240B0926</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mb@015B = 27</action>
</script>
<script state="off">
<action>maincpu.mb@015B = 09</action>
</script>
</cheat>
</mamecheat>