Code: Select all
<!-- Arabian -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4264 = 18</action>
<action>maincpu.mb@4602 = C9</action>
<action>maincpu.mb@4624 = C9</action>
</script>
<script state="off">
<action>maincpu.mb@4264 = 38</action>
<action>maincpu.mb@4602 = D0</action>
<action>maincpu.mb@4624 = D0</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mw@172C = 7DF0 </action>
<action>maincpu.mq@7DF0 = 10E6D3513A1444CD</action>
<action>maincpu.mq@7DF8 = E67E344FD7A021C8</action>
<action>maincpu.mq@7E00 = FFC947B07977C001</action>
<!--
7DF0 | CD 44 14 : call $1444
7DF3 | 3A 51 D3 : ld a,($D351)
7DF6 | E6 10 : and $10
7DF8 | C8 : ret z
7DF9 | 21 A0 D7 : ld hl,$D7A0
7DFC | 4F : ld c,a
7DFD | 34 : inc (hl)
7DFE | 7E : ld a,(hl)
7DFF | E6 01 : and $01
7E01 | C0 : ret nz
7E02 | 77 : ld (hl),a
7E03 | 79 : ld a,c
7E04 | B0 : or b
7E05 | 47 : ld b,a
7E06 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@172C = 1444 </action>
<action>maincpu.mq@7DF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7DF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="action speed up">
<script state="on">
<action>maincpu.mb@170F = 00</action>
<action>maincpu.mb@188E = 00</action>
<action>maincpu.mb@190D = 00</action>
<action>maincpu.mb@1A62 = 00</action>
<action>maincpu.mb@1B7F = 02</action>
</script>
<script state="off">
<action>maincpu.mb@170F = 03</action>
<action>maincpu.mb@188E = 07</action>
<action>maincpu.mb@190D = 03</action>
<action>maincpu.mb@1A62 = 08</action>
<action>maincpu.mb@1B7F = 06</action>
</script>
</cheat>
<cheat desc="multiple jump (test)">
<script state="on">
<action>maincpu.mw@1719 = 7E08 </action> <!-- fall down -->
<action>maincpu.mw@173C = 7E0D </action> <!-- jump -->
<action>maincpu.mq@7E08 = 1C1511031817D011</action>
<action>maincpu.mq@7E10 = D7A121D11444CDD5</action>
<action>maincpu.mq@7E18 = A6A877D3513A477E</action>
<action>maincpu.mq@7E20 = FFE9EB1E08C257CB</action>
<!--
7E08 | 11 D0 17 : ld de,$17D0 // fall down
7E0B | 18 03 : jr $7E10
7E0D | 11 15 1C : ld de,$1C15 // jump
7E10 | D5 : push de
7E11 | CD 44 14 : call $1444 // check input
7E14 | D1 : pop de
7E15 | 21 A1 D7 : ld hl,$D7A1
7E18 | 7E : ld a,(hl)
7E19 | 47 : ld b,a
7E1A | 3A 51 D3 : ld a,($D351)
7E1D | 77 : ld (hl),a
7E1E | A8 : xor b
7E1F | A6 : and (hl)
7E20 | CB 57 : bit 2,a
7E22 | C2 08 1E : jp nz,$1E08
7E25 | EB : ex de,hl
7E26 | E9 : jp (hl)
-->
</script>
<script state="off">
<action>maincpu.mw@1719 = 17D0 </action>
<action>maincpu.mw@173C = 1C15 </action>
<action>maincpu.mq@7E08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E20 = FFFFFFFFFFFFFFFF</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="change">
<action>maincpu.mb@3F39 = param</action>
</script>
<script state="off">
<action>maincpu.mb@3F39 = 3E</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop sound code 0x14 by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@00F0 = 7E28 </action>
<action>maincpu.mq@7E28 = D7F021D369325A3E</action>
<action>maincpu.mq@7E30 = E9CB02284ECB000E</action>
<action>maincpu.mq@7E38 = CB234FB10FE67E23</action>
<action>maincpu.mq@7E40 = 47B879E1CB022846</action>
<action>maincpu.mq@7E48 = 2002FED10021E328</action>
<action>maincpu.mq@7E50 = FE34012001FE3501</action>
<action>maincpu.mq@7E58 = FE0618F03E042008</action>
<action>maincpu.mq@7E60 = 787786103E052004</action>
<action>maincpu.mq@7E68 = 14217E48232010FE</action>
<action>maincpu.mq@7E70 = 0406D71021C6CBD7</action>
<action>maincpu.mq@7E78 = 1009D623073809FE</action>
<action>maincpu.mq@7E80 = AF470728A70A18F7</action>
<action>maincpu.mq@7E88 = FE784177FD101737</action>
<action>maincpu.mq@7E90 = C16E3BCDC5052020</action>
<action>maincpu.mq@7E98 = FFFFFFFFFFFF9318</action>
<!--
7E28 | 3E 5A : ld a,$5A
7E2A | 32 69 D3 : ld ($D369),a // enable sound code check in interrupt
7E2D | 21 F0 D7 : ld hl,$D7F0
7E30 | 0E 00 : ld c,$00
7E32 | CB 4E : bit 1,(hl) // read start button
7E34 | 28 02 : jr z,$7E38
7E36 | CB E9 : set 5,c
7E38 | 23 : inc hl
7E39 | 7E : ld a,(hl) // read lever input
7E3A | E6 0F : and $0F
7E3C | B1 : or c
7E3D | 4F : ld c,a
7E3E | 23 : inc hl
7E3F | CB 46 : bit 0,(hl) // read button
7E41 | 28 02 : jr z,$7E45
7E43 | CB E1 : set 4,c
7E45 | 79 : ld a,c
7E46 | B8 : cp b
7E47 | 47 : ld b,a
7E48 | 28 E3 : jr z,$7E2D
7E4A | 21 00 D1 : ld hl,$D100
7E4D | FE 02 : cp $02
7E4F | 20 01 : jr nz,$7E52
7E51 | 35 : dec (hl) // decrease code -01
7E52 | FE 01 : cp $01
7E54 | 20 01 : jr nz,$7E57
7E56 | 34 : inc (hl) // increase code +01
7E57 | FE 08 : cp $08
7E59 | 20 04 : jr nz,$7E5F
7E5B | 3E F0 : ld a,$F0 // decrease code -10
7E5D | 18 06 : jr $7E65
7E5F | FE 04 : cp $04
7E61 | 20 05 : jr nz,$7E68
7E63 | 3E 10 : ld a,$10 // increase code +10
7E65 | 86 : add a,(hl)
7E66 | 77 : ld (hl),a
7E67 | 78 : ld a,b
7E68 | FE 10 : cp $10
7E6A | 20 23 : jr nz,$7E8F
7E6C | 48 : ld c,b // play sound
7E6D | 7E : ld a,(hl) // read sound code
7E6E | 21 14 D7 : ld hl,$D714 // set sound flag
7E71 | CB C6 : set 0,(hl)
7E73 | 21 10 D7 : ld hl,$D710
7E76 | 06 04 : ld b,$04 // calculate sound address
7E78 | FE 09 : cp $09
7E7A | 38 07 : jr c,$7E83
7E7C | 23 : inc hl
7E7D | D6 09 : sub $09
7E7F | 10 F7 : djnz $7E78
7E81 | 18 0A : jr $7E8D
7E83 | A7 : and a
7E84 | 28 07 : jr z,$7E8D
7E86 | 47 : ld b,a // set sound play bit
7E87 | AF : xor a
7E88 | 37 : scf
7E89 | 17 : rla
7E8A | 10 FD : djnz $7E89
7E8C | 77 : ld (hl),a
7E8D | 41 : ld b,c // restore input value
7E8E | 78 : ld a,b
7E8F | FE 20 : cp $20
7E91 | 20 05 : jr nz,$7E98
7E93 | C5 : push bc
7E94 | CD 3B 6E : call $6E3B // stop sound
7E97 | C1 : pop bc
7E98 | 18 93 : jr $7E2D
-->
</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="1P 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@D100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@00F0 = 7CF8 </action>
<action>maincpu.mq@7E28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E98 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Arabian (Atari) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@422C = 18</action>
<action>maincpu.mb@45D1 = C9</action>
<action>maincpu.mb@45F3 = C9</action>
</script>
<script state="off">
<action>maincpu.mb@422C = 38</action>
<action>maincpu.mb@45D1 = D0</action>
<action>maincpu.mb@45F3 = D0</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mw@1716 = 7D20 </action>
<action>maincpu.mq@7D20 = 10E6D3513A1445CD</action>
<action>maincpu.mq@7D28 = E67E344FD7A021C8</action>
<action>maincpu.mq@7D30 = FFC947B07977C001</action>
<!--
7D20 | CD 45 14 : call $1445
7D23 | 3A 51 D3 : ld a,($D351)
7D26 | E6 10 : and $10
7D28 | C8 : ret z
7D29 | 21 A0 D7 : ld hl,$D7A0
7D2C | 4F : ld c,a
7D2D | 34 : inc (hl)
7D2E | 7E : ld a,(hl)
7D2F | E6 01 : and $01
7D31 | C0 : ret nz
7D32 | 77 : ld (hl),a
7D33 | 79 : ld a,c
7D34 | B0 : or b
7D35 | 47 : ld b,a
7D36 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@1716 = 1445 </action>
<action>maincpu.mq@7D20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7D28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7D30 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="action speed up">
<script state="on">
<action>maincpu.mb@16F9 = 00</action>
<action>maincpu.mb@1873 = 00</action>
<action>maincpu.mb@18F2 = 00</action>
<action>maincpu.mb@1A2F = 00</action>
<action>maincpu.mb@1B4C = 02</action>
</script>
<script state="off">
<action>maincpu.mb@16F9 = 03</action>
<action>maincpu.mb@1873 = 07</action>
<action>maincpu.mb@18F2 = 03</action>
<action>maincpu.mb@1A2F = 08</action>
<action>maincpu.mb@1B4C = 06</action>
</script>
</cheat>
<cheat desc="multiple jump (test)">
<script state="on">
<action>maincpu.mw@1703 = 7D38 </action> <!-- fall down -->
<action>maincpu.mw@1726 = 7D3D </action> <!-- jump -->
<action>maincpu.mq@7D38 = 1BDC11031817BA11</action>
<action>maincpu.mq@7D40 = D7A121D11445CDD5</action>
<action>maincpu.mq@7D48 = A6A877D3513A477E</action>
<action>maincpu.mq@7D50 = FFE9EB1DCCC257CB</action>
<!--
7D38 | 11 BA 17 : ld de,$17BA // fall down
7D3B | 18 03 : jr $7D40
7D3D | 11 DC 1B : ld de,$1BDC // jump
7D40 | D5 : push de
7D41 | CD 45 14 : call $1445 // check input
7D44 | D1 : pop de
7D45 | 21 A1 D7 : ld hl,$D7A1
7D48 | 7E : ld a,(hl)
7D49 | 47 : ld b,a
7D4A | 3A 51 D3 : ld a,($D351)
7D4D | 77 : ld (hl),a
7D4E | A8 : xor b
7D4F | A6 : and (hl)
7D50 | CB 57 : bit 2,a
7D52 | C2 CC 1D : jp nz,$1DCC
7D55 | EB : ex de,hl
7D56 | E9 : jp (hl)
-->
</script>
<script state="off">
<action>maincpu.mw@1703 = 17BA </action>
<action>maincpu.mw@1726 = 1BDC </action>
<action>maincpu.mq@7D38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7D40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7D48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7D50 = FFFFFFFFFFFFFFFF</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="change">
<action>maincpu.mb@3F14 = param</action>
</script>
<script state="off">
<action>maincpu.mb@3F14 = 3E</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop sound code 0x14 by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@00F0 = 7D58 </action>
<action>maincpu.mq@7D58 = D7F021D369325A3E</action>
<action>maincpu.mq@7D60 = E9CB02284ECB000E</action>
<action>maincpu.mq@7D68 = CB234FB10FE67E23</action>
<action>maincpu.mq@7D70 = 47B879E1CB022846</action>
<action>maincpu.mq@7D78 = 2002FED10021E328</action>
<action>maincpu.mq@7D80 = FE34012001FE3501</action>
<action>maincpu.mq@7D88 = FE0618F03E042008</action>
<action>maincpu.mq@7D90 = 787786103E052004</action>
<action>maincpu.mq@7D98 = 14217E48232010FE</action>
<action>maincpu.mq@7DA0 = 0406D71021C6CBD7</action>
<action>maincpu.mq@7DA8 = 1009D623073809FE</action>
<action>maincpu.mq@7DB0 = AF470728A70A18F7</action>
<action>maincpu.mq@7DB8 = FE784177FD101737</action>
<action>maincpu.mq@7DC0 = C16DFBCDC5052020</action>
<action>maincpu.mq@7DC8 = FFFFFFFFFFFF9318</action>
<!--
7D58 | 3E 5A : ld a,$5A
7D5A | 32 69 D3 : ld ($D369),a // enable sound code check in interrupt
7D5D | 21 F0 D7 : ld hl,$D7F0
7D60 | 0E 00 : ld c,$00
7D62 | CB 4E : bit 1,(hl) // read start button
7D64 | 28 02 : jr z,$7D68
7D66 | CB E9 : set 5,c
7D68 | 23 : inc hl
7D69 | 7E : ld a,(hl) // read lever input
7D6A | E6 0F : and $0F
7D6C | B1 : or c
7D6D | 4F : ld c,a
7D6E | 23 : inc hl
7D6F | CB 46 : bit 0,(hl) // read button
7D71 | 28 02 : jr z,$7D75
7D73 | CB E1 : set 4,c
7D75 | 79 : ld a,c
7D76 | B8 : cp b
7D77 | 47 : ld b,a
7D78 | 28 E3 : jr z,$7D5D
7D7A | 21 00 D1 : ld hl,$D100
7D7D | FE 02 : cp $02
7D7F | 20 01 : jr nz,$7D82
7D81 | 35 : dec (hl) // decrease code -01
7D82 | FE 01 : cp $01
7D84 | 20 01 : jr nz,$7D87
7D86 | 34 : inc (hl) // increase code +01
7D87 | FE 08 : cp $08
7D89 | 20 04 : jr nz,$7D8F
7D8B | 3E F0 : ld a,$F0 // decrease code -10
7D8D | 18 06 : jr $7D95
7D8F | FE 04 : cp $04
7D91 | 20 05 : jr nz,$7D98
7D93 | 3E 10 : ld a,$10 // increase code +10
7D95 | 86 : add a,(hl)
7D96 | 77 : ld (hl),a
7D97 | 78 : ld a,b
7D98 | FE 10 : cp $10
7D9A | 20 23 : jr nz,$7DBF
7D9C | 48 : ld c,b // play sound
7D9D | 7E : ld a,(hl) // read sound code
7D9E | 21 14 D7 : ld hl,$D714 // set sound flag
7DA1 | CB C6 : set 0,(hl)
7DA3 | 21 10 D7 : ld hl,$D710
7DA6 | 06 04 : ld b,$04 // calculate sound address
7DA8 | FE 09 : cp $09
7DAA | 38 07 : jr c,$7DB3
7DAC | 23 : inc hl
7DAD | D6 09 : sub $09
7DAF | 10 F7 : djnz $7DA8
7DB1 | 18 0A : jr $7DBD
7DB3 | A7 : and a
7DB4 | 28 07 : jr z,$7DBD
7DB6 | 47 : ld b,a // set sound play bit
7DB7 | AF : xor a
7DB8 | 37 : scf
7DB9 | 17 : rla
7DBA | 10 FD : djnz $7DB9
7DBC | 77 : ld (hl),a
7DBD | 41 : ld b,c // restore input value
7DBE | 78 : ld a,b
7DBF | FE 20 : cp $20
7DC1 | 20 05 : jr nz,$7DC8
7DC3 | C5 : push bc
7DC4 | CD FB 6D : call $6DFB // stop sound
7DC7 | C1 : pop bc
7DC8 | 18 93 : jr $7D5D
-->
</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="1P 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@D100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@00F0 = 7C25 </action>
<action>maincpu.mq@7E28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7E98 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
- "no hit" : Player character will die when fall down from high platform.
- "multiple jump" : Test code. You can't land on upper step by multiple jumps.
- "sound test mode" : You can't stop sound code 0x14 by sound stop button.