Code: Select all
<!-- Boggy '84 -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@19b8 = fc18</action> <!-- level 1 monkey -->
<action>maincpu.mw@1d00 = 0418</action> <!-- level 1 enemy -->
<action>maincpu.mw@2c5b = fc18</action> <!-- level 2 monkey -->
<action>maincpu.mw@2e7d = 0418</action> <!-- level 2 enemy -->
<action>maincpu.mw@3f07 = fc18</action> <!-- level 3 monkey -->
<action>maincpu.mw@435a = 0418</action> <!-- level 3 enemy -->
<action>maincpu.mw@45fb = 0818</action> <!-- level 3 apple -->
<action>maincpu.mw@66bf = fc18</action> <!-- level 4 monkey -->
<action>maincpu.mw@6913 = 0418</action> <!-- level 4 enemy -->
</script>
<script state="off">
<action>maincpu.mw@19b8 = 013e</action>
<action>maincpu.mw@1d00 = 0638</action>
<action>maincpu.mw@2c5b = 013e</action>
<action>maincpu.mw@2e7d = 0638</action>
<action>maincpu.mw@3f07 = 013e</action>
<action>maincpu.mw@435a = 0638</action>
<action>maincpu.mw@45fb = 0338</action>
<action>maincpu.mw@66bf = 013e</action>
<action>maincpu.mw@6913 = 0638</action>
</script>
</cheat>
<cheat desc="player speed (test)">
<parameter>
<item value="0x1f">01 (slow)</item>
<item value="0x0f">02 </item>
<item value="0x07">03 </item>
<item value="0x03">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@146b = fe30c0cd</action> <!-- level 1 -->
<action>maincpu.md@2a71 = fe30c0cd</action> <!-- level 2 -->
<action>maincpu.md@3613 = fe30c0cd</action> <!-- level 3 -->
<action>maincpu.md@62d8 = fe30c0cd</action> <!-- level 4 -->
<action>maincpu.mq@30c0 = 3e00e67e34c70021</action>
<action>maincpu.mq@30c8 = 00000000c9afc801</action>
<!--
30c0 | 21 00 c7 : ld hl,$C700
30c3 | 34 : inc (hl)
30c4 | 7e : ld a,(hl)
30c5 | e6 xx : and $xx
30c7 | 3e 01 : ld a,$01
30c9 | c8 : ret z
30ca | af : xor a
30cb | c9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@30c6 = param</action>
</script>
<script state="off">
<action>maincpu.md@146b = fec3423a</action>
<action>maincpu.md@2a71 = fec3423a</action>
<action>maincpu.md@3613 = fec3423a</action>
<action>maincpu.md@62d8 = fec3423a</action>
<action>maincpu.mq@30c0 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30c8 = ff00ff00ff00ff00</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- sometimes incorrect playing main theme (0x20) -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<!-- disable score display -->
<action>maincpu.mb@0095 = 00</action>
<action>maincpu.mb@009d = 00</action>
<action>maincpu.mb@00a5 = 00</action>
<!-- main routine -->
<action>maincpu.md@04df = 323070c3</action>
<action>maincpu.mq@3070 = 44e6e8023ac00021</action>
<action>maincpu.mq@3078 = b133e6e8033a4f07</action>
<action>maincpu.mq@3080 = 022001feef2847b8</action>
<action>maincpu.mq@3088 = 3434022002fe3535</action>
<action>maincpu.mq@3090 = 0618f03e042020fe</action>
<action>maincpu.mq@3098 = 7786103e052010fe</action>
<action>maincpu.mq@30a0 = 6b327e052080fe78</action>
<action>maincpu.mq@30a8 = cdd90f2008fe78c3</action>
<action>maincpu.mq@30b0 = 32c50232afd95440</action>
<action>maincpu.mq@30b8 = 00b418c50732c505</action>
<!--
3070 | 21 00 c0 : ld hl,$C000 // sound code address
3073 | 3a 02 e8 : ld a,($E802) // read buttons
3076 | e6 44 : and $44
3078 | 07 : rlca
3079 | 4f : ld c,a
307a | 3a 03 e8 : ld a,($E803) // read joystick
307d | e6 33 : and $33
307f | b1 : or c
3080 | b8 : cp b
3081 | 47 : ld b,a
3082 | 28 ef : jr z,$3073
3084 | fe 01 : cp $01
3086 | 20 02 : jr nz,$308A
3088 | 35 : dec (hl) // decrease code -02
3089 | 35 : dec (hl)
308a | fe 02 : cp $02
308c | 20 02 : jr nz,$3090
308e | 34 : inc (hl) // increase code +02
308f | 34 : inc (hl)
3090 | fe 20 : cp $20
3092 | 20 04 : jr nz,$3098
3094 | 3e f0 : ld a,$F0 // decrease code -10
3096 | 18 06 : jr $309E
3098 | fe 10 : cp $10
309a | 20 05 : jr nz,$30A1
309c | 3e 10 : ld a,$10 // increase code +10
309e | 86 : add a,(hl)
309f | 77 : ld (hl),a
30a0 | 78 : ld a,b
30a1 | fe 80 : cp $80
30a3 | 20 05 : jr nz,$30AA
30a5 | 7e : ld a,(hl) // play sound
30a6 | 32 6b c3 : ld ($C36B),a
30a9 | 78 : ld a,b
30aa | fe 08 : cp $08
30ac | 20 0f : jr nz,$30BD
30ae | d9 : exx // stop sound
30af | cd 40 54 : call $5440
30b2 | d9 : exx
30b3 | af : xor a // initialize sound flags
30b4 | 32 02 c5 : ld ($C502),a
30b7 | 32 05 c5 : ld ($C505),a
30ba | 32 07 c5 : ld ($C507),a
30bd | 18 b4 : jr $3073
-->
<!-- hack sound code 0x20 prevented from no loop -->
<action>maincpu.mb@5615 = 47</action>
<action>maincpu.mb@561d = 47</action>
</script>
<script state="run">
<output format="----- boggy'84 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@c000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0095 = f7</action>
<action>maincpu.mb@009d = f7</action>
<action>maincpu.mb@00a5 = f7</action>
<action>maincpu.md@04df = 32c00b32</action>
<action>maincpu.mq@3070 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3078 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3080 = ff00ff00ff00ff00</action>
<action>maincpu.mq@3088 = ff00ff00ff00ff00</action>
<action>maincpu.mq@3090 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3098 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@30a0 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30a8 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30b0 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@30b8 = 00ff00ff00ff00ff</action>
<action>maincpu.mb@5615 = 43</action>
<action>maincpu.mb@561d = 43</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Boggy '84 (bootleg, set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@19b8 = fc18</action> <!-- level 1 monkey -->
<action>maincpu.mw@1d00 = 0418</action> <!-- level 1 enemy -->
<action>maincpu.mw@2c5b = fc18</action> <!-- level 2 monkey -->
<action>maincpu.mw@2e7d = 0418</action> <!-- level 2 enemy -->
<action>maincpu.mw@3f07 = fc18</action> <!-- level 3 monkey -->
<action>maincpu.mw@435a = 0418</action> <!-- level 3 enemy -->
<action>maincpu.mw@45fb = 0818</action> <!-- level 3 apple -->
<action>maincpu.mw@66bf = fc18</action> <!-- level 4 monkey -->
<action>maincpu.mw@6913 = 0418</action> <!-- level 4 enemy -->
</script>
<script state="off">
<action>maincpu.mw@19b8 = 013e</action>
<action>maincpu.mw@1d00 = 0638</action>
<action>maincpu.mw@2c5b = 013e</action>
<action>maincpu.mw@2e7d = 0638</action>
<action>maincpu.mw@3f07 = 013e</action>
<action>maincpu.mw@435a = 0638</action>
<action>maincpu.mw@45fb = 0338</action>
<action>maincpu.mw@66bf = 013e</action>
<action>maincpu.mw@6913 = 0638</action>
</script>
</cheat>
<cheat desc="player speed (test)">
<parameter>
<item value="0x1f">01 (slow)</item>
<item value="0x0f">02 </item>
<item value="0x07">03 </item>
<item value="0x03">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@146b = fe30c0cd</action> <!-- level 1 -->
<action>maincpu.md@2a71 = fe30c0cd</action> <!-- level 2 -->
<action>maincpu.md@3613 = fe30c0cd</action> <!-- level 3 -->
<action>maincpu.md@62d8 = fe30c0cd</action> <!-- level 4 -->
<action>maincpu.mq@30c0 = 3e00e67e34c70021</action>
<action>maincpu.mq@30c8 = 00000000c9afc801</action>
<!--
30c0 | 21 00 c7 : ld hl,$C700
30c3 | 34 : inc (hl)
30c4 | 7e : ld a,(hl)
30c5 | e6 xx : and $xx
30c7 | 3e 01 : ld a,$01
30c9 | c8 : ret z
30ca | af : xor a
30cb | c9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@30c6 = param</action>
</script>
<script state="off">
<action>maincpu.md@146b = fec3423a</action>
<action>maincpu.md@2a71 = fec3423a</action>
<action>maincpu.md@3613 = fec3423a</action>
<action>maincpu.md@62d8 = fec3423a</action>
<action>maincpu.mq@30c0 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30c8 = ff00ff00ff00ff00</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- sometimes incorrect playing main theme (0x20) -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<!-- disable score display -->
<action>maincpu.mb@0095 = 00</action>
<action>maincpu.mb@009d = 00</action>
<action>maincpu.mb@00a5 = 00</action>
<!-- main routine -->
<action>maincpu.md@04df = 323070c3</action>
<action>maincpu.mq@3070 = 44e6e8023ac00021</action>
<action>maincpu.mq@3078 = b133e6e8033a4f07</action>
<action>maincpu.mq@3080 = 022001feef2847b8</action>
<action>maincpu.mq@3088 = 3434022002fe3535</action>
<action>maincpu.mq@3090 = 0618f03e042020fe</action>
<action>maincpu.mq@3098 = 7786103e052010fe</action>
<action>maincpu.mq@30a0 = 6b327e052080fe78</action>
<action>maincpu.mq@30a8 = cdd90f2008fe78c3</action>
<action>maincpu.mq@30b0 = 32c50232afd95440</action>
<action>maincpu.mq@30b8 = 00b418c50732c505</action>
<!--
3070 | 21 00 c0 : ld hl,$C000 // sound code address
3073 | 3a 02 e8 : ld a,($E802) // read buttons
3076 | e6 44 : and $44
3078 | 07 : rlca
3079 | 4f : ld c,a
307a | 3a 03 e8 : ld a,($E803) // read joystick
307d | e6 33 : and $33
307f | b1 : or c
3080 | b8 : cp b
3081 | 47 : ld b,a
3082 | 28 ef : jr z,$3073
3084 | fe 01 : cp $01
3086 | 20 02 : jr nz,$308A
3088 | 35 : dec (hl) // decrease code -02
3089 | 35 : dec (hl)
308a | fe 02 : cp $02
308c | 20 02 : jr nz,$3090
308e | 34 : inc (hl) // increase code +02
308f | 34 : inc (hl)
3090 | fe 20 : cp $20
3092 | 20 04 : jr nz,$3098
3094 | 3e f0 : ld a,$F0 // decrease code -10
3096 | 18 06 : jr $309E
3098 | fe 10 : cp $10
309a | 20 05 : jr nz,$30A1
309c | 3e 10 : ld a,$10 // increase code +10
309e | 86 : add a,(hl)
309f | 77 : ld (hl),a
30a0 | 78 : ld a,b
30a1 | fe 80 : cp $80
30a3 | 20 05 : jr nz,$30AA
30a5 | 7e : ld a,(hl) // play sound
30a6 | 32 6b c3 : ld ($C36B),a
30a9 | 78 : ld a,b
30aa | fe 08 : cp $08
30ac | 20 0f : jr nz,$30BD
30ae | d9 : exx // stop sound
30af | cd 40 54 : call $5440
30b2 | d9 : exx
30b3 | af : xor a // initialize sound flags
30b4 | 32 02 c5 : ld ($C502),a
30b7 | 32 05 c5 : ld ($C505),a
30ba | 32 07 c5 : ld ($C507),a
30bd | 18 b4 : jr $3073
-->
<!-- hack sound code 0x20 prevented from no loop -->
<action>maincpu.mb@5615 = 47</action>
<action>maincpu.mb@561d = 47</action>
</script>
<script state="run">
<output format="----- boggy'84 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@c000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0095 = f7</action>
<action>maincpu.mb@009d = f7</action>
<action>maincpu.mb@00a5 = f7</action>
<action>maincpu.md@04df = 32c00b32</action>
<action>maincpu.mq@3070 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3078 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3080 = ff00ff00ff00ff00</action>
<action>maincpu.mq@3088 = ff00ff00ff00ff00</action>
<action>maincpu.mq@3090 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3098 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@30a0 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30a8 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30b0 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@30b8 = 00ff00ff00ff00ff</action>
<action>maincpu.mb@5615 = 43</action>
<action>maincpu.mb@561d = 43</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Boggy '84 (bootleg, set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@19b8 = fc18</action> <!-- level 1 monkey -->
<action>maincpu.mw@1d00 = 0418</action> <!-- level 1 enemy -->
<action>maincpu.mw@2c5b = fc18</action> <!-- level 2 monkey -->
<action>maincpu.mw@2e7d = 0418</action> <!-- level 2 enemy -->
<action>maincpu.mw@3f07 = fc18</action> <!-- level 3 monkey -->
<action>maincpu.mw@435a = 0418</action> <!-- level 3 enemy -->
<action>maincpu.mw@45fb = 0818</action> <!-- level 3 apple -->
<action>maincpu.mw@66bf = fc18</action> <!-- level 4 monkey -->
<action>maincpu.mw@6913 = 0418</action> <!-- level 4 enemy -->
</script>
<script state="off">
<action>maincpu.mw@19b8 = 013e</action>
<action>maincpu.mw@1d00 = 0638</action>
<action>maincpu.mw@2c5b = 013e</action>
<action>maincpu.mw@2e7d = 0638</action>
<action>maincpu.mw@3f07 = 013e</action>
<action>maincpu.mw@435a = 0638</action>
<action>maincpu.mw@45fb = 0338</action>
<action>maincpu.mw@66bf = 013e</action>
<action>maincpu.mw@6913 = 0638</action>
</script>
</cheat>
<cheat desc="player speed (test)">
<parameter>
<item value="0x1f">01 (slow)</item>
<item value="0x0f">02 </item>
<item value="0x07">03 </item>
<item value="0x03">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@146b = fe30c0cd</action> <!-- level 1 -->
<action>maincpu.md@2a71 = fe30c0cd</action> <!-- level 2 -->
<action>maincpu.md@3613 = fe30c0cd</action> <!-- level 3 -->
<action>maincpu.md@62d8 = fe30c0cd</action> <!-- level 4 -->
<action>maincpu.mq@30c0 = 3e00e67e34c70021</action>
<action>maincpu.mq@30c8 = 00000000c9afc801</action>
<!--
30c0 | 21 00 c7 : ld hl,$C700
30c3 | 34 : inc (hl)
30c4 | 7e : ld a,(hl)
30c5 | e6 xx : and $xx
30c7 | 3e 01 : ld a,$01
30c9 | c8 : ret z
30ca | af : xor a
30cb | c9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@30c6 = param</action>
</script>
<script state="off">
<action>maincpu.md@146b = fec3423a</action>
<action>maincpu.md@2a71 = fec3423a</action>
<action>maincpu.md@3613 = fec3423a</action>
<action>maincpu.md@62d8 = fec3423a</action>
<action>maincpu.mq@30c0 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30c8 = ff00ff00ff00ff00</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- sometimes incorrect playing main theme (0x20) -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<!-- disable score display -->
<action>maincpu.mb@0095 = 00</action>
<action>maincpu.mb@009d = 00</action>
<action>maincpu.mb@00a5 = 00</action>
<!-- main routine -->
<action>maincpu.md@04df = 323070c3</action>
<action>maincpu.mq@3070 = 44e6e8023ac00021</action>
<action>maincpu.mq@3078 = b133e6e8033a4f07</action>
<action>maincpu.mq@3080 = 022001feef2847b8</action>
<action>maincpu.mq@3088 = 3434022002fe3535</action>
<action>maincpu.mq@3090 = 0618f03e042020fe</action>
<action>maincpu.mq@3098 = 7786103e052010fe</action>
<action>maincpu.mq@30a0 = 6b327e052080fe78</action>
<action>maincpu.mq@30a8 = cdd90f2008fe78c3</action>
<action>maincpu.mq@30b0 = 32c50232afd95440</action>
<action>maincpu.mq@30b8 = 00b418c50732c505</action>
<!--
3070 | 21 00 c0 : ld hl,$C000 // sound code address
3073 | 3a 02 e8 : ld a,($E802) // read buttons
3076 | e6 44 : and $44
3078 | 07 : rlca
3079 | 4f : ld c,a
307a | 3a 03 e8 : ld a,($E803) // read joystick
307d | e6 33 : and $33
307f | b1 : or c
3080 | b8 : cp b
3081 | 47 : ld b,a
3082 | 28 ef : jr z,$3073
3084 | fe 01 : cp $01
3086 | 20 02 : jr nz,$308A
3088 | 35 : dec (hl) // decrease code -02
3089 | 35 : dec (hl)
308a | fe 02 : cp $02
308c | 20 02 : jr nz,$3090
308e | 34 : inc (hl) // increase code +02
308f | 34 : inc (hl)
3090 | fe 20 : cp $20
3092 | 20 04 : jr nz,$3098
3094 | 3e f0 : ld a,$F0 // decrease code -10
3096 | 18 06 : jr $309E
3098 | fe 10 : cp $10
309a | 20 05 : jr nz,$30A1
309c | 3e 10 : ld a,$10 // increase code +10
309e | 86 : add a,(hl)
309f | 77 : ld (hl),a
30a0 | 78 : ld a,b
30a1 | fe 80 : cp $80
30a3 | 20 05 : jr nz,$30AA
30a5 | 7e : ld a,(hl) // play sound
30a6 | 32 6b c3 : ld ($C36B),a
30a9 | 78 : ld a,b
30aa | fe 08 : cp $08
30ac | 20 0f : jr nz,$30BD
30ae | d9 : exx // stop sound
30af | cd 40 54 : call $5440
30b2 | d9 : exx
30b3 | af : xor a // initialize sound flags
30b4 | 32 02 c5 : ld ($C502),a
30b7 | 32 05 c5 : ld ($C505),a
30ba | 32 07 c5 : ld ($C507),a
30bd | 18 b4 : jr $3073
-->
<!-- hack sound code 0x20 prevented from no loop -->
<action>maincpu.mb@5615 = 47</action>
<action>maincpu.mb@561d = 47</action>
</script>
<script state="run">
<output format="----- boggy'84 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@c000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0095 = f7</action>
<action>maincpu.mb@009d = f7</action>
<action>maincpu.mb@00a5 = f7</action>
<action>maincpu.md@04df = 32c00b32</action>
<action>maincpu.mq@3070 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3078 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3080 = ff00ff00ff00ff00</action>
<action>maincpu.mq@3088 = ff00ff00ff00ff00</action>
<action>maincpu.mq@3090 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@3098 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@30a0 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30a8 = ff00ff00ff00ff00</action>
<action>maincpu.mq@30b0 = 00ff00ff00ff00ff</action>
<action>maincpu.mq@30b8 = 00ff00ff00ff00ff</action>
<action>maincpu.mb@5615 = 43</action>
<action>maincpu.mb@561d = 43</action>
</script>
</cheat>
</mamecheat>
- "player speed" : This code affects jump speed too.
- "sound test mode" : Sometimes incorrect playing main theme music (sound code : 0x20). In this case, try to play 0x26 then re-play 0x20 again.