Page 1 of 1

[gemini]+ Gemini Wing

Posted: Sun Jun 09, 2024 3:55 pm
by jman
gemini.xml

Code: Select all

<!-- Gemini Wing (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@97DA = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@97DA = C0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@27FA = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@27FA = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@20AE = 00B6AFCD        </action> <!-- P1 x -->
            <action>maincpu.md@20DD = 00B6AFCD        </action> <!-- P1 y -->
            <action>maincpu.md@215F = 22B6BDCD        </action> <!-- P1 balls -->
            <action>maincpu.md@24C9 = 00B6D7CD        </action> <!-- P2 x -->
            <action>maincpu.md@24F8 = 00B6D7CD        </action> <!-- P2 y -->
            <action>maincpu.md@257A = 22B6E5CD        </action> <!-- P2 balls -->
            <action>maincpu.mq@B6A0 = AF022010E6C0673A</action>
            <action>maincpu.mq@B6A8 = 47C926FEC3003AC9</action>
            <action>maincpu.mq@B6B0 = D078000011B6A0CD</action>
            <action>maincpu.mq@B6B8 = B6A0CDC9C0145BED</action>
            <action>maincpu.mq@B6C0 = C9C0142AD0000021</action>
            <action>maincpu.mq@B6C8 = AF022010E6C06A3A</action>
            <action>maincpu.mq@B6D0 = 47C926FEC3403AC9</action>
            <action>maincpu.mq@B6D8 = D078000011B6C8CD</action>
            <action>maincpu.mq@B6E0 = B6C8CDC9C01D5BED</action>
            <action>maincpu.mq@B6E8 = C9C01D2AD0000021</action>
            <!--
            B6A0 | 3A 67 C0    : ld   a,($C067)  // P1 check routine
            B6A3 | E6 10       : and  $10
            B6A5 | 20 02       : jr   nz,$B6A9
            B6A7 | AF          : xor  a
            B6A8 | C9          : ret
            B6A9 | 3A 00 C3    : ld   a,($C300)
            B6AC | FE 26       : cp   $26
            B6AE | C9          : ret
            B6AF | 47          : ld   b,a        // P1 player speed
            B6B0 | CD A0 B6    : call $B6A0
            B6B3 | 11 xx xx    : ld   de,$xxxx
            B6B6 | 78          : ld   a,b
            B6B7 | D0          : ret  nc
            B6B8 | ED 5B 14 C0 : ld   de,($C014)
            B6BC | C9          : ret
            B6BD | CD A0 B6    : call $B6A0      // P1 balls speed
            B6C0 | 21 xx xx    : ld   hl,$xxxx
            B6C3 | D0          : ret  nc
            B6C4 | 2A 14 C0    : ld   hl,($C014)
            B6C7 | C9          : ret
            B6C8 | 3A 6A C0    : ld   a,($C06A)  // P2 check routine
            B6CB | E6 10       : and  $10
            B6CD | 20 02       : jr   nz,$B6D1
            B6CF | AF          : xor  a
            B6D0 | C9          : ret
            B6D1 | 3A 40 C3    : ld   a,($C340)
            B6D4 | FE 26       : cp   $26
            B6D6 | C9          : ret
            B6D7 | 47          : ld   b,a        // P2 player speed
            B6D8 | CD C8 B6    : call $B6C8
            B6DB | 11 xx xx    : ld   de,$xxxx
            B6DE | 78          : ld   a,b
            B6DF | D0          : ret  nc
            B6E0 | ED 5B 1D C0 : ld   de,($C01D)
            B6E4 | C9          : ret
            B6E5 | CD C8 B6    : call $B6C8      // P2 balls speed
            B6E8 | 21 xx xx    : ld   hl,$xxxx
            B6EB | D0          : ret  nc
            B6EC | 2A 1D C0    : ld   hl,($C01D)
            B6EF | C9          : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B6B4 = param</action>
            <action>maincpu.mw@B6C1 = param</action>
            <action>maincpu.mw@B6DC = param</action>
            <action>maincpu.mw@B6E9 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@20AE = C0145BED        </action>
            <action>maincpu.md@20DD = C0145BED        </action>
            <action>maincpu.md@215F = 22C0142A        </action>
            <action>maincpu.md@24C9 = C01D5BED        </action>
            <action>maincpu.md@24F8 = C01D5BED        </action>
            <action>maincpu.md@257A = 22C01D2A        </action>
            <action>maincpu.mq@B6A0 = 0000000000000000</action>
            <action>maincpu.mq@B6A8 = 0000000000000000</action>
            <action>maincpu.mq@B6B0 = 0000000000000000</action>
            <action>maincpu.mq@B6B8 = 0000000000000000</action>
            <action>maincpu.mq@B6C0 = 0000000000000000</action>
            <action>maincpu.mq@B6C8 = 0000000000000000</action>
            <action>maincpu.mq@B6D0 = 0000000000000000</action>
            <action>maincpu.mq@B6D8 = 0000000000000000</action>
            <action>maincpu.mq@B6E0 = 0000000000000000</action>
            <action>maincpu.mq@B6E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2812 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2812 = 07</action>
        </script>
    </cheat>

    <cheat desc="hidden island finder">
        <comment>hidden island appears just before round 6 boss</comment>
        <script state="on">
            <action>maincpu.mb@689A = 00</action>
            <action>maincpu.mb@68AB = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@689A = 27</action>
            <action>maincpu.mb@68AB = 16</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@0310 = D1D0            </action> <!-- replace cross-hatch with blank -->
            <action>maincpu.mw@0324 = B6F0            </action>
            <action>maincpu.mq@B6F0 = 0FE6CF083AC10021</action>
            <action>maincpu.mq@B6F8 = 0F0F03E6CF093A4F</action>
            <action>maincpu.mq@B700 = 2001FEEE2847B8B1</action>
            <action>maincpu.mq@B708 = FE34012002FE3501</action>
            <action>maincpu.mq@B710 = FE0618F03E042004</action>
            <action>maincpu.mq@B718 = 787786103E052008</action>
            <action>maincpu.mq@B720 = FE06187E032080FE</action>
            <action>maincpu.mq@B728 = C318F7FF3E032040</action>
            <!--
            B6F0 | 21 00 C1 : ld   hl,$C100  // sound code address
            B6F3 | 3A 08 CF : ld   a,($CF08) // read joystick
            B6F6 | E6 0F    : and  $0F
            B6F8 | 4F       : ld   c,a
            B6F9 | 3A 09 CF : ld   a,($CF09) // read buttons
            B6FC | E6 03    : and  $03
            B6FE | 0F       : rrca
            B6FF | 0F       : rrca
            B700 | B1       : or   c
            B701 | B8       : cp   b
            B702 | 47       : ld   b,a
            B703 | 28 EE    : jr   z,$B6F3
            B705 | FE 01    : cp   $01
            B707 | 20 01    : jr   nz,$B70A
            B709 | 35       : dec  (hl)      // decrease code -01
            B70A | FE 02    : cp   $02
            B70C | 20 01    : jr   nz,$B70F
            B70E | 34       : inc  (hl)      // increase code +01
            B70F | FE 04    : cp   $04
            B711 | 20 04    : jr   nz,$B717
            B713 | 3E F0    : ld   a,$F0     // decrease code -10
            B715 | 18 06    : jr   $B71D
            B717 | FE 08    : cp   $08
            B719 | 20 05    : jr   nz,$B720
            B71B | 3E 10    : ld   a,$10     // increase code +10
            B71D | 86       : add  a,(hl)
            B71E | 77       : ld   (hl),a
            B71F | 78       : ld   a,b
            B720 | FE 80    : cp   $80
            B722 | 20 03    : jr   nz,$B727
            B724 | 7E       : ld   a,(hl)    // play sound
            B725 | 18 06    : jr   $B72D
            B727 | FE 40    : cp   $40
            B729 | 20 03    : jr   nz,$B72E
            B72B | 3E FF    : ld   a,$FF     // stop sound
            B72D | F7       : rst  $30       // send sound code
            B72E | 18 C3    : jr   $B6F3
            -->
        </script>
        <script state="run">
            <output format="----- gemini 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 %02X &gt;&gt;"       line="19" align="center"  >
                <argument>maincpu.pb@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0310 = 1C00            </action>
            <action>maincpu.mw@0324 = 143F            </action>
            <action>maincpu.mq@B6F0 = 0000000000000000</action>
            <action>maincpu.mq@B6F8 = 0000000000000000</action>
            <action>maincpu.mq@B700 = 0000000000000000</action>
            <action>maincpu.mq@B708 = 0000000000000000</action>
            <action>maincpu.mq@B710 = 0000000000000000</action>
            <action>maincpu.mq@B718 = 0000000000000000</action>
            <action>maincpu.mq@B720 = 0000000000000000</action>
            <action>maincpu.mq@B728 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mb@01D4 = 00</action>
            <action>maincpu.mb@01D9 = 00</action>
            <action>maincpu.mb@0254 = 00</action>
            <action>maincpu.mb@02D5 = 00</action>
            <action>maincpu.mb@033D = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@01D4 = E4</action>
            <action>maincpu.mb@01D9 = DF</action>
            <action>maincpu.mb@0254 = D9</action>
            <action>maincpu.mb@02D5 = BD</action>
            <action>maincpu.mb@033D = E5</action>
        </script>
    </cheat>

</mamecheat>
geminij.xml

Code: Select all

<!-- Gemini Wing (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@97DA = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@97DA = C0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@27FA = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@27FA = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@20AE = 00B6AFCD        </action> <!-- P1 x -->
            <action>maincpu.md@20DD = 00B6AFCD        </action> <!-- P1 y -->
            <action>maincpu.md@215F = 22B6BDCD        </action> <!-- P1 balls -->
            <action>maincpu.md@24C9 = 00B6D7CD        </action> <!-- P2 x -->
            <action>maincpu.md@24F8 = 00B6D7CD        </action> <!-- P2 y -->
            <action>maincpu.md@257A = 22B6E5CD        </action> <!-- P2 balls -->
            <action>maincpu.mq@B6A0 = AF022010E6C0673A</action>
            <action>maincpu.mq@B6A8 = 47C926FEC3003AC9</action>
            <action>maincpu.mq@B6B0 = D078000011B6A0CD</action>
            <action>maincpu.mq@B6B8 = B6A0CDC9C0145BED</action>
            <action>maincpu.mq@B6C0 = C9C0142AD0000021</action>
            <action>maincpu.mq@B6C8 = AF022010E6C06A3A</action>
            <action>maincpu.mq@B6D0 = 47C926FEC3403AC9</action>
            <action>maincpu.mq@B6D8 = D078000011B6C8CD</action>
            <action>maincpu.mq@B6E0 = B6C8CDC9C01D5BED</action>
            <action>maincpu.mq@B6E8 = C9C01D2AD0000021</action>
            <!--
            B6A0 | 3A 67 C0    : ld   a,($C067)  // P1 check routine
            B6A3 | E6 10       : and  $10
            B6A5 | 20 02       : jr   nz,$B6A9
            B6A7 | AF          : xor  a
            B6A8 | C9          : ret
            B6A9 | 3A 00 C3    : ld   a,($C300)
            B6AC | FE 26       : cp   $26
            B6AE | C9          : ret
            B6AF | 47          : ld   b,a        // P1 player speed
            B6B0 | CD A0 B6    : call $B6A0
            B6B3 | 11 xx xx    : ld   de,$xxxx
            B6B6 | 78          : ld   a,b
            B6B7 | D0          : ret  nc
            B6B8 | ED 5B 14 C0 : ld   de,($C014)
            B6BC | C9          : ret
            B6BD | CD A0 B6    : call $B6A0      // P1 balls speed
            B6C0 | 21 xx xx    : ld   hl,$xxxx
            B6C3 | D0          : ret  nc
            B6C4 | 2A 14 C0    : ld   hl,($C014)
            B6C7 | C9          : ret
            B6C8 | 3A 6A C0    : ld   a,($C06A)  // P2 check routine
            B6CB | E6 10       : and  $10
            B6CD | 20 02       : jr   nz,$B6D1
            B6CF | AF          : xor  a
            B6D0 | C9          : ret
            B6D1 | 3A 40 C3    : ld   a,($C340)
            B6D4 | FE 26       : cp   $26
            B6D6 | C9          : ret
            B6D7 | 47          : ld   b,a        // P2 player speed
            B6D8 | CD C8 B6    : call $B6C8
            B6DB | 11 xx xx    : ld   de,$xxxx
            B6DE | 78          : ld   a,b
            B6DF | D0          : ret  nc
            B6E0 | ED 5B 1D C0 : ld   de,($C01D)
            B6E4 | C9          : ret
            B6E5 | CD C8 B6    : call $B6C8      // P2 balls speed
            B6E8 | 21 xx xx    : ld   hl,$xxxx
            B6EB | D0          : ret  nc
            B6EC | 2A 1D C0    : ld   hl,($C01D)
            B6EF | C9          : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B6B4 = param</action>
            <action>maincpu.mw@B6C1 = param</action>
            <action>maincpu.mw@B6DC = param</action>
            <action>maincpu.mw@B6E9 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@20AE = C0145BED        </action>
            <action>maincpu.md@20DD = C0145BED        </action>
            <action>maincpu.md@215F = 22C0142A        </action>
            <action>maincpu.md@24C9 = C01D5BED        </action>
            <action>maincpu.md@24F8 = C01D5BED        </action>
            <action>maincpu.md@257A = 22C01D2A        </action>
            <action>maincpu.mq@B6A0 = 0000000000000000</action>
            <action>maincpu.mq@B6A8 = 0000000000000000</action>
            <action>maincpu.mq@B6B0 = 0000000000000000</action>
            <action>maincpu.mq@B6B8 = 0000000000000000</action>
            <action>maincpu.mq@B6C0 = 0000000000000000</action>
            <action>maincpu.mq@B6C8 = 0000000000000000</action>
            <action>maincpu.mq@B6D0 = 0000000000000000</action>
            <action>maincpu.mq@B6D8 = 0000000000000000</action>
            <action>maincpu.mq@B6E0 = 0000000000000000</action>
            <action>maincpu.mq@B6E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2812 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2812 = 07</action>
        </script>
    </cheat>

    <cheat desc="hidden island finder">
        <comment>hidden island appears just before round 6 boss</comment>
        <script state="on">
            <action>maincpu.mb@689A = 00</action>
            <action>maincpu.mb@68AB = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@689A = 27</action>
            <action>maincpu.mb@68AB = 16</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@0310 = D1D0            </action> <!-- replace cross-hatch with blank -->
            <action>maincpu.mw@0324 = B6F0            </action>
            <action>maincpu.mq@B6F0 = 0FE6CF083AC10021</action>
            <action>maincpu.mq@B6F8 = 0F0F03E6CF093A4F</action>
            <action>maincpu.mq@B700 = 2001FEEE2847B8B1</action>
            <action>maincpu.mq@B708 = FE34012002FE3501</action>
            <action>maincpu.mq@B710 = FE0618F03E042004</action>
            <action>maincpu.mq@B718 = 787786103E052008</action>
            <action>maincpu.mq@B720 = FE06187E032080FE</action>
            <action>maincpu.mq@B728 = C318F7FF3E032040</action>
            <!--
            B6F0 | 21 00 C1 : ld   hl,$C100  // sound code address
            B6F3 | 3A 08 CF : ld   a,($CF08) // read joystick
            B6F6 | E6 0F    : and  $0F
            B6F8 | 4F       : ld   c,a
            B6F9 | 3A 09 CF : ld   a,($CF09) // read buttons
            B6FC | E6 03    : and  $03
            B6FE | 0F       : rrca
            B6FF | 0F       : rrca
            B700 | B1       : or   c
            B701 | B8       : cp   b
            B702 | 47       : ld   b,a
            B703 | 28 EE    : jr   z,$B6F3
            B705 | FE 01    : cp   $01
            B707 | 20 01    : jr   nz,$B70A
            B709 | 35       : dec  (hl)      // decrease code -01
            B70A | FE 02    : cp   $02
            B70C | 20 01    : jr   nz,$B70F
            B70E | 34       : inc  (hl)      // increase code +01
            B70F | FE 04    : cp   $04
            B711 | 20 04    : jr   nz,$B717
            B713 | 3E F0    : ld   a,$F0     // decrease code -10
            B715 | 18 06    : jr   $B71D
            B717 | FE 08    : cp   $08
            B719 | 20 05    : jr   nz,$B720
            B71B | 3E 10    : ld   a,$10     // increase code +10
            B71D | 86       : add  a,(hl)
            B71E | 77       : ld   (hl),a
            B71F | 78       : ld   a,b
            B720 | FE 80    : cp   $80
            B722 | 20 03    : jr   nz,$B727
            B724 | 7E       : ld   a,(hl)    // play sound
            B725 | 18 06    : jr   $B72D
            B727 | FE 40    : cp   $40
            B729 | 20 03    : jr   nz,$B72E
            B72B | 3E FF    : ld   a,$FF     // stop sound
            B72D | F7       : rst  $30       // send sound code
            B72E | 18 C3    : jr   $B6F3
            -->
        </script>
        <script state="run">
            <output format="----- gemini 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 %02X &gt;&gt;"       line="19" align="center"  >
                <argument>maincpu.pb@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0310 = 1C00            </action>
            <action>maincpu.mw@0324 = 143F            </action>
            <action>maincpu.mq@B6F0 = 0000000000000000</action>
            <action>maincpu.mq@B6F8 = 0000000000000000</action>
            <action>maincpu.mq@B700 = 0000000000000000</action>
            <action>maincpu.mq@B708 = 0000000000000000</action>
            <action>maincpu.mq@B710 = 0000000000000000</action>
            <action>maincpu.mq@B718 = 0000000000000000</action>
            <action>maincpu.mq@B720 = 0000000000000000</action>
            <action>maincpu.mq@B728 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mb@01D4 = 00</action>
            <action>maincpu.mb@01D9 = 00</action>
            <action>maincpu.mb@0254 = 00</action>
            <action>maincpu.mb@02D5 = 00</action>
            <action>maincpu.mb@033D = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@01D4 = E4</action>
            <action>maincpu.mb@01D9 = DF</action>
            <action>maincpu.mb@0254 = D9</action>
            <action>maincpu.mb@02D5 = BD</action>
            <action>maincpu.mb@033D = E5</action>
        </script>
    </cheat>

</mamecheat>
geminib.xml

Code: Select all

<!-- Gemini Wing (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@97DA = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@97DA = C0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@27FA = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@27FA = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@20AE = 00B6AFCD        </action> <!-- P1 x -->
            <action>maincpu.md@20DD = 00B6AFCD        </action> <!-- P1 y -->
            <action>maincpu.md@215F = 22B6BDCD        </action> <!-- P1 balls -->
            <action>maincpu.md@24C9 = 00B6D7CD        </action> <!-- P2 x -->
            <action>maincpu.md@24F8 = 00B6D7CD        </action> <!-- P2 y -->
            <action>maincpu.md@257A = 22B6E5CD        </action> <!-- P2 balls -->
            <action>maincpu.mq@B6A0 = AF022010E6C0673A</action>
            <action>maincpu.mq@B6A8 = 47C926FEC3003AC9</action>
            <action>maincpu.mq@B6B0 = D078000011B6A0CD</action>
            <action>maincpu.mq@B6B8 = B6A0CDC9C0145BED</action>
            <action>maincpu.mq@B6C0 = C9C0142AD0000021</action>
            <action>maincpu.mq@B6C8 = AF022010E6C06A3A</action>
            <action>maincpu.mq@B6D0 = 47C926FEC3403AC9</action>
            <action>maincpu.mq@B6D8 = D078000011B6C8CD</action>
            <action>maincpu.mq@B6E0 = B6C8CDC9C01D5BED</action>
            <action>maincpu.mq@B6E8 = C9C01D2AD0000021</action>
            <!--
            B6A0 | 3A 67 C0    : ld   a,($C067)  // P1 check routine
            B6A3 | E6 10       : and  $10
            B6A5 | 20 02       : jr   nz,$B6A9
            B6A7 | AF          : xor  a
            B6A8 | C9          : ret
            B6A9 | 3A 00 C3    : ld   a,($C300)
            B6AC | FE 26       : cp   $26
            B6AE | C9          : ret
            B6AF | 47          : ld   b,a        // P1 player speed
            B6B0 | CD A0 B6    : call $B6A0
            B6B3 | 11 xx xx    : ld   de,$xxxx
            B6B6 | 78          : ld   a,b
            B6B7 | D0          : ret  nc
            B6B8 | ED 5B 14 C0 : ld   de,($C014)
            B6BC | C9          : ret
            B6BD | CD A0 B6    : call $B6A0      // P1 balls speed
            B6C0 | 21 xx xx    : ld   hl,$xxxx
            B6C3 | D0          : ret  nc
            B6C4 | 2A 14 C0    : ld   hl,($C014)
            B6C7 | C9          : ret
            B6C8 | 3A 6A C0    : ld   a,($C06A)  // P2 check routine
            B6CB | E6 10       : and  $10
            B6CD | 20 02       : jr   nz,$B6D1
            B6CF | AF          : xor  a
            B6D0 | C9          : ret
            B6D1 | 3A 40 C3    : ld   a,($C340)
            B6D4 | FE 26       : cp   $26
            B6D6 | C9          : ret
            B6D7 | 47          : ld   b,a        // P2 player speed
            B6D8 | CD C8 B6    : call $B6C8
            B6DB | 11 xx xx    : ld   de,$xxxx
            B6DE | 78          : ld   a,b
            B6DF | D0          : ret  nc
            B6E0 | ED 5B 1D C0 : ld   de,($C01D)
            B6E4 | C9          : ret
            B6E5 | CD C8 B6    : call $B6C8      // P2 balls speed
            B6E8 | 21 xx xx    : ld   hl,$xxxx
            B6EB | D0          : ret  nc
            B6EC | 2A 1D C0    : ld   hl,($C01D)
            B6EF | C9          : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@B6B4 = param</action>
            <action>maincpu.mw@B6C1 = param</action>
            <action>maincpu.mw@B6DC = param</action>
            <action>maincpu.mw@B6E9 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@20AE = C0145BED        </action>
            <action>maincpu.md@20DD = C0145BED        </action>
            <action>maincpu.md@215F = 22C0142A        </action>
            <action>maincpu.md@24C9 = C01D5BED        </action>
            <action>maincpu.md@24F8 = C01D5BED        </action>
            <action>maincpu.md@257A = 22C01D2A        </action>
            <action>maincpu.mq@B6A0 = 0000000000000000</action>
            <action>maincpu.mq@B6A8 = 0000000000000000</action>
            <action>maincpu.mq@B6B0 = 0000000000000000</action>
            <action>maincpu.mq@B6B8 = 0000000000000000</action>
            <action>maincpu.mq@B6C0 = 0000000000000000</action>
            <action>maincpu.mq@B6C8 = 0000000000000000</action>
            <action>maincpu.mq@B6D0 = 0000000000000000</action>
            <action>maincpu.mq@B6D8 = 0000000000000000</action>
            <action>maincpu.mq@B6E0 = 0000000000000000</action>
            <action>maincpu.mq@B6E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2812 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2812 = 07</action>
        </script>
    </cheat>

    <cheat desc="hidden island finder">
        <comment>hidden island appears just before round 6 boss</comment>
        <script state="on">
            <action>maincpu.mb@689A = 00</action>
            <action>maincpu.mb@68AB = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@689A = 27</action>
            <action>maincpu.mb@68AB = 16</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@0310 = D1D0            </action> <!-- replace cross-hatch with blank -->
            <action>maincpu.mw@0324 = B6F0            </action>
            <action>maincpu.mq@B6F0 = 0FE6CF083AC10021</action>
            <action>maincpu.mq@B6F8 = 0F0F03E6CF093A4F</action>
            <action>maincpu.mq@B700 = 2001FEEE2847B8B1</action>
            <action>maincpu.mq@B708 = FE34012002FE3501</action>
            <action>maincpu.mq@B710 = FE0618F03E042004</action>
            <action>maincpu.mq@B718 = 787786103E052008</action>
            <action>maincpu.mq@B720 = FE06187E032080FE</action>
            <action>maincpu.mq@B728 = C318F7FF3E032040</action>
            <!--
            B6F0 | 21 00 C1 : ld   hl,$C100  // sound code address
            B6F3 | 3A 08 CF : ld   a,($CF08) // read joystick
            B6F6 | E6 0F    : and  $0F
            B6F8 | 4F       : ld   c,a
            B6F9 | 3A 09 CF : ld   a,($CF09) // read buttons
            B6FC | E6 03    : and  $03
            B6FE | 0F       : rrca
            B6FF | 0F       : rrca
            B700 | B1       : or   c
            B701 | B8       : cp   b
            B702 | 47       : ld   b,a
            B703 | 28 EE    : jr   z,$B6F3
            B705 | FE 01    : cp   $01
            B707 | 20 01    : jr   nz,$B70A
            B709 | 35       : dec  (hl)      // decrease code -01
            B70A | FE 02    : cp   $02
            B70C | 20 01    : jr   nz,$B70F
            B70E | 34       : inc  (hl)      // increase code +01
            B70F | FE 04    : cp   $04
            B711 | 20 04    : jr   nz,$B717
            B713 | 3E F0    : ld   a,$F0     // decrease code -10
            B715 | 18 06    : jr   $B71D
            B717 | FE 08    : cp   $08
            B719 | 20 05    : jr   nz,$B720
            B71B | 3E 10    : ld   a,$10     // increase code +10
            B71D | 86       : add  a,(hl)
            B71E | 77       : ld   (hl),a
            B71F | 78       : ld   a,b
            B720 | FE 80    : cp   $80
            B722 | 20 03    : jr   nz,$B727
            B724 | 7E       : ld   a,(hl)    // play sound
            B725 | 18 06    : jr   $B72D
            B727 | FE 40    : cp   $40
            B729 | 20 03    : jr   nz,$B72E
            B72B | 3E FF    : ld   a,$FF     // stop sound
            B72D | F7       : rst  $30       // send sound code
            B72E | 18 C3    : jr   $B6F3
            -->
        </script>
        <script state="run">
            <output format="----- gemini 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 %02X &gt;&gt;"       line="19" align="center"  >
                <argument>maincpu.pb@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0310 = 1C00            </action>
            <action>maincpu.mw@0324 = 143F            </action>
            <action>maincpu.mq@B6F0 = 0000000000000000</action>
            <action>maincpu.mq@B6F8 = 0000000000000000</action>
            <action>maincpu.mq@B700 = 0000000000000000</action>
            <action>maincpu.mq@B708 = 0000000000000000</action>
            <action>maincpu.mq@B710 = 0000000000000000</action>
            <action>maincpu.mq@B718 = 0000000000000000</action>
            <action>maincpu.mq@B720 = 0000000000000000</action>
            <action>maincpu.mq@B728 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mb@01D4 = 00</action>
            <action>maincpu.mb@01D9 = 00</action>
            <action>maincpu.mb@0254 = 00</action>
            <action>maincpu.mb@02D5 = 00</action>
            <action>maincpu.mb@033D = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@01D4 = E4</action>
            <action>maincpu.mb@01D9 = DF</action>
            <action>maincpu.mb@0254 = D9</action>
            <action>maincpu.mb@02D5 = BD</action>
            <action>maincpu.mb@033D = E5</action>
        </script>
    </cheat>

</mamecheat>
"hidden island finder" : Hidden island called "tecmo-land" appears just before round 6 boss. 50,000 points and "found" message.
Image