ninjemak.xml
Code: Select all
<!-- Ninja Emaki (US) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@48E5 = C9</action> <!-- bullet -->
<action>maincpu.mb@4901 = 47</action> <!-- enemy -->
<action>maincpu.mb@492F = 47</action> <!-- enemy -->
<action>maincpu.mb@494B = 47</action> <!-- enemy -->
<!-- fall down -->
<action>maincpu.md@266A = 002718C3</action>
<action>maincpu.md@2670 = 002718C3</action>
<action>maincpu.md@2676 = 182718C3</action>
</script>
<script state="off">
<action>maincpu.mb@48E5 = FD </action>
<action>maincpu.mb@4901 = 48 </action>
<action>maincpu.mb@492F = 48 </action>
<action>maincpu.mb@48CF = 48 </action>
<action>maincpu.md@266A = 041F36DD</action>
<action>maincpu.md@2670 = 071F36DD</action>
<action>maincpu.md@2676 = 18267BCD</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@2893 = 2895</action> <!-- up -->
<action>maincpu.mw@28C6 = 28C8</action> <!-- down -->
<action>maincpu.mw@291A = 291C</action> <!-- right -->
<action>maincpu.mw@295B = 295D</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@2893 = 28ED</action>
<action>maincpu.mw@28C6 = 28ED</action>
<action>maincpu.mw@291A = 2979</action>
<action>maincpu.mw@295B = 2979</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@10F4 = 02</action>
<action>maincpu.mb@10FD = 01</action>
</script>
<script state="off">
<action>maincpu.mb@10F4 = 07</action>
<action>maincpu.mb@10FD = 03</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@145D8 = C6D850CD </action> <!-- ($c5d8) -->
<action>maincpu.mq@15850 = E50B280FE6E4573A</action>
<action>maincpu.mq@15858 = 01327E6F85D86621</action>
<action>maincpu.mq@15860 = 40FFC9E5013AE1E5</action>
<action>maincpu.mq@15868 = 6080FFE02000FFC0</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFA0</action>
<!--
D850 | 3A 57 E4 : ld a,($E457)
D853 | E6 0F : and $0F
D855 | 28 0B : jr z,$D862
D857 | E5 : push hl
D858 | 21 66 D8 : ld hl,$D866
D85B | 85 : add a,l
D85C | 6F : ld l,a
D85D | 7E : ld a,(hl)
D85E | 32 01 E5 : ld ($E501),a
D861 | E1 : pop hl
D862 | 3A 01 E5 : ld a,($E501)
D865 | C9 : ret
D868 - D870 : input/direction conversion table
input direction
01 40 : up
02 c0 : down
04 00 : left
05 20 : upper-left
06 e0 : lower-left
08 80 : right
09 60 : upper-right
0a a0 : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@145D8 = C6E5013A </action>
<action>maincpu.mq@15850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="magic timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@169B6 = param</action> <!-- ($c9b6) -->
</script>
<script state="off">
<action>maincpu.mb@169B6 = 40</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@17CA = 2847B880DBE20021</action>
<action>maincpu.mq@17D2 = F7FE350120FBFEFA</action>
<action>maincpu.mq@17DA = 3E0420FDFE340120</action>
<action>maincpu.mq@17E2 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@17EA = 0320EFFE78778610</action>
<action>maincpu.mq@17F2 = 3E0420DFFE06187E</action>
<action>maincpu.mq@17FA = 000000CE1885D33F</action>
<!--
17CA | 21 00 E2 : ld hl,$E200 // sound code address
17CD | DB 80 : in a,($80) // read input
17CF | B8 : cp b
17D0 | 47 : ld b,a
17D1 | 28 FA : jr z,$17CD
17D3 | FE FB : cp $FB
17D5 | 20 01 : jr nz,$17D8
17D7 | 35 : dec (hl) // decrease code -01
17D8 | FE F7 : cp $F7
17DA | 20 01 : jr nz,$17DD
17DC | 34 : inc (hl) // increase code +01
17DD | FE FD : cp $FD
17DF | 20 04 : jr nz,$17E5
17E1 | 3E F0 : ld a,$F0 // decrease code -10
17E3 | 18 06 : jr $17EB
17E5 | FE FE : cp $FE
17E7 | 20 05 : jr nz,$17EE
17E9 | 3E 10 : ld a,$10 // increase code +10
17EB | 86 : add a,(hl)
17EC | 77 : ld (hl),a
17ED | 78 : ld a,b
17EE | FE EF : cp $EF
17F0 | 20 03 : jr nz,$17F5
17F2 | 7E : ld a,(hl) // play sound
17F3 | 18 06 : jr $17FB
17F5 | FE DF : cp $DF
17F7 | 20 04 : jr nz,$17FD
17F9 | 3E 3F : ld a,$3F // stop sound
17FB | D3 85 : out ($85),a // send sound code
17FD | 18 CE : jr $17CD
-->
</script>
<script state="run">
<output format="----- ninja emaki 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@E200</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@17CA = 7E08237E2346234E</action>
<action>maincpu.mq@17D2 = 0208D0CB020A28B7</action>
<action>maincpu.mq@17DA = E96B62F0180C90CB</action>
<action>maincpu.mq@17E2 = 54204D41527BDA69</action>
<action>maincpu.mq@17EA = DA73002020545345</action>
<action>maincpu.mq@17F2 = 7300524F52524503</action>
<action>maincpu.mq@17FA = E9003F4B3F4F7BDA</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0C48 = 0C4A</action>
</script>
<script state="off">
<action>maincpu.mw@0C48 = 1711</action>
</script>
</cheat>
</mamecheat>
youma.xml
Code: Select all
<!-- Youma Ninpou Chou (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@486B = C9</action> <!-- bullet -->
<action>maincpu.mb@4887 = C3</action> <!-- enemy -->
<action>maincpu.mb@48B3 = C3</action> <!-- enemy -->
<action>maincpu.mb@48CF = C3</action> <!-- enemy -->
<!-- fall down -->
<action>maincpu.md@2640 = 0026EEC3</action>
<action>maincpu.md@2646 = 0026EEC3</action>
<action>maincpu.md@264C = 1826EEC3</action>
</script>
<script state="off">
<action>maincpu.mb@486B = FD </action>
<action>maincpu.mb@4887 = C4 </action>
<action>maincpu.mb@48B3 = C4 </action>
<action>maincpu.mb@48CF = C4 </action>
<action>maincpu.md@2640 = 041F36DD</action>
<action>maincpu.md@2646 = 071F36DD</action>
<action>maincpu.md@264C = 182651CD</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@2869 = 286B</action> <!-- up -->
<action>maincpu.mw@289C = 289E</action> <!-- down -->
<action>maincpu.mw@28F0 = 28F2</action> <!-- right -->
<action>maincpu.mw@2931 = 2933</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@2869 = 28C3</action>
<action>maincpu.mw@289C = 28C3</action>
<action>maincpu.mw@28F0 = 294F</action>
<action>maincpu.mw@2931 = 294F</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@14D2 = 02</action>
<action>maincpu.mb@14DB = 01</action>
</script>
<script state="off">
<action>maincpu.mb@14D2 = 07</action>
<action>maincpu.mb@14DB = 03</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@145D8 = C6D850CD </action> <!-- ($c5d8) -->
<action>maincpu.mq@15850 = E50B280FE6E4573A</action>
<action>maincpu.mq@15858 = 01327E6F85D86621</action>
<action>maincpu.mq@15860 = 40FFC9E5013AE1E5</action>
<action>maincpu.mq@15868 = 6080FFE02000FFC0</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFA0</action>
<!--
D850 | 3A 57 E4 : ld a,($E457)
D853 | E6 0F : and $0F
D855 | 28 0B : jr z,$D862
D857 | E5 : push hl
D858 | 21 66 D8 : ld hl,$D866
D85B | 85 : add a,l
D85C | 6F : ld l,a
D85D | 7E : ld a,(hl)
D85E | 32 01 E5 : ld ($E501),a
D861 | E1 : pop hl
D862 | 3A 01 E5 : ld a,($E501)
D865 | C9 : ret
D868 - D870 : input/direction conversion table
input direction
01 40 : up
02 c0 : down
04 00 : left
05 20 : upper-left
06 e0 : lower-left
08 80 : right
09 60 : upper-right
0a a0 : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@145D8 = C6E5013A </action>
<action>maincpu.mq@15850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="ninpou timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@169B6 = param</action> <!-- ($c9b6) -->
</script>
<script state="off">
<action>maincpu.mb@169B6 = 40</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@17D0 = 2847B880DBE20021</action>
<action>maincpu.mq@17D8 = F7FE350120FBFEFA</action>
<action>maincpu.mq@17E0 = 3E0420FDFE340120</action>
<action>maincpu.mq@17E8 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@17F0 = 0320EFFE78778610</action>
<action>maincpu.mq@17F8 = 3E0420DFFE06187E</action>
<action>maincpu.mq@1800 = 000000CE1885D33F</action>
<!--
17D0 | 21 00 E2 : ld hl,$E200 // sound code address
17D3 | DB 80 : in a,($80) // read input
17D5 | B8 : cp b
17D6 | 47 : ld b,a
17D7 | 28 FA : jr z,$17D3
17D9 | FE FB : cp $FB
17DB | 20 01 : jr nz,$17DE
17DD | 35 : dec (hl) // decrease code -01
17DE | FE F7 : cp $F7
17E0 | 20 01 : jr nz,$17E3
17E2 | 34 : inc (hl) // increase code +01
17E3 | FE FD : cp $FD
17E5 | 20 04 : jr nz,$17EB
17E7 | 3E F0 : ld a,$F0 // decrease code -10
17E9 | 18 06 : jr $17F1
17EB | FE FE : cp $FE
17ED | 20 05 : jr nz,$17F4
17EF | 3E 10 : ld a,$10 // increase code +10
17F1 | 86 : add a,(hl)
17F2 | 77 : ld (hl),a
17F3 | 78 : ld a,b
17F4 | FE EF : cp $EF
17F6 | 20 03 : jr nz,$17FB
17F8 | 7E : ld a,(hl) // play sound
17F9 | 18 06 : jr $1801
17FB | FE DF : cp $DF
17FD | 20 04 : jr nz,$1803
17FF | 3E 3F : ld a,$3F // stop sound
1801 | D3 85 : out ($85),a // send sound code
1803 | 18 CE : jr $17D3
-->
</script>
<script state="run">
<output format="----- youma ninpou chou 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@E200</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@17D0 = 0A28B77E08237E23</action>
<action>maincpu.mq@17D8 = 0C90CB0208D0CB02</action>
<action>maincpu.mq@17E0 = 7BDA69E96B62F018</action>
<action>maincpu.mq@17E8 = 54534554204D4152</action>
<action>maincpu.mq@17F0 = 524503DA73002020</action>
<action>maincpu.mq@17F8 = 4F7BDA7300524F52</action>
<action>maincpu.mq@1800 = 527BD9E9003F4B3F</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0C48 = 0C4A</action>
</script>
<script state="off">
<action>maincpu.mw@0C48 = 1714</action>
</script>
</cheat>
</mamecheat>
youma2.xml
Code: Select all
<!-- Youma Ninpou Chou (Japan, alt) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@486B = C9</action> <!-- bullet -->
<action>maincpu.mb@4887 = C3</action> <!-- enemy -->
<action>maincpu.mb@48B3 = C3</action> <!-- enemy -->
<action>maincpu.mb@48CF = C3</action> <!-- enemy -->
<!-- fall down -->
<action>maincpu.md@2640 = 0026EEC3</action>
<action>maincpu.md@2646 = 0026EEC3</action>
<action>maincpu.md@264C = 1826EEC3</action>
</script>
<script state="off">
<action>maincpu.mb@486B = FD </action>
<action>maincpu.mb@4887 = C4 </action>
<action>maincpu.mb@48B3 = C4 </action>
<action>maincpu.mb@48CF = C4 </action>
<action>maincpu.md@2640 = 041F36DD</action>
<action>maincpu.md@2646 = 071F36DD</action>
<action>maincpu.md@264C = 182651CD</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@2869 = 286B</action> <!-- up -->
<action>maincpu.mw@289C = 289E</action> <!-- down -->
<action>maincpu.mw@28F0 = 28F2</action> <!-- right -->
<action>maincpu.mw@2931 = 2933</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@2869 = 28C3</action>
<action>maincpu.mw@289C = 28C3</action>
<action>maincpu.mw@28F0 = 294F</action>
<action>maincpu.mw@2931 = 294F</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@14D2 = 02</action>
<action>maincpu.mb@14DB = 01</action>
</script>
<script state="off">
<action>maincpu.mb@14D2 = 07</action>
<action>maincpu.mb@14DB = 03</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@145D8 = C6D850CD </action> <!-- ($c5d8) -->
<action>maincpu.mq@15850 = E50B280FE6E4573A</action>
<action>maincpu.mq@15858 = 01327E6F85D86621</action>
<action>maincpu.mq@15860 = 40FFC9E5013AE1E5</action>
<action>maincpu.mq@15868 = 6080FFE02000FFC0</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFA0</action>
<!--
D850 | 3A 57 E4 : ld a,($E457)
D853 | E6 0F : and $0F
D855 | 28 0B : jr z,$D862
D857 | E5 : push hl
D858 | 21 66 D8 : ld hl,$D866
D85B | 85 : add a,l
D85C | 6F : ld l,a
D85D | 7E : ld a,(hl)
D85E | 32 01 E5 : ld ($E501),a
D861 | E1 : pop hl
D862 | 3A 01 E5 : ld a,($E501)
D865 | C9 : ret
D868 - D870 : input/direction conversion table
input direction
01 40 : up
02 c0 : down
04 00 : left
05 20 : upper-left
06 e0 : lower-left
08 80 : right
09 60 : upper-right
0a a0 : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@145D8 = C6E5013A </action>
<action>maincpu.mq@15850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="ninpou timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@169B6 = param</action> <!-- ($c9b6) -->
</script>
<script state="off">
<action>maincpu.mb@169B6 = 40</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@17D0 = 2847B880DBE20021</action>
<action>maincpu.mq@17D8 = F7FE350120FBFEFA</action>
<action>maincpu.mq@17E0 = 3E0420FDFE340120</action>
<action>maincpu.mq@17E8 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@17F0 = 0320EFFE78778610</action>
<action>maincpu.mq@17F8 = 3E0420DFFE06187E</action>
<action>maincpu.mq@1800 = 000000CE1885D33F</action>
<!--
17D0 | 21 00 E2 : ld hl,$E200 // sound code address
17D3 | DB 80 : in a,($80) // read input
17D5 | B8 : cp b
17D6 | 47 : ld b,a
17D7 | 28 FA : jr z,$17D3
17D9 | FE FB : cp $FB
17DB | 20 01 : jr nz,$17DE
17DD | 35 : dec (hl) // decrease code -01
17DE | FE F7 : cp $F7
17E0 | 20 01 : jr nz,$17E3
17E2 | 34 : inc (hl) // increase code +01
17E3 | FE FD : cp $FD
17E5 | 20 04 : jr nz,$17EB
17E7 | 3E F0 : ld a,$F0 // decrease code -10
17E9 | 18 06 : jr $17F1
17EB | FE FE : cp $FE
17ED | 20 05 : jr nz,$17F4
17EF | 3E 10 : ld a,$10 // increase code +10
17F1 | 86 : add a,(hl)
17F2 | 77 : ld (hl),a
17F3 | 78 : ld a,b
17F4 | FE EF : cp $EF
17F6 | 20 03 : jr nz,$17FB
17F8 | 7E : ld a,(hl) // play sound
17F9 | 18 06 : jr $1801
17FB | FE DF : cp $DF
17FD | 20 04 : jr nz,$1803
17FF | 3E 3F : ld a,$3F // stop sound
1801 | D3 85 : out ($85),a // send sound code
1803 | 18 CE : jr $17D3
-->
</script>
<script state="run">
<output format="----- youma ninpou chou 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@E200</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@17D0 = 0A28B77E08237E23</action>
<action>maincpu.mq@17D8 = 0C90CB0208D0CB02</action>
<action>maincpu.mq@17E0 = 7BDA69E96B62F018</action>
<action>maincpu.mq@17E8 = 54534554204D4152</action>
<action>maincpu.mq@17F0 = 524503DA73002020</action>
<action>maincpu.mq@17F8 = 4F7BDA7300524F52</action>
<action>maincpu.mq@1800 = 527BD9E9003F4B3F</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0C48 = 0C4A</action>
</script>
<script state="off">
<action>maincpu.mw@0C48 = 1714</action>
</script>
</cheat>
</mamecheat>
youmab.xml
Code: Select all
<!-- Youma Ninpou Chou (Game Electronics bootleg, set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@486B = C9</action> <!-- bullet -->
<action>maincpu.mb@4887 = C3</action> <!-- enemy -->
<action>maincpu.mb@48B3 = C3</action> <!-- enemy -->
<action>maincpu.mb@48CF = C3</action> <!-- enemy -->
<!-- fall down -->
<action>maincpu.md@2640 = 0026EEC3</action>
<action>maincpu.md@2646 = 0026EEC3</action>
<action>maincpu.md@264C = 1826EEC3</action>
</script>
<script state="off">
<action>maincpu.mb@486B = FD </action>
<action>maincpu.mb@4887 = C4 </action>
<action>maincpu.mb@48B3 = C4 </action>
<action>maincpu.mb@48CF = C4 </action>
<action>maincpu.md@2640 = 041F36DD</action>
<action>maincpu.md@2646 = 071F36DD</action>
<action>maincpu.md@264C = 182651CD</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@2869 = 286B</action> <!-- up -->
<action>maincpu.mw@289C = 289E</action> <!-- down -->
<action>maincpu.mw@28F0 = 28F2</action> <!-- right -->
<action>maincpu.mw@2931 = 2933</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@2869 = 28C3</action>
<action>maincpu.mw@289C = 28C3</action>
<action>maincpu.mw@28F0 = 294F</action>
<action>maincpu.mw@2931 = 294F</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@14D2 = 02</action>
<action>maincpu.mb@14DB = 01</action>
</script>
<script state="off">
<action>maincpu.mb@14D2 = 07</action>
<action>maincpu.mb@14DB = 03</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@145D8 = C6D850CD </action> <!-- ($c5d8) -->
<action>maincpu.mq@15850 = E50B280FE6E4573A</action>
<action>maincpu.mq@15858 = 01327E6F85D86621</action>
<action>maincpu.mq@15860 = 40FFC9E5013AE1E5</action>
<action>maincpu.mq@15868 = 6080FFE02000FFC0</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFA0</action>
<!--
D850 | 3A 57 E4 : ld a,($E457)
D853 | E6 0F : and $0F
D855 | 28 0B : jr z,$D862
D857 | E5 : push hl
D858 | 21 66 D8 : ld hl,$D866
D85B | 85 : add a,l
D85C | 6F : ld l,a
D85D | 7E : ld a,(hl)
D85E | 32 01 E5 : ld ($E501),a
D861 | E1 : pop hl
D862 | 3A 01 E5 : ld a,($E501)
D865 | C9 : ret
D868 - D870 : input/direction conversion table
input direction
01 40 : up
02 c0 : down
04 00 : left
05 20 : upper-left
06 e0 : lower-left
08 80 : right
09 60 : upper-right
0a a0 : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@145D8 = C6E5013A </action>
<action>maincpu.mq@15850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="ninpou timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@169B6 = param</action> <!-- ($c9b6) -->
</script>
<script state="off">
<action>maincpu.mb@169B6 = 40</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@17D0 = 2847B880DBE20021</action>
<action>maincpu.mq@17D8 = F7FE350120FBFEFA</action>
<action>maincpu.mq@17E0 = 3E0420FDFE340120</action>
<action>maincpu.mq@17E8 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@17F0 = 0320EFFE78778610</action>
<action>maincpu.mq@17F8 = 3E0420DFFE06187E</action>
<action>maincpu.mq@1800 = 000000CE1885D33F</action>
<!--
17D0 | 21 00 E2 : ld hl,$E200 // sound code address
17D3 | DB 80 : in a,($80) // read input
17D5 | B8 : cp b
17D6 | 47 : ld b,a
17D7 | 28 FA : jr z,$17D3
17D9 | FE FB : cp $FB
17DB | 20 01 : jr nz,$17DE
17DD | 35 : dec (hl) // decrease code -01
17DE | FE F7 : cp $F7
17E0 | 20 01 : jr nz,$17E3
17E2 | 34 : inc (hl) // increase code +01
17E3 | FE FD : cp $FD
17E5 | 20 04 : jr nz,$17EB
17E7 | 3E F0 : ld a,$F0 // decrease code -10
17E9 | 18 06 : jr $17F1
17EB | FE FE : cp $FE
17ED | 20 05 : jr nz,$17F4
17EF | 3E 10 : ld a,$10 // increase code +10
17F1 | 86 : add a,(hl)
17F2 | 77 : ld (hl),a
17F3 | 78 : ld a,b
17F4 | FE EF : cp $EF
17F6 | 20 03 : jr nz,$17FB
17F8 | 7E : ld a,(hl) // play sound
17F9 | 18 06 : jr $1801
17FB | FE DF : cp $DF
17FD | 20 04 : jr nz,$1803
17FF | 3E 3F : ld a,$3F // stop sound
1801 | D3 85 : out ($85),a // send sound code
1803 | 18 CE : jr $17D3
-->
</script>
<script state="run">
<output format="----- youma ninpou chou 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@E200</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@17D0 = 0A28B77E08237E23</action>
<action>maincpu.mq@17D8 = 0C90CB0208D0CB02</action>
<action>maincpu.mq@17E0 = 7BDA69E96B62F018</action>
<action>maincpu.mq@17E8 = 54534554204D4152</action>
<action>maincpu.mq@17F0 = 524503DA73002020</action>
<action>maincpu.mq@17F8 = 4F7BDA7300524F52</action>
<action>maincpu.mq@1800 = 527BD9E9003F4B3F</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0C48 = 0C4A</action>
</script>
<script state="off">
<action>maincpu.mw@0C48 = 1714</action>
</script>
</cheat>
</mamecheat>
youmab2.xml
Code: Select all
<!-- Youma Ninpou Chou (Game Electronics bootleg, set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@486B = C9</action> <!-- bullet -->
<action>maincpu.mb@4887 = C3</action> <!-- enemy -->
<action>maincpu.mb@48B3 = C3</action> <!-- enemy -->
<action>maincpu.mb@48CF = C3</action> <!-- enemy -->
<!-- fall down -->
<action>maincpu.md@2640 = 0026EEC3</action>
<action>maincpu.md@2646 = 0026EEC3</action>
<action>maincpu.md@264C = 1826EEC3</action>
</script>
<script state="off">
<action>maincpu.mb@486B = FD </action>
<action>maincpu.mb@4887 = C4 </action>
<action>maincpu.mb@48B3 = C4 </action>
<action>maincpu.mb@48CF = C4 </action>
<action>maincpu.md@2640 = 041F36DD</action>
<action>maincpu.md@2646 = 071F36DD</action>
<action>maincpu.md@264C = 182651CD</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.mw@2869 = 286B</action> <!-- up -->
<action>maincpu.mw@289C = 289E</action> <!-- down -->
<action>maincpu.mw@28F0 = 28F2</action> <!-- right -->
<action>maincpu.mw@2931 = 2933</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mw@2869 = 28C3</action>
<action>maincpu.mw@289C = 28C3</action>
<action>maincpu.mw@28F0 = 294F</action>
<action>maincpu.mw@2931 = 294F</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@14D2 = 02</action>
<action>maincpu.mb@14DB = 01</action>
</script>
<script state="off">
<action>maincpu.mb@14D2 = 07</action>
<action>maincpu.mb@14DB = 03</action>
</script>
</cheat>
<cheat desc="direct turn">
<script state="on">
<action>maincpu.md@145D8 = C6D850CD </action> <!-- ($c5d8) -->
<action>maincpu.mq@15850 = E50B280FE6E4573A</action>
<action>maincpu.mq@15858 = 01327E6F85D86621</action>
<action>maincpu.mq@15860 = 40FFC9E5013AE1E5</action>
<action>maincpu.mq@15868 = 6080FFE02000FFC0</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFA0</action>
<!--
D850 | 3A 57 E4 : ld a,($E457)
D853 | E6 0F : and $0F
D855 | 28 0B : jr z,$D862
D857 | E5 : push hl
D858 | 21 66 D8 : ld hl,$D866
D85B | 85 : add a,l
D85C | 6F : ld l,a
D85D | 7E : ld a,(hl)
D85E | 32 01 E5 : ld ($E501),a
D861 | E1 : pop hl
D862 | 3A 01 E5 : ld a,($E501)
D865 | C9 : ret
D868 - D870 : input/direction conversion table
input direction
01 40 : up
02 c0 : down
04 00 : left
05 20 : upper-left
06 e0 : lower-left
08 80 : right
09 60 : upper-right
0a a0 : lower-right
-->
</script>
<script state="off">
<action>maincpu.md@145D8 = C6E5013A </action>
<action>maincpu.mq@15850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@15870 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="ninpou timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@169B6 = param</action> <!-- ($c9b6) -->
</script>
<script state="off">
<action>maincpu.mb@169B6 = 40</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@17D0 = 2847B880DBE20021</action>
<action>maincpu.mq@17D8 = F7FE350120FBFEFA</action>
<action>maincpu.mq@17E0 = 3E0420FDFE340120</action>
<action>maincpu.mq@17E8 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@17F0 = 0320EFFE78778610</action>
<action>maincpu.mq@17F8 = 3E0420DFFE06187E</action>
<action>maincpu.mq@1800 = 000000CE1885D33F</action>
<!--
17D0 | 21 00 E2 : ld hl,$E200 // sound code address
17D3 | DB 80 : in a,($80) // read input
17D5 | B8 : cp b
17D6 | 47 : ld b,a
17D7 | 28 FA : jr z,$17D3
17D9 | FE FB : cp $FB
17DB | 20 01 : jr nz,$17DE
17DD | 35 : dec (hl) // decrease code -01
17DE | FE F7 : cp $F7
17E0 | 20 01 : jr nz,$17E3
17E2 | 34 : inc (hl) // increase code +01
17E3 | FE FD : cp $FD
17E5 | 20 04 : jr nz,$17EB
17E7 | 3E F0 : ld a,$F0 // decrease code -10
17E9 | 18 06 : jr $17F1
17EB | FE FE : cp $FE
17ED | 20 05 : jr nz,$17F4
17EF | 3E 10 : ld a,$10 // increase code +10
17F1 | 86 : add a,(hl)
17F2 | 77 : ld (hl),a
17F3 | 78 : ld a,b
17F4 | FE EF : cp $EF
17F6 | 20 03 : jr nz,$17FB
17F8 | 7E : ld a,(hl) // play sound
17F9 | 18 06 : jr $1801
17FB | FE DF : cp $DF
17FD | 20 04 : jr nz,$1803
17FF | 3E 3F : ld a,$3F // stop sound
1801 | D3 85 : out ($85),a // send sound code
1803 | 18 CE : jr $17D3
-->
</script>
<script state="run">
<output format="----- youma ninpou chou 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@E200</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@17D0 = 0A28B77E08237E23</action>
<action>maincpu.mq@17D8 = 0C90CB0208D0CB02</action>
<action>maincpu.mq@17E0 = 7BDA69E96B62F018</action>
<action>maincpu.mq@17E8 = 54534554204D4152</action>
<action>maincpu.mq@17F0 = 524503DA73002020</action>
<action>maincpu.mq@17F8 = 4F7BDA7300524F52</action>
<action>maincpu.mq@1800 = 527BD9E9003F4B3F</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0C48 = 0C4A</action>
</script>
<script state="off">
<action>maincpu.mw@0C48 = 1714</action>
</script>
</cheat>
</mamecheat>
I bother about random reset in 2nd or later loop. But I don't know it's emulation or cheat problem.