Page 1 of 1
[akazukin] Akazukin
Posted: Fri Mar 24, 2023 11:51 am
by jman
akazukin will be added in 0.253. Basic RAM cheats are the following.
Code: Select all
<cheat desc="infinite credits">
<script state="run">
<action>maincpu.pb@ff7f = 99</action>
</script>
</cheat>
<cheat desc="infinite lives">
<script state="run">
<action>maincpu.pb@ff45 = 99</action>
</script>
</cheat>
<cheat desc="infinite ammo">
<script state="run">
<action>maincpu.pb@f88b = 04</action>
</script>
</cheat>
<cheat desc="always get 100% bonus">
<script state="run">
<action>maincpu.pw@feb7 = 9999</action> <!-- number of hits -->
<action>maincpu.pw@feba = 9999</action> <!-- number of shots -->
</script>
</cheat>
<cheat desc="starting level P1">
<parameter min="01" max="16" step="01" />
<script state="run">
<action condition="maincpu.pb@ff42 == 01">maincpu.pb@ff42 = param</action>
</script>
</cheat>
<cheat desc="starting level P2">
<parameter min="01" max="16" step="01" />
<script state="run">
<action condition="maincpu.pb@fec1 == 01">maincpu.pb@fec1 = param</action>
</script>
</cheat>
[akazukin] Akazukin (update)
Posted: Sat Mar 25, 2023 9:10 am
by jman
all ROM codes are wip.
Code: Select all
<cheat desc="no hit (wip)">
<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="auto fire (wip)">
<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 (wip)">
<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 xx : ld b,$xx
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 (wip)">
<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="sound test mode (wip)">
<!-- 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
-->
<action>sub.mb@02d4 = 00</action> <!-- stop sfx and music at the same time -->
<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="----- akazukin 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="up : increase code +10" line="13" align="center" />
<output format="down : decrease 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@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>
- "no hit" : Akazukin stops walking when she crosses over on broken right bridge. In that case, the game will be stuck unless you turn this code OFF.
- "sound test mode" : You can't stop specific sfx (code 0x01) by sound stop button.
[akazukin] Akazukin
Posted: Wed Dec 18, 2024 9:35 am
by jman
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).