[wingforc] Wing Force

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

[wingforc] Wing Force

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@7292 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@7292 = 66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@58fa = 50</action>
    </script>
    <script state="off">
        <action>maincpu.mb@58fa = 52</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0120">01 (slow)</item>
        <item value="0x0240">02       </item>
        <item value="0x0360">03       </item>
        <item value="0x0480">04       </item>
        <item value="0x0600">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@04dd2 =         00033540</action>
        <action>maincpu.md@04dde =         00033554</action>
        <action>maincpu.mq@33540 = 4a6e001867063d7c</action>
        <action>maincpu.mq@33548 = 000000184eb90000</action>
        <action>maincpu.mq@33550 = 50464e754a6e001c</action>
        <action>maincpu.mq@33558 = 67063d7c0000001c</action>
        <action>maincpu.mq@33560 = 4eb90000507e4e75</action>
        <!--
        33540 | 4a6e 0018      : tst.w  ($18,A6)
        33544 | 6706           : beq    $3354c
        33546 | 3d7c xxxx 0018 : move.w #$xxxx,($18,A6)
        3354c | 4eb9 0000 5046 : jsr    $5046.l
        33552 | 4e75           : rts
        33554 | 4a6e 001c      : tst.w  ($1c,A6)
        33558 | 6706           : beq    $33560
        3355a | 3d7c xxxx 001c : move.w #$xxxx,($1c,A6)
        33560 | 4eb9 0000 507e : jsr    $507e.l
        33566 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@33548 = param</action>
        <action>maincpu.mw@3355c = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@04dd2 =         00005046</action>
        <action>maincpu.md@04dde =         0000507e</action>
        <action>maincpu.mq@33540 = ffffffffffffffff</action>
        <action>maincpu.mq@33548 = ffffffffffffffff</action>
        <action>maincpu.mq@33550 = ffffffffffffffff</action>
        <action>maincpu.mq@33558 = ffffffffffffffff</action>
        <action>maincpu.mq@33560 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x0300">01 (slow)</item>
        <item value="0x0700">02       </item>
        <item value="0x0e00">03       </item>
        <item value="0x1500">04       </item>
        <item value="0x1c00">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@063ce =         00033570</action>
        <action>maincpu.mq@33570 = 4eb900004ceabdfc</action>
        <action>maincpu.mq@33578 = 003076d0650ebdfc</action>
        <action>maincpu.mq@33580 = 0030896064063d7c</action>
        <action>maincpu.mq@33588 = 000000184e75ffff</action>
        <!--
        33570 | 4eb9 0000 4cea : jsr    $4cea.l
        33576 | bdfc 0030 76d0 : cmpa.l #$3076d0,A6
        3357c | 650e           : bcs    $3358c
        3357e | bdfc 0030 8960 : cmpa.l #$308960,A6
        33584 | 6406           : bcc    $3358c
        33586 | 3d7c xxxx 0018 : move.w #$xxxx,($18,A6)
        3358c | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@33588 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@063ce =         00004cea</action>
        <action>maincpu.mq@33570 = ffffffffffffffff</action>
        <action>maincpu.mq@33578 = ffffffffffffffff</action>
        <action>maincpu.mq@33580 = ffffffffffffffff</action>
        <action>maincpu.mq@33588 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@00200 =             054a</action> <!-- enable input check -->
        <action>maincpu.md@04556 =         00033590</action>
        <action>maincpu.mq@33590 = 41f90030016c43f9</action>
        <action>maincpu.mq@33598 = 0030016f45f90030</action>
        <action>maincpu.mq@335a0 = 0100421046fc2000</action>
        <action>maincpu.mq@335a8 = 4a1067f846fc2700</action>
        <action>maincpu.mq@335b0 = 0811000267025312</action>
        <action>maincpu.mq@335b8 = 0811000367025212</action>
        <action>maincpu.mq@335c0 = 0811000467041012</action>
        <action>maincpu.mq@335c8 = 600a08110005670a</action>
        <action>maincpu.mq@335d0 = 103c000113c000e0</action>
        <action>maincpu.mq@335d8 = 000060c6ffffffff</action>
        <!--
        33590 | 41f9 0030 016c : lea    $30016c.l,A0 // interrupt wait flag
        33596 | 43f9 0030 016f : lea    $30016f.l,A1 // input address
        3359c | 45f9 0030 0100 : lea    $300100.l,A2 // sound code address
        335a2 | 4210           : clr.b  (A0)
        335a4 | 46fc 2000      : move   #$2000,SR
        335a8 | 4a10           : tst.b  (A0)         // wait interrupt
        335aa | 67f8           : beq    $335a4
        335ac | 46fc 2700      : move   #$2700,SR
        335b0 | 0811 0002      : btst   #$2,(A1)
        335b4 | 6702           : beq    $335b8
        335b6 | 5312           : subq.b #1,(A2)      // decrease code
        335b8 | 0811 0003      : btst   #$3,(A1)
        335bc | 6702           : beq    $335c0
        335be | 5212           : addq.b #1,(A2)      // increase code
        335c0 | 0811 0004      : btst   #$4,(A1)
        335c4 | 6704           : beq    $335ca
        335c6 | 1012           : move.b (A2),D0      // play sound
        335c8 | 600a           : bra    $335d4
        335ca | 0811 0005      : btst   #$5,(A1)
        335ce | 670a           : beq    $335da
        335d0 | 103c 0001      : move.b #$1,D0       // stop sound
        335d4 | 13c0 00e0 0000 : move.b D0,$e00000.l // send sound code
        335da | 60c6           : bra    $335a2
        -->
    </script>
    <script state="run">
        <output format="----- wing force sound test mode -----" line="10" align="center" />
        <output format="left : decrease code"                   line="11" align="center" />
        <output format="right : increase code"                  line="12" align="center" />
        <output format="button 1 : play sound"                  line="13" align="center" />
        <output format="button 2 : stop sound"                  line="14" align="center" />
        <output format="----------------------------"           line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"     line="17" align="center">
            <argument>maincpu.pb@300100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@00200 =             3a5e</action>
        <action>maincpu.md@04556 =         00012d86</action>
        <action>maincpu.mq@33590 = ffffffffffffffff</action>
        <action>maincpu.mq@33598 = ffffffffffffffff</action>
        <action>maincpu.mq@335a0 = ffffffffffffffff</action>
        <action>maincpu.mq@335a8 = ffffffffffffffff</action>
        <action>maincpu.mq@335b0 = ffffffffffffffff</action>
        <action>maincpu.mq@335b8 = ffffffffffffffff</action>
        <action>maincpu.mq@335c0 = ffffffffffffffff</action>
        <action>maincpu.mq@335c8 = ffffffffffffffff</action>
        <action>maincpu.mq@335d0 = ffffffffffffffff</action>
        <action>maincpu.mq@335d8 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[wingforc] Wing Force (update)

Post by jman »

Code: Select all

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mq@058fa = 4eb900033540102e</action>
        <action>maincpu.mq@33540 = 41ee00600c10003f</action>
        <action>maincpu.mq@33548 = 670a0c1000016504</action>
        <action>maincpu.mq@33550 = 10bc003f522e0060</action>
        <action>maincpu.mq@33558 = 42804e75ffffffff</action>
        <!--
        33540 | 41ee 0060 : lea    ($60,A6),A0
        33544 | 0c10 003f : cmpi.b #$3f,(A0)
        33548 | 670a      : beq    $33554
        3354a | 0c10 0001 : cmpi.b #$1,(A0)
        3354e | 6504      : bcs    $33554
        33550 | 10bc 003f : move.b #$3f,(A0)
        33554 | 522e 0060 : addq.b #1,($60,A6)
        33558 | 4280      : clr.l  D0
        3355a | 4e75      : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@058fa = 522e00604280102e</action>
        <action>maincpu.mq@33540 = ffffffffffffffff</action>
        <action>maincpu.mq@33548 = ffffffffffffffff</action>
        <action>maincpu.mq@33550 = ffffffffffffffff</action>
        <action>maincpu.mq@33558 = ffffffffffffffff</action>
    </script>
</cheat>
"auto fire" : fix "sfx (explosion sound etc) stuck" bug.

Code: Select all

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0280">02       </item>
        <item value="0x0480">03       </item>
        <item value="0x0680">04       </item>
        <item value="0x0880">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@04dd2 =         00033560</action>
        <action>maincpu.md@04dde =         00033572</action>
        <action>maincpu.mq@33560 = 4a6e001867063d7c</action>
        <action>maincpu.mq@33568 = 060000184eb85046</action>
        <action>maincpu.mq@33570 = 4e754a6e001c6706</action>
        <action>maincpu.mq@33578 = 3d7c0600001c4eb8</action>
        <action>maincpu.mq@33580 = 507e4e75ffffffff</action>
        <!--
        33560 | 4a6e 0018      : tst.w  ($18,A6)
        33564 | 6706           : beq    $3356c
        33566 | 3d7c xxxx 0018 : move.w #$xx,($18,A6)
        3356c | 4eb8 5046      : jsr    $5046.w
        33570 | 4e75           : rts
        33572 | 4a6e 001c      : tst.w  ($1c,A6)
        33576 | 6706           : beq    $3357e
        33578 | 3d7c xxxx 001c : move.w #$xx,($1c,A6)
        3357e | 4eb8 507e      : jsr    $507e.w
        33582 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@33568 = param</action>
        <action>maincpu.mw@3357a = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@04dd2 =         00005046</action>
        <action>maincpu.md@04dde =         0000507e</action>
        <action>maincpu.mq@33560 = ffffffffffffffff</action>
        <action>maincpu.mq@33568 = ffffffffffffffff</action>
        <action>maincpu.mq@33570 = ffffffffffffffff</action>
        <action>maincpu.mq@33578 = ffffffffffffffff</action>
        <action>maincpu.mq@33580 = ffffffffffffffff</action>
    </script>
</cheat>
"player speed" : reallocate address. adjust item values.

Code: Select all

<cheat desc="bullet speed (test)">
    <parameter>
        <item value="0x0300">01 (slow)</item>
        <item value="0x0700">02       </item>
        <item value="0x0e00">03       </item>
        <item value="0x1500">04       </item>
        <item value="0x1c00">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@063ce =         00033590</action>
        <action>maincpu.mq@33590 = 4eb84ceabdfc0030</action>
        <action>maincpu.mq@33598 = 76d0650ebdfc0030</action>
        <action>maincpu.mq@335a0 = 896064063d7c1c00</action>
        <action>maincpu.mq@335a8 = 00184e75ffffffff</action>
        <!--
        33590 | 4eb8 4cea      : jsr    $4cea.w
        33594 | bdfc 0030 76d0 : cmpa.l #$3076d0,A6
        3359a | 650e           : bcs    $335aa
        3359c | bdfc 0030 8960 : cmpa.l #$308960,A6
        335a2 | 6406           : bcc    $335aa
        335a4 | 3d7c xxxx 0018 : move.w #$xx,($18,A6)
        335aa | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@335a6 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@063ce =         00004cea</action>
        <action>maincpu.mq@33590 = ffffffffffffffff</action>
        <action>maincpu.mq@33598 = ffffffffffffffff</action>
        <action>maincpu.mq@335a0 = ffffffffffffffff</action>
        <action>maincpu.mq@335a8 = ffffffffffffffff</action>
    </script>
</cheat>
"bullet speed" : downgrade to test code because it doesn't work for some weapons. reallocate address.

Code: Select all

<cheat desc="starting stage">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>maincpu.mb@4941 = param - 1</action>
    </script>
    <script state="off">
        <action>maincpu.mb@4941 = 06</action>
    </script>
</cheat>
"starting stage" : add new.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@00200 =             054a</action> <!-- enable input check -->
        <action>maincpu.md@04556 =         000335b0</action>
        <action>maincpu.mq@335b0 = 41f90030010043f9</action>
        <action>maincpu.mq@335b8 = 00e0000012001028</action>
        <action>maincpu.mq@335c0 = 0070b20067f60c00</action>
        <action>maincpu.mq@335c8 = 0004660253100c00</action>
        <action>maincpu.mq@335d0 = 0008660252100c00</action>
        <action>maincpu.mq@335d8 = 0002660404100010</action>
        <action>maincpu.mq@335e0 = 0c00000166040610</action>
        <action>maincpu.mq@335e8 = 00100c0000106602</action>
        <action>maincpu.mq@335f0 = 12900c0000206604</action>
        <action>maincpu.mq@335f8 = 12bc000160beffff</action>
        <!--
        335b0 | 41f9 0030 0100 : lea    $300100.l,A0 // sound code address
        335b6 | 43f9 00e0 0000 : lea    $e00000.l,A1 // sound latch address
        335bc | 1200           : move.b D0,D1
        335be | 1028 0070      : move.b ($70,A0),D0  // read input
        335c2 | b200           : cmp.b  D0,D1
        335c4 | 67f6           : beq    $335bc
        335c6 | 0c00 0004      : cmpi.b #$4,D0
        335ca | 6602           : bne    $335ce
        335cc | 5310           : subq.b #1,(A0)      // decrease code -01
        335ce | 0c00 0008      : cmpi.b #$8,D0
        335d2 | 6602           : bne    $335d6
        335d4 | 5210           : addq.b #1,(A0)      // increase code +01
        335d6 | 0c00 0002      : cmpi.b #$2,D0
        335da | 6604           : bne    $335e0
        335dc | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        335e0 | 0c00 0001      : cmpi.b #$1,D0
        335e4 | 6604           : bne    $335ea
        335e6 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        335ea | 0c00 0010      : cmpi.b #$10,D0
        335ee | 6602           : bne    $335f2
        335f0 | 1290           : move.b (A0),(A1)    // play sound
        335f2 | 0c00 0020      : cmpi.b #$20,D0
        335f6 | 6604           : bne    $335fc
        335f8 | 12bc 0001      : move.b #$1,(A1)     // stop sound
        335fc | 60be           : bra    $335bc
        -->
    </script>
    <script state="run">
        <output format="----- wing force 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@300100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@00200 =             3a5e</action>
        <action>maincpu.md@04556 =         00012d86</action>
        <action>maincpu.mq@335b0 = ffffffffffffffff</action>
        <action>maincpu.mq@335b8 = ffffffffffffffff</action>
        <action>maincpu.mq@335c0 = ffffffffffffffff</action>
        <action>maincpu.mq@335c8 = ffffffffffffffff</action>
        <action>maincpu.mq@335d0 = ffffffffffffffff</action>
        <action>maincpu.mq@335d8 = ffffffffffffffff</action>
        <action>maincpu.mq@335e0 = ffffffffffffffff</action>
        <action>maincpu.mq@335e8 = ffffffffffffffff</action>
        <action>maincpu.mq@335f0 = ffffffffffffffff</action>
        <action>maincpu.mq@335f8 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. reallocate address. add up/down key (code ±10).

The following codes are test.

Code: Select all

<cheat desc="max bullets up (test)">
    <script state="on">
        <action>maincpu.md@61d0 = 6000003c</action>
        <action>maincpu.md@61f8 = 60000014</action>
    </script>
    <script state="off">
        <action>maincpu.md@61d0 = 61000238</action>
        <action>maincpu.md@61f8 = 61000210</action>
    </script>
</cheat>
"max bullets up" : unverified.

Code: Select all

<cheat desc="short hit mark (test)">
    <script state="on">
        <action>maincpu.mb@31106 = 00</action> <!-- normal shot/gatling -->
        <action>maincpu.mb@41cf8 = 00</action> <!-- laser -->
        <action>maincpu.mb@41d7c = 00</action> <!-- missile -->
        <action>maincpu.mb@41e7e = 00</action> <!-- homing missile -->
    </script>
    <script state="off">
        <action>maincpu.mb@31106 = 06</action>
        <action>maincpu.mb@41cf8 = 06</action>
        <action>maincpu.mb@41d7c = 0c</action>
        <action>maincpu.mb@41e7e = 08</action>
    </script>
</cheat>
"short hit mark" : perhaps missing some hit marks with other weapons.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[wingforc] Wing Force

Post by jman »

Code: Select all

<!-- Wing Force (Japan, prototype) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@7292 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7292 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@058FA = 4EB900033540102E</action>
            <action>maincpu.mq@33540 = 41EE00600C10003F</action>
            <action>maincpu.mq@33548 = 670A0C1000016504</action>
            <action>maincpu.mq@33550 = 10BC003F52104280</action>
            <action>maincpu.mq@33558 = 4E75FFFFFFFFFFFF</action>
            <!--
            33540 | 41EE 0060 : lea     ($60,A6), A0
            33544 | 0C10 003F : cmpi.b  #$3f, (A0)
            33548 | 670A      : beq     $33554
            3354A | 0C10 0001 : cmpi.b  #$1, (A0)
            3354E | 6504      : bcs     $33554
            33550 | 10BC 003F : move.b  #$3f, (A0)
            33554 | 5210      : addq.b  #1, (A0)
            33556 | 4280      : clr.l   D0
            33558 | 4E75      : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@058FA = 522E00604280102E</action>
            <action>maincpu.mq@33540 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33548 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33550 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33558 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0280">02       </item>
            <item value="0x0480">03       </item>
            <item value="0x0680">04       </item>
            <item value="0x0880">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@04DD2 = 00033560        </action> <!-- y position -->
            <action>maincpu.md@04DDE = 00033572        </action> <!-- x position -->
            <action>maincpu.mq@33560 = 4A6E001867063D7C</action>
            <action>maincpu.mq@33568 = 000000184EB85046</action>
            <action>maincpu.mq@33570 = 4E754A6E001C6706</action>
            <action>maincpu.mq@33578 = 3D7C0000001C4EB8</action>
            <action>maincpu.mq@33580 = 507E4E75FFFFFFFF</action>
            <!--
            33560 | 4A6E 0018      : tst.w   ($18,A6)       // y position
            33564 | 6706           : beq     $3356c
            33566 | 3D7C xxxx 0018 : move.w  #$xx, ($18,A6)
            3356C | 4EB8 5046      : jsr     $5046.w
            33570 | 4E75           : rts
            33572 | 4A6E 001C      : tst.w   ($1c,A6)       // x position
            33576 | 6706           : beq     $3357e
            33578 | 3D7C xxxx 001C : move.w  #$xx, ($1c,A6)
            3357E | 4EB8 507E      : jsr     $507e.w
            33582 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@33568 = param</action>
            <action>maincpu.mw@3357A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@04DD2 = 00005046        </action>
            <action>maincpu.md@04DDE = 0000507E        </action>
            <action>maincpu.mq@33560 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33568 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33570 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33578 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33580 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <!-- some weapons doesn't get speed change (eg homing missile, side wave etc) -->
        <parameter>
            <item value="0x0300">01 (slow)</item>
            <item value="0x0700">02       </item>
            <item value="0x0e00">03       </item>
            <item value="0x1500">04       </item>
            <item value="0x1c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@063CE = 00033590        </action>
            <action>maincpu.mq@33590 = 4EB84CEABDFC0030</action>
            <action>maincpu.mq@33598 = 76D0650EBDFC0030</action>
            <action>maincpu.mq@335A0 = 896064063D7C0000</action>
            <action>maincpu.mq@335A8 = 00184E75FFFFFFFF</action>
            <!--
            33590 | 4EB8 4CEA      : jsr     $4cea.w
            33594 | BDFC 0030 76D0 : cmpa.l  #$3076d0, A6
            3359A | 650E           : bcs     $335aa
            3359C | BDFC 0030 8960 : cmpa.l  #$308960, A6
            335A2 | 6406           : bcc     $335aa
            335A4 | 3D7C xxxx 0018 : move.w  #$xx, ($18,A6)
            335AA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@335a6 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@063CE = 00004CEA        </action>
            <action>maincpu.mq@33590 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@33598 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.md@61D0 = 6000003C</action>
            <action>maincpu.md@61F8 = 60000014</action>
        </script>
        <script state="off">
            <action>maincpu.md@61D0 = 61000238</action>
            <action>maincpu.md@61F8 = 61000210</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- perhaps missing some hit marks with other weapons -->
        <script state="on">
            <action>maincpu.mb@31106 = 00</action> <!-- normal shot/gatling -->
            <action>maincpu.mb@41CF8 = 00</action> <!-- laser -->
            <action>maincpu.mb@41D7C = 00</action> <!-- missile -->
            <action>maincpu.mb@41E7E = 00</action> <!-- homing missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@31106 = 06</action>
            <action>maincpu.mb@41CF8 = 06</action>
            <action>maincpu.mb@41D7C = 0C</action>
            <action>maincpu.mb@41E7E = 08</action>
        </script>
    </cheat>

    <cheat desc="starting stage">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@4941 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4941 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@00200 = 054A            </action> <!-- enable input check -->
            <action>maincpu.md@04556 = 000335B0        </action>
            <action>maincpu.mq@335B0 = 41F90030010043F9</action>
            <action>maincpu.mq@335B8 = 00E0000012001028</action>
            <action>maincpu.mq@335C0 = 0070B20067F60C00</action>
            <action>maincpu.mq@335C8 = 0004660253100C00</action>
            <action>maincpu.mq@335D0 = 0008660252100C00</action>
            <action>maincpu.mq@335D8 = 0002660404100010</action>
            <action>maincpu.mq@335E0 = 0C00000166040610</action>
            <action>maincpu.mq@335E8 = 00100C0000106602</action>
            <action>maincpu.mq@335F0 = 12900C0000206604</action>
            <action>maincpu.mq@335F8 = 12BC000160BEFFFF</action>
            <!--
            335B0 | 41F9 0030 0100 : lea     $300100.l, A0 // sound code address
            335B6 | 43F9 00E0 0000 : lea     $e00000.l, A1 // sound latch address
            335BC | 1200           : move.b  D0, D1
            335BE | 1028 0070      : move.b  ($70,A0), D0  // read input
            335C2 | B200           : cmp.b   D0, D1
            335C4 | 67F6           : beq     $335bc
            335C6 | 0C00 0004      : cmpi.b  #$4, D0
            335CA | 6602           : bne     $335ce
            335CC | 5310           : subq.b  #1, (A0)      // decrease code -01
            335CE | 0C00 0008      : cmpi.b  #$8, D0
            335D2 | 6602           : bne     $335d6
            335D4 | 5210           : addq.b  #1, (A0)      // increase code +01
            335D6 | 0C00 0002      : cmpi.b  #$2, D0
            335DA | 6604           : bne     $335e0
            335DC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            335E0 | 0C00 0001      : cmpi.b  #$1, D0
            335E4 | 6604           : bne     $335ea
            335E6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            335EA | 0C00 0010      : cmpi.b  #$10, D0
            335EE | 6602           : bne     $335f2
            335F0 | 1290           : move.b  (A0), (A1)    // play sound
            335F2 | 0C00 0020      : cmpi.b  #$20, D0
            335F6 | 6604           : bne     $335fc
            335F8 | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            335FC | 60BE           : bra     $335bc
            -->
        </script>
        <script state="run">
            <output format="----- wing force 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@300100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@00200 = 3A5E            </action>
            <action>maincpu.md@04556 = 00012D86        </action>
            <action>maincpu.mq@335B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@335F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply