Page 1 of 1

[turtshipj] Turtle Ship

Posted: Sat Sep 16, 2023 7:59 am
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>

[turtship]+ Turtle Ship

Posted: Tue Jan 23, 2024 9:13 am
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>