Code: Select all
<!-- Hang-On Jr. (Rev. B) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2F10 = C9</action> <!-- enemy -->
<action>maincpu.mb@357E = C9</action> <!-- obstacle -->
<action>maincpu.mb@702A = C9</action> <!-- water -->
</script>
<script state="off">
<action>maincpu.mb@2F10 = D0</action>
<action>maincpu.mb@357E = D0</action>
<action>maincpu.mb@702A = D0</action>
</script>
</cheat>
<cheat desc="no offroad slowdown">
<script state="on">
<action>maincpu.mb@144F = 14</action>
<action>maincpu.mb@1452 = 18</action>
</script>
<script state="off">
<action>maincpu.mb@144F = 04</action>
<action>maincpu.mb@1452 = 38</action>
</script>
</cheat>
<cheat desc="no tire slip">
<script state="on">
<action>maincpu.mb@14B7 = 00</action>
<action>maincpu.mb@14C0 = 00</action>
<action>maincpu.mb@14C9 = 00</action>
<action>maincpu.mb@14D1 = 18</action>
</script>
<script state="off">
<action>maincpu.mb@14B7 = 1B</action>
<action>maincpu.mb@14C0 = 12</action>
<action>maincpu.mb@14C9 = 09</action>
<action>maincpu.mb@14D1 = 38</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xFF">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@1D03 = 277BD0CD </action>
<action>maincpu.mq@7BD0 = C901D67E2300362B</action>
<!--
7BD0 | 2B : dec hl
7BD1 | 36 xx : ld (hl),$xx
7BD3 | 23 : inc hl
7BD4 | 7E : ld a,(hl)
7BD5 | D6 01 : sub $01
7BD7 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7BD2 = param</action>
</script>
<script state="off">
<action>maincpu.md@1D03 = 0F01D67E </action>
<action>maincpu.mq@7BD0 = FFFFFFFFFFFFFFFF</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@786E = C800 </action> <!-- read sound code -->
<action>maincpu.mw@0959 = 7BD8 </action>
<action>maincpu.mq@7BD8 = 3A000EC80021F3CF</action>
<action>maincpu.mq@7BE0 = 200E022067CBC212</action>
<action>maincpu.mq@7BE8 = CB082880FEC2053A</action>
<action>maincpu.mq@7BF0 = 3A010E0220020E7F</action>
<action>maincpu.mq@7BF8 = 79100E0228A7C206</action>
<action>maincpu.mq@7C00 = 012001FED42847B8</action>
<action>maincpu.mq@7C08 = 10FE34012002FE35</action>
<action>maincpu.mq@7C10 = 78C17867CDC50620</action>
<action>maincpu.mq@7C18 = 185940CD032020FE</action>
<action>maincpu.mq@7C20 = FFFFFFFFFFFFFFB7</action>
<!--
7BD8 | CF : rst $08 // wait interrupt
7BD9 | F3 : di
7BDA | 21 00 C8 : ld hl,$C800 // sound code address
7BDD | 0E 00 : ld c,$00
7BDF | 3A 12 C2 : ld a,($C212) // read start button
7BE2 | CB 67 : bit 4,a
7BE4 | 20 02 : jr nz,$7BE8
7BE6 | 0E 20 : ld c,$20
7BE8 | 3A 05 C2 : ld a,($C205) // read accelerator
7BEB | FE 80 : cp $80
7BED | 28 08 : jr z,$7BF7
7BEF | CB 7F : bit 7,a
7BF1 | 0E 02 : ld c,$02
7BF3 | 20 02 : jr nz,$7BF7
7BF5 | 0E 01 : ld c,$01
7BF7 | 3A 06 C2 : ld a,($C206) // read steering wheel
7BFA | A7 : and a
7BFB | 28 02 : jr z,$7BFF
7BFD | 0E 10 : ld c,$10
7BFF | 79 : ld a,c
7C00 | B8 : cp b
7C01 | 47 : ld b,a
7C02 | 28 D4 : jr z,$7BD8
7C04 | FE 01 : cp $01
7C06 | 20 01 : jr nz,$7C09
7C08 | 35 : dec (hl) // decrease code -01
7C09 | FE 02 : cp $02
7C0B | 20 01 : jr nz,$7C0E
7C0D | 34 : inc (hl) // increase code +01
7C0E | FE 10 : cp $10
7C10 | 20 06 : jr nz,$7C18
7C12 | C5 : push bc // play sound
7C13 | CD 67 78 : call $7867
7C16 | C1 : pop bc
7C17 | 78 : ld a,b
7C18 | FE 20 : cp $20
7C1A | 20 03 : jr nz,$7C1F
7C1C | CD 40 59 : call $5940 // stop sound
7C1F | 18 B7 : jr $7BD8
-->
</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="accel : play sound" line="13" align="center" />
<output format="start : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %02X >>" line="17" align="center" >
<argument>maincpu.pb@C800</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@786E = C701 </action>
<action>maincpu.mw@0959 = 05AD </action>
<action>maincpu.mq@7BD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7C00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7C08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7C10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7C18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7C20 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>