rygar.xml
Code: Select all
<!-- Rygar (US set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4560 = F8</action>
</script>
<script state="off">
<action>maincpu.mb@4560 = 49</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>maincpu.mw@3D19 = 2770 </action>
<action>maincpu.mw@3D29 = 2770 </action>
<action>maincpu.mw@3F84 = 2770 </action>
<action>maincpu.mq@2770 = C0FEC0D53A2800CD</action>
<action>maincpu.mq@2778 = FFFF9CC9277D21D8</action>
<!--
2770 | CD 00 28 : call $2800
2773 | 3A D5 C0 : ld a,($C0D5)
2776 | FE C0 : cp $C0
2778 | D8 : ret c
2779 | 21 7D 27 : ld hl,$277D
277C | C9 : ret
277D | 9C : - foothold value -
-->
</script>
<script state="off">
<action>maincpu.mw@3D19 = 2800 </action>
<action>maincpu.mw@3D29 = 2800 </action>
<action>maincpu.mw@3F84 = 2800 </action>
<action>maincpu.mq@2770 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2778 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3AAA = CB2780CD </action>
<action>maincpu.mq@2780 = 3A082847CBC0383A</action>
<action>maincpu.mq@2788 = 3AC0563202F6C056</action>
<action>maincpu.mq@2790 = FFFFFFFFFFC9C028</action>
<!--
2780 | 3A 38 C0 : ld a,($C038)
2783 | CB 47 : bit 0,a
2785 | 28 08 : jr z,$278F
2787 | 3A 56 C0 : ld a,($C056)
278A | F6 02 : or $02
278C | 32 56 C0 : ld ($C056),a
278F | 3A 28 C0 : ld a,($C028)
2792 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3AAA = CBC0283A </action>
<action>maincpu.mq@2780 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2788 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2790 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@3ADC = CB27A0CD </action>
<action>maincpu.mq@27A0 = DD042847CBC0563A</action>
<action>maincpu.mq@27A8 = FFC9017EDD8601CB</action>
<!--
27A0 | 3A 56 C0 : ld a,($C056)
27A3 | CB 47 : bit 0,a
27A5 | 28 04 : jr z,$27AB
27A7 | DD CB 01 86 : res 0,(ix+$01)
27AB | DD 7E 01 : ld a,(ix+$01)
27AE | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3ADC = CB017EDD </action>
<action>maincpu.mq@27A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="all items (test)">
<comment>this code doesn't have invincibility barrier</comment>
<script state="on">
<action>maincpu.mb@0984 = C9</action> <!-- penetration -->
<action>maincpu.mb@359A = 00</action> <!-- long range -->
<action>maincpu.mb@3621 = 00</action> <!-- upper attack -->
<action>maincpu.mb@4980 = 18</action> <!-- stamp -->
</script>
<script state="off">
<action>maincpu.mb@0984 = C0</action>
<action>maincpu.mb@359A = 03</action>
<action>maincpu.mb@3621 = 03</action>
<action>maincpu.mb@4980 = 20</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x07">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@4A6D = 18 </action>
<action>maincpu.md@4A7F = 1A27B0CD </action>
<action>maincpu.mq@27B0 = F1022800E6C0C23A</action>
<action>maincpu.mq@27B8 = FFFFFFC912911AC9</action>
<!--
27B0 | 3A C2 C0 : ld a,($C0C2)
27B3 | E6 xx : and $xx
27B5 | 28 02 : jr z,$27B9
27B7 | F1 : pop af
27B8 | C9 : ret
27B9 | 1A : ld a,(de)
27BA | 91 : sub c
27BB | 12 : ld (de),a
27BC | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@27B4 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4A6D = 20 </action>
<action>maincpu.md@4A7F = 1A12911A </action>
<action>maincpu.mq@27B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs/voices by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@109D = 1127C0C3 </action>
<action>maincpu.mq@27C0 = 0707F8013AC10021</action>
<action>maincpu.mq@27C8 = B9B0F8003A470707</action>
<action>maincpu.mq@27D0 = 35012001FEF0284F</action>
<action>maincpu.mq@27D8 = 2004FE34012002FE</action>
<action>maincpu.mq@27E0 = 2008FE0618F03E04</action>
<action>maincpu.mq@27E8 = 10FE797786103E05</action>
<action>maincpu.mq@27F0 = 2020FE05187E0320</action>
<action>maincpu.mq@27F8 = FFC418F80632AF04</action>
<!--
27C0 | 21 00 C1 : ld hl,$C100 // sound code address
27C3 | 3A 01 F8 : ld a,($F801) // read buttons
27C6 | 07 : rlca
27C7 | 07 : rlca
27C8 | 07 : rlca
27C9 | 07 : rlca
27CA | 47 : ld b,a
27CB | 3A 00 F8 : ld a,($F800) // read other inputs
27CE | B0 : or b
27CF | B9 : cp c
27D0 | 4F : ld c,a
27D1 | 28 F0 : jr z,$27C3
27D3 | FE 01 : cp $01
27D5 | 20 01 : jr nz,$27D8
27D7 | 35 : dec (hl) // decrease code -01
27D8 | FE 02 : cp $02
27DA | 20 01 : jr nz,$27DD
27DC | 34 : inc (hl) // increase code +01
27DD | FE 04 : cp $04
27DF | 20 04 : jr nz,$27E5
27E1 | 3E F0 : ld a,$F0 // decrease code -10
27E3 | 18 06 : jr $27EB
27E5 | FE 08 : cp $08
27E7 | 20 05 : jr nz,$27EE
27E9 | 3E 10 : ld a,$10 // increase code +10
27EB | 86 : add a,(hl)
27EC | 77 : ld (hl),a
27ED | 79 : ld a,c
27EE | FE 10 : cp $10
27F0 | 20 03 : jr nz,$27F5
27F2 | 7E : ld a,(hl) // play sound
27F3 | 18 05 : jr $27FA
27F5 | FE 20 : cp $20
27F7 | 20 04 : jr nz,$27FD
27F9 | AF : xor a // stop sound
27FA | 32 06 F8 : ld ($F806),a // send sound code
27FD | 18 C4 : jr $27C3
-->
</script>
<script state="run">
<output format="----- rygar 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@109D = 11123421 </action>
<action>maincpu.mq@27C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27D8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27E8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27F8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@10A0 = 0111C1C3</action>
</script>
<script state="off">
<action>maincpu.md@10A0 = 01C98311</action>
</script>
</cheat>
</mamecheat>
rygar2.xml
Code: Select all
<!-- Rygar (US set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4560 = F8</action>
</script>
<script state="off">
<action>maincpu.mb@4560 = 49</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>maincpu.mw@3D19 = 2750 </action>
<action>maincpu.mw@3D29 = 2750 </action>
<action>maincpu.mw@3F84 = 2750 </action>
<action>maincpu.mq@2750 = C0FEC0D53A2800CD</action>
<action>maincpu.mq@2758 = FFFF9CC9275D21D8</action>
<!--
2750 | CD 00 28 : call $2800
2753 | 3A D5 C0 : ld a,($C0D5)
2756 | FE C0 : cp $C0
2758 | D8 : ret c
2759 | 21 5D 27 : ld hl,$275D
275C | C9 : ret
275D | 9C : - foothold value -
-->
</script>
<script state="off">
<action>maincpu.mw@3D19 = 2800 </action>
<action>maincpu.mw@3D29 = 2800 </action>
<action>maincpu.mw@3F84 = 2800 </action>
<action>maincpu.mq@2750 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2758 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3AAA = CB2760CD </action>
<action>maincpu.mq@2760 = 3A082847CBC0383A</action>
<action>maincpu.mq@2768 = 3AC0563202F6C056</action>
<action>maincpu.mq@2770 = FFFFFFFFFFC9C028</action>
<!--
2760 | 3A 38 C0 : ld a,($C038)
2763 | CB 47 : bit 0,a
2765 | 28 08 : jr z,$276F
2767 | 3A 56 C0 : ld a,($C056)
276A | F6 02 : or $02
276C | 32 56 C0 : ld ($C056),a
276F | 3A 28 C0 : ld a,($C028)
2772 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3AAA = CBC0283A </action>
<action>maincpu.mq@2760 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2768 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2770 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@3ADC = CB2780CD </action>
<action>maincpu.mq@2780 = DD042847CBC0563A</action>
<action>maincpu.mq@2788 = FFC9017EDD8601CB</action>
<!--
2780 | 3A 56 C0 : ld a,($C056)
2783 | CB 47 : bit 0,a
2785 | 28 04 : jr z,$278B
2787 | DD CB 01 86 : res 0,(ix+$01)
278B | DD 7E 01 : ld a,(ix+$01)
278E | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3ADC = CB017EDD </action>
<action>maincpu.mq@2780 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2788 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="all items (test)">
<comment>this code doesn't have invincibility barrier</comment>
<script state="on">
<action>maincpu.mb@0984 = C9</action> <!-- penetration -->
<action>maincpu.mb@359A = 00</action> <!-- long range -->
<action>maincpu.mb@3621 = 00</action> <!-- upper attack -->
<action>maincpu.mb@4980 = 18</action> <!-- stamp -->
</script>
<script state="off">
<action>maincpu.mb@0984 = C0</action>
<action>maincpu.mb@359A = 03</action>
<action>maincpu.mb@3621 = 03</action>
<action>maincpu.mb@4980 = 20</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x07">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@4A6D = 18 </action>
<action>maincpu.md@4A7F = 1A2790CD </action>
<action>maincpu.mq@2790 = F1022800E6C0C23A</action>
<action>maincpu.mq@2798 = FFFFFFC912911AC9</action>
<!--
2790 | 3A C2 C0 : ld a,($C0C2)
2793 | E6 xx : and $xx
2795 | 28 02 : jr z,$2799
2797 | F1 : pop af
2798 | C9 : ret
2799 | 1A : ld a,(de)
279A | 91 : sub c
279B | 12 : ld (de),a
279C | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@2794 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4A6D = 20 </action>
<action>maincpu.md@4A7F = 1A12911A </action>
<action>maincpu.mq@2790 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2798 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs/voices by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@109D = 1127A0C3 </action>
<action>maincpu.mq@27A0 = 0707F8013AC10021</action>
<action>maincpu.mq@27A8 = B9B0F8003A470707</action>
<action>maincpu.mq@27B0 = 35012001FEF0284F</action>
<action>maincpu.mq@27B8 = 2004FE34012002FE</action>
<action>maincpu.mq@27C0 = 2008FE0618F03E04</action>
<action>maincpu.mq@27C8 = 10FE797786103E05</action>
<action>maincpu.mq@27D0 = 2020FE05187E0320</action>
<action>maincpu.mq@27D8 = FFC418F80632AF04</action>
<!--
27A0 | 21 00 C1 : ld hl,$C100 // sound code address
27A3 | 3A 01 F8 : ld a,($F801) // read buttons
27A6 | 07 : rlca
27A7 | 07 : rlca
27A8 | 07 : rlca
27A9 | 07 : rlca
27AA | 47 : ld b,a
27AB | 3A 00 F8 : ld a,($F800) // read other inputs
27AE | B0 : or b
27AF | B9 : cp c
27B0 | 4F : ld c,a
27B1 | 28 F0 : jr z,$27A3
27B3 | FE 01 : cp $01
27B5 | 20 01 : jr nz,$27B8
27B7 | 35 : dec (hl) // decrease code -01
27B8 | FE 02 : cp $02
27BA | 20 01 : jr nz,$27BD
27BC | 34 : inc (hl) // increase code +01
27BD | FE 04 : cp $04
27BF | 20 04 : jr nz,$27C5
27C1 | 3E F0 : ld a,$F0 // decrease code -10
27C3 | 18 06 : jr $27CB
27C5 | FE 08 : cp $08
27C7 | 20 05 : jr nz,$27CE
27C9 | 3E 10 : ld a,$10 // increase code +10
27CB | 86 : add a,(hl)
27CC | 77 : ld (hl),a
27CD | 79 : ld a,c
27CE | FE 10 : cp $10
27D0 | 20 03 : jr nz,$27D5
27D2 | 7E : ld a,(hl) // play sound
27D3 | 18 05 : jr $27DA
27D5 | FE 20 : cp $20
27D7 | 20 04 : jr nz,$27DD
27D9 | AF : xor a // stop sound
27DA | 32 06 F8 : ld ($F806),a // send sound code
27DD | 18 C4 : jr $27A3
-->
</script>
<script state="run">
<output format="----- rygar 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@109D = 11123421 </action>
<action>maincpu.mq@27C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27D8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27E8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27F8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@10A0 = 0111C1C3</action>
</script>
<script state="off">
<action>maincpu.md@10A0 = 01C98311</action>
</script>
</cheat>
</mamecheat>
rygar3.xml
Code: Select all
<!-- Rygar (US set 3 Old Version) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4560 = F8</action>
</script>
<script state="off">
<action>maincpu.mb@4560 = 49</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>maincpu.mw@3D19 = 2740 </action>
<action>maincpu.mw@3D29 = 2740 </action>
<action>maincpu.mw@3F84 = 2740 </action>
<action>maincpu.mq@2740 = C0FEC0D53A2800CD</action>
<action>maincpu.mq@2748 = FFFF9CC9274D21D8</action>
<!--
2740 | CD 00 28 : call $2800
2743 | 3A D5 C0 : ld a,($C0D5)
2746 | FE C0 : cp $C0
2748 | D8 : ret c
2749 | 21 7D 27 : ld hl,$274D
274C | C9 : ret
274D | 9C : - foothold value -
-->
</script>
<script state="off">
<action>maincpu.mw@3D19 = 2800 </action>
<action>maincpu.mw@3D29 = 2800 </action>
<action>maincpu.mw@3F84 = 2800 </action>
<action>maincpu.mq@2740 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2748 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3AAA = CB2750CD </action>
<action>maincpu.mq@2750 = 3A082847CBC0383A</action>
<action>maincpu.mq@2758 = 3AC0563202F6C056</action>
<action>maincpu.mq@2760 = FFFFFFFFFFC9C028</action>
<!--
2750 | 3A 38 C0 : ld a,($C038)
2753 | CB 47 : bit 0,a
2755 | 28 08 : jr z,$275F
2757 | 3A 56 C0 : ld a,($C056)
275A | F6 02 : or $02
275C | 32 56 C0 : ld ($C056),a
275F | 3A 28 C0 : ld a,($C028)
2762 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3AAA = CBC0283A </action>
<action>maincpu.mq@2750 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2758 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2760 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@3ADC = CB2770CD </action>
<action>maincpu.mq@2770 = DD042847CBC0563A</action>
<action>maincpu.mq@2778 = FFC9017EDD8601CB</action>
<!--
2770 | 3A 56 C0 : ld a,($C056)
2773 | CB 47 : bit 0,a
2775 | 28 04 : jr z,$277B
2777 | DD CB 01 86 : res 0,(ix+$01)
277B | DD 7E 01 : ld a,(ix+$01)
277E | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3ADC = CB017EDD </action>
<action>maincpu.mq@2770 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2778 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="all items (test)">
<comment>this code doesn't have invincibility barrier</comment>
<script state="on">
<action>maincpu.mb@0984 = C9</action> <!-- penetration -->
<action>maincpu.mb@359A = 00</action> <!-- long range -->
<action>maincpu.mb@3621 = 00</action> <!-- upper attack -->
<action>maincpu.mb@4980 = 18</action> <!-- stamp -->
</script>
<script state="off">
<action>maincpu.mb@0984 = C0</action>
<action>maincpu.mb@359A = 03</action>
<action>maincpu.mb@3621 = 03</action>
<action>maincpu.mb@4980 = 20</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x07">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@4A6D = 18 </action>
<action>maincpu.md@4A7F = 1A2780CD </action>
<action>maincpu.mq@2780 = F1022800E6C0C23A</action>
<action>maincpu.mq@2788 = FFFFFFC912911AC9</action>
<!--
2780 | 3A C2 C0 : ld a,($C0C2)
2783 | E6 xx : and $xx
2785 | 28 02 : jr z,$2789
2787 | F1 : pop af
2788 | C9 : ret
2789 | 1A : ld a,(de)
278A | 91 : sub c
278B | 12 : ld (de),a
278C | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@2784 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4A6D = 20 </action>
<action>maincpu.md@4A7F = 1A12911A </action>
<action>maincpu.mq@2780 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2788 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs/voices by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@109D = 112790C3 </action>
<action>maincpu.mq@2790 = 0707F8013AC10021</action>
<action>maincpu.mq@2798 = B9B0F8003A470707</action>
<action>maincpu.mq@27A0 = 35012001FEF0284F</action>
<action>maincpu.mq@27A8 = 2004FE34012002FE</action>
<action>maincpu.mq@27B0 = 2008FE0618F03E04</action>
<action>maincpu.mq@27B8 = 10FE797786103E05</action>
<action>maincpu.mq@27C0 = 2020FE05187E0320</action>
<action>maincpu.mq@27C8 = FFC418F80632AF04</action>
<!--
2790 | 21 00 C1 : ld hl,$C100 // sound code address
2793 | 3A 01 F8 : ld a,($F801) // read buttons
2796 | 07 : rlca
2797 | 07 : rlca
2798 | 07 : rlca
2799 | 07 : rlca
279A | 47 : ld b,a
279B | 3A 00 F8 : ld a,($F800) // read other inputs
279E | B0 : or b
279F | B9 : cp c
27A0 | 4F : ld c,a
27A1 | 28 F0 : jr z,$2793
27A3 | FE 01 : cp $01
27A5 | 20 01 : jr nz,$27A8
27A7 | 35 : dec (hl) // decrease code -01
27A8 | FE 02 : cp $02
27AA | 20 01 : jr nz,$27AD
27AC | 34 : inc (hl) // increase code +01
27AD | FE 04 : cp $04
27AF | 20 04 : jr nz,$27B5
27B1 | 3E F0 : ld a,$F0 // decrease code -10
27B3 | 18 06 : jr $27BB
27B5 | FE 08 : cp $08
27B7 | 20 05 : jr nz,$27BE
27B9 | 3E 10 : ld a,$10 // increase code +10
27BB | 86 : add a,(hl)
27BC | 77 : ld (hl),a
27BD | 79 : ld a,c
27BE | FE 10 : cp $10
27C0 | 20 03 : jr nz,$27C5
27C2 | 7E : ld a,(hl) // play sound
27C3 | 18 05 : jr $27CA
27C5 | FE 20 : cp $20
27C7 | 20 04 : jr nz,$27CD
27C9 | AF : xor a // stop sound
27CA | 32 06 F8 : ld ($F806),a // send sound code
27CD | 18 C4 : jr $2793
-->
</script>
<script state="run">
<output format="----- rygar 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@109D = 11123421 </action>
<action>maincpu.mq@2790 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2798 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@10A0 = 0111C1C3</action>
</script>
<script state="off">
<action>maincpu.md@10A0 = 01C98311</action>
</script>
</cheat>
</mamecheat>
rygarj.xml
Code: Select all
<!-- Argus no Senshi (Japan set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4560 = F8</action>
</script>
<script state="off">
<action>maincpu.mb@4560 = 49</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>maincpu.mw@3D19 = 2740 </action>
<action>maincpu.mw@3D29 = 2740 </action>
<action>maincpu.mw@3F84 = 2740 </action>
<action>maincpu.mq@2740 = C0FEC0D53A2800CD</action>
<action>maincpu.mq@2748 = FFFF9CC9274D21D8</action>
<!--
2740 | CD 00 28 : call $2800
2743 | 3A D5 C0 : ld a,($C0D5)
2746 | FE C0 : cp $C0
2748 | D8 : ret c
2749 | 21 4D 27 : ld hl,$274D
274C | C9 : ret
274D | 9C : - foothold value -
-->
</script>
<script state="off">
<action>maincpu.mw@3D19 = 2800 </action>
<action>maincpu.mw@3D29 = 2800 </action>
<action>maincpu.mw@3F84 = 2800 </action>
<action>maincpu.mq@2740 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2748 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3AAA = CB2750CD </action>
<action>maincpu.mq@2750 = 3A082847CBC0383A</action>
<action>maincpu.mq@2758 = 3AC0563202F6C056</action>
<action>maincpu.mq@2760 = FFFFFFFFFFC9C028</action>
<!--
2750 | 3A 38 C0 : ld a,($C038)
2753 | CB 47 : bit 0,a
2755 | 28 08 : jr z,$275F
2757 | 3A 56 C0 : ld a,($C056)
275A | F6 02 : or $02
275C | 32 56 C0 : ld ($C056),a
275F | 3A 28 C0 : ld a,($C028)
2762 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3AAA = CBC0283A </action>
<action>maincpu.mq@2750 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2758 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2760 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@3ADC = CB2770CD </action>
<action>maincpu.mq@2770 = DD042847CBC0563A</action>
<action>maincpu.mq@2778 = FFC9017EDD8601CB</action>
<!--
2770 | 3A 56 C0 : ld a,($C056)
2773 | CB 47 : bit 0,a
2775 | 28 04 : jr z,$277B
2777 | DD CB 01 86 : res 0,(ix+$01)
277B | DD 7E 01 : ld a,(ix+$01)
277E | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3ADC = CB017EDD </action>
<action>maincpu.mq@2770 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2778 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="all items (test)">
<comment>this code doesn't have invincibility barrier</comment>
<script state="on">
<action>maincpu.mb@0984 = C9</action> <!-- penetration -->
<action>maincpu.mb@359A = 00</action> <!-- long range -->
<action>maincpu.mb@3621 = 00</action> <!-- upper attack -->
<action>maincpu.mb@4980 = 18</action> <!-- stamp -->
</script>
<script state="off">
<action>maincpu.mb@0984 = C0</action>
<action>maincpu.mb@359A = 03</action>
<action>maincpu.mb@3621 = 03</action>
<action>maincpu.mb@4980 = 20</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x07">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@4A6D = 18 </action>
<action>maincpu.md@4A7F = 1A2780CD </action>
<action>maincpu.mq@2780 = F1022800E6C0C23A</action>
<action>maincpu.mq@2788 = FFFFFFC912911AC9</action>
<!--
2780 | 3A C2 C0 : ld a,($C0C2)
2783 | E6 xx : and $xx
2785 | 28 02 : jr z,$2789
2787 | F1 : pop af
2788 | C9 : ret
2789 | 1A : ld a,(de)
278A | 91 : sub c
278B | 12 : ld (de),a
278C | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@2784 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4A6D = 20 </action>
<action>maincpu.md@4A7F = 1A12911A </action>
<action>maincpu.mq@2780 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2788 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs/voices by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@109D = 112790C3 </action>
<action>maincpu.mq@2790 = 0707F8013AC10021</action>
<action>maincpu.mq@2798 = B9B0F8003A470707</action>
<action>maincpu.mq@27A0 = 35012001FEF0284F</action>
<action>maincpu.mq@27A8 = 2004FE34012002FE</action>
<action>maincpu.mq@27B0 = 2008FE0618F03E04</action>
<action>maincpu.mq@27B8 = 10FE797786103E05</action>
<action>maincpu.mq@27C0 = 2020FE05187E0320</action>
<action>maincpu.mq@27C8 = FFC418F80632AF04</action>
<!--
2790 | 21 00 C1 : ld hl,$C100 // sound code address
2793 | 3A 01 F8 : ld a,($F801) // read buttons
2796 | 07 : rlca
2797 | 07 : rlca
2798 | 07 : rlca
2799 | 07 : rlca
279A | 47 : ld b,a
279B | 3A 00 F8 : ld a,($F800) // read other inputs
279E | B0 : or b
279F | B9 : cp c
27A0 | 4F : ld c,a
27A1 | 28 F0 : jr z,$2793
27A3 | FE 01 : cp $01
27A5 | 20 01 : jr nz,$27A8
27A7 | 35 : dec (hl) // decrease code -01
27A8 | FE 02 : cp $02
27AA | 20 01 : jr nz,$27AD
27AC | 34 : inc (hl) // increase code +01
27AD | FE 04 : cp $04
27AF | 20 04 : jr nz,$27B5
27B1 | 3E F0 : ld a,$F0 // decrease code -10
27B3 | 18 06 : jr $27BB
27B5 | FE 08 : cp $08
27B7 | 20 05 : jr nz,$27BE
27B9 | 3E 10 : ld a,$10 // increase code +10
27BB | 86 : add a,(hl)
27BC | 77 : ld (hl),a
27BD | 79 : ld a,c
27BE | FE 10 : cp $10
27C0 | 20 03 : jr nz,$27C5
27C2 | 7E : ld a,(hl) // play sound
27C3 | 18 05 : jr $27CA
27C5 | FE 20 : cp $20
27C7 | 20 04 : jr nz,$27CD
27C9 | AF : xor a // stop sound
27CA | 32 06 F8 : ld ($F806),a // send sound code
27CD | 18 C4 : jr $2793
-->
</script>
<script state="run">
<output format="----- argus no senshi 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@109D = 11123421 </action>
<action>maincpu.mq@2790 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2798 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@10A0 = 0111C1C3</action>
</script>
<script state="off">
<action>maincpu.md@10A0 = 01C98311</action>
</script>
</cheat>
</mamecheat>
rygarj2.xml
Code: Select all
<!-- Argus no Senshi (Japan set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4560 = F8</action>
</script>
<script state="off">
<action>maincpu.mb@4560 = 49</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>maincpu.mw@3D19 = 2740 </action>
<action>maincpu.mw@3D29 = 2740 </action>
<action>maincpu.mw@3F84 = 2740 </action>
<action>maincpu.mq@2740 = C0FEC0D53A2800CD</action>
<action>maincpu.mq@2748 = FFFF9CC9274D21D8</action>
<!--
2740 | CD 00 28 : call $2800
2743 | 3A D5 C0 : ld a,($C0D5)
2746 | FE C0 : cp $C0
2748 | D8 : ret c
2749 | 21 4D 27 : ld hl,$274D
274C | C9 : ret
274D | 9C : - foothold value -
-->
</script>
<script state="off">
<action>maincpu.mw@3D19 = 2800 </action>
<action>maincpu.mw@3D29 = 2800 </action>
<action>maincpu.mw@3F84 = 2800 </action>
<action>maincpu.mq@2740 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2748 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@3AAA = CB2750CD </action>
<action>maincpu.mq@2750 = 3A082847CBC0383A</action>
<action>maincpu.mq@2758 = 3AC0563202F6C056</action>
<action>maincpu.mq@2760 = FFFFFFFFFFC9C028</action>
<!--
2750 | 3A 38 C0 : ld a,($C038)
2753 | CB 47 : bit 0,a
2755 | 28 08 : jr z,$275F
2757 | 3A 56 C0 : ld a,($C056)
275A | F6 02 : or $02
275C | 32 56 C0 : ld ($C056),a
275F | 3A 28 C0 : ld a,($C028)
2762 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3AAA = CBC0283A </action>
<action>maincpu.mq@2750 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2758 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2760 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.md@3ADC = CB2770CD </action>
<action>maincpu.mq@2770 = DD042847CBC0563A</action>
<action>maincpu.mq@2778 = FFC9017EDD8601CB</action>
<!--
2770 | 3A 56 C0 : ld a,($C056)
2773 | CB 47 : bit 0,a
2775 | 28 04 : jr z,$277B
2777 | DD CB 01 86 : res 0,(ix+$01)
277B | DD 7E 01 : ld a,(ix+$01)
277E | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@3ADC = CB017EDD </action>
<action>maincpu.mq@2770 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2778 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="all items (test)">
<comment>this code doesn't have invincibility barrier</comment>
<script state="on">
<action>maincpu.mb@0984 = C9</action> <!-- penetration -->
<action>maincpu.mb@359A = 00</action> <!-- long range -->
<action>maincpu.mb@3621 = 00</action> <!-- upper attack -->
<action>maincpu.mb@4980 = 18</action> <!-- stamp -->
</script>
<script state="off">
<action>maincpu.mb@0984 = C0</action>
<action>maincpu.mb@359A = 03</action>
<action>maincpu.mb@3621 = 03</action>
<action>maincpu.mb@4980 = 20</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x07">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@4A6D = 18 </action>
<action>maincpu.md@4A7F = 1A2780CD </action>
<action>maincpu.mq@2780 = F1022800E6C0C23A</action>
<action>maincpu.mq@2788 = FFFFFFC912911AC9</action>
<!--
2780 | 3A C2 C0 : ld a,($C0C2)
2783 | E6 xx : and $xx
2785 | 28 02 : jr z,$2789
2787 | F1 : pop af
2788 | C9 : ret
2789 | 1A : ld a,(de)
278A | 91 : sub c
278B | 12 : ld (de),a
278C | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@2784 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4A6D = 20 </action>
<action>maincpu.md@4A7F = 1A12911A </action>
<action>maincpu.mq@2780 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2788 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs/voices by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@109D = 112790C3 </action>
<action>maincpu.mq@2790 = 0707F8013AC10021</action>
<action>maincpu.mq@2798 = B9B0F8003A470707</action>
<action>maincpu.mq@27A0 = 35012001FEF0284F</action>
<action>maincpu.mq@27A8 = 2004FE34012002FE</action>
<action>maincpu.mq@27B0 = 2008FE0618F03E04</action>
<action>maincpu.mq@27B8 = 10FE797786103E05</action>
<action>maincpu.mq@27C0 = 2020FE05187E0320</action>
<action>maincpu.mq@27C8 = FFC418F80632AF04</action>
<!--
2790 | 21 00 C1 : ld hl,$C100 // sound code address
2793 | 3A 01 F8 : ld a,($F801) // read buttons
2796 | 07 : rlca
2797 | 07 : rlca
2798 | 07 : rlca
2799 | 07 : rlca
279A | 47 : ld b,a
279B | 3A 00 F8 : ld a,($F800) // read other inputs
279E | B0 : or b
279F | B9 : cp c
27A0 | 4F : ld c,a
27A1 | 28 F0 : jr z,$2793
27A3 | FE 01 : cp $01
27A5 | 20 01 : jr nz,$27A8
27A7 | 35 : dec (hl) // decrease code -01
27A8 | FE 02 : cp $02
27AA | 20 01 : jr nz,$27AD
27AC | 34 : inc (hl) // increase code +01
27AD | FE 04 : cp $04
27AF | 20 04 : jr nz,$27B5
27B1 | 3E F0 : ld a,$F0 // decrease code -10
27B3 | 18 06 : jr $27BB
27B5 | FE 08 : cp $08
27B7 | 20 05 : jr nz,$27BE
27B9 | 3E 10 : ld a,$10 // increase code +10
27BB | 86 : add a,(hl)
27BC | 77 : ld (hl),a
27BD | 79 : ld a,c
27BE | FE 10 : cp $10
27C0 | 20 03 : jr nz,$27C5
27C2 | 7E : ld a,(hl) // play sound
27C3 | 18 05 : jr $27CA
27C5 | FE 20 : cp $20
27C7 | 20 04 : jr nz,$27CD
27C9 | AF : xor a // stop sound
27CA | 32 06 F8 : ld ($F806),a // send sound code
27CD | 18 C4 : jr $2793
-->
</script>
<script state="run">
<output format="----- argus no senshi 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@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@109D = 11123421 </action>
<action>maincpu.mq@2790 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2798 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@27C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@10A0 = 0111C1C3</action>
</script>
<script state="off">
<action>maincpu.md@10A0 = 01C98311</action>
</script>
</cheat>
</mamecheat>