[bluehawkn] Blue Hawk

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

[bluehawkn] Blue Hawk

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@a392 = c3</action> <!-- enemy -->
        <action>maincpu.mb@a213 = c9</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@a392 = c2</action>
        <action>maincpu.mb@a213 = d8</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@17c2 = e6</action>
        <action>maincpu.mb@182b = e6</action>
        <action>maincpu.mb@19bc = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@17c2 = ee</action>
        <action>maincpu.mb@182b = ee</action>
        <action>maincpu.mb@19bc = D0</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="on">
        <action>maincpu.md@1435 = 5700003e</action> <!-- left -->
        <action>maincpu.md@144b = c6000026</action> <!-- right -->
        <action>maincpu.md@1455 = dd00002e</action> <!-- up -->
        <action>maincpu.md@1468 = 4f00013e</action> <!-- down -->
    </script>
    <script state="change">
        <action>maincpu.mb@1436 = param</action>
        <action>maincpu.mb@144c = param</action>
        <action>maincpu.mb@1456 = param</action>
        <action>maincpu.mb@1469 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@1435 = 57057edd</action>
        <action>maincpu.md@144b = c60566dd</action>
        <action>maincpu.md@1455 = dd056edd</action>
        <action>maincpu.md@1468 = 4f057edd</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x10">02       </item>
        <item value="0x18">03       </item>
        <item value="0x20">04       </item>
        <item value="0x28">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@1bee =         cd0010cd</action>
        <action>maincpu.md@1c56 =         cd0010cd</action>
        <action>maincpu.md@1c93 =         cd0010cd</action>
        <action>maincpu.mq@0010 = c8a70d7efd0377fd</action>
        <action>maincpu.mq@0018 = fd44ed001ff2003e</action>
        <action>maincpu.mq@0020 = ffffffffffc90d77</action>
        <!--
        0010 | FD 77 03 : ld  (iy+$03),a
        0013 | FD 7E 0D : ld  a,(iy+$0d)
        0016 | A7       : and a
        0017 | C8       : ret z
        0018 | 3E 28    : ld  a,$28
        001A | F2 1F 00 : jp  p,$001F
        001D | ED 44    : neg
        001F | FD 77 0D : ld  (iy+$0d),a
        0020 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@0019 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@1bee =         cd0377fd</action>
        <action>maincpu.md@1c56 =         cd0377fd</action>
        <action>maincpu.md@1c93 =         cd0377fd</action>
        <action>maincpu.mq@0010 = ffffffffffffffff</action>
        <action>maincpu.mq@0018 = ffffffffffffffff</action>
        <action>maincpu.mq@0020 = ffffffffffffffff</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@0070 =             0100</action>
        <action>maincpu.mq@0100 = 023af10022600021</action>
        <action>maincpu.mq@0108 = 20fdfef6286fbdc0</action>
        <action>maincpu.mq@0110 = fe240120fefe2501</action>
        <action>maincpu.mq@0118 = dffe06187c0320ef</action>
        <action>maincpu.mq@0120 = 18c01032003e0520</action>
        <action>maincpu.mq@0128 = 00000000000000da</action>
        <!--
        0100 | 21 00 60 : ld  hl,$6000   // initialize sound and input values
        0103 | 22 00 f1 : ld  ($f100),hl
        0106 | 3a 02 c0 : ld  a,($c002)  // read input
        0109 | bd       : cp  l
        010a | 6f       : ld  l,a
        010b | 28 f6    : jr  z,$0103
        010d | fe fd    : cp  $fd
        010f | 20 01    : jr  nz,$0112
        0111 | 25       : dec h          // decrease code
        0112 | fe fe    : cp  $fe
        0114 | 20 01    : jr  nz,$0117
        0116 | 24       : inc h          // increase code
        0117 | fe ef    : cp  $ef
        0119 | 20 03    : jr  nz,$011e
        011b | 7c       : ld  a,h        // play sound
        011c | 18 06    : jr  $0124
        011e | fe df    : cp  $df
        0120 | 20 05    : jr  nz,$0127 
        0122 | 3e 00    : ld  a,$00      // stop sound
        0124 | 32 10 c0 : ld  ($c010),a  // send sound code
        0127 | 18 da    : jr  $0103
        -->
    </script>
    <script state="run">
        <output format="----- blue hawk 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@f101</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0070 =             0200</action>
        <action>maincpu.mq@0100 = 0000000000000000</action>
        <action>maincpu.mq@0108 = 0000000000000000</action>
        <action>maincpu.mq@0110 = 0000000000000000</action>
        <action>maincpu.mq@0118 = 0000000000000000</action>
        <action>maincpu.mq@0120 = 0000000000000000</action>
        <action>maincpu.mq@0128 = 0000000000000000</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bluehawkn] Blue Hawk (update)

Post by jman »

Code: Select all

<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="on">
        <action>maincpu.md@1435 = 5700003e</action> <!-- left -->
        <action>maincpu.md@144b = c6000026</action> <!-- right -->
        <action>maincpu.md@1455 = dd00002e</action> <!-- up -->
        <action>maincpu.md@1468 = 4f00013e</action> <!-- down -->
    </script>
    <script state="change">
        <action>maincpu.mb@1436 = param</action>
        <action>maincpu.mb@144c = param</action>
        <action>maincpu.mb@1456 = param</action>
        <action>maincpu.mb@1469 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@1435 = 57057edd</action>
        <action>maincpu.md@144b = c60566dd</action>
        <action>maincpu.md@1455 = dd056edd</action>
        <action>maincpu.md@1468 = 4f057edd</action>
    </script>
</cheat>
"player speed" : change parameter from values to items.

Code: Select all

<cheat desc="bullet speed">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x10">02       </item>
        <item value="0x18">03       </item>
        <item value="0x20">04       </item>
        <item value="0x28">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@1d1c =         cd0010cd</action>
        <action>maincpu.md@1d48 =         cd0010cd</action>
        <action>maincpu.md@1d79 =         cd0015cd</action>
        <action>maincpu.mq@0010 = 0c7edd03180d7edd</action>
        <action>maincpu.mq@0018 = ff16f00116c857a7</action>
        <action>maincpu.mq@0020 = ffffffffffffffc9</action>
        <!--
        0010 | dd 7e 0d : ld  a,(ix+$0d)
        0013 | 18 03    : jr  $0018
        0015 | dd 7e 0c : ld  a,(ix+$0c)
        0018 | a7       : and a
        0019 | 57       : ld  d,a
        001a | c8       : ret z
        001b | 16 xx    : ld  d,$xx
        001d | f0       : ret p
        001e | 16 xx    : ld  d,$xx
        0020 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@001c =  param</action>
        <action>maincpu.mb@001f = -param</action>
    </script>
    <script state="off">
        <action>maincpu.md@1d1c =         cd0d56dd</action>
        <action>maincpu.md@1d48 =         cd0d56dd</action>
        <action>maincpu.md@1d79 =         cd0c56dd</action>
        <action>maincpu.mq@0010 = ffffffffffffffff</action>
        <action>maincpu.mq@0018 = ffffffffffffffff</action>
        <action>maincpu.mq@0020 = ffffffffffffffff</action>
    </script>
</cheat>
"bullet speed" : rewrite routine.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@006c =             0100</action>
        <action>maincpu.mq@0100 = 47b8c0023af10021</action>
        <action>maincpu.mq@0108 = fe350120fdfef928</action>
        <action>maincpu.mq@0110 = 0420fbfe340120fe</action>
        <action>maincpu.mq@0118 = 0520f7fe0618f03e</action>
        <action>maincpu.mq@0120 = 20effe787786103e</action>
        <action>maincpu.mq@0128 = 0420dffe05187e03</action>
        <action>maincpu.mq@0130 = 0000cd18c01032af</action>
        <!--
        0100 | 21 00 f1 : ld  hl,$F100  // sound code address
        0103 | 3a 02 c0 : ld  a,($C002) // read input
        0106 | b8       : cp  b
        0107 | 47       : ld  b,a
        0108 | 28 f9    : jr  z,$0103
        010a | fe fd    : cp  $FD
        010c | 20 01    : jr  nz,$010F
        010e | 35       : dec (hl)      // decrease code -01
        010f | fe fe    : cp  $FE
        0111 | 20 01    : jr  nz,$0114
        0113 | 34       : inc (hl)      // increase code +01
        0114 | fe fb    : cp  $FB
        0116 | 20 04    : jr  nz,$011C
        0118 | 3e f0    : ld  a,$F0     // decrease code -10
        011a | 18 06    : jr  $0122
        011c | fe f7    : cp  $F7
        011e | 20 05    : jr  nz,$0125
        0120 | 3e 10    : ld  a,$10     // increase code +10
        0122 | 86       : add a,(hl)
        0123 | 77       : ld  (hl),a
        0124 | 78       : ld  a,b
        0125 | fe ef    : cp  $EF
        0127 | 20 03    : jr  nz,$012C
        0129 | 7e       : ld  a,(hl)    // play sound
        012a | 18 05    : jr  $0131
        012c | fe df    : cp  $DF
        012e | 20 04    : jr  nz,$0134
        0130 | af       : xor a         // stop sound
        0131 | 32 10 c0 : ld  ($C010),a // send sound code
        0134 | 18 cd    : jr  $0103
        -->
        <action>audiocpu.mw@03d6 = 03d8</action> <!-- stop sfx and music at the same time -->
    </script>
    <script state="run">
        <output format="----- blue hawk 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@f100</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.mw@006c =             973f</action>
        <action> maincpu.mq@0100 = 0000000000000000</action>
        <action> maincpu.mq@0108 = 0000000000000000</action>
        <action> maincpu.mq@0110 = 0000000000000000</action>
        <action> maincpu.mq@0118 = 0000000000000000</action>
        <action> maincpu.mq@0120 = 0000000000000000</action>
        <action> maincpu.mq@0128 = 0000000000000000</action>
        <action> maincpu.mq@0130 = 0000000000000000</action>
        <action>audiocpu.mw@03d6 =             047a</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10). fix "sound stop" problem.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bluehawk]+ Blue Hawk

Post by jman »

bluehawk.xml

Code: Select all

<!-- Blue Hawk -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A392 = C3</action> <!-- enemy -->
            <action>maincpu.mb@A213 = C9</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@A392 = C2</action>
            <action>maincpu.mb@A213 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@17C2 = E6</action>
            <action>maincpu.mb@182B = E6</action>
            <action>maincpu.mb@19BC = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@17C2 = EE</action>
            <action>maincpu.mb@182B = EE</action>
            <action>maincpu.mb@19BC = D0</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="on">
            <action>maincpu.md@1435 = 5700003E</action> <!-- left -->
            <action>maincpu.md@144B = C6000026</action> <!-- right -->
            <action>maincpu.md@1455 = DD00002E</action> <!-- up -->
            <action>maincpu.md@1468 = 4F00003E</action> <!-- down -->
        </script>
        <script state="change">
            <action>maincpu.mb@1436 = param</action>
            <action>maincpu.mb@144C = param</action>
            <action>maincpu.mb@1456 = param</action>
            <action>maincpu.mb@1469 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1435 = 57057EDD</action>
            <action>maincpu.md@144B = C60566DD</action>
            <action>maincpu.md@1455 = DD056EDD</action>
            <action>maincpu.md@1468 = 4F057EDD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x18">03       </item>
            <item value="0x20">04       </item>
            <item value="0x28">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@1D1C = CD0010CD        </action>
            <action>maincpu.md@1D48 = CD0010CD        </action>
            <action>maincpu.md@1D79 = CD0015CD        </action>
            <action>maincpu.mq@0010 = 0C7EDD03180D7EDD</action>
            <action>maincpu.mq@0018 = FF16F00116C857A7</action>
            <action>maincpu.mq@0020 = FFFFFFFFFFFFFFC9</action>
            <!--
            0010 | DD 7E 0D : ld   a,(ix+$0d)
            0013 | 18 03    : jr   $0018
            0015 | DD 7E 0C : ld   a,(ix+$0c)
            0018 | A7       : and  a
            0019 | 57       : ld   d,a
            001A | C8       : ret  z
            001B | 16 xx    : ld   d,$xx
            001D | F0       : ret  p
            001E | 16 xx    : ld   d,$xx
            0020 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@001C =  param</action>
            <action>maincpu.mb@001F = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1D1C = CD0D56DD        </action>
            <action>maincpu.md@1D48 = CD0D56DD        </action>
            <action>maincpu.md@1D79 = CD0C56DD        </action>
            <action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0020 = FFFFFFFFFFFFFFFF</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@006C = 0100            </action>
            <action>maincpu.mq@0100 = 47B8C0023AF00021</action>
            <action>maincpu.mq@0108 = FE350120FDFEF928</action>
            <action>maincpu.mq@0110 = 0420FBFE340120FE</action>
            <action>maincpu.mq@0118 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@0120 = 20EFFE787786103E</action>
            <action>maincpu.mq@0128 = 0420DFFE05187E03</action>
            <action>maincpu.mq@0130 = 0000CD18C01032AF</action>
            <!--
            0100 | 21 00 F0 : ld   hl,$F000  // sound code address
            0103 | 3A 02 C0 : ld   a,($C002) // read input
            0106 | B8       : cp   b
            0107 | 47       : ld   b,a
            0108 | 28 F9    : jr   z,$0103
            010A | FE FD    : cp   $FD
            010C | 20 01    : jr   nz,$010F
            010E | 35       : dec  (hl)      // decrease code -01
            010F | FE FE    : cp   $FE
            0111 | 20 01    : jr   nz,$0114
            0113 | 34       : inc  (hl)      // increase code +01
            0114 | FE FB    : cp   $FB
            0116 | 20 04    : jr   nz,$011C
            0118 | 3E F0    : ld   a,$F0     // decrease code -10
            011A | 18 06    : jr   $0122
            011C | FE F7    : cp   $F7
            011E | 20 05    : jr   nz,$0125
            0120 | 3E 10    : ld   a,$10     // increase code +10
            0122 | 86       : add  a,(hl)
            0123 | 77       : ld   (hl),a
            0124 | 78       : ld   a,b
            0125 | FE EF    : cp   $EF
            0127 | 20 03    : jr   nz,$012C
            0129 | 7E       : ld   a,(hl)    // play sound
            012A | 18 05    : jr   $0131
            012C | FE DF    : cp   $DF
            012E | 20 04    : jr   nz,$0134
            0130 | AF       : xor  a         // stop sound
            0131 | 32 10 C0 : ld   ($C010),a // send sound code
            0134 | 18 CD    : jr   $0103
            -->
            <action>audiocpu.mb@03D5 = CD</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- blue hawk 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@F000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@006C = 973F            </action>
            <action> maincpu.mq@0100 = 0000000000000000</action>
            <action> maincpu.mq@0108 = 0000000000000000</action>
            <action> maincpu.mq@0110 = 0000000000000000</action>
            <action> maincpu.mq@0118 = 0000000000000000</action>
            <action> maincpu.mq@0120 = 0000000000000000</action>
            <action> maincpu.mq@0128 = 0000000000000000</action>
            <action> maincpu.mq@0130 = 0000000000000000</action>
            <action>audiocpu.mb@03D5 = C3              </action>
        </script>
    </cheat>

</mamecheat>
bluehawkn.xml

Code: Select all

<!-- Blue Hawk (Japan, NTC license) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A392 = C3</action> <!-- enemy -->
            <action>maincpu.mb@A213 = C9</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@A392 = C2</action>
            <action>maincpu.mb@A213 = D8</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@17C2 = E6</action>
            <action>maincpu.mb@182B = E6</action>
            <action>maincpu.mb@19BC = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@17C2 = EE</action>
            <action>maincpu.mb@182B = EE</action>
            <action>maincpu.mb@19BC = D0</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="on">
            <action>maincpu.md@1435 = 5700003E</action> <!-- left -->
            <action>maincpu.md@144B = C6000026</action> <!-- right -->
            <action>maincpu.md@1455 = DD00002E</action> <!-- up -->
            <action>maincpu.md@1468 = 4F00003E</action> <!-- down -->
        </script>
        <script state="change">
            <action>maincpu.mb@1436 = param</action>
            <action>maincpu.mb@144C = param</action>
            <action>maincpu.mb@1456 = param</action>
            <action>maincpu.mb@1469 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1435 = 57057EDD</action>
            <action>maincpu.md@144B = C60566DD</action>
            <action>maincpu.md@1455 = DD056EDD</action>
            <action>maincpu.md@1468 = 4F057EDD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x18">03       </item>
            <item value="0x20">04       </item>
            <item value="0x28">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@1D1C = CD0010CD        </action>
            <action>maincpu.md@1D48 = CD0010CD        </action>
            <action>maincpu.md@1D79 = CD0015CD        </action>
            <action>maincpu.mq@0010 = 0C7EDD03180D7EDD</action>
            <action>maincpu.mq@0018 = FF16F00116C857A7</action>
            <action>maincpu.mq@0020 = FFFFFFFFFFFFFFC9</action>
            <!--
            0010 | DD 7E 0D : ld   a,(ix+$0d)
            0013 | 18 03    : jr   $0018
            0015 | DD 7E 0C : ld   a,(ix+$0c)
            0018 | A7       : and  a
            0019 | 57       : ld   d,a
            001A | C8       : ret  z
            001B | 16 xx    : ld   d,$xx
            001D | F0       : ret  p
            001E | 16 xx    : ld   d,$xx
            0020 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@001C =  param</action>
            <action>maincpu.mb@001F = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1D1C = CD0D56DD        </action>
            <action>maincpu.md@1D48 = CD0D56DD        </action>
            <action>maincpu.md@1D79 = CD0C56DD        </action>
            <action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0020 = FFFFFFFFFFFFFFFF</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@006C = 0100            </action>
            <action>maincpu.mq@0100 = 47B8C0023AF00021</action>
            <action>maincpu.mq@0108 = FE350120FDFEF928</action>
            <action>maincpu.mq@0110 = 0420FBFE340120FE</action>
            <action>maincpu.mq@0118 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@0120 = 20EFFE787786103E</action>
            <action>maincpu.mq@0128 = 0420DFFE05187E03</action>
            <action>maincpu.mq@0130 = 0000CD18C01032AF</action>
            <!--
            0100 | 21 00 F0 : ld   hl,$F000  // sound code address
            0103 | 3A 02 C0 : ld   a,($C002) // read input
            0106 | B8       : cp   b
            0107 | 47       : ld   b,a
            0108 | 28 F9    : jr   z,$0103
            010A | FE FD    : cp   $FD
            010C | 20 01    : jr   nz,$010F
            010E | 35       : dec  (hl)      // decrease code -01
            010F | FE FE    : cp   $FE
            0111 | 20 01    : jr   nz,$0114
            0113 | 34       : inc  (hl)      // increase code +01
            0114 | FE FB    : cp   $FB
            0116 | 20 04    : jr   nz,$011C
            0118 | 3E F0    : ld   a,$F0     // decrease code -10
            011A | 18 06    : jr   $0122
            011C | FE F7    : cp   $F7
            011E | 20 05    : jr   nz,$0125
            0120 | 3E 10    : ld   a,$10     // increase code +10
            0122 | 86       : add  a,(hl)
            0123 | 77       : ld   (hl),a
            0124 | 78       : ld   a,b
            0125 | FE EF    : cp   $EF
            0127 | 20 03    : jr   nz,$012C
            0129 | 7E       : ld   a,(hl)    // play sound
            012A | 18 05    : jr   $0131
            012C | FE DF    : cp   $DF
            012E | 20 04    : jr   nz,$0134
            0130 | AF       : xor  a         // stop sound
            0131 | 32 10 C0 : ld   ($C010),a // send sound code
            0134 | 18 CD    : jr   $0103
            -->
            <action>audiocpu.mb@03D5 = CD</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- blue hawk 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@F000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@006C = 973F            </action>
            <action> maincpu.mq@0100 = 0000000000000000</action>
            <action> maincpu.mq@0108 = 0000000000000000</action>
            <action> maincpu.mq@0110 = 0000000000000000</action>
            <action> maincpu.mq@0118 = 0000000000000000</action>
            <action> maincpu.mq@0120 = 0000000000000000</action>
            <action> maincpu.mq@0128 = 0000000000000000</action>
            <action> maincpu.mq@0130 = 0000000000000000</action>
            <action>audiocpu.mb@03D5 = C3              </action>
        </script>
    </cheat>

</mamecheat>
Post Reply