[gemini]+ Gemini Wing

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

[gemini]+ Gemini Wing

Post 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
Post Reply