This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
jman
Posts: 845 Joined: Tue Dec 01, 2020 1:24 pm
Post
by jman » Sat Jul 31, 2021 12:22 pm
Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2ecd = c9</action>
<action>maincpu.mb@2eec = c9</action>
<action>maincpu.mb@2f08 = c9</action>
</script>
<script state="off">
<action>maincpu.mb@2ecd = d0</action>
<action>maincpu.mb@2eec = d0</action>
<action>maincpu.mb@2f08 = d0</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@0d40 = 18</action> <!-- left -->
<action>maincpu.mb@0d7e = 18</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@0d40 = 20</action>
<action>maincpu.mb@0d7e = 20</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter>
<item value="0x0a">01 (slow)</item>
<item value="0x14">02 </item>
<item value="0x1e">03 </item>
<item value="0x28">04 </item>
<item value="0x32">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@0d5a = -param</action> <!-- left-->
<action>maincpu.mb@0d99 = param</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@0d5a = ec</action>
<action>maincpu.mb@0d99 = 14</action>
</script>
</cheat>
<cheat desc="no stolen gold">
<script state="on">
<action>maincpu.mb@1b6a = c9</action>
</script>
<script state="off">
<action>maincpu.mb@1b6a = c0</action>
</script>
</cheat>
<cheat desc="invisible ladder">
<script state="on">
<action>maincpu.mb@0e61 = 10</action> <!-- up -->
<action>maincpu.mb@0ea0 = c3</action>
<action>maincpu.mb@0ec7 = 18</action> <!-- down -->
<action>maincpu.mw@0bb7 = 7f70</action>
<action>maincpu.mq@7f70 = af02280ce6e44d3a</action>
<action>maincpu.mq@7f78 = c7c7c7c92e8dcdc9</action>
<!--
7f70 | 3a 4d e4 : ld a,($e44d)
7f73 | e6 0c : and $0c
7f75 | 28 02 : jr z,$7f79
7f77 | af : xor a
7f78 | c9 : ret
7f79 | cd 8d 2e : call $2e8d
7f7c | c9 : ret
-->
</script>
<script state="off">
<action>maincpu.mb@0e61 = 14</action>
<action>maincpu.mb@0ea0 = ca</action>
<action>maincpu.mb@0ec7 = 20</action>
<action>maincpu.mw@0bb7 = 2e8d</action>
<action>maincpu.mq@7f70 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f78 = c7c7c7c7c7c7c7c7</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@0027 = 7f80</action>
<action>maincpu.mq@7f80 = 22d57f8311010021</action>
<action>maincpu.mq@7f88 = c86fbde44d3ae100</action>
<action>maincpu.mq@7f90 = 2001fe25012002fe</action>
<action>maincpu.mq@7f98 = 187c032080fe2401</action>
<action>maincpu.mq@7fa0 = 009bcdafc020fe04</action>
<action>maincpu.mq@7fa8 = c7c7c7c7c7c7c7c9</action>
<!--
7f80 | 21 00 01 : ld hl,$0100 // initialize sound and input values
7f83 | 11 83 7f : ld de,$7f83
7f86 | d5 : push de
7f87 | 22 00 e1 : ld ($e100),hl
7f8a | 3a 4d e4 : ld a,($e44d) // read input
7f8d | bd : cp l
7f8e | 6f : ld l,a
7f8f | c8 : ret z
7f90 | fe 02 : cp $02
7f92 | 20 01 : jr nz,$7f95
7f94 | 25 : dec h // decrease code
7f95 | fe 01 : cp $01
7f97 | 20 01 : jr nz,$7f9a
7f99 | 24 : inc h // increase code
7f9a | fe 80 : cp $80
7f9c | 20 03 : jr nz,$7fa1
7f9e | 7c : ld a,h // play sound
7f9f | 18 04 : jr $7fa5
7fa1 | fe 20 : cp $20
7fa3 | c0 : ret nz
7fa4 | af : xor a // stop sound
7fa5 | cd 9b 00 : call $009b
7fa8 | c9 : ret
-->
</script>
<script state="run">
<output format="----- lode runner sound test mode -----" line="10" align="center" />
<output format="left : decrease code" line="11" align="center" />
<output format="right : increase code" line="12" align="center" />
<output format="button 1 : play sound" line="13" align="center" />
<output format="button 2 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %2.2X >>" line="17" align="center">
<argument>maincpu.pb@e101</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0027 = 25cf</action>
<action>maincpu.mq@7f80 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f88 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f90 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f98 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7fa0 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7fa8 = c7c7c7c7c7c7c7c7</action>
</script>
</cheat>
jman
Posts: 845 Joined: Tue Dec 01, 2020 1:24 pm
Post
by jman » Wed Dec 07, 2022 9:06 am
Code: Select all
<cheat desc="timer speed">
<parameter>
<item value="0x0010">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0100">03 </item>
<item value="0x0400">04 </item>
<item value="0x0800">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@040b = 00000011</action>
</script>
<script state="change">
<action>maincpu.mw@040c = param</action>
</script>
<script state="off">
<action>maincpu.md@040b = e5e15bed</action>
</script>
</cheat>
"timer speed" : add new.
Code: Select all
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@0027 = 7f80</action>
<action>maincpu.mq@7f80 = 2847b801dbe10021</action>
<action>maincpu.mq@7f88 = fefe350120fdfefa</action>
<action>maincpu.mq@7f90 = 3e0420fbfe340120</action>
<action>maincpu.mq@7f98 = 3e0520f7fe0618f0</action>
<action>maincpu.mq@7fa0 = 03207ffe78778610</action>
<action>maincpu.mq@7fa8 = af0420dffe05187e</action>
<action>maincpu.mq@7fb0 = c7c7c7ce18009bcd</action>
<!--
7f80 | 21 00 e1 : ld hl,$E100 // sound code address
7f83 | db 01 : in a,($01) // read input
7f85 | b8 : cp b
7f86 | 47 : ld b,a
7f87 | 28 fa : jr z,$7F83
7f89 | fe fd : cp $FD
7f8b | 20 01 : jr nz,$7F8E
7f8d | 35 : dec (hl) // decrease code -01
7f8e | fe fe : cp $FE
7f90 | 20 01 : jr nz,$7F93
7f92 | 34 : inc (hl) // increase code +01
7f93 | fe fb : cp $FB
7f95 | 20 04 : jr nz,$7F9B
7f97 | 3e f0 : ld a,$F0 // decrease code -10
7f99 | 18 06 : jr $7FA1
7f9b | fe f7 : cp $F7
7f9d | 20 05 : jr nz,$7FA4
7f9f | 3e 10 : ld a,$10 // increase code +10
7fa1 | 86 : add a,(hl)
7fa2 | 77 : ld (hl),a
7fa3 | 78 : ld a,b
7fa4 | fe 7f : cp $7F
7fa6 | 20 03 : jr nz,$7FAB
7fa8 | 7e : ld a,(hl) // play sound
7fa9 | 18 05 : jr $7FB0
7fab | fe df : cp $DF
7fad | 20 04 : jr nz,$7FB3
7faf | af : xor a // stop sound
7fb0 | cd 9b 00 : call $009B // send sound code
7fb3 | 18 ce : jr $7F83
-->
</script>
<script state="run">
<output format="----- lode runner 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@e100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0027 = 25cf</action>
<action>maincpu.mq@7f80 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f88 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f90 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7f98 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7fa0 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7fa8 = c7c7c7c7c7c7c7c7</action>
<action>maincpu.mq@7fb0 = c7c7c7c7c7c7c7c7</action>
</script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 845 Joined: Tue Dec 01, 2020 1:24 pm
Post
by jman » Sat Feb 10, 2024 8:18 am
ldrun.xml
Code: Select all
<!-- Lode Runner (set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2ECD = C9</action>
<action>maincpu.mb@2EEC = C9</action>
<action>maincpu.mb@2F08 = C9</action>
</script>
<script state="off">
<action>maincpu.mb@2ECD = D0</action>
<action>maincpu.mb@2EEC = D0</action>
<action>maincpu.mb@2F08 = D0</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@0D40 = 18</action> <!-- left -->
<action>maincpu.mb@0D7E = 18</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@0D40 = 20</action>
<action>maincpu.mb@0D7E = 20</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter>
<item value="0x000a">01 (slow)</item>
<item value="0x0014">02 </item>
<item value="0x001e">03 </item>
<item value="0x0028">04 </item>
<item value="0x0032">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@0D5A = -param</action> <!-- left-->
<action>maincpu.mw@0D99 = param</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mw@0D5A = FFEC</action>
<action>maincpu.mw@0D99 = 0014</action>
</script>
</cheat>
<cheat desc="invisible ladder">
<script state="on">
<action>maincpu.mb@0E61 = 10 </action> <!-- up -->
<action>maincpu.mb@0EA0 = C3 </action>
<action>maincpu.mb@0EC7 = 18 </action> <!-- down -->
<action>maincpu.mw@0BB7 = 7F70 </action>
<action>maincpu.mq@7F70 = AF02280CE6E44D3A</action>
<action>maincpu.mq@7F78 = C7C7C7C92E8DCDC9</action>
<!--
7F70 | 3A 4D E4 : ld a,($E44D)
7F73 | E6 0C : and $0C
7F75 | 28 02 : jr z,$7F79
7F77 | AF : xor a
7F78 | C9 : ret
7F79 | CD 8D 2E : call $2E8D
7F7C | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mb@0E61 = 14 </action>
<action>maincpu.mb@0EA0 = CA </action>
<action>maincpu.mb@0EC7 = 20 </action>
<action>maincpu.mw@0BB7 = 2E8D </action>
<action>maincpu.mq@7F70 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7F78 = C7C7C7C7C7C7C7C7</action>
</script>
</cheat>
<cheat desc="no stolen gold">
<script state="on">
<action>maincpu.mb@1B6A = C9</action>
</script>
<script state="off">
<action>maincpu.mb@1B6A = C0</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0010">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0100">03 </item>
<item value="0x0400">04 </item>
<item value="0x0800">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@040B = 00000011</action>
</script>
<script state="change">
<action>maincpu.mw@040C = param</action>
</script>
<script state="off">
<action>maincpu.md@040B = E5E15BED</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@0027 = 7F80 </action>
<action>maincpu.mq@7F80 = 2847B801DBE00021</action>
<action>maincpu.mq@7F88 = FEFE350120FDFEFA</action>
<action>maincpu.mq@7F90 = 3E0420FBFE340120</action>
<action>maincpu.mq@7F98 = 3E0520F7FE0618F0</action>
<action>maincpu.mq@7FA0 = 03207FFE78778610</action>
<action>maincpu.mq@7FA8 = AF0420DFFE05187E</action>
<action>maincpu.mq@7FB0 = C7C7C7CE18009BCD</action>
<!--
7F80 | 21 00 E0 : ld hl,$E000 // sound code address
7F83 | DB 01 : in a,($01) // read input
7F85 | B8 : cp b
7F86 | 47 : ld b,a
7F87 | 28 FA : jr z,$7F83
7F89 | FE FD : cp $FD
7F8B | 20 01 : jr nz,$7F8E
7F8D | 35 : dec (hl) // decrease code -01
7F8E | FE FE : cp $FE
7F90 | 20 01 : jr nz,$7F93
7F92 | 34 : inc (hl) // increase code +01
7F93 | FE FB : cp $FB
7F95 | 20 04 : jr nz,$7F9B
7F97 | 3E F0 : ld a,$F0 // decrease code -10
7F99 | 18 06 : jr $7FA1
7F9B | FE F7 : cp $F7
7F9D | 20 05 : jr nz,$7FA4
7F9F | 3E 10 : ld a,$10 // increase code +10
7FA1 | 86 : add a,(hl)
7FA2 | 77 : ld (hl),a
7FA3 | 78 : ld a,b
7FA4 | FE 7F : cp $7F
7FA6 | 20 03 : jr nz,$7FAB
7FA8 | 7E : ld a,(hl) // play sound
7FA9 | 18 05 : jr $7FB0
7FAB | FE DF : cp $DF
7FAD | 20 04 : jr nz,$7FB3
7FAF | AF : xor a // stop sound
7FB0 | CD 9B 00 : call $009B // send sound code
7FB3 | 18 CE : jr $7F83
-->
</script>
<script state="run">
<output format="----- lode runner 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0027 = 25CF </action>
<action>maincpu.mq@7F80 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7F88 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7F90 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7F98 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FA0 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FA8 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FB0 = C7C7C7C7C7C7C7C7</action>
</script>
</cheat>
</mamecheat>
ldruna.xml
Code: Select all
<!-- Lode Runner (set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2ECD = C9</action>
<action>maincpu.mb@2EEC = C9</action>
<action>maincpu.mb@2F08 = C9</action>
</script>
<script state="off">
<action>maincpu.mb@2ECD = D0</action>
<action>maincpu.mb@2EEC = D0</action>
<action>maincpu.mb@2F08 = D0</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mb@0D40 = 18</action> <!-- left -->
<action>maincpu.mb@0D7E = 18</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mb@0D40 = 20</action>
<action>maincpu.mb@0D7E = 20</action>
</script>
</cheat>
<cheat desc="walk speed">
<parameter>
<item value="0x000a">01 (slow)</item>
<item value="0x0014">02 </item>
<item value="0x001e">03 </item>
<item value="0x0028">04 </item>
<item value="0x0032">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@0D5A = -param</action> <!-- left-->
<action>maincpu.mw@0D99 = param</action> <!-- right -->
</script>
<script state="off">
<action>maincpu.mw@0D5A = FFEC</action>
<action>maincpu.mw@0D99 = 0014</action>
</script>
</cheat>
<cheat desc="invisible ladder">
<script state="on">
<action>maincpu.mb@0E61 = 10 </action> <!-- up -->
<action>maincpu.mb@0EA0 = C3 </action>
<action>maincpu.mb@0EC7 = 18 </action> <!-- down -->
<action>maincpu.mw@0BB7 = 7F80 </action>
<action>maincpu.mq@7F80 = AF02280CE6E44D3A</action>
<action>maincpu.mq@7F88 = C7C7C7C92E8DCDC9</action>
<!--
7F80 | 3A 4D E4 : ld a,($E44D)
7F83 | E6 0C : and $0C
7F85 | 28 02 : jr z,$7F89
7F87 | AF : xor a
7F88 | C9 : ret
7F89 | CD 8D 2E : call $2E8D
7F8C | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mb@0E61 = 14 </action>
<action>maincpu.mb@0EA0 = CA </action>
<action>maincpu.mb@0EC7 = 20 </action>
<action>maincpu.mw@0BB7 = 2E8D </action>
<action>maincpu.mq@7F80 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7F88 = C7C7C7C7C7C7C7C7</action>
</script>
</cheat>
<cheat desc="no stolen gold">
<script state="on">
<action>maincpu.mb@1B6A = C9</action>
</script>
<script state="off">
<action>maincpu.mb@1B6A = C0</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0010">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0100">03 </item>
<item value="0x0400">04 </item>
<item value="0x0800">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@040D = 00000011</action>
</script>
<script state="change">
<action>maincpu.mw@040E = param</action>
</script>
<script state="off">
<action>maincpu.md@040D = E5E15BED</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@0027 = 7F90 </action>
<action>maincpu.mq@7F90 = 2847B801DBE00021</action>
<action>maincpu.mq@7F98 = FEFE350120FDFEFA</action>
<action>maincpu.mq@7FA0 = 3E0420FBFE340120</action>
<action>maincpu.mq@7FA8 = 3E0520F7FE0618F0</action>
<action>maincpu.mq@7FB0 = 03207FFE78778610</action>
<action>maincpu.mq@7FB8 = AF0420DFFE05187E</action>
<action>maincpu.mq@7FC0 = C7C7C7CE18009DCD</action>
<!--
7F90 | 21 00 E0 : ld hl,$E000 // sound code address
7F93 | DB 01 : in a,($01) // read input
7F95 | B8 : cp b
7F96 | 47 : ld b,a
7F97 | 28 FA : jr z,$7F93
7F99 | FE FD : cp $FD
7F9B | 20 01 : jr nz,$7F9E
7F9D | 35 : dec (hl) // decrease code -01
7F9E | FE FE : cp $FE
7FA0 | 20 01 : jr nz,$7FA3
7FA2 | 34 : inc (hl) // increase code +01
7FA3 | FE FB : cp $FB
7FA5 | 20 04 : jr nz,$7FAB
7FA7 | 3E F0 : ld a,$F0 // decrease code -10
7FA9 | 18 06 : jr $7FA1
7FAB | FE F7 : cp $F7
7FAD | 20 05 : jr nz,$7FB4
7FAF | 3E 10 : ld a,$10 // increase code +10
7FB1 | 86 : add a,(hl)
7FB2 | 77 : ld (hl),a
7FB3 | 78 : ld a,b
7FB4 | FE 7F : cp $7F
7FB6 | 20 03 : jr nz,$7FBB
7FB8 | 7E : ld a,(hl) // play sound
7FB9 | 18 05 : jr $7FC0
7FBB | FE DF : cp $DF
7FBD | 20 04 : jr nz,$7FC3
7FBF | AF : xor a // stop sound
7FC0 | CD 9D 00 : call $009D // send sound code
7FC3 | 18 CE : jr $7F93
-->
</script>
<script state="run">
<output format="----- lode runner 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0027 = 25CF </action>
<action>maincpu.mq@7F90 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7F98 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FA0 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FA8 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FB0 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FB8 = C7C7C7C7C7C7C7C7</action>
<action>maincpu.mq@7FC0 = C7C7C7C7C7C7C7C7</action>
</script>
</cheat>
</mamecheat>