[srdmissn] S.R.D. Mission

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: 845
Joined: Tue Dec 01, 2020 1:24 pm

[srdmissn] S.R.D. Mission

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@18b3 = 18</action>
    </script>
    <script state="off">
        <action>maincpu.mb@18b3 = 38</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@0689 = 00</action> <!-- missile -->
        <action>maincpu.mb@06a3 = 00</action> <!-- shot -->
    </script>
    <script state="off">
        <action>maincpu.mb@0689 = 12</action>
        <action>maincpu.mb@06a3 = 12</action>
    </script>
</cheat>

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

<cheat desc="bullet speed - missile">
    <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@1628 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1628 = 01</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0100">02       </item>
        <item value="0x0140">03       </item>
        <item value="0x0180">04       </item>
        <item value="0x01c0">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mw@09fe = -param</action> <!-- left -->
        <action>maincpu.mw@0a02 =  param</action> <!-- right -->
        <action>maincpu.mw@0a08 =  param</action> <!-- up -->
        <action>maincpu.mw@0a0c =  param</action> <!-- upper-left : up -->
        <action>maincpu.mw@0a0e = -param</action> <!-- upper-left : left -->
        <action>maincpu.mw@0a10 =  param</action> <!-- upper-right : up -->
        <action>maincpu.mw@0a12 =  param</action> <!-- upper-right : right -->
        <action>maincpu.mw@0a18 = -param</action> <!-- down -->
        <action>maincpu.mw@0a1c = -param</action> <!-- lower-left : down -->
        <action>maincpu.mw@0a1e = -param</action> <!-- lower-left : left -->
        <action>maincpu.mw@0a20 = -param</action> <!-- lower-right : down -->
        <action>maincpu.mw@0a22 =  param</action> <!-- lower-right : right -->
    </script>
    <script state="off">
        <action>maincpu.mw@09fe = ff08</action>
        <action>maincpu.mw@0a02 = 00f8</action>
        <action>maincpu.mw@0a08 = 00f8</action>
        <action>maincpu.mw@0a0c = 00af</action>
        <action>maincpu.mw@0a0e = ff51</action>
        <action>maincpu.mw@0a10 = 00af</action>
        <action>maincpu.mw@0a12 = 00af</action>
        <action>maincpu.mw@0a18 = ff08</action>
        <action>maincpu.mw@0a1c = ff51</action>
        <action>maincpu.mw@0a1e = ff51</action>
        <action>maincpu.mw@0a20 = ff51</action>
        <action>maincpu.mw@0a22 = 00af</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@00a9 =             00a8</action> <!-- disable main cpu -->
        <action>    sub.md@00a9 =         cd6710c3</action>
        <action>    sub.mq@6710 = b8800e3a810021fb</action>
        <action>    sub.mq@6718 = 35012001fef92847</action>
        <action>    sub.mq@6720 = 2008fe34012002fe</action>
        <action>    sub.mq@6728 = 2004fe0618f03e04</action>
        <action>    sub.mq@6730 = 10fe787786103e05</action>
        <action>    sub.mq@6738 = fe788036327e0520</action>
        <action>    sub.mq@6740 = 411acdd9af062020</action>
        <action>    sub.mq@6748 = ffffffffffc918d9</action>
        <!--
        6710 | fb       : ei             // enable interrupt
        6711 | 21 00 81 : ld   hl,$8100  // sound code address
        6714 | 3a 0e 80 : ld   a,($800E) // read input
        6717 | b8       : cp   b
        6718 | 47       : ld   b,a
        6719 | 28 f9    : jr   z,$6714
        671b | fe 01    : cp   $01
        671d | 20 01    : jr   nz,$6720
        671f | 35       : dec  (hl)      // decrease code -01
        6720 | fe 02    : cp   $02
        6722 | 20 01    : jr   nz,$6725
        6724 | 34       : inc  (hl)      // increase code +01
        6725 | fe 08    : cp   $08
        6727 | 20 04    : jr   nz,$672D
        6729 | 3e f0    : ld   a,$F0     // decrease code -10
        672b | 18 06    : jr   $6733
        672d | fe 04    : cp   $04
        672f | 20 05    : jr   nz,$6736
        6731 | 3e 10    : ld   a,$10     // increase code +10
        6733 | 86       : add  a,(hl)
        6734 | 77       : ld   (hl),a
        6735 | 78       : ld   a,b
        6736 | fe 10    : cp   $10
        6738 | 20 05    : jr   nz,$673F
        673a | 7e       : ld   a,(hl)    // play sound
        673b | 32 36 80 : ld   ($8036),a
        673e | 78       : ld   a,b
        673f | fe 20    : cp   $20
        6741 | 20 06    : jr   nz,$6749
        6743 | af       : xor  a         // stop sound
        6744 | d9       : exx
        6745 | cd 1a 41 : call $411A
        6748 | d9       : exx
        6749 | 18 c9    : jr   $6714
        -->
    </script>
    <script state="run">
        <output format="----- s.r.d. mission 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>sub.pb@8100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@00a9 =             01b8</action>
        <action>    sub.md@00a9 =         cd4c18fb</action>
        <action>    sub.mq@6710 = ffffffffffffffff</action>
        <action>    sub.mq@6718 = ffffffffffffffff</action>
        <action>    sub.mq@6720 = ffffffffffffffff</action>
        <action>    sub.mq@6728 = ffffffffffffffff</action>
        <action>    sub.mq@6730 = ffffffffffffffff</action>
        <action>    sub.mq@6738 = ffffffffffffffff</action>
        <action>    sub.mq@6740 = ffffffffffffffff</action>
        <action>    sub.mq@6748 = ffffffffffffffff</action>
    </script>
</cheat>
The following code is test because of some problems (a certain shelter doesn't appear etc)

Code: Select all

<cheat desc="no hit - people (test)">
    <script state="on">
        <action>maincpu.md@19aa =         387640cd</action>
        <action>maincpu.mq@7640 = 2801e62d7e082c2c</action>
        <action>maincpu.mq@7648 = 00c9b98608c93702</action>
        <!--
        7640 | 2c    : inc l
        7641 | 2c    : inc l
        7642 | 08    : ex  af,af'
        7643 | 7e    : ld  a,(hl)
        7644 | 2d    : dec l
        7645 | e6 01 : and $01
        7647 | 28 02 : jr  z,$764B
        7649 | 37    : scf
        764a | c9    : ret
        764b | 08    : ex  af,af'
        764c | 86    : add a,(hl)
        764d | b9    : cp  c
        764e | c9    : ret
        -->
        <action>sub.mq@0d3b = cd0d42c2c609cbdd</action> <!-- set 0,(ix+$09) / jp nz,$0D42 -->
        <action>sub.mq@0da2 = cd0da9c2c609cbdd</action> <!-- set 0,(ix+$09) / jp nz,$0DA9 -->
        <action>sub.mq@29a3 = cd29aac2c609cbdd</action> <!-- set 0,(ix+$09) / jp nz,$29AA -->
    </script>
    <script state="off">
        <action>maincpu.md@19aa =         38b9862c</action>
        <action>maincpu.mq@7640 = a53a4e4941544144</action>
        <action>maincpu.mq@7648 = e00e4bed1a3807e0</action>
        <action>    sub.mq@0d3b = cd0b9cc27e09cbdd</action>
        <action>    sub.mq@0da2 = cd0b9cc27e09cbdd</action>
        <action>    sub.mq@29a3 = cd0b9cc27e09cbdd</action>
    </script>
</cheat>
jman
Posts: 845
Joined: Tue Dec 01, 2020 1:24 pm

[srdmissn]+ S.R.D. Mission

Post by jman »

srdmissin

Code: Select all

<!-- S.R.D. Mission -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>maincpu.mb@18B3 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mb@18B3 = 38</action>
        </script>
    </cheat>

    <cheat desc="no hit - people (test)">
        <script state="on">
            <action>maincpu.md@19AA = 387640CD        </action>
            <action>maincpu.mq@7640 = 2801E62D7E082C2C</action>
            <action>maincpu.mq@7648 = 00C9B98608C93702</action>
            <!--
            7640 | 2C    : inc  l
            7641 | 2C    : inc  l
            7642 | 08    : ex   af,af'
            7643 | 7E    : ld   a,(hl)
            7644 | 2D    : dec  l
            7645 | E6 01 : and  $01
            7647 | 28 02 : jr   z,$764B
            7649 | 37    : scf
            764A | C9    : ret
            764B | 08    : ex   af,af'
            764C | 86    : add  a,(hl)
            764D | B9    : cp   c
            764E | C9    : ret
            -->
            <action>sub.mq@0D3B = CD0D42C2C609CBDD</action> <!-- set 0,(ix+$09) / jp nz,$0D42 -->
            <action>sub.mq@0DA2 = CD0DA9C2C609CBDD</action> <!-- set 0,(ix+$09) / jp nz,$0DA9 -->
            <action>sub.mq@29A3 = CD29AAC2C609CBDD</action> <!-- set 0,(ix+$09) / jp nz,$29AA -->
        </script>
        <script state="off">
            <action>maincpu.md@19AA = 38B9862C        </action>
            <action>maincpu.mq@7640 = A53A4E4941544144</action>
            <action>maincpu.mq@7648 = E00E4BED1A3807E0</action>
            <action>    sub.mq@0D3B = CD0B9CC27E09CBDD</action>
            <action>    sub.mq@0DA2 = CD0B9CC27E09CBDD</action>
            <action>    sub.mq@29A3 = CD0B9CC27E09CBDD</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0689 = 00</action> <!-- missile -->
            <action>maincpu.mb@06A3 = 00</action> <!-- shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@0689 = 12</action>
            <action>maincpu.mb@06A3 = 12</action>
        </script>
    </cheat>

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

    <cheat desc="bullet speed - missile">
        <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@1628 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1628 = 01</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0140">03       </item>
            <item value="0x0180">04       </item>
            <item value="0x01c0">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@09FE = -param</action> <!-- left -->
            <action>maincpu.mw@0A02 =  param</action> <!-- right -->
            <action>maincpu.mw@0A08 =  param</action> <!-- up -->
            <action>maincpu.mw@0A0C =  param</action> <!-- upper-left : up -->
            <action>maincpu.mw@0A0E = -param</action> <!-- upper-left : left -->
            <action>maincpu.mw@0A10 =  param</action> <!-- upper-right : up -->
            <action>maincpu.mw@0A12 =  param</action> <!-- upper-right : right -->
            <action>maincpu.mw@0A18 = -param</action> <!-- down -->
            <action>maincpu.mw@0A1C = -param</action> <!-- lower-left : down -->
            <action>maincpu.mw@0A1E = -param</action> <!-- lower-left : left -->
            <action>maincpu.mw@0A20 = -param</action> <!-- lower-right : down -->
            <action>maincpu.mw@0A22 =  param</action> <!-- lower-right : right -->
        </script>
        <script state="off">
            <action>maincpu.mw@09FE = FF08</action>
            <action>maincpu.mw@0A02 = 00F8</action>
            <action>maincpu.mw@0A08 = 00F8</action>
            <action>maincpu.mw@0A0C = 00AF</action>
            <action>maincpu.mw@0A0E = FF51</action>
            <action>maincpu.mw@0A10 = 00AF</action>
            <action>maincpu.mw@0A12 = 00AF</action>
            <action>maincpu.mw@0A18 = FF08</action>
            <action>maincpu.mw@0A1C = FF51</action>
            <action>maincpu.mw@0A1E = FF51</action>
            <action>maincpu.mw@0A20 = FF51</action>
            <action>maincpu.mw@0A22 = 00AF</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@00A9 = 00A8            </action> <!-- disable main cpu -->
            <action>    sub.md@00A9 = CD6710C3        </action>
            <action>    sub.mq@6710 = B8800E3A810021FB</action>
            <action>    sub.mq@6718 = 35012001FEF92847</action>
            <action>    sub.mq@6720 = 2008FE34012002FE</action>
            <action>    sub.mq@6728 = 2004FE0618F03E04</action>
            <action>    sub.mq@6730 = 10FE787786103E05</action>
            <action>    sub.mq@6738 = FE788036327E0520</action>
            <action>    sub.mq@6740 = 411ACDD9AF062020</action>
            <action>    sub.mq@6748 = FFFFFFFFFFC918D9</action>
            <!--
            6710 | FB       : ei             // enable interrupt
            6711 | 21 00 81 : ld   hl,$8100  // sound code address
            6714 | 3A 0E 80 : ld   a,($800E) // read input
            6717 | B8       : cp   b
            6718 | 47       : ld   b,a
            6719 | 28 F9    : jr   z,$6714
            671B | FE 01    : cp   $01
            671D | 20 01    : jr   nz,$6720
            671F | 35       : dec  (hl)      // decrease code -01
            6720 | FE 02    : cp   $02
            6722 | 20 01    : jr   nz,$6725
            6724 | 34       : inc  (hl)      // increase code +01
            6725 | FE 08    : cp   $08
            6727 | 20 04    : jr   nz,$672D
            6729 | 3E F0    : ld   a,$F0     // decrease code -10
            672B | 18 06    : jr   $6733
            672D | FE 04    : cp   $04
            672F | 20 05    : jr   nz,$6736
            6731 | 3E 10    : ld   a,$10     // increase code +10
            6733 | 86       : add  a,(hl)
            6734 | 77       : ld   (hl),a
            6735 | 78       : ld   a,b
            6736 | FE 10    : cp   $10
            6738 | 20 05    : jr   nz,$673F
            673A | 7E       : ld   a,(hl)    // play sound
            673B | 32 36 80 : ld   ($8036),a
            673E | 78       : ld   a,b
            673F | FE 20    : cp   $20
            6741 | 20 06    : jr   nz,$6749
            6743 | AF       : xor  a         // stop sound
            6744 | D9       : exx
            6745 | CD 1A 41 : call $411A
            6748 | D9       : exx
            6749 | 18 C9    : jr   $6714
            -->
        </script>
        <script state="run">
            <output format="----- s.r.d. mission 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>sub.pb@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@00A9 = 01B8            </action>
            <action>    sub.md@00A9 = CD4C18FB        </action>
            <action>    sub.mq@6710 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6718 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6720 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6728 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6730 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6738 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6740 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@6748 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
fx.xml

Code: Select all

<!-- F-X (bootleg of S.R.D. Mission) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>maincpu.mb@18B3 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mb@18B3 = 38</action>
        </script>
    </cheat>

    <cheat desc="no hit - people (test)">
        <script state="on">
            <action>maincpu.md@19AA = 386720CD        </action>
            <action>maincpu.mq@6720 = 2801E62D7E082C2C</action>
            <action>maincpu.mq@6728 = 00C9B98608C93702</action>
            <!--
            6720 | 2C    : inc  l
            6721 | 2C    : inc  l
            6722 | 08    : ex   af,af'
            6723 | 7E    : ld   a,(hl)
            6724 | 2D    : dec  l
            6725 | E6 01 : and  $01
            6727 | 28 02 : jr   z,$672B
            6729 | 37    : scf
            672A | C9    : ret
            672B | 08    : ex   af,af'
            672C | 86    : add  a,(hl)
            672D | B9    : cp   c
            672E | C9    : ret
            -->
            <action>sub.mq@0DCD = CD0DD4C2C609CBDD</action> <!-- set 0,(ix+$09) / jp nz,$0DD4 -->
            <action>sub.mq@0E34 = CD0E3BC2C609CBDD</action> <!-- set 0,(ix+$09) / jp nz,$0E3B -->
            <action>sub.mq@2D90 = CD2D97C2C609CBDD</action> <!-- set 0,(ix+$09) / jp nz,$2D97 -->
        </script>
        <script state="off">
            <action>maincpu.md@19AA = 38B9862C        </action>
            <action>maincpu.mq@6720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6728 = FFFFFFFFFFFFFFFF</action>
            <action>    sub.mq@0DCD = CD0BC6C27E09CBDD</action>
            <action>    sub.mq@0E34 = CD0BC6C27E09CBDD</action>
            <action>    sub.mq@2D90 = CD0BC6C27E09CBDD</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0689 = 00</action> <!-- missile -->
            <action>maincpu.mb@06A3 = 00</action> <!-- shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@0689 = 12</action>
            <action>maincpu.mb@06A3 = 12</action>
        </script>
    </cheat>

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

    <cheat desc="bullet speed - missile">
        <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@1628 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1628 = 01</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0140">03       </item>
            <item value="0x0180">04       </item>
            <item value="0x01c0">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@09FE = -param</action> <!-- left -->
            <action>maincpu.mw@0A02 =  param</action> <!-- right -->
            <action>maincpu.mw@0A08 =  param</action> <!-- up -->
            <action>maincpu.mw@0A0C =  param</action> <!-- upper-left : up -->
            <action>maincpu.mw@0A0E = -param</action> <!-- upper-left : left -->
            <action>maincpu.mw@0A10 =  param</action> <!-- upper-right : up -->
            <action>maincpu.mw@0A12 =  param</action> <!-- upper-right : right -->
            <action>maincpu.mw@0A18 = -param</action> <!-- down -->
            <action>maincpu.mw@0A1C = -param</action> <!-- lower-left : down -->
            <action>maincpu.mw@0A1E = -param</action> <!-- lower-left : left -->
            <action>maincpu.mw@0A20 = -param</action> <!-- lower-right : down -->
            <action>maincpu.mw@0A22 =  param</action> <!-- lower-right : right -->
        </script>
        <script state="off">
            <action>maincpu.mw@09FE = FF08</action>
            <action>maincpu.mw@0A02 = 00F8</action>
            <action>maincpu.mw@0A08 = 00F8</action>
            <action>maincpu.mw@0A0C = 00AF</action>
            <action>maincpu.mw@0A0E = FF51</action>
            <action>maincpu.mw@0A10 = 00AF</action>
            <action>maincpu.mw@0A12 = 00AF</action>
            <action>maincpu.mw@0A18 = FF08</action>
            <action>maincpu.mw@0A1C = FF51</action>
            <action>maincpu.mw@0A1E = FF51</action>
            <action>maincpu.mw@0A20 = FF51</action>
            <action>maincpu.mw@0A22 = 00AF</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@00A9 = 00A8            </action> <!-- disable main cpu -->
            <action>    sub.md@00A9 = CD8800C3        </action>
            <action>    sub.pq@8800 = B8800E3A810021FB</action>
            <action>    sub.pq@8808 = 35012001FEF92847</action>
            <action>    sub.pq@8810 = 2008FE34012002FE</action>
            <action>    sub.pq@8818 = 2004FE0618F03E04</action>
            <action>    sub.pq@8820 = 10FE787786103E05</action>
            <action>    sub.pq@8828 = FE788036327E0520</action>
            <action>    sub.pq@8830 = 45D7CDD9AF062020</action>
            <action>    sub.pq@8838 = 0000000000C918D9</action>
            <!--
            8800 | FB       : ei             // enable interrupt
            8801 | 21 00 81 : ld   hl,$8100  // sound code address
            8804 | 3A 0E 80 : ld   a,($800E) // read input
            8807 | B8       : cp   b
            8808 | 47       : ld   b,a
            8809 | 28 F9    : jr   z,$8804
            880B | FE 01    : cp   $01
            880D | 20 01    : jr   nz,$8810
            880F | 35       : dec  (hl)      // decrease code -01
            8810 | FE 02    : cp   $02
            8812 | 20 01    : jr   nz,$8815
            8814 | 34       : inc  (hl)      // increase code +01
            8815 | FE 08    : cp   $08
            8817 | 20 04    : jr   nz,$881D
            8819 | 3E F0    : ld   a,$F0     // decrease code -10
            881B | 18 06    : jr   $8823
            881D | FE 04    : cp   $04
            881F | 20 05    : jr   nz,$8826
            8821 | 3E 10    : ld   a,$10     // increase code +10
            8823 | 86       : add  a,(hl)
            8824 | 77       : ld   (hl),a
            8825 | 78       : ld   a,b
            8826 | FE 10    : cp   $10
            8828 | 20 05    : jr   nz,$882F
            882A | 7E       : ld   a,(hl)    // play sound
            882B | 32 36 80 : ld   ($8036),a
            882E | 78       : ld   a,b
            882F | FE 20    : cp   $20
            8831 | 20 06    : jr   nz,$8839
            8833 | AF       : xor  a         // stop sound
            8834 | D9       : exx
            8835 | CD D7 45 : call $45D7
            8838 | D9       : exx
            8839 | 18 C9    : jr   $8804
            -->
        </script>
        <script state="run">
            <output format="----- f-x 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>sub.pb@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@00A9 = 01B8            </action>
            <action>    sub.md@00A9 = CD4C18FB        </action>
            <action>    sub.pq@8800 = 0000000000000000</action>
            <action>    sub.pq@8808 = 0000000000000000</action>
            <action>    sub.pq@8810 = 0000000000000000</action>
            <action>    sub.pq@8818 = 0000000000000000</action>
            <action>    sub.pq@8820 = 0000000000000000</action>
            <action>    sub.pq@8828 = 0000000000000000</action>
            <action>    sub.pq@8830 = 0000000000000000</action>
            <action>    sub.pq@8838 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Post Reply