As I have said over and over again, this game has in-game ROM check. So the game will freeze/reset in long play.
This is due to cheat, not emulator bug.
Set initially "skip rom check" and don't turn off.
elevator.xml
Code: Select all
<!-- Elevator Action (BA3, 4 PCB version, 1.1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@08C0 = C9 </action> <!-- bullet -->
<action>maincpu.mw@368E = E000 </action> <!-- pressed by elevator -->
<action>maincpu.mw@4A37 = E008 </action> <!-- pressed by elevator -->
<action>maincpu.md@496B = FEE010CD</action> <!-- fall down in walking to left -->
<action>maincpu.md@4999 = FEE010CD</action> <!-- fall down in walking to right -->
<action>maincpu.mb@4A3F = C9 </action> <!-- fall down in jumping-->
<!-- character check routine -->
<action>maincpu.mq@E000 = 37E9C3C81AFE7DDD</action>
<action>maincpu.mq@E008 = 4A78C3C81AFE7DDD</action>
<action>maincpu.mq@E010 = DDC8073E1AFE7DDD</action>
<action>maincpu.mq@E018 = 0000000000C9097E</action>
<!--
E000 | DD 7D : ld a,ixl // pressed by elevator
E002 | FE 1A : cp $1A
E004 | C8 : ret z
E005 | C3 E9 37 : jp $37E9
E008 | DD 7D : ld a,ixl // pressed by elevator
E00A | FE 1A : cp $1A
E00C | C8 : ret z
E00D | C3 78 4A : jp $4A78
E010 | DD 7D : ld a,ixl // fall down in walking
E012 | FE 1A : cp $1A
E014 | 3E 07 : ld a,$07
E016 | C8 : ret z
E017 | DD 7E 09 : ld a,(ix+$09)
E01A | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mb@08C0 = C0 </action>
<action>maincpu.mw@368E = 37E9 </action>
<action>maincpu.mw@4A37 = 4A78 </action>
<action>maincpu.mb@4A3F = C8 </action>
<action>maincpu.mq@E000 = 0000000000000000</action>
<action>maincpu.mq@E008 = 0000000000000000</action>
<action>maincpu.mq@E010 = 0000000000000000</action>
<action>maincpu.mq@E018 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3104 = 78E020CD </action>
<action>maincpu.mq@E020 = 2732EFCB022868CB</action>
<action>maincpu.mq@E028 = 000000000000C985</action>
<!--
E020 | CB 68 : bit 5,b
E022 | 28 02 : jr z,$E026
E024 | CB EF : set 5,a
E026 | 32 27 85 : ld ($8527),a
E029 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3104 = 78852732 </action>
<action>maincpu.mq@E020 = 0000000000000000</action>
<action>maincpu.mq@E028 = 0000000000000000</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@4450 = 00E030CD </action> <!-- left -->
<action>maincpu.md@445F = 00E03ECD </action> <!-- right -->
<action>maincpu.mq@E030 = 0220FE3E1AFE7DDD</action>
<action>maincpu.mq@E038 = 7DDDC90577DDF83E</action>
<action>maincpu.mq@E040 = 043E0220023E1AFE</action>
<action>maincpu.mq@E048 = 00000000C90577DD</action>
<!--
E030 | DD 7D : ld a,ixl // left
E032 | FE 1A : cp $1A
E034 | 3E FE : ld a,$FE
E036 | 20 02 : jr nz,$E03A
E038 | 3E F8 : ld a,$F8
E03A | DD 77 05 : ld (ix+$05),a
E03D | C9 : ret
E03E | DD 7D : ld a,ixl // right
E040 | FE 1A : cp $1A
E042 | 3E 02 : ld a,$02
E044 | 20 02 : jr nz,$E048
E046 | 3E 08 : ld a,$08
E048 | DD 77 05 : ld (ix+$05),a
E04B | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@E039 = -param</action>
<action>maincpu.mb@E047 = param</action>
</script>
<script state="off">
<action>maincpu.md@4450 = FE0536DD </action>
<action>maincpu.md@445F = 020536DD </action>
<action>maincpu.mq@E030 = 0000000000000000</action>
<action>maincpu.mq@E038 = 0000000000000000</action>
<action>maincpu.mq@E040 = 0000000000000000</action>
<action>maincpu.mq@E048 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x04">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0c">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="change">
<!-- stand -->
<action>maincpu.mb@50DA = -param</action> <!-- left -->
<action>maincpu.mb@50DE = param</action> <!-- right -->
<!-- crouch -->
<action>maincpu.mb@50EA = -param</action> <!-- left -->
<action>maincpu.mb@50EE = param</action> <!-- right -->
<!-- jump -->
<action>maincpu.mb@5102 = -param</action> <!-- left -->
<action>maincpu.mb@5106 = param</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@50DA = F8</action>
<action>maincpu.mb@50DE = 08</action>
<action>maincpu.mb@50EA = F8</action>
<action>maincpu.mb@50EE = 08</action>
<action>maincpu.mb@5102 = F8</action>
<action>maincpu.mb@5106 = 08</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- sometimes music (0x81 and 0x83) stops incorrectly by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@71B4 = E050 </action>
<action>maincpu.mq@E050 = 47B8D4083A810021</action>
<action>maincpu.mq@E058 = FE350120FEFEF928</action>
<action>maincpu.mq@E060 = 0420FBFE340120FD</action>
<action>maincpu.mq@E068 = 0520F7FE0618F03E</action>
<action>maincpu.mq@E070 = 20EFFE787786103E</action>
<action>maincpu.mq@E078 = 83FE062881FE7E1B</action>
<action>maincpu.mq@E080 = 7EE0A2CD19180228</action>
<action>maincpu.mq@E088 = 870032013E876332</action>
<action>maincpu.mq@E090 = 0820DFFE78876032</action>
<action>maincpu.mq@E098 = D50B32C03EE0A2CD</action>
<action>maincpu.mq@E0A0 = 6032870032AFB118</action>
<action>maincpu.mq@E0A8 = C987633287613287</action>
<!--
E050 | 21 00 81 : ld hl,$8100 // sound code address
E053 | 3A 08 D4 : ld a,($D408) // read input
E056 | B8 : cp b
E057 | 47 : ld b,a
E058 | 28 F9 : jr z,$E053
E05A | FE FE : cp $FE
E05C | 20 01 : jr nz,$E05F
E05E | 35 : dec (hl) // decrease code -01
E05F | FE FD : cp $FD
E061 | 20 01 : jr nz,$E064
E063 | 34 : inc (hl) // increase code +01
E064 | FE FB : cp $FB
E066 | 20 04 : jr nz,$E06C
E068 | 3E F0 : ld a,$F0 // decrease code -10
E06A | 18 06 : jr $E072
E06C | FE F7 : cp $F7
E06E | 20 05 : jr nz,$E075
E070 | 3E 10 : ld a,$10 // increase code +10
E072 | 86 : add a,(hl)
E073 | 77 : ld (hl),a
E074 | 78 : ld a,b
E075 | FE EF : cp $EF
E077 | 20 1B : jr nz,$E094
E079 | 7E : ld a,(hl) // play sound
E07A | FE 81 : cp $81
E07C | 28 06 : jr z,$E084
E07E | FE 83 : cp $83
E080 | 28 02 : jr z,$E084
E082 | 18 19 : jr $E09D
E084 | CD A2 E0 : call $E0A2
E087 | 7E : ld a,(hl)
E088 | 32 63 87 : ld ($8763),a
E08B | 3E 01 : ld a,$01
E08D | 32 00 87 : ld ($8700),a
E090 | 32 60 87 : ld ($8760),a
E093 | 78 : ld a,b
E094 | FE DF : cp $DF
E096 | 20 08 : jr nz,$E0A0
E098 | CD A2 E0 : call $E0A2 // stop sound
E09B | 3E C0 : ld a,$C0
E09D | 32 0B D5 : ld ($D50B),a
E0A0 | 18 B1 : jr $E053
E0A2 | AF : xor a // music stop routine
E0A3 | 32 00 87 : ld ($8700),a
E0A6 | 32 60 87 : ld ($8760),a
E0A9 | 32 61 87 : ld ($8761),a
E0AC | 32 63 87 : ld ($8763),a
E0AF | C9 : ret
-->
</script>
<script state="run">
<output format="----- elevator action 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@8100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@71B4 = 5839 </action>
<action>maincpu.mq@E050 = 0000000000000000</action>
<action>maincpu.mq@E058 = 0000000000000000</action>
<action>maincpu.mq@E060 = 0000000000000000</action>
<action>maincpu.mq@E068 = 0000000000000000</action>
<action>maincpu.mq@E070 = 0000000000000000</action>
<action>maincpu.mq@E078 = 0000000000000000</action>
<action>maincpu.mq@E080 = 0000000000000000</action>
<action>maincpu.mq@E088 = 0000000000000000</action>
<action>maincpu.mq@E090 = 0000000000000000</action>
<action>maincpu.mq@E098 = 0000000000000000</action>
<action>maincpu.mq@E0A0 = 0000000000000000</action>
<action>maincpu.mq@E0A8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@33CA = 49D5</action> <!-- boot -->
<action>maincpu.mb@0764 = C3 </action> <!-- ingame -->
<action>maincpu.mw@125E = 6531</action> <!-- ingame -->
<action>maincpu.mw@4C18 = 3018</action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@33CA = 34AC</action>
<action>maincpu.mb@0764 = DA </action>
<action>maincpu.mw@125E = 6500</action>
<action>maincpu.mw@4C18 = 1006</action>
</script>
</cheat>
</mamecheat>
elevatora.xml
Code: Select all
<!-- Elevator Action (EA, 5 PCB version, 1.1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@08C0 = C9 </action> <!-- bullet -->
<action>maincpu.mw@368E = E000 </action> <!-- pressed by elevator -->
<action>maincpu.mw@4A37 = E008 </action> <!-- pressed by elevator -->
<action>maincpu.md@496B = FEE010CD</action> <!-- fall down in walking to left -->
<action>maincpu.md@4999 = FEE010CD</action> <!-- fall down in walking to right -->
<action>maincpu.mb@4A3F = C9 </action> <!-- fall down in jumping-->
<!-- character check routine -->
<action>maincpu.mq@E000 = 37E9C3C81AFE7DDD</action>
<action>maincpu.mq@E008 = 4A78C3C81AFE7DDD</action>
<action>maincpu.mq@E010 = DDC8073E1AFE7DDD</action>
<action>maincpu.mq@E018 = 0000000000C9097E</action>
<!--
E000 | DD 7D : ld a,ixl // pressed by elevator
E002 | FE 1A : cp $1A
E004 | C8 : ret z
E005 | C3 E9 37 : jp $37E9
E008 | DD 7D : ld a,ixl // pressed by elevator
E00A | FE 1A : cp $1A
E00C | C8 : ret z
E00D | C3 78 4A : jp $4A78
E010 | DD 7D : ld a,ixl // fall down in walking
E012 | FE 1A : cp $1A
E014 | 3E 07 : ld a,$07
E016 | C8 : ret z
E017 | DD 7E 09 : ld a,(ix+$09)
E01A | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mb@08C0 = C0 </action>
<action>maincpu.mw@368E = 37E9 </action>
<action>maincpu.mw@4A37 = 4A78 </action>
<action>maincpu.mb@4A3F = C8 </action>
<action>maincpu.mq@E000 = 0000000000000000</action>
<action>maincpu.mq@E008 = 0000000000000000</action>
<action>maincpu.mq@E010 = 0000000000000000</action>
<action>maincpu.mq@E018 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3104 = 78E020CD </action>
<action>maincpu.mq@E020 = 2732EFCB022868CB</action>
<action>maincpu.mq@E028 = 000000000000C985</action>
<!--
E020 | CB 68 : bit 5,b
E022 | 28 02 : jr z,$E026
E024 | CB EF : set 5,a
E026 | 32 27 85 : ld ($8527),a
E029 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3104 = 78852732 </action>
<action>maincpu.mq@E020 = 0000000000000000</action>
<action>maincpu.mq@E028 = 0000000000000000</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@4450 = 00E030CD </action> <!-- left -->
<action>maincpu.md@445F = 00E03ECD </action> <!-- right -->
<action>maincpu.mq@E030 = 0220FE3E1AFE7DDD</action>
<action>maincpu.mq@E038 = 7DDDC90577DDF83E</action>
<action>maincpu.mq@E040 = 043E0220023E1AFE</action>
<action>maincpu.mq@E048 = 00000000C90577DD</action>
<!--
E030 | DD 7D : ld a,ixl // left
E032 | FE 1A : cp $1A
E034 | 3E FE : ld a,$FE
E036 | 20 02 : jr nz,$E03A
E038 | 3E F8 : ld a,$F8
E03A | DD 77 05 : ld (ix+$05),a
E03D | C9 : ret
E03E | DD 7D : ld a,ixl // right
E040 | FE 1A : cp $1A
E042 | 3E 02 : ld a,$02
E044 | 20 02 : jr nz,$E048
E046 | 3E 08 : ld a,$08
E048 | DD 77 05 : ld (ix+$05),a
E04B | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@E039 = -param</action>
<action>maincpu.mb@E047 = param</action>
</script>
<script state="off">
<action>maincpu.md@4450 = FE0536DD </action>
<action>maincpu.md@445F = 020536DD </action>
<action>maincpu.mq@E030 = 0000000000000000</action>
<action>maincpu.mq@E038 = 0000000000000000</action>
<action>maincpu.mq@E040 = 0000000000000000</action>
<action>maincpu.mq@E048 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x04">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0c">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="change">
<!-- stand -->
<action>maincpu.mb@50DA = -param</action> <!-- left -->
<action>maincpu.mb@50DE = param</action> <!-- right -->
<!-- crouch -->
<action>maincpu.mb@50EA = -param</action> <!-- left -->
<action>maincpu.mb@50EE = param</action> <!-- right -->
<!-- jump -->
<action>maincpu.mb@5102 = -param</action> <!-- left -->
<action>maincpu.mb@5106 = param</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@50DA = F8</action>
<action>maincpu.mb@50DE = 08</action>
<action>maincpu.mb@50EA = F8</action>
<action>maincpu.mb@50EE = 08</action>
<action>maincpu.mb@5102 = F8</action>
<action>maincpu.mb@5106 = 08</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- sometimes music (0x81 and 0x83) stops incorrectly by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@71B4 = E050 </action>
<action>maincpu.mq@E050 = 47B8D4083A810021</action>
<action>maincpu.mq@E058 = FE350120FEFEF928</action>
<action>maincpu.mq@E060 = 0420FBFE340120FD</action>
<action>maincpu.mq@E068 = 0520F7FE0618F03E</action>
<action>maincpu.mq@E070 = 20EFFE787786103E</action>
<action>maincpu.mq@E078 = 83FE062881FE7E1B</action>
<action>maincpu.mq@E080 = 7EE0A2CD19180228</action>
<action>maincpu.mq@E088 = 870032013E876332</action>
<action>maincpu.mq@E090 = 0820DFFE78876032</action>
<action>maincpu.mq@E098 = D50B32C03EE0A2CD</action>
<action>maincpu.mq@E0A0 = 6032870032AFB118</action>
<action>maincpu.mq@E0A8 = C987633287613287</action>
<!--
E050 | 21 00 81 : ld hl,$8100 // sound code address
E053 | 3A 08 D4 : ld a,($D408) // read input
E056 | B8 : cp b
E057 | 47 : ld b,a
E058 | 28 F9 : jr z,$E053
E05A | FE FE : cp $FE
E05C | 20 01 : jr nz,$E05F
E05E | 35 : dec (hl) // decrease code -01
E05F | FE FD : cp $FD
E061 | 20 01 : jr nz,$E064
E063 | 34 : inc (hl) // increase code +01
E064 | FE FB : cp $FB
E066 | 20 04 : jr nz,$E06C
E068 | 3E F0 : ld a,$F0 // decrease code -10
E06A | 18 06 : jr $E072
E06C | FE F7 : cp $F7
E06E | 20 05 : jr nz,$E075
E070 | 3E 10 : ld a,$10 // increase code +10
E072 | 86 : add a,(hl)
E073 | 77 : ld (hl),a
E074 | 78 : ld a,b
E075 | FE EF : cp $EF
E077 | 20 1B : jr nz,$E094
E079 | 7E : ld a,(hl) // play sound
E07A | FE 81 : cp $81
E07C | 28 06 : jr z,$E084
E07E | FE 83 : cp $83
E080 | 28 02 : jr z,$E084
E082 | 18 19 : jr $E09D
E084 | CD A2 E0 : call $E0A2
E087 | 7E : ld a,(hl)
E088 | 32 63 87 : ld ($8763),a
E08B | 3E 01 : ld a,$01
E08D | 32 00 87 : ld ($8700),a
E090 | 32 60 87 : ld ($8760),a
E093 | 78 : ld a,b
E094 | FE DF : cp $DF
E096 | 20 08 : jr nz,$E0A0
E098 | CD A2 E0 : call $E0A2 // stop sound
E09B | 3E C0 : ld a,$C0
E09D | 32 0B D5 : ld ($D50B),a
E0A0 | 18 B1 : jr $E053
E0A2 | AF : xor a // music stop routine
E0A3 | 32 00 87 : ld ($8700),a
E0A6 | 32 60 87 : ld ($8760),a
E0A9 | 32 61 87 : ld ($8761),a
E0AC | 32 63 87 : ld ($8763),a
E0AF | C9 : ret
-->
</script>
<script state="run">
<output format="----- elevator action 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@8100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@71B4 = 5839 </action>
<action>maincpu.mq@E050 = 0000000000000000</action>
<action>maincpu.mq@E058 = 0000000000000000</action>
<action>maincpu.mq@E060 = 0000000000000000</action>
<action>maincpu.mq@E068 = 0000000000000000</action>
<action>maincpu.mq@E070 = 0000000000000000</action>
<action>maincpu.mq@E078 = 0000000000000000</action>
<action>maincpu.mq@E080 = 0000000000000000</action>
<action>maincpu.mq@E088 = 0000000000000000</action>
<action>maincpu.mq@E090 = 0000000000000000</action>
<action>maincpu.mq@E098 = 0000000000000000</action>
<action>maincpu.mq@E0A0 = 0000000000000000</action>
<action>maincpu.mq@E0A8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@33CA = 49D5</action> <!-- boot -->
<action>maincpu.mb@0764 = C3 </action> <!-- ingame -->
<action>maincpu.mw@125E = 6531</action> <!-- ingame -->
<action>maincpu.mw@4C18 = 3018</action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@33CA = 34AC</action>
<action>maincpu.mb@0764 = DA </action>
<action>maincpu.mw@125E = 6500</action>
<action>maincpu.mw@4C18 = 1006</action>
</script>
</cheat>
</mamecheat>
elevatorb.xml
Code: Select all
<!-- Elevator Action (bootleg) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@08C0 = C9 </action> <!-- bullet -->
<action>maincpu.mw@368E = E000 </action> <!-- pressed by elevator -->
<action>maincpu.mw@4A37 = E008 </action> <!-- pressed by elevator -->
<action>maincpu.md@496B = FEE010CD</action> <!-- fall down in walking to left -->
<action>maincpu.md@4999 = FEE010CD</action> <!-- fall down in walking to right -->
<action>maincpu.mb@4A3F = C9 </action> <!-- fall down in jumping-->
<!-- character check routine -->
<action>maincpu.mq@E000 = 37E9C3C81AFE7DDD</action>
<action>maincpu.mq@E008 = 4A78C3C81AFE7DDD</action>
<action>maincpu.mq@E010 = DDC8073E1AFE7DDD</action>
<action>maincpu.mq@E018 = 0000000000C9097E</action>
<!--
E000 | DD 7D : ld a,ixl // pressed by elevator
E002 | FE 1A : cp $1A
E004 | C8 : ret z
E005 | C3 E9 37 : jp $37E9
E008 | DD 7D : ld a,ixl // pressed by elevator
E00A | FE 1A : cp $1A
E00C | C8 : ret z
E00D | C3 78 4A : jp $4A78
E010 | DD 7D : ld a,ixl // fall down in walking
E012 | FE 1A : cp $1A
E014 | 3E 07 : ld a,$07
E016 | C8 : ret z
E017 | DD 7E 09 : ld a,(ix+$09)
E01A | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mb@08C0 = C0 </action>
<action>maincpu.mw@368E = 37E9 </action>
<action>maincpu.mw@4A37 = 4A78 </action>
<action>maincpu.mb@4A3F = C8 </action>
<action>maincpu.mq@E000 = 0000000000000000</action>
<action>maincpu.mq@E008 = 0000000000000000</action>
<action>maincpu.mq@E010 = 0000000000000000</action>
<action>maincpu.mq@E018 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3104 = 78E020CD </action>
<action>maincpu.mq@E020 = 2732EFCB022868CB</action>
<action>maincpu.mq@E028 = 000000000000C985</action>
<!--
E020 | CB 68 : bit 5,b
E022 | 28 02 : jr z,$E026
E024 | CB EF : set 5,a
E026 | 32 27 85 : ld ($8527),a
E029 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3104 = 78852732 </action>
<action>maincpu.mq@E020 = 0000000000000000</action>
<action>maincpu.mq@E028 = 0000000000000000</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@4450 = 00E030CD </action> <!-- left -->
<action>maincpu.md@445F = 00E03ECD </action> <!-- right -->
<action>maincpu.mq@E030 = 0220FE3E1AFE7DDD</action>
<action>maincpu.mq@E038 = 7DDDC90577DDF83E</action>
<action>maincpu.mq@E040 = 043E0220023E1AFE</action>
<action>maincpu.mq@E048 = 00000000C90577DD</action>
<!--
E030 | DD 7D : ld a,ixl // left
E032 | FE 1A : cp $1A
E034 | 3E FE : ld a,$FE
E036 | 20 02 : jr nz,$E03A
E038 | 3E F8 : ld a,$F8
E03A | DD 77 05 : ld (ix+$05),a
E03D | C9 : ret
E03E | DD 7D : ld a,ixl // right
E040 | FE 1A : cp $1A
E042 | 3E 02 : ld a,$02
E044 | 20 02 : jr nz,$E048
E046 | 3E 08 : ld a,$08
E048 | DD 77 05 : ld (ix+$05),a
E04B | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@E039 = -param</action>
<action>maincpu.mb@E047 = param</action>
</script>
<script state="off">
<action>maincpu.md@4450 = FE0536DD </action>
<action>maincpu.md@445F = 020536DD </action>
<action>maincpu.mq@E030 = 0000000000000000</action>
<action>maincpu.mq@E038 = 0000000000000000</action>
<action>maincpu.mq@E040 = 0000000000000000</action>
<action>maincpu.mq@E048 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x04">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0c">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="change">
<!-- stand -->
<action>maincpu.mb@50DA = -param</action> <!-- left -->
<action>maincpu.mb@50DE = param</action> <!-- right -->
<!-- crouch -->
<action>maincpu.mb@50EA = -param</action> <!-- left -->
<action>maincpu.mb@50EE = param</action> <!-- right -->
<!-- jump -->
<action>maincpu.mb@5102 = -param</action> <!-- left -->
<action>maincpu.mb@5106 = param</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@50DA = F8</action>
<action>maincpu.mb@50DE = 08</action>
<action>maincpu.mb@50EA = F8</action>
<action>maincpu.mb@50EE = 08</action>
<action>maincpu.mb@5102 = F8</action>
<action>maincpu.mb@5106 = 08</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- sometimes music (0x81 and 0x83) stops incorrectly by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@71B4 = E050 </action>
<action>maincpu.mq@E050 = 083A8100211036CD</action>
<action>maincpu.mq@E058 = 20FEFEF92847B8D4</action>
<action>maincpu.mq@E060 = FE340120FDFE3501</action>
<action>maincpu.mq@E068 = FE0618F03E0420FB</action>
<action>maincpu.mq@E070 = 787786103E0520F7</action>
<action>maincpu.mq@E078 = 2881FE7E1B20EFFE</action>
<action>maincpu.mq@E080 = CD1918022883FE06</action>
<action>maincpu.mq@E088 = 013E8763327EE0A5</action>
<action>maincpu.mq@E090 = FE78876032870032</action>
<action>maincpu.mq@E098 = C03EE0A5CD0820DF</action>
<action>maincpu.mq@E0A0 = 0032AFB118D50B32</action>
<action>maincpu.mq@E0A8 = 3287613287603287</action>
<action>maincpu.mq@E0B0 = 0000000000C98763</action>
<!--
E050 | CD 36 10 : call $1036 // set bank
E053 | 21 00 81 : ld hl,$8100 // sound code address
E056 | 3A 08 D4 : ld a,($D408) // read input
E059 | B8 : cp b
E05A | 47 : ld b,a
E05B | 28 F9 : jr z,$E056
E05D | FE FE : cp $FE
E05F | 20 01 : jr nz,$E062
E061 | 35 : dec (hl) // decrease code -01
E062 | FE FD : cp $FD
E064 | 20 01 : jr nz,$E067
E066 | 34 : inc (hl) // increase code +01
E067 | FE FB : cp $FB
E069 | 20 04 : jr nz,$E06F
E06B | 3E F0 : ld a,$F0 // decrease code -10
E06D | 18 06 : jr $E075
E06F | FE F7 : cp $F7
E071 | 20 05 : jr nz,$E078
E073 | 3E 10 : ld a,$10 // increase code +10
E075 | 86 : add a,(hl)
E076 | 77 : ld (hl),a
E077 | 78 : ld a,b
E078 | FE EF : cp $EF
E07A | 20 1B : jr nz,$E097
E07C | 7E : ld a,(hl) // play sound
E07D | FE 81 : cp $81
E07F | 28 06 : jr z,$E087
E081 | FE 83 : cp $83
E083 | 28 02 : jr z,$E087
E085 | 18 19 : jr $E0A0
E087 | CD A5 E0 : call $E0A5
E08A | 7E : ld a,(hl)
E08B | 32 63 87 : ld ($8763),a
E08E | 3E 01 : ld a,$01
E090 | 32 00 87 : ld ($8700),a
E093 | 32 60 87 : ld ($8760),a
E096 | 78 : ld a,b
E097 | FE DF : cp $DF
E099 | 20 08 : jr nz,$E0A3
E09B | CD A5 E0 : call $E0A5 // stop sound
E09E | 3E C0 : ld a,$C0
E0A0 | 32 0B D5 : ld ($D50B),a
E0A3 | 18 B1 : jr $E056
E0A5 | AF : xor a // music stop routine
E0A6 | 32 00 87 : ld ($8700),a
E0A9 | 32 60 87 : ld ($8760),a
E0AC | 32 61 87 : ld ($8761),a
E0AF | 32 63 87 : ld ($8763),a
E0B2 | C9 : ret
-->
</script>
<script state="run">
<output format="----- elevator action 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@8100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@71B4 = 5839 </action>
<action>maincpu.mq@E050 = 0000000000000000</action>
<action>maincpu.mq@E058 = 0000000000000000</action>
<action>maincpu.mq@E060 = 0000000000000000</action>
<action>maincpu.mq@E068 = 0000000000000000</action>
<action>maincpu.mq@E070 = 0000000000000000</action>
<action>maincpu.mq@E078 = 0000000000000000</action>
<action>maincpu.mq@E080 = 0000000000000000</action>
<action>maincpu.mq@E088 = 0000000000000000</action>
<action>maincpu.mq@E090 = 0000000000000000</action>
<action>maincpu.mq@E098 = 0000000000000000</action>
<action>maincpu.mq@E0A0 = 0000000000000000</action>
<action>maincpu.mq@E0A8 = 0000000000000000</action>
<action>maincpu.mq@E0B0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@33CA = 49D5</action> <!-- boot -->
<action>maincpu.mb@0764 = C3 </action> <!-- ingame -->
<action>maincpu.mw@125E = 6531</action> <!-- ingame -->
<action>maincpu.mw@4C18 = 3018</action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@33CA = 34AC</action>
<action>maincpu.mb@0764 = DA </action>
<action>maincpu.mw@125E = 6500</action>
<action>maincpu.mw@4C18 = 1006</action>
</script>
</cheat>
</mamecheat>