[turtshipj] Turtle Ship

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: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[turtshipj] Turtle Ship

Post by jman »

Code: Select all

<!-- Turtle Ship (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07f2 = ae</action> <!-- enemy -->
            <action>maincpu.mb@0c26 = 28</action> <!-- background -->
            <action>maincpu.mb@53ef = 00</action> <!-- bullet -->
            <action>maincpu.mb@5b63 = 00</action> <!-- bullet (boss) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07f2 = 8a</action>
            <action>maincpu.mb@0c26 = 29</action>
            <action>maincpu.mb@53ef = 02</action>
            <action>maincpu.mb@5b63 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@038d = 00</action> <!-- button -->
            <action>maincpu.mb@0396 = 3e</action> <!-- joystick -->
        </script>
        <script state="off">
            <action>maincpu.mb@038d = 01</action>
            <action>maincpu.mb@0396 = 3d</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@16c1 = param</action> <!-- right -->
            <action>maincpu.mb@171e = param</action> <!-- left -->
            <action>maincpu.mb@1776 = param</action> <!-- down -->
            <action>maincpu.mb@17b2 = param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mb@16c1 = 03</action>
            <action>maincpu.mb@171e = 03</action>
            <action>maincpu.mb@1776 = 02</action>
            <action>maincpu.mb@17b2 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x05">02       </item>
            <item value="0x0a">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0921 = param</action> <!-- horizontal -->
            <action>maincpu.mb@093f = param</action> <!-- vertical -->
        </script>
        <script state="off">
            <action>maincpu.mb@0921 = 05</action>
            <action>maincpu.mb@093f = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@00042 =               5f</action> <!-- disable credit display -->
            <action>maincpu.mw@00025 =             a2a0</action>
            <action>maincpu.mq@122a0 = b87a19cdc10021fb</action>
            <action>maincpu.mq@122a8 = 35012002fef92847</action>
            <action>maincpu.mq@122b0 = 2004fe34012001fe</action>
            <action>maincpu.mq@122b8 = 2008fe0618f03e04</action>
            <action>maincpu.mq@122c0 = 10fe787786103e05</action>
            <action>maincpu.mq@122c8 = 2020fe05187e0320</action>
            <action>maincpu.mq@122d0 = ffcd18c00432af04</action>
            <!--
            a2a0 | fb       : ei             // enable interrupt
            a2a1 | 21 00 c1 : ld   hl,$C100  // sound code address
            a2a4 | cd 19 7a : call $7A19     // read input
            a2a7 | b8       : cp   b
            a2a8 | 47       : ld   b,a
            a2a9 | 28 f9    : jr   z,$A2A4
            a2ab | fe 02    : cp   $02
            a2ad | 20 01    : jr   nz,$A2B0
            a2af | 35       : dec  (hl)      // decrease code -01
            a2b0 | fe 01    : cp   $01
            a2b2 | 20 01    : jr   nz,$A2B5
            a2b4 | 34       : inc  (hl)      // increase code +01
            a2b5 | fe 04    : cp   $04
            a2b7 | 20 04    : jr   nz,$A2BD
            a2b9 | 3e f0    : ld   a,$F0     // decrease code -10
            a2bb | 18 06    : jr   $A2C3
            a2bd | fe 08    : cp   $08
            a2bf | 20 05    : jr   nz,$A2C6
            a2c1 | 3e 10    : ld   a,$10     // increase code +10
            a2c3 | 86       : add  a,(hl)
            a2c4 | 77       : ld   (hl),a
            a2c5 | 78       : ld   a,b
            a2c6 | fe 10    : cp   $10
            a2c8 | 20 03    : jr   nz,$A2CD
            a2ca | 7e       : ld   a,(hl)    // play sound
            a2cb | 18 05    : jr   $A2D2
            a2cd | fe 20    : cp   $20
            a2cf | 20 04    : jr   nz,$A2D5
            a2d1 | af       : xor  a         // stop sound
            a2d2 | 32 04 c0 : ld   ($C004),a // send sound code
            a2d5 | 18 cd    : jr   $A2A4
            -->
        </script>
        <script state="run">
            <output format="----- turtle ship 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@c100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@00042 =               60</action>
            <action>maincpu.mw@00025 =             a000</action>
            <action>maincpu.mq@122a0 = ffffffffffffffff</action>
            <action>maincpu.mq@122a8 = ffffffffffffffff</action>
            <action>maincpu.mq@122b0 = ffffffffffffffff</action>
            <action>maincpu.mq@122b8 = ffffffffffffffff</action>
            <action>maincpu.mq@122c0 = ffffffffffffffff</action>
            <action>maincpu.mq@122c8 = ffffffffffffffff</action>
            <action>maincpu.mq@122d0 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@7b77 = 87</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7b77 = 88</action>
        </script>
    </cheat>

</mamecheat>
jman
Posts: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[turtship]+ Turtle Ship

Post by jman »

turtship.xml

Code: Select all

<!-- Turtle Ship (North America) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07F2 = AE</action> <!-- enemy -->
            <action>maincpu.mb@0C26 = 28</action> <!-- background -->
            <action>maincpu.mb@53EF = 00</action> <!-- bullet -->
            <action>maincpu.mb@5B63 = 00</action> <!-- bullet (boss) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07F2 = 8A</action>
            <action>maincpu.mb@0C26 = 29</action>
            <action>maincpu.mb@53EF = 02</action>
            <action>maincpu.mb@5B63 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@038D = 00</action> <!-- button -->
            <action>maincpu.mb@0396 = 3E</action> <!-- joystick -->
        </script>
        <script state="off">
            <action>maincpu.mb@038D = 01</action>
            <action>maincpu.mb@0396 = 3D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@16C1 = param</action> <!-- right -->
            <action>maincpu.mb@171E = param</action> <!-- left -->
            <action>maincpu.mb@1776 = param</action> <!-- down -->
            <action>maincpu.mb@17B2 = param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mb@16C1 = 03</action>
            <action>maincpu.mb@171E = 03</action>
            <action>maincpu.mb@1776 = 02</action>
            <action>maincpu.mb@17B2 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x05">02       </item>
            <item value="0x0a">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0921 = param</action> <!-- horizontal -->
            <action>maincpu.mb@093F = param</action> <!-- vertical -->
        </script>
        <script state="off">
            <action>maincpu.mb@0921 = 05</action>
            <action>maincpu.mb@093F = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@00042 = 5F              </action> <!-- disable credit display -->
            <action>maincpu.mw@00025 = A4D0            </action>
            <action>maincpu.mq@124D0 = B87A1BCDC10021FB</action>
            <action>maincpu.mq@124D8 = 35012002FEF92847</action>
            <action>maincpu.mq@124E0 = 2004FE34012001FE</action>
            <action>maincpu.mq@124E8 = 2008FE0618F03E04</action>
            <action>maincpu.mq@124F0 = 10FE787786103E05</action>
            <action>maincpu.mq@124F8 = 2020FE05187E0320</action>
            <action>maincpu.mq@12500 = FFCD18C00432AF04</action>
            <!--
            A4D0 | FB       : ei             // enable interrput
            A4D1 | 21 00 C1 : ld   hl,$C100  // sound code address
            A4D4 | CD 1B 7A : call $7A1B     // read input
            A4D7 | B8       : cp   b
            A4D8 | 47       : ld   b,a
            A4D9 | 28 F9    : jr   z,$A4D4
            A4DB | FE 02    : cp   $02
            A4DD | 20 01    : jr   nz,$A4E0
            A4DF | 35       : dec  (hl)      // decrease code -01
            A4E0 | FE 01    : cp   $01
            A4E2 | 20 01    : jr   nz,$A4E5
            A4E4 | 34       : inc  (hl)      // increase code +10
            A4E5 | FE 04    : cp   $04
            A4E7 | 20 04    : jr   nz,$A4ED
            A4E9 | 3E F0    : ld   a,$F0     // decrease code -10
            A4EB | 18 06    : jr   $A4F3
            A4ED | FE 08    : cp   $08
            A4EF | 20 05    : jr   nz,$A4F6
            A4F1 | 3E 10    : ld   a,$10     // increase code +10
            A4F3 | 86       : add  a,(hl)
            A4F4 | 77       : ld   (hl),a
            A4F5 | 78       : ld   a,b
            A4F6 | FE 10    : cp   $10
            A4F8 | 20 03    : jr   nz,$A4FD
            A4FA | 7E       : ld   a,(hl)    // play sound
            A4FB | 18 05    : jr   $A502
            A4FD | FE 20    : cp   $20
            A4FF | 20 04    : jr   nz,$A505
            A501 | AF       : xor  a         // stop sound
            A502 | 32 04 C0 : ld   ($C004),a // send sound code
            A505 | 18 CD    : jr   $A4D4
            -->
        </script>
        <script state="run">
            <output format="----- turtle ship 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.mb@00042 = 60              </action>
            <action>maincpu.mw@00025 = A200            </action>
            <action>maincpu.mq@124D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@12500 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@7B79 = 89</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7B79 = 8A</action>
        </script>
    </cheat>

</mamecheat>
turtshipj.xml

Code: Select all

<!-- Turtle Ship (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07F2 = AE</action> <!-- enemy -->
            <action>maincpu.mb@0C26 = 28</action> <!-- background -->
            <action>maincpu.mb@53EF = 00</action> <!-- bullet -->
            <action>maincpu.mb@5B63 = 00</action> <!-- bullet (boss) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07F2 = 8A</action>
            <action>maincpu.mb@0C26 = 29</action>
            <action>maincpu.mb@53EF = 02</action>
            <action>maincpu.mb@5B63 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@038D = 00</action> <!-- button -->
            <action>maincpu.mb@0396 = 3E</action> <!-- joystick -->
        </script>
        <script state="off">
            <action>maincpu.mb@038D = 01</action>
            <action>maincpu.mb@0396 = 3D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@16C1 = param</action> <!-- right -->
            <action>maincpu.mb@171E = param</action> <!-- left -->
            <action>maincpu.mb@1776 = param</action> <!-- down -->
            <action>maincpu.mb@17B2 = param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mb@16C1 = 03</action>
            <action>maincpu.mb@171E = 03</action>
            <action>maincpu.mb@1776 = 02</action>
            <action>maincpu.mb@17B2 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x05">02       </item>
            <item value="0x0a">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0921 = param</action> <!-- horizontal -->
            <action>maincpu.mb@093F = param</action> <!-- vertical -->
        </script>
        <script state="off">
            <action>maincpu.mb@0921 = 05</action>
            <action>maincpu.mb@093F = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@00042 = 5F              </action> <!-- disable credit display -->
            <action>maincpu.mw@00025 = A2A0            </action>
            <action>maincpu.mq@122A0 = B87A19CDC10021FB</action>
            <action>maincpu.mq@122A8 = 35012002FEF92847</action>
            <action>maincpu.mq@122B0 = 2004FE34012001FE</action>
            <action>maincpu.mq@122B8 = 2008FE0618F03E04</action>
            <action>maincpu.mq@122C0 = 10FE787786103E05</action>
            <action>maincpu.mq@122C8 = 2020FE05187E0320</action>
            <action>maincpu.mq@122D0 = FFCD18C00432AF04</action>
            <!--
            A2A0 | FB       : ei             // enable interrput
            A2A1 | 21 00 C1 : ld   hl,$C100  // sound code address
            A2A4 | CD 19 7A : call $7A19     // read input
            A2A7 | B8       : cp   b
            A2A8 | 47       : ld   b,a
            A2A9 | 28 F9    : jr   z,$A2A4
            A2AB | FE 02    : cp   $02
            A2AD | 20 01    : jr   nz,$A2B0
            A2AF | 35       : dec  (hl)      // decrease code -01
            A2B0 | FE 01    : cp   $01
            A2B2 | 20 01    : jr   nz,$A2B5
            A2B4 | 34       : inc  (hl)      // increase code +10
            A2B5 | FE 04    : cp   $04
            A2B7 | 20 04    : jr   nz,$A2BD
            A2B9 | 3E F0    : ld   a,$F0     // decrease code -10
            A2BB | 18 06    : jr   $A2C3
            A2BD | FE 08    : cp   $08
            A2BF | 20 05    : jr   nz,$A2C6
            A2C1 | 3E 10    : ld   a,$10     // increase code +10
            A2C3 | 86       : add  a,(hl)
            A2C4 | 77       : ld   (hl),a
            A2C5 | 78       : ld   a,b
            A2C6 | FE 10    : cp   $10
            A2C8 | 20 03    : jr   nz,$A2CD
            A2CA | 7E       : ld   a,(hl)    // play sound
            A2CB | 18 05    : jr   $A2D2
            A2CD | FE 20    : cp   $20
            A2CF | 20 04    : jr   nz,$A2D5
            A2D1 | AF       : xor  a         // stop sound
            A2D2 | 32 04 C0 : ld   ($C004),a // send sound code
            A2D5 | 18 CD    : jr   $A2A4
            -->
        </script>
        <script state="run">
            <output format="----- turtle ship 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.mb@00042 = 60              </action>
            <action>maincpu.mw@00025 = A000            </action>
            <action>maincpu.mq@122A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@7B77 = 87</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7B77 = 88</action>
        </script>
    </cheat>

</mamecheat>
turtshipk.xml

Code: Select all

<!-- Turtle Ship (Korea) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07F2 = AE</action> <!-- enemy -->
            <action>maincpu.mb@0C26 = 28</action> <!-- background -->
            <action>maincpu.mb@53EF = 00</action> <!-- bullet -->
            <action>maincpu.mb@5B63 = 00</action> <!-- bullet (boss) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07F2 = 8A</action>
            <action>maincpu.mb@0C26 = 29</action>
            <action>maincpu.mb@53EF = 02</action>
            <action>maincpu.mb@5B63 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@038D = 00</action> <!-- button -->
            <action>maincpu.mb@0396 = 3E</action> <!-- joystick -->
        </script>
        <script state="off">
            <action>maincpu.mb@038D = 01</action>
            <action>maincpu.mb@0396 = 3D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@16C1 = param</action> <!-- right -->
            <action>maincpu.mb@171E = param</action> <!-- left -->
            <action>maincpu.mb@1776 = param</action> <!-- down -->
            <action>maincpu.mb@17B2 = param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mb@16C1 = 03</action>
            <action>maincpu.mb@171E = 03</action>
            <action>maincpu.mb@1776 = 02</action>
            <action>maincpu.mb@17B2 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x05">02       </item>
            <item value="0x0a">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0921 = param</action> <!-- horizontal -->
            <action>maincpu.mb@093F = param</action> <!-- vertical -->
        </script>
        <script state="off">
            <action>maincpu.mb@0921 = 05</action>
            <action>maincpu.mb@093F = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@00042 = 5F              </action> <!-- disable credit display -->
            <action>maincpu.mw@00025 = A2A0            </action>
            <action>maincpu.mq@122A0 = B87A1BCDC10021FB</action>
            <action>maincpu.mq@122A8 = 35012002FEF92847</action>
            <action>maincpu.mq@122B0 = 2004FE34012001FE</action>
            <action>maincpu.mq@122B8 = 2008FE0618F03E04</action>
            <action>maincpu.mq@122C0 = 10FE787786103E05</action>
            <action>maincpu.mq@122C8 = 2020FE05187E0320</action>
            <action>maincpu.mq@122D0 = FFCD18C00432AF04</action>
            <!--
            A2A0 | FB       : ei             // enable interrput
            A2A1 | 21 00 C1 : ld   hl,$C100  // sound code address
            A2A4 | CD 1B 7A : call $7A1B     // read input
            A2A7 | B8       : cp   b
            A2A8 | 47       : ld   b,a
            A2A9 | 28 F9    : jr   z,$A2A4
            A2AB | FE 02    : cp   $02
            A2AD | 20 01    : jr   nz,$A2B0
            A2AF | 35       : dec  (hl)      // decrease code -01
            A2B0 | FE 01    : cp   $01
            A2B2 | 20 01    : jr   nz,$A2B5
            A2B4 | 34       : inc  (hl)      // increase code +10
            A2B5 | FE 04    : cp   $04
            A2B7 | 20 04    : jr   nz,$A2BD
            A2B9 | 3E F0    : ld   a,$F0     // decrease code -10
            A2BB | 18 06    : jr   $A2C3
            A2BD | FE 08    : cp   $08
            A2BF | 20 05    : jr   nz,$A2C6
            A2C1 | 3E 10    : ld   a,$10     // increase code +10
            A2C3 | 86       : add  a,(hl)
            A2C4 | 77       : ld   (hl),a
            A2C5 | 78       : ld   a,b
            A2C6 | FE 10    : cp   $10
            A2C8 | 20 03    : jr   nz,$A2CD
            A2CA | 7E       : ld   a,(hl)    // play sound
            A2CB | 18 05    : jr   $A2D2
            A2CD | FE 20    : cp   $20
            A2CF | 20 04    : jr   nz,$A2D5
            A2D1 | AF       : xor  a         // stop sound
            A2D2 | 32 04 C0 : ld   ($C004),a // send sound code
            A2D5 | 18 CD    : jr   $A2A4
            -->
        </script>
        <script state="run">
            <output format="----- turtle ship 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.mb@00042 = 60              </action>
            <action>maincpu.mw@00025 = A000            </action>
            <action>maincpu.mq@122A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@122D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@7B79 = 89</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7B79 = 8A</action>
        </script>
    </cheat>

</mamecheat>
turtshipko.xml

Code: Select all

<!-- Turtle Ship (Korea, older) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07C8 = 80</action> <!-- enemy -->
            <action>maincpu.mb@0BE6 = E8</action> <!-- background -->
            <action>maincpu.mb@532A = 00</action> <!-- bullet -->
            <action>maincpu.mb@5A9E = 00</action> <!-- bullet (boss) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07C8 = 5C</action>
            <action>maincpu.mb@0BE6 = E9</action>
            <action>maincpu.mb@532A = 02</action>
            <action>maincpu.mb@5A9E = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0376 = 00</action> <!-- button -->
            <action>maincpu.mb@0382 = 3C</action> <!-- joystick -->
        </script>
        <script state="off">
            <action>maincpu.mb@0376 = 01</action>
            <action>maincpu.mb@0382 = 3B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1669 = param</action> <!-- right -->
            <action>maincpu.mb@16C6 = param</action> <!-- left -->
            <action>maincpu.mb@171E = param</action> <!-- down -->
            <action>maincpu.mb@175A = param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mb@1669 = 03</action>
            <action>maincpu.mb@16C6 = 03</action>
            <action>maincpu.mb@171E = 02</action>
            <action>maincpu.mb@175A = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x05">02       </item>
            <item value="0x0a">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@08F3 = param</action> <!-- horizontal -->
            <action>maincpu.mb@0911 = param</action> <!-- vertical -->
        </script>
        <script state="off">
            <action>maincpu.mb@08F3 = 05</action>
            <action>maincpu.mb@0911 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0042 = B5              </action> <!-- disable credit display -->
            <action>maincpu.mw@002A = 9D70            </action>
            <action>maincpu.mq@DD70 = B87A23CDC10021FB</action>
            <action>maincpu.mq@DD78 = 35012002FEF92847</action>
            <action>maincpu.mq@DD80 = 2004FE34012001FE</action>
            <action>maincpu.mq@DD88 = 2008FE0618F03E04</action>
            <action>maincpu.mq@DD90 = 10FE787786103E05</action>
            <action>maincpu.mq@DD98 = 2020FE05187E0320</action>
            <action>maincpu.mq@DDA0 = FFCD18C00432AF04</action>
            <!--
            9D70 | FB       : ei             // enable interrput
            9D71 | 21 00 C1 : ld   hl,$C100  // sound code address
            9D74 | CD 19 7A : call $7A23     // read input
            9D77 | B8       : cp   b
            9D78 | 47       : ld   b,a
            9D79 | 28 F9    : jr   z,$9D74
            9D7B | FE 02    : cp   $02
            9D7D | 20 01    : jr   nz,$9D80
            9D7F | 35       : dec  (hl)      // decrease code -01
            9D80 | FE 01    : cp   $01
            9D82 | 20 01    : jr   nz,$9D85
            9D84 | 34       : inc  (hl)      // increase code +10
            9D85 | FE 04    : cp   $04
            9D87 | 20 04    : jr   nz,$9D8D
            9D89 | 3E F0    : ld   a,$F0     // decrease code -10
            9D8B | 18 06    : jr   $9D93
            9D8D | FE 08    : cp   $08
            9D8F | 20 05    : jr   nz,$9D96
            9D91 | 3E 10    : ld   a,$10     // increase code +10
            9D93 | 86       : add  a,(hl)
            9D94 | 77       : ld   (hl),a
            9D95 | 78       : ld   a,b
            9D96 | FE 10    : cp   $10
            9D98 | 20 03    : jr   nz,$9D9D
            9D9A | 7E       : ld   a,(hl)    // play sound
            9D9B | 18 05    : jr   $9DA2
            9D9D | FE 20    : cp   $20
            9D9F | 20 04    : jr   nz,$9DA5
            9DA1 | AF       : xor  a         // stop sound
            9DA2 | 32 04 C0 : ld   ($C004),a // send sound code
            9DA5 | 18 CD    : jr   $9D74
            -->
        </script>
        <script state="run">
            <output format="----- turtle ship 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.mb@0042 = B6              </action>
            <action>maincpu.mw@002A = 714A            </action>
            <action>maincpu.mq@DD70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDA0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@7B81 = 91</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7B81 = 92</action>
        </script>
    </cheat>

</mamecheat>
turtshipkn.xml

Code: Select all

<!-- Turtle Ship (Korea, 88/9) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07F2 = AE</action> <!-- enemy -->
            <action>maincpu.mb@0C26 = 28</action> <!-- background -->
            <action>maincpu.mb@5424 = 00</action> <!-- bullet -->
            <action>maincpu.mb@5B98 = 00</action> <!-- bullet (boss) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07F2 = 8A</action>
            <action>maincpu.mb@0C26 = 29</action>
            <action>maincpu.mb@5424 = 02</action>
            <action>maincpu.mb@5B98 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@038D = 00</action> <!-- button -->
            <action>maincpu.mb@0396 = 3E</action> <!-- joystick -->
        </script>
        <script state="off">
            <action>maincpu.mb@038D = 01</action>
            <action>maincpu.mb@0396 = 3D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@16BF = param</action> <!-- right -->
            <action>maincpu.mb@171C = param</action> <!-- left -->
            <action>maincpu.mb@1774 = param</action> <!-- down -->
            <action>maincpu.mb@17B0 = param</action> <!-- up -->
        </script>
        <script state="off">
            <action>maincpu.mb@16BF = 03</action>
            <action>maincpu.mb@171C = 03</action>
            <action>maincpu.mb@1774 = 02</action>
            <action>maincpu.mb@17B0 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x05">02       </item>
            <item value="0x0a">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0921 = param</action> <!-- horizontal -->
            <action>maincpu.mb@093F = param</action> <!-- vertical -->
        </script>
        <script state="off">
            <action>maincpu.mb@0921 = 05</action>
            <action>maincpu.mb@093F = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@00042 = 94              </action> <!-- disable credit display -->
            <action>maincpu.mw@00025 = A400            </action>
            <action>maincpu.mq@12400 = B87A70CDC10021FB</action>
            <action>maincpu.mq@12408 = 35012002FEF92847</action>
            <action>maincpu.mq@12410 = 2004FE34012001FE</action>
            <action>maincpu.mq@12418 = 2008FE0618F03E04</action>
            <action>maincpu.mq@12420 = 10FE787786103E05</action>
            <action>maincpu.mq@12428 = 2020FE05187E0320</action>
            <action>maincpu.mq@12430 = FFCD18C00432AF04</action>
            <!--
            A400 | FB       : ei             // enable interrput
            A401 | 21 00 C1 : ld   hl,$C100  // sound code address
            A404 | CD 70 7A : call $7A70     // read input
            A407 | B8       : cp   b
            A408 | 47       : ld   b,a
            A409 | 28 F9    : jr   z,$A404
            A40B | FE 02    : cp   $02
            A40D | 20 01    : jr   nz,$A410
            A40F | 35       : dec  (hl)      // decrease code -01
            A410 | FE 01    : cp   $01
            A412 | 20 01    : jr   nz,$A415
            A414 | 34       : inc  (hl)      // increase code +10
            A415 | FE 04    : cp   $04
            A417 | 20 04    : jr   nz,$A41D
            A419 | 3E F0    : ld   a,$F0     // decrease code -10
            A41B | 18 06    : jr   $A423
            A41D | FE 08    : cp   $08
            A41F | 20 05    : jr   nz,$A426
            A421 | 3E 10    : ld   a,$10     // increase code +10
            A423 | 86       : add  a,(hl)
            A424 | 77       : ld   (hl),a
            A425 | 78       : ld   a,b
            A426 | FE 10    : cp   $10
            A428 | 20 03    : jr   nz,$A42D
            A42A | 7E       : ld   a,(hl)    // play sound
            A42B | 18 05    : jr   $A432
            A42D | FE 20    : cp   $20
            A42F | 20 04    : jr   nz,$A435
            A431 | AF       : xor  a         // stop sound
            A432 | 32 04 C0 : ld   ($C004),a // send sound code
            A435 | 18 CD    : jr   $A404
            -->
        </script>
        <script state="run">
            <output format="----- turtle ship 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.mb@00042 = 95              </action>
            <action>maincpu.mw@00025 = A000            </action>
            <action>maincpu.mq@124D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@124F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@12500 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@7BCE = DE</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7BCE = DF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply