Page 1 of 1

[wingforc] Wing Force

Posted: Thu Aug 05, 2021 9:23 am
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>

[wingforc] Wing Force (update)

Posted: Fri Oct 21, 2022 2:14 pm
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.

[wingforc] Wing Force

Posted: Wed Jan 10, 2024 9:27 am
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>