[scion] Scion

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

[scion] Scion

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@0cf9 = 0cfb</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0cf9 = 0d06</action>
    </script>
</cheat>

<cheat desc="no hit - sub unit">
    <script state="on">
        <action>maincpu.mb@1678 = 7a</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1678 = a0</action>
    </script>
</cheat>

<cheat desc="auto fire - shot">
    <script state="on">
        <action>maincpu.mb@14df = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@14df = c0</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x04">01 (slow)</item>
        <item value="0x10">02       </item>
        <item value="0x14">03       </item>
        <item value="0x18">04       </item>
        <item value="0x1c">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@1552 =            param</action> <!-- speed -->
        <action>maincpu.mb@1554 = f0 - (param / 2)</action> <!-- range -->
    </script>
    <script state="off">
        <action>maincpu.mb@1552 = 10</action>
        <action>maincpu.mb@1554 = f0</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" />
    <script state="change">
        <action>maincpu.mb@1409 = param</action> <!-- right -->
        <action>maincpu.mb@1413 = param</action> <!-- left -->
        <action>maincpu.mb@141d = param</action> <!-- up -->
        <action>maincpu.mb@1427 = param</action> <!-- down -->
    </script>
    <script state="off">
        <action>maincpu.mb@1409 = 02</action>
        <action>maincpu.mb@1413 = 02</action>
        <action>maincpu.mb@141d = 02</action>
        <action>maincpu.mb@1427 = 02</action>
    </script>
</cheat>

<cheat desc="fast bomb">
    <script state="on">
        <action>maincpu.mb@173a = c3</action> <!-- normal scene -->
        <action>maincpu.mb@1728 = c3</action> <!-- boss scene -->
    </script>
    <script state="off">
        <action>maincpu.mb@173a = ca</action>
        <action>maincpu.mb@1728 = ca</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@0107 =             a000</action>
        <action>maincpu.mq@a000 = 3a47f0103ac10021</action>
        <action>maincpu.mq@a008 = fef4284fb9b0f018</action>
        <action>maincpu.mq@a010 = 012001fe35012002</action>
        <action>maincpu.mq@a018 = 06187e032040fe34</action>
        <action>maincpu.mq@a020 = 21e5903e142004fe</action>
        <action>maincpu.mq@a028 = 082e022011fef800</action>
        <action>maincpu.mq@a030 = e1770a2e022012fe</action>
        <action>maincpu.mq@a038 = 000000000000c918</action>
        <!--
        a000 | 21 00 c1 : ld   hl,$C100  // sound code address
        a003 | 3a 10 f0 : ld   a,($F010) // read button input
        a006 | 47       : ld   b,a
        a007 | 3a 18 f0 : ld   a,($F018) // read stick input
        a00a | b0       : or   b
        a00b | b9       : cp   c
        a00c | 4f       : ld   c,a
        a00d | 28 f4    : jr   z,$A003
        a00f | fe 02    : cp   $02
        a011 | 20 01    : jr   nz,$A014
        a013 | 35       : dec  (hl)      // decrease code
        a014 | fe 01    : cp   $01
        a016 | 20 01    : jr   nz,$A019
        a018 | 34       : inc  (hl)      // increase code
        a019 | fe 40    : cp   $40
        a01b | 20 03    : jr   nz,$A020
        a01d | 7e       : ld   a,(hl)    // play sound
        a01e | 18 06    : jr   $A026
        a020 | fe 04    : cp   $04
        a022 | 20 14    : jr   nz,$A038
        a024 | 3e 90    : ld   a,$90     // stop sound
        a026 | e5       : push hl
        a027 | 21 00 f8 : ld   hl,$F800
        a02a | fe 11    : cp   $11
        a02c | 20 02    : jr   nz,$A030
        a02e | 2e 08    : ld   l,$08     // explosion sound
        a030 | fe 12    : cp   $12
        a032 | 20 02    : jr   nz,$A036
        a034 | 2e 0a    : ld   l,$0A     // shot sound
        a036 | 77       : ld   (hl),a    // send sound code
        a037 | e1       : pop  hl
        a038 | 18 c9    : jr   $A003
        -->
    </script>
    <script state="run">
        <output format="----- scion sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code"               line="11" align="center" />
        <output format="right : increase code"              line="12" align="center" />
        <output format="button 1 : play sound"              line="13" align="center" />
        <output format="button 2 : stop sound"              line="14" align="center" />
        <output format="----------------------------"       line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="17" align="center">
            <argument>maincpu.pb@c100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0107 =             0f61</action>
        <action>maincpu.mq@a000 = 0000000000000000</action>
        <action>maincpu.mq@a008 = 0000000000000000</action>
        <action>maincpu.mq@a010 = 0000000000000000</action>
        <action>maincpu.mq@a018 = 0000000000000000</action>
        <action>maincpu.mq@a020 = 0000000000000000</action>
        <action>maincpu.mq@a028 = 0000000000000000</action>
        <action>maincpu.mq@a030 = 0000000000000000</action>
        <action>maincpu.mq@a038 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="skip ram check">
    <script state="on">
        <action>maincpu.mb@00ff = 92</action>
    </script>
    <script state="off">
        <action>maincpu.mb@00ff = 51</action>
    </script>
</cheat>
scion has white noise bug. The following code will fix it.

Code: Select all

<cheat desc="disable white noise bug (test)">
    <script state="on">
        <action>audiocpu.mb@0124 = 00</action>
        <action>audiocpu.mb@0147 = 00</action>
    </script>
    <script state="off">
        <action>audiocpu.mb@0124 = 10</action>
        <action>audiocpu.mb@0147 = 0f</action>
    </script>
</cheat>
scion has the ending after level 999. The following code starts the game with level 999.

Code: Select all

<cheat desc="start with level 999">
    <script state="run">
        <action condition="maincpu.pd@c300 == 00000000">maincpu.pd@c300 = 00020053</action>
    </script>
</cheat>
jman
Posts: 844
Joined: Tue Dec 01, 2020 1:24 pm

[scion] Scion (update)

Post by jman »

Code: Select all

<cheat desc="shor hit mark - bomb (test)">
    <script state="on">
        <action>maincpu.mb@1de9 = c3</action>
        <action>maincpu.mb@1e57 = c3</action>
        <action>maincpu.mb@1e78 = c3</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1de9 = ca</action>
        <action>maincpu.mb@1e57 = ca</action>
        <action>maincpu.mb@1e78 = ca</action>
    </script>
</cheat>
"short hit mark" : add new as test code because of unverified.

Code: Select all

<cheat desc="sound test mode">
    <!-- you can't stop two sfxs (code 0x11 and 0x12) by stop button -->
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@0107 =             a000</action>
        <action>maincpu.mq@a000 = 44e6f0103ac10021</action>
        <action>maincpu.mq@a008 = b8b133e6f0183a4f</action>
        <action>maincpu.mq@a010 = 35012002fef02847</action>
        <action>maincpu.mq@a018 = 2020fe34012001fe</action>
        <action>maincpu.mq@a020 = 2010fe0618f03e04</action>
        <action>maincpu.mq@a028 = 40fe787786103e05</action>
        <action>maincpu.mq@a030 = 2004fe06187e0320</action>
        <action>maincpu.mq@a038 = 11fef80011903e12</action>
        <action>maincpu.mq@a040 = 022012fe081e0220</action>
        <action>maincpu.mq@a048 = 000000b618120a1e</action>
        <!--
        a000 | 21 00 c1 : ld  hl,$C100  // sound code address
        a003 | 3a 10 f0 : ld  a,($F010) // read button inputs
        a006 | e6 44    : and $44
        a008 | 4f       : ld  c,a
        a009 | 3a 18 f0 : ld  a,($F018) // read joystick inputs
        a00c | e6 33    : and $33
        a00e | b1       : or  c
        a00f | b8       : cp  b
        a010 | 47       : ld  b,a
        a011 | 28 f0    : jr  z,$A003
        a013 | fe 02    : cp  $02
        a015 | 20 01    : jr  nz,$A018
        a017 | 35       : dec (hl)      // decrease code -01
        a018 | fe 01    : cp  $01
        a01a | 20 01    : jr  nz,$A01D
        a01c | 34       : inc (hl)      // increase code +01
        a01d | fe 20    : cp  $20
        a01f | 20 04    : jr  nz,$A025
        a021 | 3e f0    : ld  a,$F0     // decrease code -10
        a023 | 18 06    : jr  $A02B
        a025 | fe 10    : cp  $10
        a027 | 20 05    : jr  nz,$A02E
        a029 | 3e 10    : ld  a,$10     // increase code +10
        a02b | 86       : add a,(hl)
        a02c | 77       : ld  (hl),a
        a02d | 78       : ld  a,b
        a02e | fe 40    : cp  $40
        a030 | 20 03    : jr  nz,$A035
        a032 | 7e       : ld  a,(hl)    // play sound
        a033 | 18 06    : jr  $A03B
        a035 | fe 04    : cp  $04
        a037 | 20 12    : jr  nz,$A04B
        a039 | 3e 90    : ld  a,$90     // stop sound
        a03b | 11 00 f8 : ld  de,$F800
        a03e | fe 11    : cp  $11
        a040 | 20 02    : jr  nz,$A044
        a042 | 1e 08    : ld  e,$08     // explosion sound
        a044 | fe 12    : cp  $12
        a046 | 20 02    : jr  nz,$A04A
        a048 | 1e 0a    : ld  e,$0A     // shot sound
        a04a | 12       : ld  (de),a    // send sound code
        a04b | 18 b6    : jr  $A003
        -->
    </script>
    <script state="run">
        <output format="----- scion 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.mw@0107 =             0f61</action>
        <action>maincpu.mq@a000 = 0000000000000000</action>
        <action>maincpu.mq@a008 = 0000000000000000</action>
        <action>maincpu.mq@a010 = 0000000000000000</action>
        <action>maincpu.mq@a018 = 0000000000000000</action>
        <action>maincpu.mq@a020 = 0000000000000000</action>
        <action>maincpu.mq@a028 = 0000000000000000</action>
        <action>maincpu.mq@a030 = 0000000000000000</action>
        <action>maincpu.mq@a038 = 0000000000000000</action>
        <action>maincpu.mq@a040 = 0000000000000000</action>
        <action>maincpu.mq@a048 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 844
Joined: Tue Dec 01, 2020 1:24 pm

[scion]+ Scion

Post by jman »

scion.xml

Code: Select all

<!-- Scion -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>maincpu.mw@0CF9 = 0CFB</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0CF9 = 0D06</action>
        </script>
    </cheat>

    <cheat desc="no hit - sub unit">
        <script state="on">
            <action>maincpu.mb@1678 = 7A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1678 = A0</action>
        </script>
    </cheat>

    <cheat desc="auto fire - shot">
        <script state="on">
            <action>maincpu.mb@14DF = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@14DF = C0</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" />
        <script state="change">
            <action>maincpu.mb@1409 = param</action> <!-- right -->
            <action>maincpu.mb@1413 = param</action> <!-- left -->
            <action>maincpu.mb@141D = param</action> <!-- up -->
            <action>maincpu.mb@1427 = param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mb@1409 = 02</action>
            <action>maincpu.mb@1413 = 02</action>
            <action>maincpu.mb@141D = 02</action>
            <action>maincpu.mb@1427 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x14">03       </item>
            <item value="0x18">04       </item>
            <item value="0x1c">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1552 =       param     </action> <!-- speed -->
            <action>maincpu.mb@1554 = F0 - (param / 2)</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@1552 = 10</action>
            <action>maincpu.mb@1554 = F0</action>
        </script>
    </cheat>

    <cheat desc="fast bomb">
        <script state="on">
            <action>maincpu.mb@1728 = C3</action> <!-- boss scene -->
            <action>maincpu.mb@173A = C3</action> <!-- normal scene -->
        </script>
        <script state="off">
            <action>maincpu.mb@1728 = CA</action>
            <action>maincpu.mb@173A = CA</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - bomb (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@1DE9 = C3</action>
            <action>maincpu.mb@1E57 = C3</action>
            <action>maincpu.mb@1E78 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1DE9 = CA</action>
            <action>maincpu.mb@1E57 = CA</action>
            <action>maincpu.mb@1E78 = CA</action>
        </script>
    </cheat>

    <cheat desc="disable whitenoise bug (test)">
        <!-- unverified -->
        <script state="on">
            <action>audiocpu.mb@0124 = 00</action>
            <action>audiocpu.mb@0147 = 00</action>
        </script>
        <script state="off">
            <action>audiocpu.mb@0124 = 10</action>
            <action>audiocpu.mb@0147 = 0F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop two sfxs (code 0x11 and 0x12) by sound stop button -->
        <!-- main music (0x20) doesn't loop -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@0107 = A000            </action>
            <action>maincpu.mq@A000 = 44E6F0103AC10021</action>
            <action>maincpu.mq@A008 = B8B133E6F0183A4F</action>
            <action>maincpu.mq@A010 = 35012002FEF02847</action>
            <action>maincpu.mq@A018 = 2020FE34012001FE</action>
            <action>maincpu.mq@A020 = 2010FE0618F03E04</action>
            <action>maincpu.mq@A028 = 40FE787786103E05</action>
            <action>maincpu.mq@A030 = 2004FE06187E0320</action>
            <action>maincpu.mq@A038 = 11FEF80011903E12</action>
            <action>maincpu.mq@A040 = 022012FE081E0220</action>
            <action>maincpu.mq@A048 = 000000B618120A1E</action>
            <!--
            A000 | 21 00 C1 : ld   hl,$C100  // sound code address
            A003 | 3A 10 F0 : ld   a,($F010) // read buttons
            A006 | E6 44    : and  $44
            A008 | 4F       : ld   c,a
            A009 | 3A 18 F0 : ld   a,($F018) // read other inputs
            A00C | E6 33    : and  $33
            A00E | B1       : or   c
            A00F | B8       : cp   b
            A010 | 47       : ld   b,a
            A011 | 28 F0    : jr   z,$A003
            A013 | FE 02    : cp   $02
            A015 | 20 01    : jr   nz,$A018
            A017 | 35       : dec  (hl)      // decrease code -01
            A018 | FE 01    : cp   $01
            A01A | 20 01    : jr   nz,$A01D
            A01C | 34       : inc  (hl)      // increase code +01
            A01D | FE 20    : cp   $20
            A01F | 20 04    : jr   nz,$A025
            A021 | 3E F0    : ld   a,$F0     // decrease code -10
            A023 | 18 06    : jr   $A02B
            A025 | FE 10    : cp   $10
            A027 | 20 05    : jr   nz,$A02E
            A029 | 3E 10    : ld   a,$10     // increase code +10
            A02B | 86       : add  a,(hl)
            A02C | 77       : ld   (hl),a
            A02D | 78       : ld   a,b
            A02E | FE 40    : cp   $40
            A030 | 20 03    : jr   nz,$A035
            A032 | 7E       : ld   a,(hl)    // play sound
            A033 | 18 06    : jr   $A03B
            A035 | FE 04    : cp   $04
            A037 | 20 12    : jr   nz,$A04B
            A039 | 3E 90    : ld   a,$90     // stop sound
            A03B | 11 00 F8 : ld   de,$F800
            A03E | FE 11    : cp   $11
            A040 | 20 02    : jr   nz,$A044
            A042 | 1E 08    : ld   e,$08     // explosion sound
            A044 | FE 12    : cp   $12
            A046 | 20 02    : jr   nz,$A04A
            A048 | 1E 0A    : ld   e,$0A     // shot sound
            A04A | 12       : ld   (de),a    // send sound code
            A04B | 18 B6    : jr   $A003
            -->
        </script>
        <script state="run">
            <output format="----- scion sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0107 = 0F61            </action>
            <action>maincpu.mq@A000 = 0000000000000000</action>
            <action>maincpu.mq@A008 = 0000000000000000</action>
            <action>maincpu.mq@A010 = 0000000000000000</action>
            <action>maincpu.mq@A018 = 0000000000000000</action>
            <action>maincpu.mq@A020 = 0000000000000000</action>
            <action>maincpu.mq@A028 = 0000000000000000</action>
            <action>maincpu.mq@A030 = 0000000000000000</action>
            <action>maincpu.mq@A038 = 0000000000000000</action>
            <action>maincpu.mq@A040 = 0000000000000000</action>
            <action>maincpu.mq@A048 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@00FF = 92</action>
        </script>
        <script state="off">
            <action>maincpu.mb@00FF = 51</action>
        </script>
    </cheat>

</mamecheat>
scionc.xml

Code: Select all

<!-- Scion (Cinematronics) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>maincpu.mw@0CF9 = 0CFB</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0CF9 = 0D06</action>
        </script>
    </cheat>

    <cheat desc="no hit - sub unit">
        <script state="on">
            <action>maincpu.mb@1678 = 7A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1678 = A0</action>
        </script>
    </cheat>

    <cheat desc="auto fire - shot">
        <script state="on">
            <action>maincpu.mb@14DF = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@14DF = C0</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" />
        <script state="change">
            <action>maincpu.mb@1409 = param</action> <!-- right -->
            <action>maincpu.mb@1413 = param</action> <!-- left -->
            <action>maincpu.mb@141D = param</action> <!-- up -->
            <action>maincpu.mb@1427 = param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mb@1409 = 01</action>
            <action>maincpu.mb@1413 = 01</action>
            <action>maincpu.mb@141D = 01</action>
            <action>maincpu.mb@1427 = 01</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x14">03       </item>
            <item value="0x18">04       </item>
            <item value="0x1c">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1552 =       param     </action> <!-- speed -->
            <action>maincpu.mb@1554 = F0 - (param / 2)</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@1552 = 10</action>
            <action>maincpu.mb@1554 = F0</action>
        </script>
    </cheat>

    <cheat desc="fast bomb">
        <script state="on">
            <action>maincpu.mb@1728 = C3</action> <!-- boss scene -->
            <action>maincpu.mb@173A = C3</action> <!-- normal scene -->
        </script>
        <script state="off">
            <action>maincpu.mb@1728 = CA</action>
            <action>maincpu.mb@173A = CA</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - bomb (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@1DE9 = C3</action>
            <action>maincpu.mb@1E57 = C3</action>
            <action>maincpu.mb@1E78 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1DE9 = CA</action>
            <action>maincpu.mb@1E57 = CA</action>
            <action>maincpu.mb@1E78 = CA</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop two sfxs (code 0x11 and 0x12) by sound stop button -->
        <!-- main music (0x20) doesn't loop -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@0107 = A000            </action>
            <action>maincpu.mq@A000 = 44E6F0103AC10021</action>
            <action>maincpu.mq@A008 = B8B133E6F0183A4F</action>
            <action>maincpu.mq@A010 = 35012002FEF02847</action>
            <action>maincpu.mq@A018 = 2020FE34012001FE</action>
            <action>maincpu.mq@A020 = 2010FE0618F03E04</action>
            <action>maincpu.mq@A028 = 40FE787786103E05</action>
            <action>maincpu.mq@A030 = 2004FE06187E0320</action>
            <action>maincpu.mq@A038 = 11FEF80011903E12</action>
            <action>maincpu.mq@A040 = 022012FE081E0220</action>
            <action>maincpu.mq@A048 = 000000B618120A1E</action>
            <!--
            A000 | 21 00 C1 : ld   hl,$C100  // sound code address
            A003 | 3A 10 F0 : ld   a,($F010) // read buttons
            A006 | E6 44    : and  $44
            A008 | 4F       : ld   c,a
            A009 | 3A 18 F0 : ld   a,($F018) // read other inputs
            A00C | E6 33    : and  $33
            A00E | B1       : or   c
            A00F | B8       : cp   b
            A010 | 47       : ld   b,a
            A011 | 28 F0    : jr   z,$A003
            A013 | FE 02    : cp   $02
            A015 | 20 01    : jr   nz,$A018
            A017 | 35       : dec  (hl)      // decrease code -01
            A018 | FE 01    : cp   $01
            A01A | 20 01    : jr   nz,$A01D
            A01C | 34       : inc  (hl)      // increase code +01
            A01D | FE 20    : cp   $20
            A01F | 20 04    : jr   nz,$A025
            A021 | 3E F0    : ld   a,$F0     // decrease code -10
            A023 | 18 06    : jr   $A02B
            A025 | FE 10    : cp   $10
            A027 | 20 05    : jr   nz,$A02E
            A029 | 3E 10    : ld   a,$10     // increase code +10
            A02B | 86       : add  a,(hl)
            A02C | 77       : ld   (hl),a
            A02D | 78       : ld   a,b
            A02E | FE 40    : cp   $40
            A030 | 20 03    : jr   nz,$A035
            A032 | 7E       : ld   a,(hl)    // play sound
            A033 | 18 06    : jr   $A03B
            A035 | FE 04    : cp   $04
            A037 | 20 12    : jr   nz,$A04B
            A039 | 3E 90    : ld   a,$90     // stop sound
            A03B | 11 00 F8 : ld   de,$F800
            A03E | FE 11    : cp   $11
            A040 | 20 02    : jr   nz,$A044
            A042 | 1E 08    : ld   e,$08     // explosion sound
            A044 | FE 12    : cp   $12
            A046 | 20 02    : jr   nz,$A04A
            A048 | 1E 0A    : ld   e,$0A     // shot sound
            A04A | 12       : ld   (de),a    // send sound code
            A04B | 18 B6    : jr   $A003
            -->
        </script>
        <script state="run">
            <output format="----- scion sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0107 = 0F61            </action>
            <action>maincpu.mq@A000 = 0000000000000000</action>
            <action>maincpu.mq@A008 = 0000000000000000</action>
            <action>maincpu.mq@A010 = 0000000000000000</action>
            <action>maincpu.mq@A018 = 0000000000000000</action>
            <action>maincpu.mq@A020 = 0000000000000000</action>
            <action>maincpu.mq@A028 = 0000000000000000</action>
            <action>maincpu.mq@A030 = 0000000000000000</action>
            <action>maincpu.mq@A038 = 0000000000000000</action>
            <action>maincpu.mq@A040 = 0000000000000000</action>
            <action>maincpu.mq@A048 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram check">
        <script state="on">
            <action>maincpu.mb@00FF = 92</action>
        </script>
        <script state="off">
            <action>maincpu.mb@00FF = 51</action>
        </script>
    </cheat>

</mamecheat>
"disable whitenoise bug" : Removed from scionc. This set doesn't have whitenoise bug.
Post Reply