Code: Select all
<!-- Rougien -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.md@2550 = 009990CD </action>
<action>maincpu.mq@9990 = 9521DD03FEC15A3A</action>
<action>maincpu.mq@9998 = FFC9C19F21DDC0C1</action>
<!--
9990 | 3A 5A C1 : ld a,($C15A) // check current scene
9993 | FE 03 : cp $03
9995 | DD 21 95 C1 : ld ix,$C195
9999 | C0 : ret nz
999A | DD 21 9F C1 : ld ix,$C19F
999E | C9 : ret
-->
<action>maincpu.mb@2C2B = 00</action> <!-- wall (scene 3) -->
<action>maincpu.mb@2C43 = 18</action> <!-- wall (scene 3) -->
</script>
<script state="off">
<action>maincpu.md@2550 = C19021DD </action>
<action>maincpu.mq@9990 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9998 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@2C2B = 04 </action>
<action>maincpu.mb@2C43 = 28 </action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@28F0 = 01</action>
<action>maincpu.mb@28FF = 03</action>
</script>
<script state="off">
<action>maincpu.mb@28F0 = 14</action>
<action>maincpu.mb@28FF = 72</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@2B28 = 2399AFCD </action> <!-- y position -->
<action>maincpu.md@2B2D = FD99B6CD </action> <!-- x position -->
<action>maincpu.mq@99A0 = F2003E0828A77A5F</action>
<action>maincpu.mq@99A8 = CDC97B5744ED99AC</action>
<action>maincpu.mq@99B0 = A0CDC90472FD99A0</action>
<action>maincpu.mq@99B8 = FFFFFFC90572FD99</action>
<!--
99A0 | 5F : ld e,a // speed calculation routine
99A1 | 7A : ld a,d
99A2 | A7 : and a
99A3 | 28 08 : jr z,$99AD
99A5 | 3E xx : ld a,$xx
99A7 | F2 AC 99 : jp p,$99AC
99AA | ED 44 : neg
99AC | 57 : ld d,a
99AD | 7B : ld a,e
99AE | C9 : ret
99AF | CD A0 99 : call $99A0 // y position
99B2 | FD 72 04 : ld (iy+$04),d
99B5 | C9 : ret
99B6 | CD A0 99 : call $99A0 // x position
99B9 | FD 72 05 : ld (iy+$05),d
99BC | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@99A6 = param</action>
</script>
<script state="off">
<action>maincpu.md@2B28 = 230472FD </action>
<action>maincpu.md@2B2D = FD0572FD </action>
<action>maincpu.mq@9AA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9AA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9AB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9AB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0x1A-0x1C) by sound stop button -->
<!-- code 0x1D causes the game freeze -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@176B = C9 </action> <!-- sample play routine stopper -->
<action>maincpu.mb@2D4D = C9 </action> <!-- sound stop routine stopper -->
<action>maincpu.mb@30EF = C9 </action> <!-- sample play routine stopper -->
<action>maincpu.mb@32F7 = C9 </action> <!-- sample play routine stopper -->
<action>maincpu.mb@8A87 = 00 </action> <!-- disable sound code check -->
<action>maincpu.mw@2D3A = 99C0 </action>
<action>maincpu.mq@99C0 = 47B8E8003AC00021</action>
<action>maincpu.mq@99C8 = FE35012004FEF928</action>
<action>maincpu.mq@99D0 = 042008FE34012002</action>
<action>maincpu.mq@99D8 = 052001FE0618F03E</action>
<action>maincpu.mq@99E0 = 2010FE787786103E</action>
<action>maincpu.mq@99E8 = DFCD05201AFE7E23</action>
<action>maincpu.mq@99F0 = CD05201BFE221830</action>
<action>maincpu.mq@99F8 = 05201CFE1918175A</action>
<action>maincpu.mq@9A00 = C7CDD9101832E7CD</action>
<action>maincpu.mq@9A08 = 052020FE0918D914</action>
<action>maincpu.mq@9A10 = FFAC18D92D3FCDD9</action>
<!--
99C0 | 21 00 C0 : ld hl,$C000 // sound code address
99C3 | 3A 00 E8 : ld a,($E800) // read input
99C6 | B8 : cp b
99C7 | 47 : ld b,a
99C8 | 28 F9 : jr z,$99C3
99CA | FE 04 : cp $04
99CC | 20 01 : jr nz,$99CF
99CE | 35 : dec (hl) // decrease code -01
99CF | FE 02 : cp $02
99D1 | 20 01 : jr nz,$99D4
99D3 | 34 : inc (hl) // increase code +01
99D4 | FE 08 : cp $08
99D6 | 20 04 : jr nz,$99DC
99D8 | 3E F0 : ld a,$F0 // decrease code -10
99DA | 18 06 : jr $99E2
99DC | FE 01 : cp $01
99DE | 20 05 : jr nz,$99E5
99E0 | 3E 10 : ld a,$10 // increase code +10
99E2 | 86 : add a,(hl)
99E3 | 77 : ld (hl),a
99E4 | 78 : ld a,b
99E5 | FE 10 : cp $10
99E7 | 20 23 : jr nz,$9A0C
99E9 | 7E : ld a,(hl) // play sound
99EA | FE 1A : cp $1A
99EC | 20 05 : jr nz,$99F3
99EE | CD DF 30 : call $30DF // voice "rougien"
99F1 | 18 22 : jr $9A15
99F3 | FE 1B : cp $1B
99F5 | 20 05 : jr nz,$99FC
99F7 | CD 5A 17 : call $175A // voice cry
99FA | 18 19 : jr $9A15
99FC | FE 1C : cp $1C
99FE | 20 05 : jr nz,$9A05
9A00 | CD E7 32 : call $32E7 // voice laugh
9A03 | 18 10 : jr $9A15
9A05 | D9 : exx
9A06 | CD C7 14 : call $14C7 // other sounds
9A09 | D9 : exx
9A0A | 18 09 : jr $9A15
9A0C | FE 20 : cp $20
9A0E | 20 05 : jr nz,$9A15
9A10 | D9 : exx // stop sound
9A11 | CD 3F 2D : call $2D3F
9A14 | D9 : exx
9A15 | 18 AC : jr $99C3
-->
</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="start : 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.mb@176B = 32 </action>
<action>maincpu.mb@2D4D = 21 </action>
<action>maincpu.mb@30EF = 3E </action>
<action>maincpu.mb@32F7 = 3E </action>
<action>maincpu.mb@8A87 = C8 </action>
<action>maincpu.mw@2D3A = 960A </action>
<action>maincpu.mq@99C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99D8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99E8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@99F8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9A00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9A08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@9A10 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>