[zerowing1] Zero Wing

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: 842
Joined: Tue Dec 01, 2020 1:24 pm

[zerowing1] Zero Wing

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- background -->
        <action>maincpu.mw@329a = 0002</action>
        <!-- objects -->
        <action>maincpu.mq@b8ba = 382800143a04d868</action>
        <action>maincpu.mq@b8c2 = 00189a68001a3c28</action>
        <action>maincpu.mq@b8ca = 00163e06dc68001c</action>
        <action>maincpu.mq@b8d2 = 9e68001e43f90008</action>
        <!--
        b8ba | 3828 0014 : move.w ($14,A0),D4
        b8be | 3a04      : move.w D4,D5
        b8c0 | d868 0018 : add.w  ($18,A0),D4
        b8c4 | 9a68 001a : sub.w  ($1a,A0),D5
        b8c8 | 3c28 0016 : move.w ($16,A0),D6
        b8cc | 3e06      : move.w D6,D7
        b8ce | dc68 001c : add.w  ($1c,A0),D6
        b8d2 | 9e68 001e : sub.w  ($1e,A0),D7
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@329a =             ff8e</action>
        <action>maincpu.mq@b8ba = 610000d208100006</action>
        <action>maincpu.mq@b8c2 = 662243f900080b70</action>
        <action>maincpu.mq@b8ca = 7013610000e40810</action>
        <action>maincpu.mq@b8d2 = 0006661043f90008</action>
    </script>
</cheat>

<cheat desc="no hit - bomb">
    <script state="on">
        <action>maincpu.mw@4dc4 = 4e71</action> <!-- background -->
        <action>maincpu.mb@b953 =   00</action> <!-- objects -->
    </script>
    <script state="off">
        <action>maincpu.mw@4dc4 = 660c</action>
        <action>maincpu.mb@b953 =   02</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@3336 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@3336 = 67</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0100">02       </item>
        <item value="0x0180">03       </item>
        <item value="0x0200">04       </item>
        <item value="0x0280">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@5216 = 4eb90000ce404e71</action>
        <action>maincpu.mq@ce40 = bdfc00080000661c</action>
        <action>maincpu.mq@ce48 = 303c00004a426706</action>
        <action>maincpu.mq@ce50 = 6a0244403400303c</action>
        <action>maincpu.mq@ce58 = 00004a4367066a02</action>
        <action>maincpu.mq@ce60 = 44403600d56e0016</action>
        <action>maincpu.mq@ce68 = d76e00144e75ffff</action>
        <!--
        ce40 | bdfc 0008 0000 : cmpa.l #$80000,A6
        ce46 | 661c           : bne    $ce64
        ce48 | 303c xxxx      : move.w #$xx,D0
        ce4c | 4a42           : tst.w  D2
        ce4e | 6706           : beq    $ce56
        ce50 | 6a02           : bpl    $ce54
        ce52 | 4440           : neg.w  D0
        ce54 | 3400           : move.w D0,D2
        ce56 | 303c xxxx      : move.w #$xx,D0
        ce5a | 4a43           : tst.w  D3
        ce5c | 6706           : beq    $ce64
        ce5e | 6a02           : bpl    $ce62
        ce60 | 4440           : neg.w  D0
        ce62 | 3600           : move.w D0,D3
        ce64 | d56e 0016      : add.w  D2,($16,A6)
        ce68 | d76e 0014      : add.w  D3,($14,A6)
        ce6c | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@ce4a = param</action>
        <action>maincpu.mw@ce58 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@5216 = d56e0016d76e0014</action>
        <action>maincpu.mq@ce40 = ffffffffffffffff</action>
        <action>maincpu.mq@ce48 = ffffffffffffffff</action>
        <action>maincpu.mq@ce50 = ffffffffffffffff</action>
        <action>maincpu.mq@ce58 = ffffffffffffffff</action>
        <action>maincpu.mq@ce60 = ffffffffffffffff</action>
        <action>maincpu.mq@ce68 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mq@0518 = 4ef90000ce700240</action>
        <action>maincpu.mq@ce70 = 41f90008010043f9</action>
        <action>maincpu.mq@ce78 = 0044000112001029</action>
        <action>maincpu.mq@ce80 = 000eb20067f60c00</action>
        <action>maincpu.mq@ce88 = 0004660253100c00</action>
        <action>maincpu.mq@ce90 = 0008660252100c00</action>
        <action>maincpu.mq@ce98 = 0002660404100010</action>
        <action>maincpu.mq@cea0 = 0c00000166040610</action>
        <action>maincpu.mq@cea8 = 00100c0000106602</action>
        <action>maincpu.mq@ceb0 = 12900c0000206604</action>
        <action>maincpu.mq@ceb8 = 12bc00fe60beffff</action>
        <!--
        ce70 | 41f9 0008 0100 : lea    $80100.l,A0  // sound code address
        ce76 | 43f9 0044 0001 : lea    $440001.l,A1 // sound latch address
        ce7c | 1200           : move.b D0,D1
        ce7e | 1029 000e      : move.b ($e,A1),D0   // read input
        ce82 | b200           : cmp.b  D0,D1
        ce84 | 67f6           : beq    $ce7c
        ce86 | 0c00 0004      : cmpi.b #$4,D0
        ce8a | 6602           : bne    $ce8e
        ce8c | 5310           : subq.b #1,(A0)      // decrease code -01
        ce8e | 0c00 0008      : cmpi.b #$8,D0
        ce92 | 6602           : bne    $ce96
        ce94 | 5210           : addq.b #1,(A0)      // increase code +01
        ce96 | 0c00 0002      : cmpi.b #$2,D0
        ce9a | 6604           : bne    $cea0
        ce9c | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        cea0 | 0c00 0001      : cmpi.b #$1,D0
        cea4 | 6604           : bne    $ceaa
        cea6 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        ceaa | 0c00 0010      : cmpi.b #$10,D0
        ceae | 6602           : bne    $ceb2
        ceb0 | 1290           : move.b (A0),(A1)    // play sound
        ceb2 | 0c00 0020      : cmpi.b #$20,D0
        ceb6 | 6604           : bne    $cebc
        ceb8 | 12bc 00fe      : move.b #$fe,(A1)    // stop sound
        cebc | 60be           : bra    $ce7c
        -->
    </script>
    <script state="run">
        <output format="----- zero wing sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"              line="11" align="center" />
        <output format="right : increase code +01"             line="12" align="center" />
        <output format="up : increase code +10"                line="13" align="center" />
        <output format="down : decrease code -10"              line="14" align="center" />
        <output format="button 1 : play sound"                 line="15" align="center" />
        <output format="button 2 : stop sound"                 line="16" align="center" />
        <output format="----------------------------"          line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"    line="19" align="center">
            <argument>maincpu.pb@80100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0518 = 30390008180e0240</action>
        <action>maincpu.mq@ce70 = ffffffffffffffff</action>
        <action>maincpu.mq@ce78 = ffffffffffffffff</action>
        <action>maincpu.mq@ce80 = ffffffffffffffff</action>
        <action>maincpu.mq@ce88 = ffffffffffffffff</action>
        <action>maincpu.mq@ce90 = ffffffffffffffff</action>
        <action>maincpu.mq@ce98 = ffffffffffffffff</action>
        <action>maincpu.mq@cea0 = ffffffffffffffff</action>
        <action>maincpu.mq@cea8 = ffffffffffffffff</action>
        <action>maincpu.mq@ceb0 = ffffffffffffffff</action>
        <action>maincpu.mq@ceb8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip rom check">
    <script state="on">
        <action>maincpu.mb@04d9 = e4</action>
    </script>
    <script state="off">
        <action>maincpu.mb@04d9 = e6</action>
    </script>
</cheat>
Sometimes "special weapon item" appears in playing with bomb.
ImageImage
I fail to search the code for special weapon though.
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[zerowing]+ Zero Wing

Post by jman »

zerowing.xml

Code: Select all

<!-- Zero Wing (2P set) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@381E = 60</action> <!-- background -->
            <action>maincpu.mb@C1D6 = 60</action> <!-- P1 objects -->
            <action>maincpu.mb@C2D0 = 60</action> <!-- P2 objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@381E = 66</action>
            <action>maincpu.mb@C1D6 = 66</action>
            <action>maincpu.mb@C2D0 = 66</action>
        </script>
    </cheat>

    <cheat desc="no hit - bomb">
        <script state="on">
            <!-- background -->
            <action>maincpu.mw@54AC = 601E</action> <!-- background -->
            <action>maincpu.mw@C27C = 0000</action> <!-- P1 objects -->
            <action>maincpu.mw@C376 = 0000</action> <!-- P2 objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@54AC = 671E</action>
            <action>maincpu.mw@C27C = 0002</action>
            <action>maincpu.mw@C376 = 0002</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@38BF = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@38BF = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@5952 = 4EB90000D7D04E71</action>
            <action>maincpu.mq@D7D0 = BDFC000800306E1C</action>
            <action>maincpu.mq@D7D8 = 303C00004A426706</action>
            <action>maincpu.mq@D7E0 = 6A0244403400303C</action>
            <action>maincpu.mq@D7E8 = 00004A4367066A02</action>
            <action>maincpu.mq@D7F0 = 44403600D56E0016</action>
            <action>maincpu.mq@D7F8 = D76E00144E75FFFF</action>
            <!--
            D7D0 | BDFC 0008 0030 : cmpa.l  #$80030, A6
            D7D6 | 6E1C           : bgt     $d7f4
            D7D8 | 303C xxxx      : move.w  #$xx, D0
            D7DC | 4A42           : tst.w   D2
            D7DE | 6706           : beq     $d7e6
            D7E0 | 6A02           : bpl     $d7e4
            D7E2 | 4440           : neg.w   D0
            D7E4 | 3400           : move.w  D0, D2
            D7E6 | 303C xxxx      : move.w  #$xx, D0
            D7EA | 4A43           : tst.w   D3
            D7EC | 6706           : beq     $d7f4
            D7EE | 6A02           : bpl     $d7f2
            D7F0 | 4440           : neg.w   D0
            D7F2 | 3600           : move.w  D0, D3
            D7F4 | D56E 0016      : add.w   D2, ($16,A6)
            D7F8 | D76E 0014      : add.w   D3, ($14,A6)
            D7FC | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@D7DA = param</action>
            <action>maincpu.mw@D7E8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@5952 = D56E0016D76E0014</action>
            <action>maincpu.mq@D7D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="disable red screen flashing">
        <script state="on">
            <action>maincpu.mb@0172 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0172 = 67</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@062E = 4EF90000D8006000</action>
            <action>maincpu.mq@D800 = 41F90008000043F9</action>
            <action>maincpu.mq@D808 = 0044000112001029</action>
            <action>maincpu.mq@D810 = 000EB20067F60C00</action>
            <action>maincpu.mq@D818 = 0004660253100C00</action>
            <action>maincpu.mq@D820 = 0008660252100C00</action>
            <action>maincpu.mq@D828 = 0002660404100010</action>
            <action>maincpu.mq@D830 = 0C00000166040610</action>
            <action>maincpu.mq@D838 = 00100C0000106602</action>
            <action>maincpu.mq@D840 = 12900C0000206604</action>
            <action>maincpu.mq@D848 = 12BC00FE60BEFFFF</action>
            <!--
            D800 | 41F9 0008 0000 : lea     $80000.l, A0  // sound code address
            D806 | 43F9 0044 0001 : lea     $440001.l, A1 // sound latch address
            D80C | 1200           : move.b  D0, D1
            D80E | 1029 000E      : move.b  ($e,A1), D0   // read input ($44000f)
            D812 | B200           : cmp.b   D0, D1
            D814 | 67F6           : beq     $c80c
            D816 | 0C00 0004      : cmpi.b  #$4, D0
            D81A | 6602           : bne     $c81e
            D81C | 5310           : subq.b  #1, (A0)      // decrease code -01
            D81E | 0C00 0008      : cmpi.b  #$8, D0
            D822 | 6602           : bne     $c826
            D824 | 5210           : addq.b  #1, (A0)      // increase code +01
            D826 | 0C00 0002      : cmpi.b  #$2, D0
            D82A | 6604           : bne     $c830
            D82C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            D830 | 0C00 0001      : cmpi.b  #$1, D0
            D834 | 6604           : bne     $c83a
            D836 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            D83A | 0C00 0010      : cmpi.b  #$10, D0
            D83E | 6602           : bne     $c842
            D840 | 1290           : move.b  (A0), (A1)    // play sound
            D842 | 0C00 0020      : cmpi.b  #$20, D0
            D846 | 6604           : bne     $c84c
            D848 | 12BC 00FE      : move.b  #$fe, (A1)    // stop sound
            D84C | 60BE           : bra     $c80c
            -->
        </script>
        <script state="run">
            <output format="----- zero wing 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 %2.2X &gt;&gt;"    line="19" align="center"  >
                <argument>maincpu.pb@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@062E = 7010610053CC6000</action>
            <action>maincpu.mq@D800 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D808 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D810 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D818 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D820 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D828 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D830 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D838 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D840 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D848 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0566 = 01E6</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0566 = 01E8</action>
        </script>
    </cheat>

</mamecheat>
zerowing1.xml

Code: Select all

<!-- Zero Wing (1P set) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@329A = 0002</action> <!-- background -->
            <action>maincpu.mw@B8BA = 601A</action> <!-- objects : skip enemy/bullet check -->
            <action>maincpu.mw@B8E0 = 00B6</action> <!-- objects : enable item check -->
        </script>
        <script state="off">
            <action>maincpu.mw@329A = FF8E</action>
            <action>maincpu.mw@B8BA = 6100</action>
            <action>maincpu.mw@B8E0 = 00D2</action>
        </script>
    </cheat>

    <cheat desc="no hit - bomb">
        <script state="on">
            <action>maincpu.mw@4DC4 = 4E71</action> <!-- background -->
            <action>maincpu.mw@B952 = 0000</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@4DC4 = 660C</action>
            <action>maincpu.mw@B952 = 0002</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@331D = 38</action>
        </script>
        <script state="off">
            <action>maincpu.mb@331D = 0A</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@5216 = 4EB90000CE404E71</action>
            <action>maincpu.mq@CE40 = BDFC00080000661C</action>
            <action>maincpu.mq@CE48 = 303C00004A426706</action>
            <action>maincpu.mq@CE50 = 6A0244403400303C</action>
            <action>maincpu.mq@CE58 = 00004A4367066A02</action>
            <action>maincpu.mq@CE60 = 44403600D56E0016</action>
            <action>maincpu.mq@CE68 = D76E00144E75FFFF</action>
            <!--
            CE40 | BDFC 0008 0000 : cmpa.l  #$80000, A6
            CE46 | 661C           : bne     $ce64
            CE48 | 303C xxxx      : move.w  #$xx, D0
            CE4C | 4A42           : tst.w   D2
            CE4E | 6706           : beq     $ce56
            CE50 | 6A02           : bpl     $ce54
            CE52 | 4440           : neg.w   D0
            CE54 | 3400           : move.w  D0, D2
            CE56 | 303C xxxx      : move.w  #$xx, D0
            CE5A | 4A43           : tst.w   D3
            CE5C | 6706           : beq     $ce64
            CE5E | 6A02           : bpl     $ce62
            CE60 | 4440           : neg.w   D0
            CE62 | 3600           : move.w  D0, D3
            CE64 | D56E 0016      : add.w   D2, ($16,A6)
            CE68 | D76E 0014      : add.w   D3, ($14,A6)
            CE6C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@CE4A = param</action>
            <action>maincpu.mw@CE58 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@5216 = D56E0016D76E0014</action>
            <action>maincpu.mq@CE40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="disable red screen flashing">
        <script state="on">
            <action>maincpu.mb@0172 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0172 = 67</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set rom check skip then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@0518 = 4EF90000CE700240</action>
            <action>maincpu.mq@CE70 = 41F90008010043F9</action>
            <action>maincpu.mq@CE78 = 0044000112001029</action>
            <action>maincpu.mq@CE80 = 000EB20067F60C00</action>
            <action>maincpu.mq@CE88 = 0004660253100C00</action>
            <action>maincpu.mq@CE90 = 0008660252100C00</action>
            <action>maincpu.mq@CE98 = 0002660404100010</action>
            <action>maincpu.mq@CEA0 = 0C00000166040610</action>
            <action>maincpu.mq@CEA8 = 00100C0000106602</action>
            <action>maincpu.mq@CEB0 = 12900C0000206604</action>
            <action>maincpu.mq@CEB8 = 12BC00FE60BEFFFF</action>
            <!--
            CE70 | 41F9 0008 0100 : lea     $80100.l, A0  // sound code address
            CE76 | 43F9 0044 0001 : lea     $440001.l, A1 // sound latch address
            CE7C | 1200           : move.b  D0, D1
            CE7E | 1029 000E      : move.b  ($e,A1), D0   // read input ($44000f)
            CE82 | B200           : cmp.b   D0, D1
            CE84 | 67F6           : beq     $ce7c
            CE86 | 0C00 0004      : cmpi.b  #$4, D0
            CE8A | 6602           : bne     $ce8e
            CE8C | 5310           : subq.b  #1, (A0)      // decrease code -01
            CE8E | 0C00 0008      : cmpi.b  #$8, D0
            CE92 | 6602           : bne     $ce96
            CE94 | 5210           : addq.b  #1, (A0)      // increase code +01
            CE96 | 0C00 0002      : cmpi.b  #$2, D0
            CE9A | 6604           : bne     $cea0
            CE9C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            CEA0 | 0C00 0001      : cmpi.b  #$1, D0
            CEA4 | 6604           : bne     $ceaa
            CEA6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            CEAA | 0C00 0010      : cmpi.b  #$10, D0
            CEAE | 6602           : bne     $ceb2
            CEB0 | 1290           : move.b  (A0), (A1)    // play sound
            CEB2 | 0C00 0020      : cmpi.b  #$20, D0
            CEB6 | 6604           : bne     $cebc
            CEB8 | 12BC 00FE      : move.b  #$fe, (A1)    // stop sound
            CEBC | 60BE           : bra     $ce7c
            -->
        </script>
        <script state="run">
            <output format="----- zero wing 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 %2.2X &gt;&gt;"    line="19" align="center"  >
                <argument>maincpu.pb@80100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0518 = 30390008180E0240</action>
            <action>maincpu.mq@CE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CEA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CEA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@CEB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@04D8 = 01E4</action>
        </script>
        <script state="off">
            <action>maincpu.mw@04D8 = 01E6</action>
        </script>
    </cheat>

</mamecheat>
zerowingw.xml

Code: Select all

<!-- Zero Wing (2P set, Williams license) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@382C = 60</action> <!-- background -->
            <action>maincpu.mb@C1CA = 60</action> <!-- P1 objects -->
            <action>maincpu.mb@C2C4 = 60</action> <!-- P2 objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@382C = 66</action>
            <action>maincpu.mb@C1CA = 66</action>
            <action>maincpu.mb@C2C4 = 66</action>
        </script>
    </cheat>

    <cheat desc="no hit - bomb">
        <script state="on">
            <!-- background -->
            <action>maincpu.mw@54BA = 601E</action> <!-- background -->
            <action>maincpu.mw@C270 = 0000</action> <!-- P1 objects -->
            <action>maincpu.mw@C36A = 0000</action> <!-- P2 objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@54BA = 671E</action>
            <action>maincpu.mw@C270 = 0002</action>
            <action>maincpu.mw@C36A = 0002</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@38CD = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@38CD = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@5960 = 4EB90000D8C04E71</action>
            <action>maincpu.mq@D8C0 = BDFC000800306E1C</action>
            <action>maincpu.mq@D8C8 = 303C00004A426706</action>
            <action>maincpu.mq@D8D0 = 6A0244403400303C</action>
            <action>maincpu.mq@D8D8 = 00004A4367066A02</action>
            <action>maincpu.mq@D8E0 = 44403600D56E0016</action>
            <action>maincpu.mq@D8E8 = D76E00144E75FFFF</action>
            <!--
            D8C0 | BDFC 0008 0030 : cmpa.l  #$80030, A6
            D8C6 | 6E1C           : bgt     $d8e4
            D8C8 | 303C xxxx      : move.w  #$xx, D0
            D8CC | 4A42           : tst.w   D2
            D8CE | 6706           : beq     $d8d6
            D8D0 | 6A02           : bpl     $d8d4
            D8D2 | 4440           : neg.w   D0
            D8D4 | 3400           : move.w  D0, D2
            D8D6 | 303C xxxx      : move.w  #$xx, D0
            D8DA | 4A43           : tst.w   D3
            D8DC | 6706           : beq     $d8e4
            D8DE | 6A02           : bpl     $d8e2
            D8E0 | 4440           : neg.w   D0
            D8E2 | 3600           : move.w  D0, D3
            D8E4 | D56E 0016      : add.w   D2, ($16,A6)
            D8E8 | D76E 0014      : add.w   D3, ($14,A6)
            D8EC | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@D8CA = param</action>
            <action>maincpu.mw@D8D8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@5960 = D56E0016D76E0014</action>
            <action>maincpu.mq@D8C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D8C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D8D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D8D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D8E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D8E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="disable red screen flashing">
        <script state="on">
            <action>maincpu.mb@0172 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0172 = 67</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@062E = 4EF90000D8F06000</action>
            <action>maincpu.mq@D8F0 = 41F90008000043F9</action>
            <action>maincpu.mq@D8F8 = 0044000112001029</action>
            <action>maincpu.mq@D900 = 000EB20067F60C00</action>
            <action>maincpu.mq@D908 = 0004660253100C00</action>
            <action>maincpu.mq@D910 = 0008660252100C00</action>
            <action>maincpu.mq@D918 = 0002660404100010</action>
            <action>maincpu.mq@D920 = 0C00000166040610</action>
            <action>maincpu.mq@D928 = 00100C0000106602</action>
            <action>maincpu.mq@D930 = 12900C0000206604</action>
            <action>maincpu.mq@D938 = 12BC00FE60BEFFFF</action>
            <!--
            D8F0 | 41F9 0008 0000 : lea     $80000.l, A0  // sound code address
            D8F6 | 43F9 0044 0001 : lea     $440001.l, A1 // sound latch address
            D8FC | 1200           : move.b  D0, D1
            D8FE | 1029 000E      : move.b  ($e,A1), D0   // read input ($44000f)
            D902 | B200           : cmp.b   D0, D1
            D904 | 67F6           : beq     $d8fc
            D906 | 0C00 0004      : cmpi.b  #$4, D0
            D90A | 6602           : bne     $d90e
            D90C | 5310           : subq.b  #1, (A0)      // decrease code -01
            D90E | 0C00 0008      : cmpi.b  #$8, D0
            D912 | 6602           : bne     $d916
            D914 | 5210           : addq.b  #1, (A0)      // increase code +01
            D916 | 0C00 0002      : cmpi.b  #$2, D0
            D91A | 6604           : bne     $d920
            D91C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            D920 | 0C00 0001      : cmpi.b  #$1, D0
            D924 | 6604           : bne     $d92a
            D926 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            D92A | 0C00 0010      : cmpi.b  #$10, D0
            D92E | 6602           : bne     $d932
            D930 | 1290           : move.b  (A0), (A1)    // play sound
            D932 | 0C00 0020      : cmpi.b  #$20, D0
            D936 | 6604           : bne     $d93c
            D938 | 12BC 00FE      : move.b  #$fe, (A1)    // stop sound
            D93C | 60BE           : bra     $d8fc
            -->
        </script>
        <script state="run">
            <output format="----- zero wing 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 %2.2X &gt;&gt;"    line="19" align="center"  >
                <argument>maincpu.pb@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@062E = 7010610053DA6000</action>
            <action>maincpu.mq@D8F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D8F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D900 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D908 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D910 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D918 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D920 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D928 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D930 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D938 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0566 = 01E6</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0566 = 01E8</action>
        </script>
    </cheat>

</mamecheat>
Post Reply