[imgfight]+ Image Fight

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 1254
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[imgfight]+ Image Fight

Post by jman »

imgfight.xml

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="&lt;&lt; sound code %02X &gt;&gt;" 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>
imgfightj.xml

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="&lt;&lt; sound code %02X &gt;&gt;" 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>
imgfightjb.xml

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="&lt;&lt; sound code %02X &gt;&gt;" 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.
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
Post Reply