Code: Select all
<!-- Image Fight (World) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@3FBB = 00</action> <!-- background (player) -->
<action>maincpu.mb@494D = 00</action> <!-- background (drill laser) -->
<action>maincpu.mb@4AF8 = 00</action> <!-- background (v-vulcan) -->
<action>maincpu.mb@4C57 = 00</action> <!-- background (ring laser) -->
<action>maincpu.mb@4DA6 = 00</action> <!-- background (search missile) -->
<action>maincpu.mb@4FFA = 00</action> <!-- background (side) -->
<action>maincpu.mb@5150 = 00</action> <!-- background (7-way) -->
<action>maincpu.mb@5274 = 00</action> <!-- background (barrier) -->
<action>maincpu.mb@54D7 = 00</action> <!-- background (search laser) -->
<action>maincpu.mb@578B = 00</action> <!-- background (bound ball) -->
<action>maincpu.mb@5AF1 = 11</action> <!-- objects -->
<action>maincpu.mb@A1B3 = EB</action> <!-- capture beam -->
<action>maincpu.mb@C23E = EB</action> <!-- capture ring -->
</script>
<script state="off">
<action>maincpu.mb@3FBB = 19</action>
<action>maincpu.mb@494D = 16</action>
<action>maincpu.mb@4AF8 = 16</action>
<action>maincpu.mb@4C57 = 2B</action>
<action>maincpu.mb@4DA6 = 1C</action>
<action>maincpu.mb@4FFA = 16</action>
<action>maincpu.mb@5150 = 16</action>
<action>maincpu.mb@5274 = 0F</action>
<action>maincpu.mb@54D7 = 1D</action>
<action>maincpu.mb@578B = 16</action>
<action>maincpu.mb@5AF1 = 02</action>
<action>maincpu.mb@A1B3 = 72</action>
<action>maincpu.mb@C23E = 77</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.md@3F47 = C0AD96E8 </action> <!-- main shot -->
<action>maincpu.mq@ECE0 = DF0880E380305E8B</action>
<action>maincpu.mq@ECE8 = FFFFFFFFFFC3FB88</action>
<!--
ECE0 | 8B 5E 30 : mov bw,[bp+30h]
ECE3 | 80 E3 80 : and bl,80h
ECE6 | 08 DF : or bh,bl
ECE8 | 88 FB : mov bl,bh
ECEA | C3 : ret
-->
<action>maincpu.mb@437B = 70</action> <!-- pods -->
<action>maincpu.mb@4953 = 70</action> <!-- drill laser -->
<action>maincpu.mb@4AFE = 70</action> <!-- v-vulcan -->
<action>maincpu.mb@4C72 = 70</action> <!-- ring laser -->
<action>maincpu.mb@4DB2 = 70</action> <!-- search missile -->
<action>maincpu.mb@5000 = 70</action> <!-- side -->
<action>maincpu.mb@5156 = 70</action> <!-- 7-way -->
<action>maincpu.mb@54E4 = 70</action> <!-- search laser -->
<action>maincpu.mb@5791 = 70</action> <!-- bound ball -->
</script>
<script state="off">
<action>maincpu.md@3F47 = C0315E8A </action>
<action>maincpu.mq@ECE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ECE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@437B = 71 </action>
<action>maincpu.mb@4953 = 71 </action>
<action>maincpu.mb@4AFE = 71 </action>
<action>maincpu.mb@4C72 = 71 </action>
<action>maincpu.mb@4DB2 = 71 </action>
<action>maincpu.mb@5000 = 71 </action>
<action>maincpu.mb@5156 = 71 </action>
<action>maincpu.mb@54E4 = 71 </action>
<action>maincpu.mb@5791 = 71 </action>
</script>
</cheat>
<cheat desc="changeable parts">
<script state="on">
<action>maincpu.md@A8C0 = 74442DE8 </action>
<action>maincpu.mq@ECF0 = 0080BF0C74FF05F6</action>
<action>maincpu.mq@ECF8 = 384589044588C033</action>
<action>maincpu.mq@ED00 = FFFFFFFFFFFFC340</action>
<!--
ECF0 | F6 05 FF : test byte ptr [iy],0FFh
ECF3 | 74 0C : be 0ED01h
ECF5 | BF 80 00 : mov iy,80h
ECF8 | 33 C0 : xor aw,aw
ECFA | 88 45 04 : mov [iy+4h],al
ECFD | 89 45 38 : mov [iy+38h],aw
ED00 | 40 : inc aw
ED01 | C3 : ret
-->
</script>
<script state="off">
<action>maincpu.md@A8C0 = 74FF05F6 </action>
<action>maincpu.mq@ECF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ECF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0xf0 - 0xff) by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@0FF0 = DD1E </action>
<action>maincpu.mq@ED10 = 88C13A00E42000BB</action>
<action>maincpu.mq@ED18 = 75FD3C278AF874C1</action>
<action>maincpu.mq@ED20 = FE0275FE3CCCFE02</action>
<action>maincpu.mq@ED28 = 10EC800375FB3CC4</action>
<action>maincpu.mq@ED30 = 8810C4800375F73C</action>
<action>maincpu.mq@ED38 = 8AD2330F757F3C27</action>
<action>maincpu.mq@ED40 = 24C0B20472F03CC4</action>
<action>maincpu.mq@ED48 = 0475BF3C08EBEE0F</action>
<action>maincpu.mq@ED50 = FFFFBDEB00E620B0</action>
<!--
ED10 | BB 00 20 : mov bw,2000h // sound code address ($A2000)
ED13 | E4 00 : in al,0h // read input
ED15 | 3A C1 : cmp al,cl
ED17 | 88 C1 : mov cl,al
ED19 | 74 F8 : be 0ED13h
ED1B | 8A 27 : mov ah,[bw]
ED1D | 3C FD : cmp al,0FDh
ED1F | 75 02 : bne 0ED23h
ED21 | FE CC : dec ah // decrease code -01
ED23 | 3C FE : cmp al,0FEh
ED25 | 75 02 : bne 0ED29h
ED27 | FE C4 : inc ah // increase code +01
ED29 | 3C FB : cmp al,0FBh
ED2B | 75 03 : bne 0ED30h
ED2D | 80 EC 10 : sub ah,10h // decrease code -10
ED30 | 3C F7 : cmp al,0F7h
ED32 | 75 03 : bne 0ED37h
ED34 | 80 C4 10 : add ah,10h // increase code +10
ED37 | 88 27 : mov [bw],ah
ED39 | 3C 7F : cmp al,7Fh
ED3B | 75 0F : bne 0ED4Ch
ED3D | 33 D2 : xor dw,dw // play sound
ED3F | 8A C4 : mov al,ah
ED41 | 3C F0 : cmp al,0F0h
ED43 | 72 04 : bc 0ED49h
ED45 | B2 C0 : mov dl,0C0h // sample
ED47 | 24 0F : and al,0Fh
ED49 | EE : out dw,al
ED4A | EB 08 : br 0ED54h
ED4C | 3C BF : cmp al,0BFh
ED4E | 75 04 : bne 0ED54h
ED50 | B0 20 : mov al,20h // stop sound
ED52 | E6 00 : out 0h,al
ED54 | EB BD : br 0ED13h
-->
</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@A2000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0FF0 = 025B </action>
<action>maincpu.mq@ED10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED50 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>mcu.md@0ABA = BA906CEB</action> <!-- work ram -->
<action>mcu.md@0B44 = BF9044EB</action> <!-- video ram -->
<action>mcu.md@0BA2 = E8905FEB</action> <!-- sprite ram -->
<action>mcu.md@0C67 = E8905fEB</action> <!-- palette ram -->
<action>mcu.md@0CE2 = 8A9022EB</action> <!-- sound ram -->
<action>mcu.md@0D22 = E89011EB</action> <!-- rom -->
</script>
<script state="off">
<action>mcu.md@0ABA = BA55AAB8</action>
<action>mcu.md@0B44 = BF0010E8</action>
<action>mcu.md@0BA2 = E8C000BF</action>
<action>mcu.md@0C67 = E88000BF</action>
<action>mcu.md@0CE2 = 8A0000BB</action>
<action>mcu.md@0D22 = E80089BB</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Image Fight (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@3FD5 = 00</action> <!-- background (player) -->
<action>maincpu.mb@4967 = 00</action> <!-- background (drill laser) -->
<action>maincpu.mb@4B12 = 00</action> <!-- background (v-vulcan) -->
<action>maincpu.mb@4C71 = 00</action> <!-- background (ring laser) -->
<action>maincpu.mb@4DC0 = 00</action> <!-- background (search missile) -->
<action>maincpu.mb@5014 = 00</action> <!-- background (side) -->
<action>maincpu.mb@516A = 00</action> <!-- background (7-way) -->
<action>maincpu.mb@528E = 00</action> <!-- background (barrier) -->
<action>maincpu.mb@54F1 = 00</action> <!-- background (search laser) -->
<action>maincpu.mb@57A5 = 00</action> <!-- background (bound ball) -->
<action>maincpu.mb@5B0B = 11</action> <!-- objects -->
<action>maincpu.mb@A1CD = EB</action> <!-- capture beam -->
<action>maincpu.mb@C258 = EB</action> <!-- capture ring -->
</script>
<script state="off">
<action>maincpu.mb@3FD5 = 19</action>
<action>maincpu.mb@4967 = 16</action>
<action>maincpu.mb@4B12 = 16</action>
<action>maincpu.mb@4C71 = 2B</action>
<action>maincpu.mb@4DC0 = 1C</action>
<action>maincpu.mb@5014 = 16</action>
<action>maincpu.mb@516A = 16</action>
<action>maincpu.mb@528E = 0F</action>
<action>maincpu.mb@54F1 = 1D</action>
<action>maincpu.mb@57A5 = 16</action>
<action>maincpu.mb@5B0B = 02</action>
<action>maincpu.mb@A1CD = 72</action>
<action>maincpu.mb@C258 = 77</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.md@3F61 = C0AD9CE8 </action> <!-- main shot -->
<action>maincpu.mq@ED00 = DF0880E380305E8B</action>
<action>maincpu.mq@ED08 = FFFFFFFFFFC3FB88</action>
<!--
ED00 | 8B 5E 30 : mov bw,[bp+30h]
ED03 | 80 E3 80 : and bl,80h
ED06 | 08 DF : or bh,bl
ED08 | 88 FB : mov bl,bh
ED0A | C3 : ret
-->
<action>maincpu.mb@4395 = 70</action> <!-- pods -->
<action>maincpu.mb@496D = 70</action> <!-- drill laser -->
<action>maincpu.mb@4B18 = 70</action> <!-- v-vulcan -->
<action>maincpu.mb@4C8C = 70</action> <!-- ring laser -->
<action>maincpu.mb@4DCC = 70</action> <!-- search missile -->
<action>maincpu.mb@501A = 70</action> <!-- side -->
<action>maincpu.mb@5170 = 70</action> <!-- 7-way -->
<action>maincpu.mb@54FE = 70</action> <!-- search laser -->
<action>maincpu.mb@57AB = 70</action> <!-- bound ball -->
</script>
<script state="off">
<action>maincpu.md@3F61 = C0315E8A </action>
<action>maincpu.mq@ED00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@4395 = 71 </action>
<action>maincpu.mb@496D = 71 </action>
<action>maincpu.mb@4A18 = 71 </action>
<action>maincpu.mb@4C8C = 71 </action>
<action>maincpu.mb@4DCC = 71 </action>
<action>maincpu.mb@501A = 71 </action>
<action>maincpu.mb@5170 = 71 </action>
<action>maincpu.mb@54FE = 71 </action>
<action>maincpu.mb@57AB = 71 </action>
</script>
</cheat>
<cheat desc="changeable parts">
<script state="on">
<action>maincpu.md@A8DA = 744433E8 </action>
<action>maincpu.mq@ED10 = 0080BF0C74FF05F6</action>
<action>maincpu.mq@ED18 = 384589044588C033</action>
<action>maincpu.mq@ED20 = FFFFFFFFFFFFC340</action>
<!--
ED10 | F6 05 FF : test byte ptr [iy],0FFh
ED13 | 74 0C : be 0ED21h
ED15 | BF 80 00 : mov iy,80h
ED18 | 33 C0 : xor aw,aw
ED1A | 88 45 04 : mov [iy+4h],al
ED1D | 89 45 38 : mov [iy+38h],aw
ED20 | 40 : inc aw
ED21 | C3 : ret
-->
</script>
<script state="off">
<action>maincpu.md@A8DA = 74FF05F6 </action>
<action>maincpu.mq@ED10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED20 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0xf0 - 0xff) by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@0EB9 = 01 </action> <!-- skip warning message -->
<action>maincpu.mw@100A = DD24 </action>
<action>maincpu.mq@ED30 = 88C13A00E42000BB</action>
<action>maincpu.mq@ED38 = 75FD3C278AF874C1</action>
<action>maincpu.mq@ED40 = FE0275FE3CCCFE02</action>
<action>maincpu.mq@ED48 = 10EC800375FB3CC4</action>
<action>maincpu.mq@ED50 = 8810C4800375F73C</action>
<action>maincpu.mq@ED58 = 8AD2330F757F3C27</action>
<action>maincpu.mq@ED60 = 24C0B20472F03CC4</action>
<action>maincpu.mq@ED68 = 0475BF3C08EBEE0F</action>
<action>maincpu.mq@ED70 = FFFFBDEB00E620B0</action>
<!--
ED10 | BB 00 20 : mov bw,2000h // sound code address ($A2000)
ED13 | E4 00 : in al,0h // read input
ED15 | 3A C1 : cmp al,cl
ED17 | 88 C1 : mov cl,al
ED19 | 74 F8 : be 0ED13h
ED1B | 8A 27 : mov ah,[bw]
ED1D | 3C FD : cmp al,0FDh
ED1F | 75 02 : bne 0ED23h
ED21 | FE CC : dec ah // decrease code -01
ED23 | 3C FE : cmp al,0FEh
ED25 | 75 02 : bne 0ED29h
ED27 | FE C4 : inc ah // increase code +01
ED29 | 3C FB : cmp al,0FBh
ED2B | 75 03 : bne 0ED30h
ED2D | 80 EC 10 : sub ah,10h // decrease code -10
ED30 | 3C F7 : cmp al,0F7h
ED32 | 75 03 : bne 0ED37h
ED34 | 80 C4 10 : add ah,10h // increase code +10
ED37 | 88 27 : mov [bw],ah
ED39 | 3C 7F : cmp al,7Fh
ED3B | 75 0F : bne 0ED4Ch
ED3D | 33 D2 : xor dw,dw // play sound
ED3F | 8A C4 : mov al,ah
ED41 | 3C F0 : cmp al,0F0h
ED43 | 72 04 : bc 0ED49h
ED45 | B2 C0 : mov dl,0C0h // sample
ED47 | 24 0F : and al,0Fh
ED49 | EE : out dw,al
ED4A | EB 08 : br 0ED54h
ED4C | 3C BF : cmp al,0BFh
ED4E | 75 04 : bne 0ED54h
ED50 | B0 20 : mov al,20h // stop sound
ED52 | E6 00 : out 0h,al
ED54 | EB BD : br 0ED13h
-->
</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@A2000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0EB9 = 00 </action>
<action>maincpu.mw@100A = 025B </action>
<action>maincpu.mq@ED30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>mcu.md@0972 = BA906CEB</action> <!-- work ram -->
<action>mcu.md@09FC = BF9044EB</action> <!-- video ram -->
<action>mcu.md@0A5A = E8905FEB</action> <!-- sprite ram -->
<action>mcu.md@0B1F = E8905FEB</action> <!-- palette ram -->
<action>mcu.md@0B9A = 8A9022EB</action> <!-- sound ram -->
<action>mcu.md@0BDA = E89011EB</action> <!-- rom -->
</script>
<script state="off">
<action>mcu.md@0972 = BA55AAB8</action>
<action>mcu.md@09FC = BF0010E8</action>
<action>mcu.md@0A5A = E8C000BF</action>
<action>mcu.md@0B1F = E88000BF</action>
<action>mcu.md@0B9A = 8A0000BB</action>
<action>mcu.md@0BDA = E80089BB</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Image Fight (Japan, bootleg) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@3FD5 = 00</action> <!-- background (player) -->
<action>maincpu.mb@4967 = 00</action> <!-- background (drill laser) -->
<action>maincpu.mb@4B12 = 00</action> <!-- background (v-vulcan) -->
<action>maincpu.mb@4C71 = 00</action> <!-- background (ring laser) -->
<action>maincpu.mb@4DC0 = 00</action> <!-- background (search missile) -->
<action>maincpu.mb@5014 = 00</action> <!-- background (side) -->
<action>maincpu.mb@516A = 00</action> <!-- background (7-way) -->
<action>maincpu.mb@528E = 00</action> <!-- background (barrier) -->
<action>maincpu.mb@54F1 = 00</action> <!-- background (search laser) -->
<action>maincpu.mb@57A5 = 00</action> <!-- background (bound ball) -->
<action>maincpu.mb@5B0B = 11</action> <!-- objects -->
<action>maincpu.mb@A1CD = EB</action> <!-- capture beam -->
<action>maincpu.mb@C258 = EB</action> <!-- capture ring -->
</script>
<script state="off">
<action>maincpu.mb@3FD5 = 19</action>
<action>maincpu.mb@4967 = 16</action>
<action>maincpu.mb@4B12 = 16</action>
<action>maincpu.mb@4C71 = 2B</action>
<action>maincpu.mb@4DC0 = 1C</action>
<action>maincpu.mb@5014 = 16</action>
<action>maincpu.mb@516A = 16</action>
<action>maincpu.mb@528E = 0F</action>
<action>maincpu.mb@54F1 = 1D</action>
<action>maincpu.mb@57A5 = 16</action>
<action>maincpu.mb@5B0B = 02</action>
<action>maincpu.mb@A1CD = 72</action>
<action>maincpu.mb@C258 = 77</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.md@3F61 = C0AD9CE8 </action> <!-- main shot -->
<action>maincpu.mq@ED00 = DF0880E380305E8B</action>
<action>maincpu.mq@ED08 = FFFFFFFFFFC3FB88</action>
<!--
ED00 | 8B 5E 30 : mov bw,[bp+30h]
ED03 | 80 E3 80 : and bl,80h
ED06 | 08 DF : or bh,bl
ED08 | 88 FB : mov bl,bh
ED0A | C3 : ret
-->
<action>maincpu.mb@4395 = 70</action> <!-- pods -->
<action>maincpu.mb@496D = 70</action> <!-- drill laser -->
<action>maincpu.mb@4B18 = 70</action> <!-- v-vulcan -->
<action>maincpu.mb@4C8C = 70</action> <!-- ring laser -->
<action>maincpu.mb@4DCC = 70</action> <!-- search missile -->
<action>maincpu.mb@501A = 70</action> <!-- side -->
<action>maincpu.mb@5170 = 70</action> <!-- 7-way -->
<action>maincpu.mb@54FE = 70</action> <!-- search laser -->
<action>maincpu.mb@57AB = 70</action> <!-- bound ball -->
</script>
<script state="off">
<action>maincpu.md@3F61 = C0315E8A </action>
<action>maincpu.mq@ED00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@4395 = 71 </action>
<action>maincpu.mb@496D = 71 </action>
<action>maincpu.mb@4A18 = 71 </action>
<action>maincpu.mb@4C8C = 71 </action>
<action>maincpu.mb@4DCC = 71 </action>
<action>maincpu.mb@501A = 71 </action>
<action>maincpu.mb@5170 = 71 </action>
<action>maincpu.mb@54FE = 71 </action>
<action>maincpu.mb@57AB = 71 </action>
</script>
</cheat>
<cheat desc="changeable parts">
<script state="on">
<action>maincpu.md@A8DA = 744433E8 </action>
<action>maincpu.mq@ED10 = 0080BF0C74FF05F6</action>
<action>maincpu.mq@ED18 = 384589044588C033</action>
<action>maincpu.mq@ED20 = FFFFFFFFFFFFC340</action>
<!--
ED10 | F6 05 FF : test byte ptr [iy],0FFh
ED13 | 74 0C : be 0ED21h
ED15 | BF 80 00 : mov iy,80h
ED18 | 33 C0 : xor aw,aw
ED1A | 88 45 04 : mov [iy+4h],al
ED1D | 89 45 38 : mov [iy+38h],aw
ED20 | 40 : inc aw
ED21 | C3 : ret
-->
</script>
<script state="off">
<action>maincpu.md@A8DA = 74FF05F6 </action>
<action>maincpu.mq@ED10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED20 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop samples (0xf0 - 0xff) by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@0EB9 = 01 </action> <!-- skip warning message -->
<action>maincpu.mw@100A = DD24 </action>
<action>maincpu.mq@ED30 = 88C13A00E42000BB</action>
<action>maincpu.mq@ED38 = 75FD3C278AF874C1</action>
<action>maincpu.mq@ED40 = FE0275FE3CCCFE02</action>
<action>maincpu.mq@ED48 = 10EC800375FB3CC4</action>
<action>maincpu.mq@ED50 = 8810C4800375F73C</action>
<action>maincpu.mq@ED58 = 8AD2330F757F3C27</action>
<action>maincpu.mq@ED60 = 24C0B20472F03CC4</action>
<action>maincpu.mq@ED68 = 0475BF3C08EBEE0F</action>
<action>maincpu.mq@ED70 = FFFFBDEB00E620B0</action>
<!--
ED10 | BB 00 20 : mov bw,2000h // sound code address ($A2000)
ED13 | E4 00 : in al,0h // read input
ED15 | 3A C1 : cmp al,cl
ED17 | 88 C1 : mov cl,al
ED19 | 74 F8 : be 0ED13h
ED1B | 8A 27 : mov ah,[bw]
ED1D | 3C FD : cmp al,0FDh
ED1F | 75 02 : bne 0ED23h
ED21 | FE CC : dec ah // decrease code -01
ED23 | 3C FE : cmp al,0FEh
ED25 | 75 02 : bne 0ED29h
ED27 | FE C4 : inc ah // increase code +01
ED29 | 3C FB : cmp al,0FBh
ED2B | 75 03 : bne 0ED30h
ED2D | 80 EC 10 : sub ah,10h // decrease code -10
ED30 | 3C F7 : cmp al,0F7h
ED32 | 75 03 : bne 0ED37h
ED34 | 80 C4 10 : add ah,10h // increase code +10
ED37 | 88 27 : mov [bw],ah
ED39 | 3C 7F : cmp al,7Fh
ED3B | 75 0F : bne 0ED4Ch
ED3D | 33 D2 : xor dw,dw // play sound
ED3F | 8A C4 : mov al,ah
ED41 | 3C F0 : cmp al,0F0h
ED43 | 72 04 : bc 0ED49h
ED45 | B2 C0 : mov dl,0C0h // sample
ED47 | 24 0F : and al,0Fh
ED49 | EE : out dw,al
ED4A | EB 08 : br 0ED54h
ED4C | 3C BF : cmp al,0BFh
ED4E | 75 04 : bne 0ED54h
ED50 | B0 20 : mov al,20h // stop sound
ED52 | E6 00 : out 0h,al
ED54 | EB BD : br 0ED13h
-->
</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@A2000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0EB9 = 00 </action>
<action>maincpu.mw@100A = 025B </action>
<action>maincpu.mq@ED30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@ED70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>mcu.md@0972 = BA906CEB</action> <!-- work ram -->
<action>mcu.md@09FC = BF9044EB</action> <!-- video ram -->
<action>mcu.md@0A5A = E8905FEB</action> <!-- sprite ram -->
<action>mcu.md@0B1F = E8905FEB</action> <!-- palette ram -->
<action>mcu.md@0B9A = 8A9022EB</action> <!-- sound ram -->
<action>mcu.md@0BDA = E89011EB</action> <!-- rom -->
</script>
<script state="off">
<action>mcu.md@0972 = BA55AAB8</action>
<action>mcu.md@09FC = BF0010E8</action>
<action>mcu.md@0A5A = E8C000BF</action>
<action>mcu.md@0B1F = E88000BF</action>
<action>mcu.md@0B9A = 8A0000BB</action>
<action>mcu.md@0BDA = E80089BB</action>
</script>
</cheat>
</mamecheat>
- "no hit" : For some reasons, weapon parts get "no hit" together.
- "changeable parts" : It's unique code. Normally, you can't get other weapon parts when you have already equiped a weapon. This code removes restrictions.
- "sound test mode" : You can't stop samples (0xf0 - 0xff) by sound stop button.