[marioj] Mario Bros.

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.
Post Reply
jman
CheatFinder Lance Corporal
CheatFinder Lance Corporal
Posts: 67
Joined: Tue Dec 01, 2020 1:24 pm

[marioj] Mario Bros.

Post by jman »

Code: Select all

<cheat desc="no hit">
	<script state="on">
		<action>maincpu.mb@53e7 = d2</action> <!-- enemy -->
		<action>maincpu.mb@53eb = d2</action> <!-- fireball 1 -->
		<action>maincpu.mb@247f = 18</action> <!-- fireball 2 -->
		<action>maincpu.mb@11fe = 18</action> <!-- fireball 3 -->
		<action>maincpu.mb@2496 = c9</action> <!-- ice 1 -->
		<action>maincpu.mb@1a2e = c9</action> <!-- ice 2 -->
	</script>
	<script state="off">
		<action>maincpu.mb@53e7 = 8d</action>
		<action>maincpu.mb@53eb = 8d</action>
		<action>maincpu.mb@247f = 28</action>
		<action>maincpu.mb@11fe = 28</action>
		<action>maincpu.mb@2496 = c0</action>
		<action>maincpu.mb@1a2e = d8</action>
	</script>
</cheat>

<cheat desc="player speed">
	<parameter min="0x01" max="0x08" step="0x01" />
	<script state="on">
		<action>maincpu.md@0493 = dd000006</action>
	</script>
	<script state="change">
		<action>maincpu.mb@0494 = param</action>
	</script>
	<script state="off">
		<action>maincpu.md@0493 = dd0646dd</action>
	</script>
</cheat>

<cheat desc="slip level">
	<parameter>
		<item value="0x01">no slip</item>
		<item value="0x10">01</item>
		<item value="0x20">02</item>
		<item value="0x40">03</item>
		<item value="0x80">04</item>
		<item value="0xff">long slip</item>
	</parameter>
	<script state="change">
		<action>maincpu.mb@041f = param</action> <!-- normal floor -->
		<action>maincpu.mb@043b = param</action> <!-- ice floor -->
		<action>maincpu.mb@0cbe = param</action> <!-- bonus floor -->
	</script>
	<script state="off">
		<action>maincpu.mb@041f = 0a</action>
		<action>maincpu.mb@043b = 16</action>
		<action>maincpu.mb@0cbe = 19</action>
	</script>
</cheat>

<cheat desc="multiple jump">
	<script state="on">
		<action>maincpu.md@038f = 4ff740cd</action>
		<action>maincpu.mq@f740 = 062880e64f127edd</action>
		<action>maincpu.mq@f748 = 7edd0177dd7fe679</action>
		<action>maincpu.mw@f750 = c901</action>
		<!--
		038F | cd 40 f7    : call $f740
		f740 | dd 7e 12    : ld   a,(ix+$12)
		f743 | 4f          : ld   c,a
		f744 | e6 80       : and  $80
		f746 | 28 06       : jr   z,$F74e
		f748 | 79          : ld   a,c
		f749 | e6 7f       : and  $7f
		f74b | dd 77 01    : ld   (ix+$01),a
		f74e | dd 7e 01    : ld   a,(ix+$01)
		f751 | C9          : ret
		-->
	</script>
	<script state="off">
		<action>maincpu.md@038F = 4f017edd</action>
		<action>maincpu.mq@f740 = ffffffffffffffff</action>
		<action>maincpu.mq@f748 = ffffffffffffffff</action>
		<action>maincpu.mw@f750 = ffff</action>
	</script>
</cheat>
"no hit" code is improved version of current "invincibility" because it doesn't take care of any ice enemies. But I give up testing to phase 25 so that "no hit" code doesn't work correctly when new enemy appears in later phase.
Post Reply