[blkdrgon] Black Tiger/Black Dragon

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

[blkdrgon] Black Tiger/Black Dragon

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@31af = c9</action> <!-- attack -->
        <action>maincpu.mb@3515 = c9</action> <!-- enemy -->
        <action>maincpu.mb@3c59 = c9</action> <!-- dragon knight -->
        <action>maincpu.mb@45f2 = c9</action> <!-- dragon -->
        <action>maincpu.mb@4795 = c9</action> <!-- bat -->
        <action>maincpu.mb@47c1 = c9</action> <!-- flower -->
        <action>maincpu.mb@47f8 = c9</action> <!-- snake -->
        <action>maincpu.mb@4823 = c9</action> <!-- poison -->
        <action>maincpu.mb@484e = c9</action> <!-- magic -->
    </script>
    <script state="off">
        <action>maincpu.mb@31af = 3a</action>
        <action>maincpu.mb@3515 = 3a</action>
        <action>maincpu.mb@3c59 = 3a</action>
        <action>maincpu.mb@45f2 = 3a</action>
        <action>maincpu.mb@4795 = dd</action>
        <action>maincpu.mb@47c1 = 3e</action>
        <action>maincpu.mb@47f8 = 21</action>
        <action>maincpu.mb@4823 = 21</action>
        <action>maincpu.mb@484e = 21</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.md@2c103 =         3db300cd</action> <!-- ($8103) -->
        <action>maincpu.mq@2f300 = c0013e10e6e0e83a</action>
        <action>maincpu.mq@2f308 = ffffffffc907e67e</action>
        <!--
        b300 | 3a e8 e0 : ld  a,($E0E8)
        b303 | e6 10    : and $10
        b305 | 3e 01    : ld  a,$01
        b307 | c0       : ret nz
        b308 | 7e       : ld  a,(hl)
        b309 | e6 07    : and $07
        b30b | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.md@2c103 =         3d07e67e</action>
        <action>maincpu.mq@2f300 = ffffffffffffffff</action>
        <action>maincpu.mq@2f308 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="attack speed up - morning star">
    <script state="on">
        <action>maincpu.mb@2cb8b = c3</action> <!-- ($8b8b) -->
        <action>maincpu.mb@2cc98 = 01</action> <!-- ($8c98) -->
    </script>
    <script state="off">
        <action>maincpu.mb@2cb8b = d2</action>
        <action>maincpu.mb@2cc98 = 0d</action>
    </script>
</cheat>

<cheat desc="free price">
    <script state="on">
        <!-- calculation -->
        <action>maincpu.mb@4fbb =       af</action>
        <action>maincpu.md@68b0 = 2a000011</action> <!-- upper items -->
        <action>maincpu.md@6918 = 2a000011</action> <!-- lower items -->
        <action>maincpu.mw@696c =     0000</action> <!-- key -->
        <action>maincpu.mw@69a7 =     0000</action> <!-- potion -->
        <!-- display -->
        <action>maincpu.md@6bec =         007f10cd</action>
        <action>maincpu.mq@7f10 = 20203e20fe1b1a13</action>
        <action>maincpu.mq@7f18 = ffffc9d4cb771a01</action>
        <!--
        7f10 | 13    : inc de
        7f11 | 1a    : ld  a,(de)
        7f12 | 1b    : dec de
        7f13 | fe 20 : cp  $20
        7f15 | 3e 20 : ld  a,$20
        7f17 | 20 01 : jr  nz,$7F1A
        7f19 | 1a    : ld  a,(de)
        7f1a | 77    : ld  (hl),a
        7f1b | cb d4 : set 2,h
        7f1d | c9    : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.mb@4fbb =               1a</action>
        <action>maincpu.md@68b0 =         2a56235e</action>
        <action>maincpu.md@6918 =         2a56235e</action>
        <action>maincpu.mw@696c =             0050</action>
        <action>maincpu.mw@69a7 =             0096</action>
        <action>maincpu.md@6bec =         d4cb771a</action>
        <action>maincpu.mq@7f10 = ffffffffffffffff</action>
        <action>maincpu.mq@7f18 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="short hit mark - knife">
    <script state="on">
        <action>maincpu.mb@03588 = b5</action> <!-- skull -->
        <action>maincpu.mb@2e28b = b5</action> <!-- wall ($a28b) -->
        <action>maincpu.mb@2e2ac = 8c</action> <!-- enemy ($a2ac) -->
        <action>maincpu.mb@2e2cc = 8c</action> <!-- enemy ($a2cc) -->
        <action>maincpu.mb@2e2ec = 8c</action> <!-- enemy ($a2ec) -->
    </script>
    <script state="off">
        <action>maincpu.mb@03588 = 8d</action>
        <action>maincpu.mb@2e28b = 92</action>
        <action>maincpu.mb@2e2ac = 69</action>
        <action>maincpu.mb@2e2cc = 69</action>
        <action>maincpu.mb@2e2ec = 69</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x5a">02       </item>
        <item value="0x3c">03       </item>
        <item value="0x1e">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@0321 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0321 = 3c</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@0963 =             7f20</action>
        <action>maincpu.mq@7f20 = 2847b801dbf00021</action>
        <action>maincpu.mq@7f28 = fefe350120fdfefa</action>
        <action>maincpu.mq@7f30 = 3e0420fbfe340120</action>
        <action>maincpu.mq@7f38 = 3e0520f7fe0618f0</action>
        <action>maincpu.mq@7f40 = 0320effe78778610</action>
        <action>maincpu.mq@7f48 = af0320dffe05187e</action>
        <action>maincpu.mq@7f50 = ffffffffcf1800d3</action>
        <!--
        7f20 | 21 00 f0 : ld  hl,$F000 // sound code address
        7f23 | db 01    : in  a,($01)  // read input
        7f25 | b8       : cp  b
        7f26 | 47       : ld  b,a
        7f27 | 28 fa    : jr  z,$7F23
        7f29 | fe fd    : cp  $FD
        7f2b | 20 01    : jr  nz,$7F2E
        7f2d | 35       : dec (hl)     // decrease code -01
        7f2e | fe fe    : cp  $FE
        7f30 | 20 01    : jr  nz,$7F33
        7f32 | 34       : inc (hl)     // increase code +01
        7f33 | fe fb    : cp  $FB
        7f35 | 20 04    : jr  nz,$7F3B
        7f37 | 3e f0    : ld  a,$F0    // decrease code -10
        7f39 | 18 06    : jr  $7F41
        7f3b | fe f7    : cp  $F7
        7f3d | 20 05    : jr  nz,$7F44
        7f3f | 3e 10    : ld  a,$10    // increase code +10
        7f41 | 86       : add a,(hl)
        7f42 | 77       : ld  (hl),a
        7f43 | 78       : ld  a,b
        7f44 | fe ef    : cp  $EF
        7f46 | 20 03    : jr  nz,$7F4B
        7f48 | 7e       : ld  a,(hl)   // play sound
        7f49 | 18 05    : jr  $7F50
        7f4b | fe df    : cp  $DF
        7f4d | 20 03    : jr  nz,$7F52
        7f4f | af       : xor a        // stop sound
        7f50 | d3 00    : out ($00),a  // send sound code
        7f52 | 18 cf    : jr  $7F23
        -->
    </script>
    <script state="run">
        <output format="----- black dragon 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@f000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0963 =             0a87</action>
        <action>maincpu.mq@7f20 = ffffffffffffffff</action>
        <action>maincpu.mq@7f28 = ffffffffffffffff</action>
        <action>maincpu.mq@7f30 = ffffffffffffffff</action>
        <action>maincpu.mq@7f38 = ffffffffffffffff</action>
        <action>maincpu.mq@7f40 = ffffffffffffffff</action>
        <action>maincpu.mq@7f48 = ffffffffffffffff</action>
        <action>maincpu.mq@7f50 = ffffffffffffffff</action>
    </script>
</cheat>
Current "invincibility" based on 0.245 is incomplete. It can't avoid some poison attacks (snake, flower etc).
jman
Posts: 864
Joined: Tue Dec 01, 2020 1:24 pm

[blktiger]+ Black Tiger/Black Dragon

Post by jman »

blktiger.xml

Code: Select all

<!-- Black Tiger -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@31E8 = C9</action> <!-- attack -->
            <action>maincpu.mb@354E = C9</action> <!-- enemy -->
            <action>maincpu.mb@3C90 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@462B = C9</action> <!-- dragon -->
            <action>maincpu.mb@47CC = C9</action> <!-- bat -->
            <action>maincpu.mb@47E5 = C9</action> <!-- flower -->
            <action>maincpu.mb@481C = C9</action> <!-- snake -->
            <action>maincpu.mb@4847 = C9</action> <!-- poison -->
            <action>maincpu.mb@4872 = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@31E8 = 3A</action>
            <action>maincpu.mb@354E = 3A</action>
            <action>maincpu.mb@3C90 = 3A</action>
            <action>maincpu.mb@462B = 3A</action>
            <action>maincpu.mb@47CC = DD</action>
            <action>maincpu.mb@47E5 = 3E</action>
            <action>maincpu.mb@481C = 21</action>
            <action>maincpu.mb@4847 = 21</action>
            <action>maincpu.mb@4872 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4FDF = AF      </action>
            <action>maincpu.md@669B = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@6703 = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@6757 = 0000    </action> <!-- key -->
            <action>maincpu.mw@6792 = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@69D7 = 007D00CD        </action>
            <action>maincpu.mq@7D00 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7D08 = FFFFC9D4CB771A01</action>
            <!--
            7D00 | 13    : inc  de
            7D01 | 1A    : ld   a,(de)
            7D02 | 1B    : dec  de
            7D03 | FE 20 : cp   $20
            7D05 | 3E 20 : ld   a,$20
            7D07 | 20 01 : jr   nz,$7D0A
            7D09 | 1A    : ld   a,(de)
            7D0A | 77    : ld   (hl),a
            7D0B | CB D4 : set  2,h
            7D0D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4FDF = 1A              </action>
            <action>maincpu.md@669B = 2A56235E        </action>
            <action>maincpu.md@6703 = 2A56235E        </action>
            <action>maincpu.mw@6757 = 001E            </action>
            <action>maincpu.mw@6792 = 0096            </action>
            <action>maincpu.md@69D7 = D4CB771A        </action>
            <action>maincpu.mq@7D00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D08 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@035C1 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@035C1 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0963 = 7D10            </action>
            <action>maincpu.mq@7D10 = 2847B801DBF00021</action>
            <action>maincpu.mq@7D18 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7D20 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7D28 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7D30 = 0320EFFE78778610</action>
            <action>maincpu.mq@7D38 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7D40 = FFFFFFFFCF1800D3</action>
            <!--
            7D10 | 21 00 F0 : ld   hl,$F000 // sound code address
            7D13 | DB 01    : in   a,($01)  // read input
            7D15 | B8       : cp   b
            7D16 | 47       : ld   b,a
            7D17 | 28 FA    : jr   z,$7D13
            7D19 | FE FD    : cp   $FD
            7D1B | 20 01    : jr   nz,$7D1E
            7D1D | 35       : dec  (hl)     // decrease code -01
            7D1E | FE FE    : cp   $FE
            7D20 | 20 01    : jr   nz,$7D23
            7D22 | 34       : inc  (hl)     // increase code +01
            7D23 | FE FB    : cp   $FB
            7D25 | 20 04    : jr   nz,$7D2B
            7D27 | 3E F0    : ld   a,$F0    // decrease code -10
            7D29 | 18 06    : jr   $7D31
            7D2B | FE F7    : cp   $F7
            7D2D | 20 05    : jr   nz,$7D34
            7D2F | 3E 10    : ld   a,$10    // increase code +10
            7D31 | 86       : add  a,(hl)
            7D32 | 77       : ld   (hl),a
            7D33 | 78       : ld   a,b
            7D34 | FE EF    : cp   $EF
            7D36 | 20 03    : jr   nz,$7D3B
            7D38 | 7E       : ld   a,(hl)   // play sound
            7D39 | 18 05    : jr   $7D40
            7D3B | FE DF    : cp   $DF
            7D3D | 20 03    : jr   nz,$7D42
            7D3F | AF       : xor  a        // stop sound
            7D40 | D3 00    : out  ($00),a  // send sound code
            7D42 | 18 CF    : jr   $7D13
            -->
        </script>
        <script state="run">
            <output format="----- black tiger 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@0963 = 0A87            </action>
            <action>maincpu.mq@7D10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D40 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
blktigera.xml

Code: Select all

<!-- Black Tiger (older) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@3150 = C9</action> <!-- attack -->
            <action>maincpu.mb@34B6 = C9</action> <!-- enemy -->
            <action>maincpu.mb@3BF8 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@4593 = C9</action> <!-- dragon -->
            <action>maincpu.mb@4724 = C9</action> <!-- bat -->
            <action>maincpu.mb@473D = C9</action> <!-- flower -->
            <action>maincpu.mb@4774 = C9</action> <!-- snake -->
            <action>maincpu.mb@47A4 = C9</action> <!-- poison -->
            <action>maincpu.mb@47D4 = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@3150 = 3A</action>
            <action>maincpu.mb@34B6 = 3A</action>
            <action>maincpu.mb@3BFB = 3A</action>
            <action>maincpu.mb@4593 = 3A</action>
            <action>maincpu.mb@4724 = DD</action>
            <action>maincpu.mb@473D = 3E</action>
            <action>maincpu.mb@4774 = 21</action>
            <action>maincpu.mb@47A4 = 21</action>
            <action>maincpu.mb@47D4 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4F3E = AF      </action>
            <action>maincpu.md@65F7 = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@665F = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@66B3 = 0000    </action> <!-- key -->
            <action>maincpu.mw@66EE = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@6933 = 007C60CD        </action>
            <action>maincpu.mq@7C60 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7C68 = FFFFC9D4CB771A01</action>
            <!--
            7C60 | 13    : inc  de
            7C61 | 1A    : ld   a,(de)
            7C62 | 1B    : dec  de
            7C63 | FE 20 : cp   $20
            7C65 | 3E 20 : ld   a,$20
            7C67 | 20 01 : jr   nz,$7C6A
            7C69 | 1A    : ld   a,(de)
            7C6A | 77    : ld   (hl),a
            7C6B | CB D4 : set  2,h
            7C6D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4F3E = 1A              </action>
            <action>maincpu.md@65F7 = 2A56235E        </action>
            <action>maincpu.md@665F = 2A56235E        </action>
            <action>maincpu.mw@66B3 = 0050            </action>
            <action>maincpu.mw@66EE = 0096            </action>
            <action>maincpu.md@6933 = D4CB771A        </action>
            <action>maincpu.mq@7C60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7C68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@03529 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@03529 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0962 = 7C70            </action>
            <action>maincpu.mq@7C70 = 2847B801DBF00021</action>
            <action>maincpu.mq@7C78 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7C80 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7C88 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7C90 = 0320EFFE78778610</action>
            <action>maincpu.mq@7C98 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7CA0 = FFFFFFFFCF1800D3</action>
            <!--
            7C70 | 21 00 F0 : ld   hl,$F000 // sound code address
            7C73 | DB 01    : in   a,($01)  // read input
            7C75 | B8       : cp   b
            7C76 | 47       : ld   b,a
            7C77 | 28 FA    : jr   z,$7F23
            7C79 | FE FD    : cp   $FD
            7C7B | 20 01    : jr   nz,$7F2E
            7C7D | 35       : dec  (hl)     // decrease code -01
            7C7E | FE FE    : cp   $FE
            7C80 | 20 01    : jr   nz,$7F33
            7C82 | 34       : inc  (hl)     // increase code +01
            7C83 | FE FB    : cp   $FB
            7C85 | 20 04    : jr   nz,$7F3B
            7C87 | 3E F0    : ld   a,$F0    // decrease code -10
            7C89 | 18 06    : jr   $7F41
            7C8B | FE F7    : cp   $F7
            7C8D | 20 05    : jr   nz,$7F44
            7C8F | 3E 10    : ld   a,$10    // increase code +10
            7C91 | 86       : add  a,(hl)
            7C92 | 77       : ld   (hl),a
            7C93 | 78       : ld   a,b
            7C94 | FE EF    : cp   $EF
            7C96 | 20 03    : jr   nz,$7F4B
            7C98 | 7E       : ld   a,(hl)   // play sound
            7C99 | 18 05    : jr   $7F50
            7C9B | FE DF    : cp   $DF
            7C9D | 20 03    : jr   nz,$7F52
            7C9F | AF       : xor  a        // stop sound
            7CA0 | D3 00    : out  ($00),a  // send sound code
            7CA2 | 18 CF    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- black tiger 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@0962 = 0A86            </action>
            <action>maincpu.mq@7C70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7C78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7C80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7C88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7C90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7C98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7CA0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
blktigerb1.xml

Code: Select all

<!-- Black Tiger (bootleg set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@31E8 = C9</action> <!-- attack -->
            <action>maincpu.mb@354E = C9</action> <!-- enemy -->
            <action>maincpu.mb@3C90 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@462B = C9</action> <!-- dragon -->
            <action>maincpu.mb@47CC = C9</action> <!-- bat -->
            <action>maincpu.mb@47E5 = C9</action> <!-- flower -->
            <action>maincpu.mb@481C = C9</action> <!-- snake -->
            <action>maincpu.mb@4847 = C9</action> <!-- poison -->
            <action>maincpu.mb@4872 = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@31E8 = 3A</action>
            <action>maincpu.mb@354E = 3A</action>
            <action>maincpu.mb@3C90 = 3A</action>
            <action>maincpu.mb@462B = 3A</action>
            <action>maincpu.mb@47CC = DD</action>
            <action>maincpu.mb@47E5 = 3E</action>
            <action>maincpu.mb@481C = 21</action>
            <action>maincpu.mb@4847 = 21</action>
            <action>maincpu.mb@4872 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4FDF = AF      </action>
            <action>maincpu.md@669B = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@6703 = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@6757 = 0000    </action> <!-- key -->
            <action>maincpu.mw@6792 = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@69D7 = 007D00CD        </action>
            <action>maincpu.mq@7D00 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7D08 = FFFFC9D4CB771A01</action>
            <!--
            7D00 | 13    : inc  de
            7D01 | 1A    : ld   a,(de)
            7D02 | 1B    : dec  de
            7D03 | FE 20 : cp   $20
            7D05 | 3E 20 : ld   a,$20
            7D07 | 20 01 : jr   nz,$7D0A
            7D09 | 1A    : ld   a,(de)
            7D0A | 77    : ld   (hl),a
            7D0B | CB D4 : set  2,h
            7D0D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4FDF = 1A              </action>
            <action>maincpu.md@669B = 2A56235E        </action>
            <action>maincpu.md@6703 = 2A56235E        </action>
            <action>maincpu.mw@6757 = 001E            </action>
            <action>maincpu.mw@6792 = 0096            </action>
            <action>maincpu.md@69D7 = D4CB771A        </action>
            <action>maincpu.mq@7D00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D08 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@035C1 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@035C1 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0963 = 7D10            </action>
            <action>maincpu.mq@7D10 = 2847B801DBF00021</action>
            <action>maincpu.mq@7D18 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7D20 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7D28 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7D30 = 0320EFFE78778610</action>
            <action>maincpu.mq@7D38 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7D40 = FFFFFFFFCF1800D3</action>
            <!--
            7D10 | 21 00 F0 : ld   hl,$F000 // sound code address
            7D13 | DB 01    : in   a,($01)  // read input
            7D15 | B8       : cp   b
            7D16 | 47       : ld   b,a
            7D17 | 28 FA    : jr   z,$7D13
            7D19 | FE FD    : cp   $FD
            7D1B | 20 01    : jr   nz,$7D1E
            7D1D | 35       : dec  (hl)     // decrease code -01
            7D1E | FE FE    : cp   $FE
            7D20 | 20 01    : jr   nz,$7D23
            7D22 | 34       : inc  (hl)     // increase code +01
            7D23 | FE FB    : cp   $FB
            7D25 | 20 04    : jr   nz,$7D2B
            7D27 | 3E F0    : ld   a,$F0    // decrease code -10
            7D29 | 18 06    : jr   $7D31
            7D2B | FE F7    : cp   $F7
            7D2D | 20 05    : jr   nz,$7D34
            7D2F | 3E 10    : ld   a,$10    // increase code +10
            7D31 | 86       : add  a,(hl)
            7D32 | 77       : ld   (hl),a
            7D33 | 78       : ld   a,b
            7D34 | FE EF    : cp   $EF
            7D36 | 20 03    : jr   nz,$7D3B
            7D38 | 7E       : ld   a,(hl)   // play sound
            7D39 | 18 05    : jr   $7D40
            7D3B | FE DF    : cp   $DF
            7D3D | 20 03    : jr   nz,$7D42
            7D3F | AF       : xor  a        // stop sound
            7D40 | D3 00    : out  ($00),a  // send sound code
            7D42 | 18 CF    : jr   $7D13
            -->
        </script>
        <script state="run">
            <output format="----- black tiger 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@0963 = 0A87            </action>
            <action>maincpu.mq@7D10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D40 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
blktigerb2.xml

Code: Select all

<!-- Black Tiger (bootleg set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@31E8 = C9</action> <!-- attack -->
            <action>maincpu.mb@354E = C9</action> <!-- enemy -->
            <action>maincpu.mb@3C90 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@462B = C9</action> <!-- dragon -->
            <action>maincpu.mb@47CC = C9</action> <!-- bat -->
            <action>maincpu.mb@47E5 = C9</action> <!-- flower -->
            <action>maincpu.mb@481C = C9</action> <!-- snake -->
            <action>maincpu.mb@4847 = C9</action> <!-- poison -->
            <action>maincpu.mb@4872 = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@31E8 = 3A</action>
            <action>maincpu.mb@354E = 3A</action>
            <action>maincpu.mb@3C90 = 3A</action>
            <action>maincpu.mb@462B = 3A</action>
            <action>maincpu.mb@47CC = DD</action>
            <action>maincpu.mb@47E5 = 3E</action>
            <action>maincpu.mb@481C = 21</action>
            <action>maincpu.mb@4847 = 21</action>
            <action>maincpu.mb@4872 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4FDF = AF      </action>
            <action>maincpu.md@669B = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@6703 = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@6757 = 0000    </action> <!-- key -->
            <action>maincpu.mw@6792 = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@69D7 = 007D00CD        </action>
            <action>maincpu.mq@7D00 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7D08 = FFFFC9D4CB771A01</action>
            <!--
            7D00 | 13    : inc  de
            7D01 | 1A    : ld   a,(de)
            7D02 | 1B    : dec  de
            7D03 | FE 20 : cp   $20
            7D05 | 3E 20 : ld   a,$20
            7D07 | 20 01 : jr   nz,$7D0A
            7D09 | 1A    : ld   a,(de)
            7D0A | 77    : ld   (hl),a
            7D0B | CB D4 : set  2,h
            7D0D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4FDF = 1A              </action>
            <action>maincpu.md@669B = 2A56235E        </action>
            <action>maincpu.md@6703 = 2A56235E        </action>
            <action>maincpu.mw@6757 = 001E            </action>
            <action>maincpu.mw@6792 = 0096            </action>
            <action>maincpu.md@69D7 = D4CB771A        </action>
            <action>maincpu.mq@7D00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D08 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@035C1 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@035C1 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0963 = 7D10            </action>
            <action>maincpu.mq@7D10 = 2847B801DBF00021</action>
            <action>maincpu.mq@7D18 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7D20 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7D28 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7D30 = 0320EFFE78778610</action>
            <action>maincpu.mq@7D38 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7D40 = FFFFFFFFCF1800D3</action>
            <!--
            7D10 | 21 00 F0 : ld   hl,$F000 // sound code address
            7D13 | DB 01    : in   a,($01)  // read input
            7D15 | B8       : cp   b
            7D16 | 47       : ld   b,a
            7D17 | 28 FA    : jr   z,$7D13
            7D19 | FE FD    : cp   $FD
            7D1B | 20 01    : jr   nz,$7D1E
            7D1D | 35       : dec  (hl)     // decrease code -01
            7D1E | FE FE    : cp   $FE
            7D20 | 20 01    : jr   nz,$7D23
            7D22 | 34       : inc  (hl)     // increase code +01
            7D23 | FE FB    : cp   $FB
            7D25 | 20 04    : jr   nz,$7D2B
            7D27 | 3E F0    : ld   a,$F0    // decrease code -10
            7D29 | 18 06    : jr   $7D31
            7D2B | FE F7    : cp   $F7
            7D2D | 20 05    : jr   nz,$7D34
            7D2F | 3E 10    : ld   a,$10    // increase code +10
            7D31 | 86       : add  a,(hl)
            7D32 | 77       : ld   (hl),a
            7D33 | 78       : ld   a,b
            7D34 | FE EF    : cp   $EF
            7D36 | 20 03    : jr   nz,$7D3B
            7D38 | 7E       : ld   a,(hl)   // play sound
            7D39 | 18 05    : jr   $7D40
            7D3B | FE DF    : cp   $DF
            7D3D | 20 03    : jr   nz,$7D42
            7D3F | AF       : xor  a        // stop sound
            7D40 | D3 00    : out  ($00),a  // send sound code
            7D42 | 18 CF    : jr   $7D13
            -->
        </script>
        <script state="run">
            <output format="----- black tiger 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@0963 = 0A87            </action>
            <action>maincpu.mq@7D10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D40 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
blkdrgon.xml

Code: Select all

<!-- Black Dragon (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@31AF = C9</action> <!-- attack -->
            <action>maincpu.mb@3515 = C9</action> <!-- enemy -->
            <action>maincpu.mb@3C59 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@45F2 = C9</action> <!-- dragon -->
            <action>maincpu.mb@4795 = C9</action> <!-- bat -->
            <action>maincpu.mb@47C1 = C9</action> <!-- flower -->
            <action>maincpu.mb@47F8 = C9</action> <!-- snake -->
            <action>maincpu.mb@4823 = C9</action> <!-- poison -->
            <action>maincpu.mb@484E = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@31AF = 3A</action>
            <action>maincpu.mb@3515 = 3A</action>
            <action>maincpu.mb@3C59 = 3A</action>
            <action>maincpu.mb@45F2 = 3A</action>
            <action>maincpu.mb@4795 = DD</action>
            <action>maincpu.mb@47C1 = 3E</action>
            <action>maincpu.mb@47F8 = 21</action>
            <action>maincpu.mb@4823 = 21</action>
            <action>maincpu.mb@484E = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4FBB = AF      </action>
            <action>maincpu.md@68B0 = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@6918 = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@696C = 0000    </action> <!-- key -->
            <action>maincpu.mw@69A7 = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@6BEC = 007F10CD        </action>
            <action>maincpu.mq@7F10 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7F18 = FFFFC9D4CB771A01</action>
            <!--
            7F10 | 13    : inc  de
            7F11 | 1A    : ld   a,(de)
            7F12 | 1B    : dec  de
            7F13 | FE 20 : cp   $20
            7F15 | 3E 20 : ld   a,$20
            7F17 | 20 01 : jr   nz,$7F1A
            7F19 | 1A    : ld   a,(de)
            7F1A | 77    : ld   (hl),a
            7F1B | CB D4 : set  2,h
            7F1D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4FBB = 1A              </action>
            <action>maincpu.md@68B0 = 2A56235E        </action>
            <action>maincpu.md@6918 = 2A56235E        </action>
            <action>maincpu.mw@696C = 0050            </action>
            <action>maincpu.mw@69A7 = 0096            </action>
            <action>maincpu.md@6BEC = D4CB771A        </action>
            <action>maincpu.mq@7F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@03588 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@03588 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0963 = 7F20            </action>
            <action>maincpu.mq@7F20 = 2847B801DBF00021</action>
            <action>maincpu.mq@7F28 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7F30 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7F38 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7F40 = 0320EFFE78778610</action>
            <action>maincpu.mq@7F48 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7F50 = FFFFFFFFCF1800D3</action>
            <!--
            7F20 | 21 00 F0 : ld   hl,$F000 // sound code address
            7F23 | DB 01    : in   a,($01)  // read input
            7F25 | B8       : cp   b
            7F26 | 47       : ld   b,a
            7F27 | 28 FA    : jr   z,$7F23
            7F29 | FE FD    : cp   $FD
            7F2B | 20 01    : jr   nz,$7F2E
            7F2D | 35       : dec  (hl)     // decrease code -01
            7F2E | FE FE    : cp   $FE
            7F30 | 20 01    : jr   nz,$7F33
            7F32 | 34       : inc  (hl)     // increase code +01
            7F33 | FE FB    : cp   $FB
            7F35 | 20 04    : jr   nz,$7F3B
            7F37 | 3E F0    : ld   a,$F0    // decrease code -10
            7F39 | 18 06    : jr   $7F41
            7F3B | FE F7    : cp   $F7
            7F3D | 20 05    : jr   nz,$7F44
            7F3F | 3E 10    : ld   a,$10    // increase code +10
            7F41 | 86       : add  a,(hl)
            7F42 | 77       : ld   (hl),a
            7F43 | 78       : ld   a,b
            7F44 | FE EF    : cp   $EF
            7F46 | 20 03    : jr   nz,$7F4B
            7F48 | 7E       : ld   a,(hl)   // play sound
            7F49 | 18 05    : jr   $7F50
            7F4B | FE DF    : cp   $DF
            7F4D | 20 03    : jr   nz,$7F52
            7F4F | AF       : xor  a        // stop sound
            7F50 | D3 00    : out  ($00),a  // send sound code
            7F52 | 18 CF    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- black dragon 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@0963 = 0A87            </action>
            <action>maincpu.mq@7F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F50 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
blkdrgonb.xml

Code: Select all

<!-- Black Dragon (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@31AF = C9</action> <!-- attack -->
            <action>maincpu.mb@3515 = C9</action> <!-- enemy -->
            <action>maincpu.mb@3C59 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@45F2 = C9</action> <!-- dragon -->
            <action>maincpu.mb@4795 = C9</action> <!-- bat -->
            <action>maincpu.mb@47C1 = C9</action> <!-- flower -->
            <action>maincpu.mb@47F8 = C9</action> <!-- snake -->
            <action>maincpu.mb@4823 = C9</action> <!-- poison -->
            <action>maincpu.mb@484E = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@31AF = 3A</action>
            <action>maincpu.mb@3515 = 3A</action>
            <action>maincpu.mb@3C59 = 3A</action>
            <action>maincpu.mb@45F2 = 3A</action>
            <action>maincpu.mb@4795 = DD</action>
            <action>maincpu.mb@47C1 = 3E</action>
            <action>maincpu.mb@47F8 = 21</action>
            <action>maincpu.mb@4823 = 21</action>
            <action>maincpu.mb@484E = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4FBB = AF      </action>
            <action>maincpu.md@68B0 = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@6918 = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@696C = 0000    </action> <!-- key -->
            <action>maincpu.mw@69A7 = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@6BEC = 007F10CD        </action>
            <action>maincpu.mq@7F10 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7F18 = FFFFC9D4CB771A01</action>
            <!--
            7F10 | 13    : inc  de
            7F11 | 1A    : ld   a,(de)
            7F12 | 1B    : dec  de
            7F13 | FE 20 : cp   $20
            7F15 | 3E 20 : ld   a,$20
            7F17 | 20 01 : jr   nz,$7F1A
            7F19 | 1A    : ld   a,(de)
            7F1A | 77    : ld   (hl),a
            7F1B | CB D4 : set  2,h
            7F1D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4FBB = 1A              </action>
            <action>maincpu.md@68B0 = 2A56235E        </action>
            <action>maincpu.md@6918 = 2A56235E        </action>
            <action>maincpu.mw@696C = 0050            </action>
            <action>maincpu.mw@69A7 = 0096            </action>
            <action>maincpu.md@6BEC = D4CB771A        </action>
            <action>maincpu.mq@7F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@03588 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@03588 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0963 = 7F20            </action>
            <action>maincpu.mq@7F20 = 2847B801DBF00021</action>
            <action>maincpu.mq@7F28 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7F30 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7F38 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7F40 = 0320EFFE78778610</action>
            <action>maincpu.mq@7F48 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7F50 = FFFFFFFFCF1800D3</action>
            <!--
            7F20 | 21 00 F0 : ld   hl,$F000 // sound code address
            7F23 | DB 01    : in   a,($01)  // read input
            7F25 | B8       : cp   b
            7F26 | 47       : ld   b,a
            7F27 | 28 FA    : jr   z,$7F23
            7F29 | FE FD    : cp   $FD
            7F2B | 20 01    : jr   nz,$7F2E
            7F2D | 35       : dec  (hl)     // decrease code -01
            7F2E | FE FE    : cp   $FE
            7F30 | 20 01    : jr   nz,$7F33
            7F32 | 34       : inc  (hl)     // increase code +01
            7F33 | FE FB    : cp   $FB
            7F35 | 20 04    : jr   nz,$7F3B
            7F37 | 3E F0    : ld   a,$F0    // decrease code -10
            7F39 | 18 06    : jr   $7F41
            7F3B | FE F7    : cp   $F7
            7F3D | 20 05    : jr   nz,$7F44
            7F3F | 3E 10    : ld   a,$10    // increase code +10
            7F41 | 86       : add  a,(hl)
            7F42 | 77       : ld   (hl),a
            7F43 | 78       : ld   a,b
            7F44 | FE EF    : cp   $EF
            7F46 | 20 03    : jr   nz,$7F4B
            7F48 | 7E       : ld   a,(hl)   // play sound
            7F49 | 18 05    : jr   $7F50
            7F4B | FE DF    : cp   $DF
            7F4D | 20 03    : jr   nz,$7F52
            7F4F | AF       : xor  a        // stop sound
            7F50 | D3 00    : out  ($00),a  // send sound code
            7F52 | 18 CF    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- black dragon 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@0963 = 0A87            </action>
            <action>maincpu.mq@7F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F50 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
jman
Posts: 864
Joined: Tue Dec 01, 2020 1:24 pm

[blktiger]+ Black Tiger/Black Dragon

Post by jman »

blktigerb3.xml

Code: Select all

<!-- Black Tiger / Black Dragon (mixed bootleg?) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@31E8 = C9</action> <!-- attack -->
            <action>maincpu.mb@354E = C9</action> <!-- enemy -->
            <action>maincpu.mb@3C90 = C9</action> <!-- dragon knight -->
            <action>maincpu.mb@462B = C9</action> <!-- dragon -->
            <action>maincpu.mb@47CC = C9</action> <!-- bat -->
            <action>maincpu.mb@47E5 = C9</action> <!-- flower -->
            <action>maincpu.mb@481C = C9</action> <!-- snake -->
            <action>maincpu.mb@4847 = C9</action> <!-- poison -->
            <action>maincpu.mb@4872 = C9</action> <!-- magic -->
        </script>
        <script state="off">
            <action>maincpu.mb@31E8 = 3A</action>
            <action>maincpu.mb@354E = 3A</action>
            <action>maincpu.mb@3C90 = 3A</action>
            <action>maincpu.mb@462B = 3A</action>
            <action>maincpu.mb@47CC = DD</action>
            <action>maincpu.mb@47E5 = 3E</action>
            <action>maincpu.mb@481C = 21</action>
            <action>maincpu.mb@4847 = 21</action>
            <action>maincpu.mb@4872 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.md@2C103 = 3DB300CD        </action> <!-- ($8103) -->
            <action>maincpu.mq@2F300 = C0013E10E6E0E83A</action>
            <action>maincpu.mq@2F308 = FFFFFFFFC907E67E</action>
            <!--
            B300 | 3A E8 E0 : ld   a,($E0E8)
            B303 | E6 10    : and  $10
            B305 | 3E 01    : ld   a,$01
            B307 | C0       : ret  nz
            B308 | 7E       : ld   a,(hl)
            B309 | E6 07    : and  $07
            B30B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2C103 = 3D07E67E        </action>
            <action>maincpu.mq@2F300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2F308 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up - morning star">
        <script state="on">
            <action>maincpu.mb@2CB8B = C3</action> <!-- ($8b8b) -->
            <action>maincpu.mb@2CC98 = 01</action> <!-- ($8c98) -->
        </script>
        <script state="off">
            <action>maincpu.mb@2CB8B = D2</action>
            <action>maincpu.mb@2CC98 = 0D</action>
        </script>
    </cheat>

    <cheat desc="free price">
        <script state="on">
            <!-- calculation -->
            <action>maincpu.mb@4FDF = AF      </action>
            <action>maincpu.md@669B = 2A000011</action> <!-- upper items -->
            <action>maincpu.md@6703 = 2A000011</action> <!-- lower items -->
            <action>maincpu.mw@6757 = 0000    </action> <!-- key -->
            <action>maincpu.mw@6792 = 0000    </action> <!-- potion -->
            <!-- display -->
            <action>maincpu.md@69D7 = 007D00CD        </action>
            <action>maincpu.mq@7D00 = 20203E20FE1B1A13</action>
            <action>maincpu.mq@7D08 = FFFFC9D4CB771A01</action>
            <!--
            7D00 | 13    : inc  de
            7D01 | 1A    : ld   a,(de)
            7D02 | 1B    : dec  de
            7D03 | FE 20 : cp   $20
            7D05 | 3E 20 : ld   a,$20
            7D07 | 20 01 : jr   nz,$7D0A
            7D09 | 1A    : ld   a,(de)
            7D0A | 77    : ld   (hl),a
            7D0B | CB D4 : set  2,h
            7D0D | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@4FDF = 1A              </action>
            <action>maincpu.md@669B = 2A56235E        </action>
            <action>maincpu.md@6703 = 2A56235E        </action>
            <action>maincpu.mw@6757 = 001E            </action>
            <action>maincpu.mw@6792 = 0096            </action>
            <action>maincpu.md@69D7 = D4CB771A        </action>
            <action>maincpu.mq@7D00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D08 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - knife">
        <script state="on">
            <action>maincpu.mb@035C1 = B5</action> <!-- skull -->
            <action>maincpu.mb@2E28B = B5</action> <!-- wall ($a28b) -->
            <action>maincpu.mb@2E2AC = 8C</action> <!-- enemy ($a2ac) -->
            <action>maincpu.mb@2E2CC = 8C</action> <!-- enemy ($a2cc) -->
            <action>maincpu.mb@2E2EC = 8C</action> <!-- enemy ($a2ec) -->
        </script>
        <script state="off">
            <action>maincpu.mb@035C1 = 8D</action>
            <action>maincpu.mb@2E28B = 92</action>
            <action>maincpu.mb@2E2AC = 69</action>
            <action>maincpu.mb@2E2CC = 69</action>
            <action>maincpu.mb@2E2EC = 69</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x5a">02       </item>
            <item value="0x3c">03       </item>
            <item value="0x1e">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0321 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0321 = 3C</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@0963 = 7D10            </action>
            <action>maincpu.mq@7D10 = 2847B801DBF00021</action>
            <action>maincpu.mq@7D18 = FEFE350120FDFEFA</action>
            <action>maincpu.mq@7D20 = 3E0420FBFE340120</action>
            <action>maincpu.mq@7D28 = 3E0520F7FE0618F0</action>
            <action>maincpu.mq@7D30 = 0320EFFE78778610</action>
            <action>maincpu.mq@7D38 = AF0320DFFE05187E</action>
            <action>maincpu.mq@7D40 = FFFFFFFFCF1800D3</action>
            <!--
            7D10 | 21 00 F0 : ld   hl,$F000 // sound code address
            7D13 | DB 01    : in   a,($01)  // read input
            7D15 | B8       : cp   b
            7D16 | 47       : ld   b,a
            7D17 | 28 FA    : jr   z,$7D13
            7D19 | FE FD    : cp   $FD
            7D1B | 20 01    : jr   nz,$7D1E
            7D1D | 35       : dec  (hl)     // decrease code -01
            7D1E | FE FE    : cp   $FE
            7D20 | 20 01    : jr   nz,$7D23
            7D22 | 34       : inc  (hl)     // increase code +01
            7D23 | FE FB    : cp   $FB
            7D25 | 20 04    : jr   nz,$7D2B
            7D27 | 3E F0    : ld   a,$F0    // decrease code -10
            7D29 | 18 06    : jr   $7D31
            7D2B | FE F7    : cp   $F7
            7D2D | 20 05    : jr   nz,$7D34
            7D2F | 3E 10    : ld   a,$10    // increase code +10
            7D31 | 86       : add  a,(hl)
            7D32 | 77       : ld   (hl),a
            7D33 | 78       : ld   a,b
            7D34 | FE EF    : cp   $EF
            7D36 | 20 03    : jr   nz,$7D3B
            7D38 | 7E       : ld   a,(hl)   // play sound
            7D39 | 18 05    : jr   $7D40
            7D3B | FE DF    : cp   $DF
            7D3D | 20 03    : jr   nz,$7D42
            7D3F | AF       : xor  a        // stop sound
            7D40 | D3 00    : out  ($00),a  // send sound code
            7D42 | 18 CF    : jr   $7D13
            -->
        </script>
        <script state="run">
            <output format="----- black tiger 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@0963 = 0A87            </action>
            <action>maincpu.mq@7D10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7D40 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply