Code: Select all
<cheat desc="no hit (wip)">
<script state="on">
<action>slot:cart:rom.mb@25bc = da</action> <!-- bullet -->
<action>slot:cart:rom.mb@25eb = 55</action> <!-- P1 tank -->
<action>slot:cart:rom.mb@25f8 = 55</action> <!-- P2 tank -->
<action>slot:cart:rom.mb@2632 = 55</action> <!-- P1 grenade -->
<action>slot:cart:rom.mb@263d = 55</action> <!-- P2 grenade -->
</script>
<script state="off">
<action>slot:cart:rom.mb@25bc = fa</action>
<action>slot:cart:rom.mb@25eb = 56</action>
<action>slot:cart:rom.mb@25f8 = 56</action>
<action>slot:cart:rom.mb@2632 = 56</action>
<action>slot:cart:rom.mb@263d = 56</action>
</script>
</cheat>
<cheat desc="auto fire (wip)">
<script state="on">
<action>slot:cart:rom.md@1239 = 4f0010cd</action> <!-- P1 -->
<action>slot:cart:rom.md@14ed = 4f001bcd</action> <!-- P2 -->
<action>slot:cart:rom.mq@0010 = 643a4710e6c1633a</action>
<action>slot:cart:rom.mq@0018 = 10e6c1653ac9b0c1</action>
<action>slot:cart:rom.mq@0020 = ffffc9b0c1663a47</action>
<!--
0010 | 3a 63 c1 : ld a,($c163) // P1
0013 | e6 10 : and $10
0015 | 47 : ld b,a
0016 | 3a 64 c1 : ld a,($c164)
0019 | b0 : or b
001a | c9 : ret
001b | 3a 65 c1 : ld a,($c165) // P2
001e | e6 10 : and $10
0020 | 47 : ld b,a
0021 | 3a 66 c1 : ld a,($c166)
0024 | b0 : or b
0025 | c9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@1239 = 4fc1643a</action>
<action>slot:cart:rom.md@14ed = 4fc1663a</action>
<action>slot:cart:rom.mq@0010 = ffffffffffffffff</action>
<action>slot:cart:rom.mq@0018 = ffffffffffffffff</action>
<action>slot:cart:rom.mq@0020 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="walk through wall (wip)">
<script state="on">
<action>slot:cart:rom.mw@2963 = 013e</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@2963 = bedb</action>
</script>
</cheat>
<cheat desc="P1 player speed (wip)">
<parameter>
<item value="0x00">01 (slow)</item>
<item value="0x01">02 </item>
<item value="0x02">03 </item>
<item value="0x03">04 </item>
<item value="0x04">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@12a1 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@12bc = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@12fc = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@12fe = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@137b = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@13ad = param </action> <!-- right -->
<action>slot:cart:rom.mb@13df = param </action> <!-- down -->
<action>slot:cart:rom.mb@13f9 = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@13fb = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@142f = param </action> <!-- lower-right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@12a1 = ff</action>
<action>slot:cart:rom.mb@12bc = ff</action>
<action>slot:cart:rom.mb@12fc = ff</action>
<action>slot:cart:rom.mb@12fe = 00</action>
<action>slot:cart:rom.mb@137b = ff</action>
<action>slot:cart:rom.mb@13ad = 00</action>
<action>slot:cart:rom.mb@13df = 00</action>
<action>slot:cart:rom.mb@13f9 = 00</action>
<action>slot:cart:rom.mb@13fb = ff</action>
<action>slot:cart:rom.mb@142f = 00</action>
</script>
</cheat>
<cheat desc="P2 player speed (wip)">
<parameter>
<item value="0x00">01 (slow)</item>
<item value="0x01">02 </item>
<item value="0x02">03 </item>
<item value="0x03">04 </item>
<item value="0x04">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@1555 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@1570 = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@15b0 = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@15b2 = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@162f = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@1661 = param </action> <!-- right -->
<action>slot:cart:rom.mb@1693 = param </action> <!-- down -->
<action>slot:cart:rom.mb@16ac = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@16ae = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@16e2 = param </action> <!-- lower-right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@1555 = ff</action>
<action>slot:cart:rom.mb@1570 = ff</action>
<action>slot:cart:rom.mb@15b0 = ff</action>
<action>slot:cart:rom.mb@15b2 = 00</action>
<action>slot:cart:rom.mb@162f = ff</action>
<action>slot:cart:rom.mb@1661 = 00</action>
<action>slot:cart:rom.mb@1693 = 00</action>
<action>slot:cart:rom.mb@16ac = 00</action>
<action>slot:cart:rom.mb@16ae = ff</action>
<action>slot:cart:rom.mb@16e2 = 00</action>
</script>
</cheat>
<cheat desc="information display (wip)">
<script state="run">
<output format="P1 <%2X> [%2X] %6X HighScore %6X P2 <%2X> [%2X] %6X" line="1" align="center">
<argument>tobcd(maincpu.pb@c11f) </argument>
<argument>tobcd(maincpu.pb@c121) </argument>
<argument>(maincpu.pb@c11b * 100000) + (maincpu.pb@c11a * 1000) + (maincpu.pb@c119*10)</argument>
<argument>(maincpu.pb@c118 * 100000) + (maincpu.pb@c117 * 1000) + (maincpu.pb@c116*10)</argument>
<argument>tobcd(maincpu.pb@c120) </argument>
<argument>tobcd(maincpu.pb@c122) </argument>
<argument>(maincpu.pb@c11e * 100000) + (maincpu.pb@c11d * 1000) + (maincpu.pb@c11c*10)</argument>
</output>
</script>
</cheat>
<cheat desc="sound test mode (wip)">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>slot:cart:rom.mq@00d5 = bf00c3ffff32023e</action>
<action>slot:cart:rom.mq@bf00 = 061177803ec10021</action>
<action>slot:cart:rom.mq@bf08 = fec847b8dcdbd5bf</action>
<action>slot:cart:rom.mq@bf10 = 0120f7fe350120fb</action>
<action>slot:cart:rom.mq@bf18 = 04187e0320effe34</action>
<action>slot:cart:rom.mq@bf20 = c9dc0032afc0dffe</action>
<!--
00d5 | 3e 02 : ld a,$02
00d7 | 32 ff ff : ld ($ffff),a // set bank
00da | c3 00 bf : jp $bf00
bf00 | 21 00 c1 : ld hl,$c100 // initialize sound code
bf03 | 3e 80 : ld a,$80
bf05 | 77 : ld (hl),a
bf06 | 11 06 bf : ld de,$bf06
bf09 | d5 : push de
bf0a | db dc : in a,($dc) // read input
bf0c | b8 : cp b
bf0d | 47 : ld b,a
bf0e | c8 : ret z
bf0f | fe fb : cp $fb
bf11 | 20 01 : jr nz,$bf14
bf13 | 35 : dec (hl) // decrease code
bf14 | fe f7 : cp $f7
bf16 | 20 01 : jr nz,$bf19
bf18 | 34 : inc (hl) // increase code
bf19 | fe ef : cp $ef
bf1b | 20 03 : jr nz,$bf20
bf1d | 7e : ld a,(hl) // play sound
bf1e | 18 04 : jr $bf24
bf20 | fe df : cp $df
bf22 | c0 : ret nz
bf23 | af : xor a // stop sound
bf24 | 32 00 dc : ld ($dc00),a // send sound code
bf27 | c9 : ret
-->
</script>
<script state="run">
<output format="----- ashura 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@c100</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mq@00d5 = 7582c24fcbc1103a</action>
<action>slot:cart:rom.mq@bf00 = ffffffffffffffff</action>
<action>slot:cart:rom.mq@bf08 = ffffffffffffffff</action>
<action>slot:cart:rom.mq@bf10 = ffffffffffffffff</action>
<action>slot:cart:rom.mq@bf18 = ffffffffffffffff</action>
<action>slot:cart:rom.mq@bf20 = ffffffffffffffff</action>
</script>
</cheat>