RAM code.
Code: Select all
<!-- Akazukin (Japan) -->
<mamecheat version="1">
<cheat desc="Finish this Level Now">
<script state="on">
<action>maincpu.pb@FF08 = 03</action>
<action>maincpu.pb@F87C = maincpu.pb@FFF3</action>
<action>maincpu.pb@F87D = maincpu.pb@FFD2</action>
<action>maincpu.pw@F87F = 1FAF</action>
<action>maincpu.ib@0010 = 12</action>
</script>
</cheat>
</mamecheat>
Also update ROM codes collection.
Code: Select all
<!-- Akazukin (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<comment>you can't cross over on right broken bridge</comment>
<script state="on">
<action>maincpu.mb@2AFA = 18 </action> <!-- wood -->
<action>maincpu.mb@2C80 = C9 </action> <!-- river -->
<action>maincpu.mb@42C4 = 00 </action> <!-- bullet -->
<action>maincpu.mw@4341 = 0218</action> <!-- wolf, bee -->
</script>
<script state="off">
<action>maincpu.mb@2AFA = 30 </action>
<action>maincpu.mb@2C80 = 7E </action>
<action>maincpu.mb@42C4 = 02 </action>
<action>maincpu.mw@4341 = C9AF</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.mb@18F8 = 00</action> <!-- quick reload -->
<action>maincpu.mb@2E80 = E1</action> <!-- button check -->
</script>
<script state="off">
<action>maincpu.mb@18F8 = D0</action>
<action>maincpu.mb@2E80 = D5</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<!-- left -->
<action>maincpu.mq@0BA1 = C10BE3CDC50006F5</action>
<action>maincpu.mq@0BA9 = FE00000000F1F910</action>
<!--
0BA1 | F5 : push af
0BA2 | 06 xx : ld b,$xx
0BA4 | C5 : push bc
0BA5 | CD E3 0B : call $0BE3
0BA8 | C1 : pop bc
0BA9 | 10 F9 : djnz $0BA4
0BAB | F1 : pop af
0BAC | 00 : nop
0BAD | 00 : nop
0BAE | 00 : nop
0BAF | 00 : nop
-->
<!-- right -->
<action>maincpu.mq@0BB4 = C10BC7CDC50006F5</action>
<action>maincpu.mq@0BBC = E100000000F1F910</action>
<!--
0BB4 | F5 : push af
0BB5 | 06 05 : ld b,$05
0BB7 | C5 : push bc
0BB8 | CD C7 0B : call $0BC7
0BBB | C1 : pop bc
0BBC | 10 F9 : djnz $0BB7
0BBE | F1 : pop af
0BBF | 00 : nop
0BC0 | 00 : nop
0BC1 | 00 : nop
0BC2 | 00 : nop
-->
</script>
<script state="change">
<action>maincpu.mb@0BA3 = param</action>
<action>maincpu.mb@0BB6 = param</action>
</script>
<script state="off">
<action>maincpu.mq@0BA1 = E6F83C3A470BE3CC</action>
<action>maincpu.mq@0BA9 = FE0BE3CC7800FE07</action>
<action>maincpu.mq@0BB4 = E6F83C3A470BC7CC</action>
<action>maincpu.mq@0BBC = E10BC7CC7800FE07</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2ECC = param</action>
</script>
<script state="off">
<action>maincpu.mb@2ECC = 04</action>
</script>
</cheat>
<cheat desc="easy level finish">
<comment>press start button to finish current level</comment>
<script state="on">
<action>maincpu.mw@014C = 5DB0 </action>
<action>maincpu.mw@016F = 5DB5 </action>
<action>maincpu.mq@5DB0 = 0239CD0318019ACD</action>
<action>maincpu.mq@5DB8 = 797D75CD4FE00021</action>
<action>maincpu.mq@5DC0 = 5ECB021856CB0420</action>
<action>maincpu.mq@5DC8 = C5F57910D3123EC8</action>
<action>maincpu.mq@5DD0 = 00000000202AC3E5</action>
<!--
5DB0 | CD 9A 01 : call $019A
5DB3 | 18 03 : jr $5DB8
5DB5 | CD 39 02 : call $0239
5DB8 | 21 00 E0 : ld hl,$E000
5DBB | 4F : ld c,a
5DBC | CD 75 7D : call $7D75 // check player
5DBF | 79 : ld a,c
5DC0 | 20 04 : jr nz,$5DC6
5DC2 | CB 56 : bit 2,(hl) // check 1P start button
5DC4 | 18 02 : jr $5DC8
5DC6 | CB 5E : bit 3,(hl) // check 2P start button
5DC8 | C8 : ret z
5DC9 | 3E 12 : ld a,$12
5DCB | D3 10 : out ($10),a
5DCD | 79 : ld a,c
5DCE | F5 : push af
5DCF | C5 : push bc
5DD0 | E5 : push hl
5DD1 | C3 2A 20 : jp $202A
-->
</script>
<script state="off">
<action>maincpu.mw@014C = 019A </action>
<action>maincpu.mw@016F = 0239 </action>
<action>maincpu.mq@5DB0 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5DB8 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5DC0 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5DC8 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5DD0 = FF00FF00FF00FF00</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop sfx code 0x01 by stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@1149 = 5D70 </action>
<action>maincpu.mq@5D70 = 47B8E8003AF80021</action>
<action>maincpu.mq@5D78 = FE35012001FEF928</action>
<action>maincpu.mq@5D80 = 042008FE34012002</action>
<action>maincpu.mq@5D88 = 052004FE0618F03E</action>
<action>maincpu.mq@5D90 = 2010FE787786103E</action>
<action>maincpu.mq@5D98 = 042020FE06187E03</action>
<action>maincpu.mq@5DA0 = FF00CD1810D3143E</action>
<!--
5D70 | 21 00 F8 : ld hl,$F800 // sound code address
5D73 | 3A 00 E8 : ld a,($E800) // read input
5D76 | B8 : cp b
5D77 | 47 : ld b,a
5D78 | 28 F9 : jr z,$5D73
5D7A | FE 01 : cp $01
5D7C | 20 01 : jr nz,$5D7F
5D7E | 35 : dec (hl) // decrease code -01
5D7F | FE 02 : cp $02
5D81 | 20 01 : jr nz,$5D84
5D83 | 34 : inc (hl) // increase code +01
5D84 | FE 08 : cp $08
5D86 | 20 04 : jr nz,$5D8C
5D88 | 3E F0 : ld a,$F0 // decrease code -10
5D8A | 18 06 : jr $5D92
5D8C | FE 04 : cp $04
5D8E | 20 05 : jr nz,$5D95
5D90 | 3E 10 : ld a,$10 // increase code +10
5D92 | 86 : add a,(hl)
5D93 | 77 : ld (hl),a
5D94 | 78 : ld a,b
5D95 | FE 10 : cp $10
5D97 | 20 03 : jr nz,$5D9C
5D99 | 7E : ld a,(hl) // play sound
5D9A | 18 06 : jr $5DA2
5D9C | FE 20 : cp $20
5D9E | 20 04 : jr nz,$5DA4
5DA0 | 3E 14 : ld a,$14 // stop sound
5DA2 | D3 10 : out ($10),a // send sound code
5DA4 | 18 CD : jr $5D73
-->
<!-- stop sfx and music at the same time -->
<action>sub.mb@02D4 = 00 </action>
<action>sub.mw@02E6 = 2160 </action>
<action>sub.mq@2160 = 00C904DCCD0013CD</action>
<!--
2160 | CD 13 00 : call $0013
2163 | CD DC 04 : call $04DC
2166 | C9 : ret
-->
</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="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@F800</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@5D70 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5D78 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5D80 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5D88 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5D90 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5D98 = FF00FF00FF00FF00</action>
<action>maincpu.mq@5DA0 = FF00FF00FF00FF00</action>
<action> sub.mb@02D4 = C9 </action>
<action> sub.mw@02E6 = 0013 </action>
<action> sub.mq@2160 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
"easy level finish" : Added new. You can finish current level when you press start button (player 1 : 1P start button, player 2 : 2P start button).