[commandoj] Commando/Senjou no Ookami

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: 1315
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[commandoj] Commando/Senjou no Ookami

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.ob@aed7 = 18</action> <!-- bullet -->
        <action>maincpu.ob@af19 = 18</action> <!-- enemy -->
        <action>maincpu.ob@9256 = c3</action> <!-- grenade -->
        <action>maincpu.ob@8c88 = c9</action> <!-- background -->
        <action>maincpu.ob@190e = 18</action> <!-- vehicle from side -->
        <action>maincpu.ob@231e = 18</action> <!-- bullet (tochka) -->
        <action>maincpu.ob@1a0b = c9</action> <!-- vehicle from front -->
        <action>maincpu.ob@3539 = c9</action> <!-- vehicle from back -->
    </script>
    <script state="off">
        <action>maincpu.ob@aed7 = 30</action>
        <action>maincpu.ob@af19 = 30</action>
        <action>maincpu.ob@9256 = d2</action>
        <action>maincpu.ob@8c88 = c8</action>
        <action>maincpu.ob@190e = 30</action>
        <action>maincpu.ob@231e = 30</action>
        <action>maincpu.ob@1a0b = d0</action>
        <action>maincpu.ob@3539 = d0</action>
    </script>
</cheat>

<cheat desc="walk through wall">
    <script state="on">
        <action>maincpu.ob@8bdc = c3</action>
        <action>maincpu.mb@8bdd = 4a</action>
    </script>
    <script state="off">
        <action>maincpu.ob@8bdc = c2</action>
        <action>maincpu.mb@8bdd = 80</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mq@933a = 0c10fe106ee004b2</action>
        <!--
        933a | 3a 04 e0 : ld  a,($e004)
        933d | e6 10    : and $10
        933f | fe 10    : cp  $10
        -->
        <action>maincpu.ob@9347 = 18</action>
    </script>
    <script state="off">
        <action>maincpu.mq@933a = 0c01fe076ee00cb2</action>
        <action>maincpu.ob@9347 =               28</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mw@084e =             b860</action>
        <action>maincpu.oq@b860 = 10c1ff00cdc5ff06</action>
        <action>maincpu.mq@b860 = ff008939ff000000</action>
        <action>maincpu.oq@b868 = ff00ff00ff00c900</action>
        <action>maincpu.mq@b868 = ff00ff00ff0000f9</action>
        <!--
        b860 | 06 xx    : ld   b,$xx
        b862 | c5       : push bc
        b863 | cd 39 89 : call $8939
        b866 | c1       : pop  bc
        b867 | 10 f9    : djnz $b862
        b869 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@b861 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@084e =             8939</action>
        <action>maincpu.oq@b860 = ff00ff00ff00ff00</action>
        <action>maincpu.mq@b860 = ff00ff00ff00ff00</action>
        <action>maincpu.oq@b868 = ff00ff00ff00ff00</action>
        <action>maincpu.mq@b868 = ff00ff00ff00ff00</action>
    </script>
</cheat>

<cheat desc="fast grenade">
    <script state="on">
        <action>maincpu.ob@9115 =               cd</action>
        <action>maincpu.mw@9116 =             b8a0</action>
        <action>maincpu.oq@b8a0 = ff77dd00c6007edd</action>
        <action>maincpu.mq@b8a0 = 0500ff4eff05ff00</action>
        <action>maincpu.oq@b8a8 = ff00ff00ff00c9af</action>
        <action>maincpu.mq@b8a8 = ff00ff00ff00ff00</action>
        <!--
        9115 | cd a0 b8 : call $b8a0
        b8a0 | dd 7e 05 : ld   a,(ix+$05)
        b8a3 | c6 4e    : add  a,$4e
        b8a5 | dd 77 05 : ld   (ix+$05),a
        b8a8 | af       : xor  a
        b8a9 | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.ob@9115 =               dd</action>
        <action>maincpu.mw@9116 =             1553</action>
        <action>maincpu.oq@b8a0 = ff00ff00ff00ff00</action>
        <action>maincpu.mq@b8a0 = ff00ff00ff00ff00</action>
        <action>maincpu.oq@b8a8 = ff00ff00ff00ff00</action>
        <action>maincpu.mq@b8a8 = ff00ff00ff00ff00</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mb@0067 =               02</action>
        <action>maincpu.mw@0165 =             b870</action>
        <action>maincpu.oq@b870 = 003a00ff22ff0021</action>
        <action>maincpu.mq@b870 = 01ffe100000000ff</action>
        <action>maincpu.oq@b878 = 20fffeff286fbdff</action>
        <action>maincpu.mq@b878 = 00fd00f600ff00c0</action>
        <action>maincpu.oq@b880 = fe24ff20fffe2500</action>
        <action>maincpu.mq@b880 = ff000100fe00ff01</action>
        <action>maincpu.oq@b888 = fffeff187c002000</action>
        <action>maincpu.mq@b888 = df000600ff03ffef</action>
        <action>maincpu.oq@b890 = 18ff0032003e0020</action>
        <action>maincpu.mq@b890 = 00c800ff00ff05ff</action>
        <action>maincpu.oq@b898 = 00ff00ff00ff00ff</action>
        <action>maincpu.mq@b898 = 00ff00ff00ff00da</action>
        <!--
        b870 | 21 00 00 : ld  hl,$0000   // initialize sound and input values
        b873 | 22 00 e1 : ld  ($e100),hl
        b876 | 3a 01 c0 : ld  a,($c001)  // read input
        b879 | bd       : cp  l
        b87a | 6f       : ld  l,a
        b87b | 28 f6    : jr  z,$b873
        b87d | fe fd    : cp  $fd
        b87f | 20 01    : jr  nz,$b882
        b881 | 25       : dec h          // decrease code
        b882 | fe fe    : cp  $fe
        b884 | 20 01    : jr  nz,$b887
        b886 | 24       : inc h          // increase code
        b887 | fe ef    : cp  $ef
        b889 | 20 03    : jr  nz,$b88e
        b88b | 7c       : ld  a,h        // play sound
        b88c | 18 06    : jr  $b894
        b88e | fe df    : cp  $df
        b890 | 20 05    : jr  nz,$b897
        b892 | 3e 00    : ld  a,$00      // stop sound
        b894 | 32 00 c8 : ld  ($c800),a  // send sound code
        b897 | 18 da    : jr  $b873
        -->
        <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
    </script>
    <script state="run">
        <output format="----- senjou no ookami 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@e101</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.mb@0067 =               00</action>
        <action> maincpu.mw@0165 =             8000</action>
        <action> maincpu.oq@b870 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b870 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b878 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b878 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b880 = ff00ff00ff00ff00</action>
        <action> maincpu.mq@b880 = ff00ff00ff00ff00</action>
        <action> maincpu.oq@b888 = ff00ff00ff00ff00</action>
        <action> maincpu.mq@b888 = ff00ff00ff00ff00</action>
        <action> maincpu.oq@b890 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b890 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b898 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b898 = 00ff00ff00ff00ff</action>
        <action>audiocpu.mb@0100 =               c9</action>
    </script>
</cheat>

<cheat desc="skip warning message">
    <script state="on">
        <action>maincpu.ob@03dc = 00</action>
        <action>maincpu.ob@03e1 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.ob@03dc = c0</action>
        <action>maincpu.ob@03e1 = c0</action>
    </script>
</cheat>
I confirm that "player speed" causes some gfx scroll bug.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1315
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[commandoj] Commando/Senjou no Ookami (update)

Post by jman »

Code: Select all

<cheat desc="fast grenade">
    <script state="on">
        <action>maincpu.ob@9115 =               cd</action>
        <action>maincpu.mw@9116 =             b870</action>
        <action>maincpu.oq@b870 = ff77dd00c6007edd</action>
        <action>maincpu.mq@b870 = 0500ff4eff05ff00</action>
        <action>maincpu.oq@b878 = ff00ff00ff00c9af</action>
        <action>maincpu.mq@b878 = ff00ff00ff00ff00</action>
        <!--
        b870 | dd 7e 05 : ld  a,(ix+$05)
        b873 | c6 4e    : add a,$4E
        b875 | dd 77 05 : ld  (ix+$05),a
        b878 | af       : xor a
        b879 | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.ob@9115 =               dd</action>
        <action>maincpu.mw@9116 =             1553</action>
        <action>maincpu.oq@b870 = ff00ff00ff00ff00</action>
        <action>maincpu.mq@b870 = ff00ff00ff00ff00</action>
        <action>maincpu.oq@b878 = ff00ff00ff00ff00</action>
        <action>maincpu.mq@b878 = ff00ff00ff00ff00</action>
    </script>
</cheat>
"fast grenade" : reallocate address.

Code: Select all

<cheat desc="short hit mark (test)">
    <script state="on">
        <action>maincpu.mb@8fd1 = 01</action>
        <action>maincpu.mb@902e = 01</action>
        <action>maincpu.mb@90f3 = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@8fd1 = 06</action>
        <action>maincpu.mb@902e = 07</action>
        <action>maincpu.mb@90f3 = 06</action>
    </script>
</cheat>
"short hit mark" : add new as "test" code. unverified.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mb@0067 =               02</action>
        <action>maincpu.mw@0165 =             b880</action>
        <action>maincpu.oq@b880 = 00ff3a77afff0021</action>
        <action>maincpu.mq@b880 = c00100ff00e100ff</action>
        <action>maincpu.oq@b888 = 002000fe002847b8</action>
        <action>maincpu.mq@b888 = 01fffdfff9ff00ff</action>
        <action>maincpu.oq@b890 = fffe34002000fe35</action>
        <action>maincpu.mq@b890 = fb00ff01fffeff00</action>
        <action>maincpu.oq@b898 = fffeff18ff3eff20</action>
        <action>maincpu.mq@b898 = f7000600f0000400</action>
        <action>maincpu.oq@b8a0 = fe787786003e0020</action>
        <action>maincpu.mq@b8a0 = 00ff00ff10ff05ff</action>
        <action>maincpu.oq@b8a8 = 00fe00187eff20ff</action>
        <action>maincpu.mq@b8a8 = dfff05ff000300ef</action>
        <action>maincpu.oq@b8b0 = ff18ff0032afff20</action>
        <action>maincpu.mq@b8b0 = cd00c800ff000400</action>
        <!--
        b880 | 21 00 e1 : ld  hl,$E100  // sound code address
        b883 | af       : xor a
        b884 | 77       : ld  (hl),a
        b885 | 3a 01 c0 : ld  a,($C001) // read input
        b888 | b8       : cp  b
        b889 | 47       : ld  b,a
        b88a | 28 f9    : jr  z,$B885
        b88c | fe fd    : cp  $FD
        b88e | 20 01    : jr  nz,$B891
        b890 | 35       : dec (hl)      // decrease code -01
        b891 | fe fe    : cp  $FE
        b893 | 20 01    : jr  nz,$B896
        b895 | 34       : inc (hl)      // increase code +01
        b896 | fe fb    : cp  $FB
        b898 | 20 04    : jr  nz,$B89E
        b89a | 3e f0    : ld  a,$F0     // decrease code -10
        b89c | 18 06    : jr  $B8a4
        b89e | fe f7    : cp  $F7
        b8a0 | 20 05    : jr  nz,$B8A7
        b8a2 | 3e 10    : ld  a,$10     // increase code +10
        b8a4 | 86       : add a,(hl)
        b8a5 | 77       : ld  (hl),a
        b8a6 | 78       : ld  a,b
        b8a7 | fe ef    : cp  $EF
        b8a9 | 20 03    : jr  nz,$B8AE
        b8ab | 7e       : ld  a,(hl)    // play sound
        b8ac | 18 05    : jr  $B8B3
        b8ae | fe df    : cp  $DF
        b8b0 | 20 04    : jr  nz,$B8B6
        b8b2 | af       : xor a         // stop sound
        b8b3 | 32 00 c8 : ld  ($C800),a // send sound code
        b8b6 | 18 cd    : jr  $B885
        -->
        <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
    </script>
    <script state="run">
        <output format="----- senjou no ookami 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@e100</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.mb@0067 =               00</action>
        <action> maincpu.mw@0165 =             8000</action>
        <action> maincpu.oq@b880 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b880 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b888 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b888 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b890 = ff00ff00ff00ff00</action>
        <action> maincpu.mq@b890 = ff00ff00ff00ff00</action>
        <action> maincpu.oq@b898 = ff00ff00ff00ff00</action>
        <action> maincpu.mq@b898 = ff00ff00ff00ff00</action>
        <action> maincpu.oq@b8a0 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b8a0 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b8a8 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b8a8 = 00ff00ff00ff00ff</action>
        <action> maincpu.oq@b8b0 = 00ff00ff00ff00ff</action>
        <action> maincpu.mq@b8b0 = 00ff00ff00ff00ff</action>
        <action>audiocpu.mb@0100 =               c9</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. reallocate address. add up/down key (code ±10).
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1315
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[commando]+ Commando/Senjou no Ookami

Post by jman »

commando.xml

Code: Select all

<!-- Commando (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C88 = C9</action> <!-- background -->
            <action>maincpu.ob@9256 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AED2 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF14 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8C88 = C8</action>
            <action>maincpu.ob@9256 = D2</action>
            <action>maincpu.ob@AED2 = 30</action>
            <action>maincpu.ob@AF14 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BDC = C3</action>
            <action>maincpu.mb@8BDD = 4A</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 80</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@933A = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9347 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@933A = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9347 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8939FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 39 89 : call $8939
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8939            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9115 = CD              </action>
            <action>maincpu.mw@9116 = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9115 = DD              </action>
            <action>maincpu.mw@9116 = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FD1 = 01</action>
            <action>maincpu.mb@902E = 01</action>
            <action>maincpu.mb@90F3 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FD1 = 06</action>
            <action>maincpu.mb@902E = 07</action>
            <action>maincpu.mb@90F3 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
commandou.xml

Code: Select all

<!-- Commando (US set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18E5 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19E2 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22F5 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@3519 = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C96 = C9</action> <!-- background -->
            <action>maincpu.ob@9264 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AEF1 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF33 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18E5 = 30</action>
            <action>maincpu.ob@19E2 = D0</action>
            <action>maincpu.ob@22F5 = 30</action>
            <action>maincpu.ob@3519 = D0</action>
            <action>maincpu.ob@8C96 = C8</action>
            <action>maincpu.ob@9264 = D2</action>
            <action>maincpu.ob@AEF1 = 30</action>
            <action>maincpu.ob@AF33 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BEA = C3</action>
            <action>maincpu.mb@8BEB = 58</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 8E</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@9348 = 0C10FF10FFE004FF</action>
            <!--
            9348 | 3A 04 E0 : ld   a,($E004)
            934B | E6 10    : and  $10
            934D | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9355 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@9348 = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9355 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0825 = B920            </action>
            <action>maincpu.oq@B920 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B920 = FFFF8947FFFF00FF</action>
            <action>maincpu.oq@B928 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B928 = FFFFFFFFFFFFFFF9</action>
            <!--
            B920 | 06 xx    : ld   b,$xx
            B922 | C5       : push bc
            B923 | CD 47 89 : call $8947
            B926 | C1       : pop  bc
            B927 | 10 F9    : djnz $B922
            B929 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B921 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0825 = 8947            </action>
            <action>maincpu.oq@B920 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B920 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B928 = FF00FF00FF00FE00</action>
            <action>maincpu.mq@B928 = FF00FF00FF00FE00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9123 = CD              </action>
            <action>maincpu.mw@9124 = B930            </action>
            <action>maincpu.oq@B930 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B930 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B938 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B938 = FFFFFFFFFFFFFFFF</action>
            <!--
            B930 | DD 7E 05 : ld   a,(ix+$05)
            B933 | C6 4E    : add  a,$4E
            B935 | DD 77 05 : ld   (ix+$05),a
            B938 | AF       : xor  a
            B939 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9123 = DD              </action>
            <action>maincpu.mw@9124 = 5135            </action>
            <action>maincpu.oq@B930 = 00FF00FF00FF00BF</action>
            <action>maincpu.mq@B930 = 00FF00FF00FF00FB</action>
            <action>maincpu.oq@B938 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B938 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FDF = 01</action>
            <action>maincpu.mb@903C = 01</action>
            <action>maincpu.mb@9101 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FDF = 06</action>
            <action>maincpu.mb@903C = 07</action>
            <action>maincpu.mb@9101 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B940            </action>
            <action>maincpu.oq@B940 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B940 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B948 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B948 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B950 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B950 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B958 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B958 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B960 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B960 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B968 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B968 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B970 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B970 = CDFFC800FFFF04FF</action>
            <!--
            B940 | 21 00 E1 : ld   hl,$E100  // sound code address
            B943 | AF       : xor  a         // initialize sound code
            B944 | 77       : ld   (hl),a
            B945 | 3A 01 C0 : ld   a,($C001) // read input
            B948 | B8       : cp   b
            B949 | 47       : ld   b,a
            B94A | 28 F9    : jr   z,$B885
            B94C | FE FD    : cp   $FD
            B94E | 20 01    : jr   nz,$B891
            B950 | 35       : dec  (hl)      // decrease code -01
            B951 | FE FE    : cp   $FE
            B953 | 20 01    : jr   nz,$B896
            B955 | 34       : inc  (hl)      // increase code +01
            B956 | FE FB    : cp   $FB
            B958 | 20 04    : jr   nz,$B89E
            B95A | 3E F0    : ld   a,$F0     // decrease code -10
            B95C | 18 06    : jr   $B8A4
            B95E | FE F7    : cp   $F7
            B960 | 20 05    : jr   nz,$B8A7
            B962 | 3E 10    : ld   a,$10     // increase code +10
            B964 | 86       : add  a,(hl)
            B965 | 77       : ld   (hl),a
            B966 | 78       : ld   a,b
            B967 | FE EF    : cp   $EF
            B969 | 20 03    : jr   nz,$B8AE
            B96B | 7E       : ld   a,(hl)    // play sound
            B96C | 18 05    : jr   $B8B3
            B96E | FE DF    : cp   $DF
            B970 | 20 04    : jr   nz,$B8B6
            B972 | AF       : xor  a         // stop sound
            B973 | 32 00 C8 : ld   ($C800),a // send sound code
            B976 | 18 CD    : jr   $B885
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B940 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B940 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B948 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B948 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B950 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B950 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B958 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B958 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B960 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B960 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B968 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B968 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B970 = 00FF04FF00FF00FF</action>
            <action> maincpu.mq@B970 = 00FF40FF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@0400 = 00</action>
            <action>maincpu.ob@0405 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@0400 = C0</action>
            <action>maincpu.ob@0405 = C0</action>
        </script>
    </cheat>

</mamecheat>
commandou2.xml

Code: Select all

<!-- Commando (US set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18E3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19E0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22F3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@350E = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C92 = C9</action> <!-- background -->
            <action>maincpu.ob@9260 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AEDC = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF1E = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18E3 = 30</action>
            <action>maincpu.ob@19E0 = D0</action>
            <action>maincpu.ob@22F3 = 30</action>
            <action>maincpu.ob@350E = D0</action>
            <action>maincpu.ob@8C92 = C8</action>
            <action>maincpu.ob@9260 = D2</action>
            <action>maincpu.ob@AEDC = 30</action>
            <action>maincpu.ob@AF1E = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BE6 = C3</action>
            <action>maincpu.mb@8BE7 = 54</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BE6 = C2</action>
            <action>maincpu.mb@8BE7 = 8A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@9344 = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9351 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@9344 = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9351 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0823 = B860            </action>
            <action>maincpu.oq@B860 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B860 = FFFF8943FFFF00FF</action>
            <action>maincpu.oq@B868 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B868 = FFFFFFFFFFFFFFF9</action>
            <!--
            B860 | 06 xx    : ld   b,$xx
            B862 | C5       : push bc
            B863 | CD 43 89 : call $8943
            B866 | C1       : pop  bc
            B867 | 10 F9    : djnz $B862
            B869 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B861 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0823 = 8943            </action>
            <action>maincpu.oq@B860 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B860 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B868 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B868 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@911F = CD              </action>
            <action>maincpu.mw@9120 = B870            </action>
            <action>maincpu.oq@B870 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B870 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B878 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B878 = FFFFFFFFFFFFFFFF</action>
            <!--
            B870 | DD 7E 05 : ld   a,(ix+$05)
            B873 | C6 4E    : add  a,$4E
            B875 | DD 77 05 : ld   (ix+$05),a
            B878 | AF       : xor  a
            B879 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@911F = DD              </action>
            <action>maincpu.mw@9120 = 1553            </action>
            <action>maincpu.oq@B870 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B870 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B878 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B878 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FDB = 01</action>
            <action>maincpu.mb@9038 = 01</action>
            <action>maincpu.mb@90FD = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FDB = 06</action>
            <action>maincpu.mb@9038 = 07</action>
            <action>maincpu.mb@90FD = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B880            </action>
            <action>maincpu.oq@B880 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B880 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B888 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B888 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B890 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B890 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B898 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B898 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8A0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8A0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8A8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8A8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8B0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8B0 = CDFFC800FFFF04FF</action>
            <!--
            B880 | 21 00 E1 : ld   hl,$E100  // sound code address
            B883 | AF       : xor  a         // initialize sound code
            B884 | 77       : ld   (hl),a
            B885 | 3A 01 C0 : ld   a,($C001) // read input
            B888 | B8       : cp   b
            B889 | 47       : ld   b,a
            B88A | 28 F9    : jr   z,$B885
            B88C | FE FD    : cp   $FD
            B88E | 20 01    : jr   nz,$B891
            B890 | 35       : dec  (hl)      // decrease code -01
            B891 | FE FE    : cp   $FE
            B893 | 20 01    : jr   nz,$B896
            B895 | 34       : inc  (hl)      // increase code +01
            B896 | FE FB    : cp   $FB
            B898 | 20 04    : jr   nz,$B89E
            B89A | 3E F0    : ld   a,$F0     // decrease code -10
            B89C | 18 06    : jr   $B8A4
            B89E | FE F7    : cp   $F7
            B8A0 | 20 05    : jr   nz,$B8A7
            B8A2 | 3E 10    : ld   a,$10     // increase code +10
            B8A4 | 86       : add  a,(hl)
            B8A5 | 77       : ld   (hl),a
            B8A6 | 78       : ld   a,b
            B8A7 | FE EF    : cp   $EF
            B8A9 | 20 03    : jr   nz,$B8AE
            B8AB | 7E       : ld   a,(hl)    // play sound
            B8AC | 18 05    : jr   $B8B3
            B8AE | FE DF    : cp   $DF
            B8B0 | 20 04    : jr   nz,$B8B6
            B8B2 | AF       : xor  a         // stop sound
            B8B3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8B6 | 18 CD    : jr   $B885
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B888 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B898 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@0400 = 00</action>
            <action>maincpu.ob@0405 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@0400 = C0</action>
            <action>maincpu.ob@0405 = C0</action>
        </script>
    </cheat>

</mamecheat>
commandoj.xml

Code: Select all

<!-- Senjou no Ookami -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@190E = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@1A0B = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@231E = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@3539 = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C88 = C9</action> <!-- background -->
            <action>maincpu.ob@9256 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AED7 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF19 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@190E = 30</action>
            <action>maincpu.ob@1A0B = D0</action>
            <action>maincpu.ob@231E = 30</action>
            <action>maincpu.ob@3539 = D0</action>
            <action>maincpu.ob@8C88 = C8</action>
            <action>maincpu.ob@9256 = D2</action>
            <action>maincpu.ob@AED7 = 30</action>
            <action>maincpu.ob@AF19 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BDC = C3</action>
            <action>maincpu.mb@8BDD = 4A</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 80</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@933A = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9347 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@933A = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9347 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@084E = B860            </action>
            <action>maincpu.oq@B860 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B860 = FFFF8939FFFF00FF</action>
            <action>maincpu.oq@B868 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B868 = FFFFFFFFFFFFFFF9</action>
            <!--
            B860 | 06 xx    : ld   b,$xx
            B862 | C5       : push bc
            B863 | CD 39 89 : call $8939
            B866 | C1       : pop  bc
            B867 | 10 F9    : djnz $B862
            B869 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B861 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@084E = 8939            </action>
            <action>maincpu.oq@B860 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B860 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B868 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B868 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9115 = CD              </action>
            <action>maincpu.mw@9116 = B870            </action>
            <action>maincpu.oq@B870 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B870 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B878 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B878 = FFFFFFFFFFFFFFFF</action>
            <!--
            B870 | DD 7E 05 : ld   a,(ix+$05)
            B873 | C6 4E    : add  a,$4E
            B875 | DD 77 05 : ld   (ix+$05),a
            B878 | AF       : xor  a
            B879 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9115 = DD              </action>
            <action>maincpu.mw@9116 = 1553            </action>
            <action>maincpu.oq@B870 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B870 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B878 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B878 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FD1 = 01</action>
            <action>maincpu.mb@902E = 01</action>
            <action>maincpu.mb@90F3 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FD1 = 06</action>
            <action>maincpu.mb@902E = 07</action>
            <action>maincpu.mb@90F3 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B880            </action>
            <action>maincpu.oq@B880 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B880 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B888 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B888 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B890 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B890 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B898 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B898 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8A0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8A0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8A8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8A8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8B0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8B0 = CDFFC800FFFF04FF</action>
            <!--
            B880 | 21 00 E1 : ld   hl,$E100  // sound code address
            B883 | AF       : xor  a         // initialize sound code
            B884 | 77       : ld   (hl),a
            B885 | 3A 01 C0 : ld   a,($C001) // read input
            B888 | B8       : cp   b
            B889 | 47       : ld   b,a
            B88A | 28 F9    : jr   z,$B885
            B88C | FE FD    : cp   $FD
            B88E | 20 01    : jr   nz,$B891
            B890 | 35       : dec  (hl)      // decrease code -01
            B891 | FE FE    : cp   $FE
            B893 | 20 01    : jr   nz,$B896
            B895 | 34       : inc  (hl)      // increase code +01
            B896 | FE FB    : cp   $FB
            B898 | 20 04    : jr   nz,$B89E
            B89A | 3E F0    : ld   a,$F0     // decrease code -10
            B89C | 18 06    : jr   $B8A4
            B89E | FE F7    : cp   $F7
            B8A0 | 20 05    : jr   nz,$B8A7
            B8A2 | 3E 10    : ld   a,$10     // increase code +10
            B8A4 | 86       : add  a,(hl)
            B8A5 | 77       : ld   (hl),a
            B8A6 | 78       : ld   a,b
            B8A7 | FE EF    : cp   $EF
            B8A9 | 20 03    : jr   nz,$B8AE
            B8AB | 7E       : ld   a,(hl)    // play sound
            B8AC | 18 05    : jr   $B8B3
            B8AE | FE DF    : cp   $DF
            B8B0 | 20 04    : jr   nz,$B8B6
            B8B2 | AF       : xor  a         // stop sound
            B8B3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8B6 | 18 CD    : jr   $B885
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B880 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B880 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B888 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B888 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B890 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B890 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B898 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B898 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8A0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03DC = 00</action>
            <action>maincpu.ob@03E1 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03DC = C0</action>
            <action>maincpu.ob@03E1 = C0</action>
        </script>
    </cheat>

</mamecheat>
commandob.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C88 = C9</action> <!-- background -->
            <action>maincpu.ob@9256 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AED2 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF14 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8C88 = C8</action>
            <action>maincpu.ob@9256 = D2</action>
            <action>maincpu.ob@AED2 = 30</action>
            <action>maincpu.ob@AF14 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BDC = C3</action>
            <action>maincpu.mb@8BDD = 4A</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 80</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@933A = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9347 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@933A = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9347 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8939FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 39 89 : call $8939
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8939            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9115 = CD              </action>
            <action>maincpu.mw@9116 = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9115 = DD              </action>
            <action>maincpu.mw@9116 = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FD1 = 01</action>
            <action>maincpu.mb@902E = 01</action>
            <action>maincpu.mb@90F3 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FD1 = 06</action>
            <action>maincpu.mb@902E = 07</action>
            <action>maincpu.mb@90F3 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1315
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[commando]+ Commando/Senjou no Ookami

Post by jman »

commandob2.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C88 = C9</action> <!-- background -->
            <action>maincpu.ob@9256 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AED2 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF14 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8C88 = C8</action>
            <action>maincpu.ob@9256 = D2</action>
            <action>maincpu.ob@AED2 = 30</action>
            <action>maincpu.ob@AF14 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BDC = C3</action>
            <action>maincpu.mb@8BDD = 4A</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 80</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@933A = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9347 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@933A = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9347 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8939FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 39 89 : call $8939
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8939            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9115 = CD              </action>
            <action>maincpu.mw@9116 = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9115 = DD              </action>
            <action>maincpu.mw@9116 = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FD1 = 01</action>
            <action>maincpu.mb@902E = 01</action>
            <action>maincpu.mb@90F3 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FD1 = 06</action>
            <action>maincpu.mb@902E = 07</action>
            <action>maincpu.mb@90F3 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
commandob3.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C88 = C9</action> <!-- background -->
            <action>maincpu.ob@9256 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AED2 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF14 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8C88 = C8</action>
            <action>maincpu.ob@9256 = D2</action>
            <action>maincpu.ob@AED2 = 30</action>
            <action>maincpu.ob@AF14 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BDC = C3</action>
            <action>maincpu.mb@8BDD = 4A</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 80</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@933A = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9347 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@933A = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9347 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8939FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 39 89 : call $8939
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8939            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9115 = CD              </action>
            <action>maincpu.mw@9116 = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9115 = DD              </action>
            <action>maincpu.mw@9116 = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FD1 = 01</action>
            <action>maincpu.mb@902E = 01</action>
            <action>maincpu.mb@90F3 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FD1 = 06</action>
            <action>maincpu.mb@902E = 07</action>
            <action>maincpu.mb@90F3 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
sinvasn.xml

Code: Select all

<!-- Space Invasion (Europe) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8CAF = C9</action> <!-- background -->
            <action>maincpu.ob@927D = C3</action> <!-- grenade -->
            <action>maincpu.ob@AEF9 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF3B = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8CAF = C8</action>
            <action>maincpu.ob@927D = D2</action>
            <action>maincpu.ob@AEF9 = 30</action>
            <action>maincpu.ob@AF3B = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8C03 = C3</action>
            <action>maincpu.mb@8C04 = 71</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8C03 = C2</action>
            <action>maincpu.mb@8C04 = A7</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@9361 = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@936E = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@9361 = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@936E = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8960FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 60 89 : call $8960
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8960            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@913C = CD              </action>
            <action>maincpu.mw@913D = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@913C = DD              </action>
            <action>maincpu.mw@913D = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FF8 = 01</action>
            <action>maincpu.mb@9055 = 01</action>
            <action>maincpu.mb@911A = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FF8 = 06</action>
            <action>maincpu.mb@9055 = 07</action>
            <action>maincpu.mb@911A = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
sinvasnb.xml

Code: Select all

<!-- Space Invasion (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8CAF = C9</action> <!-- background -->
            <action>maincpu.ob@927D = C3</action> <!-- grenade -->
            <action>maincpu.ob@AEF9 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF3B = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8CAF = C8</action>
            <action>maincpu.ob@927D = D2</action>
            <action>maincpu.ob@AEF9 = 30</action>
            <action>maincpu.ob@AF3B = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8C03 = C3</action>
            <action>maincpu.mb@8C04 = 71</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8C03 = C2</action>
            <action>maincpu.mb@8C04 = A7</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@9361 = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@936E = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@9361 = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@936E = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8960FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 60 89 : call $8960
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8960            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@913C = CD              </action>
            <action>maincpu.mw@913D = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@913C = DD              </action>
            <action>maincpu.mw@913D = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FF8 = 01</action>
            <action>maincpu.mb@9055 = 01</action>
            <action>maincpu.mb@911A = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FF8 = 06</action>
            <action>maincpu.mb@9055 = 07</action>
            <action>maincpu.mb@911A = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
mercenario.xml

Code: Select all

<!-- Mercenario (bootleg of Commando) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@18C3 = 18</action> <!-- vehicle from side -->
            <action>maincpu.ob@19C0 = C9</action> <!-- vehicle from front -->
            <action>maincpu.ob@22D3 = 18</action> <!-- bullet (tochka) -->
            <action>maincpu.ob@34EE = C9</action> <!-- vehicle from back -->
            <action>maincpu.ob@8C88 = C9</action> <!-- background -->
            <action>maincpu.ob@9256 = C3</action> <!-- grenade -->
            <action>maincpu.ob@AED2 = 18</action> <!-- bullet -->
            <action>maincpu.ob@AF14 = 18</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@18C3 = 30</action>
            <action>maincpu.ob@19C0 = D0</action>
            <action>maincpu.ob@22D3 = 30</action>
            <action>maincpu.ob@34EE = D0</action>
            <action>maincpu.ob@8C88 = C8</action>
            <action>maincpu.ob@9256 = D2</action>
            <action>maincpu.ob@AED2 = 30</action>
            <action>maincpu.ob@AF14 = 30</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.ob@8BDC = C3</action>
            <action>maincpu.mb@8BDD = 4A</action>
        </script>
        <script state="off">
            <action>maincpu.ob@8BDC = C2</action>
            <action>maincpu.mb@8BDD = 80</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@933A = 0C10FF10FFE004FF</action>
            <!--
            933A | 3A 04 E0 : ld   a,($E004)
            933D | E6 10    : and  $10
            933F | FE 10    : cp   $10
            -->
            <action>maincpu.ob@9347 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mq@933A = 0C01FE076EE00CB2</action>
            <action>maincpu.ob@9347 = 28              </action>
        </script>
    </cheat>

    <cheat desc="player speed (test)">
        <!-- cause background scroll problem -->
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0803 = B880            </action>
            <action>maincpu.oq@B880 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@B880 = FFFF8939FFFF00FF</action>
            <action>maincpu.oq@B888 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@B888 = FFFFFFFFFFFFFFF9</action>
            <!--
            B880 | 06 xx    : ld   b,$xx
            B882 | C5       : push bc
            B883 | CD 39 89 : call $8939
            B886 | C1       : pop  bc
            B887 | 10 F9    : djnz $B882
            B889 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B881 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0803 = 8939            </action>
            <action>maincpu.oq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B880 = FF00FF00FF00FF00</action>
            <action>maincpu.oq@B888 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@B888 = FF00FF00FF00FF00</action>
        </script>
    </cheat>

    <cheat desc="fast grenade">
        <script state="on">
            <action>maincpu.ob@9115 = CD              </action>
            <action>maincpu.mw@9116 = B890            </action>
            <action>maincpu.oq@B890 = FF77DDFFC6FF7EDD</action>
            <action>maincpu.mq@B890 = 05FFFF4EFF05FFFF</action>
            <action>maincpu.oq@B898 = FFFFFFFFFFFFC9AF</action>
            <action>maincpu.mq@B898 = FFFFFFFFFFFFFFFF</action>
            <!--
            B890 | DD 7E 05 : ld   a,(ix+$05)
            B893 | C6 4E    : add  a,$4E
            B895 | DD 77 05 : ld   (ix+$05),a
            B898 | AF       : xor  a
            B899 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@9115 = DD              </action>
            <action>maincpu.mw@9116 = 1553            </action>
            <action>maincpu.oq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B890 = 00FF00FF00FF00FF</action>
            <action>maincpu.oq@B898 = 00FF00FF00FF00FF</action>
            <action>maincpu.mq@B898 = 00FF00FF00FF00FF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <!-- unverified -->
        <script state="on">
            <action>maincpu.mb@8FD1 = 01</action>
            <action>maincpu.mb@902E = 01</action>
            <action>maincpu.mb@90F3 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8FD1 = 06</action>
            <action>maincpu.mb@902E = 07</action>
            <action>maincpu.mb@90F3 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@0067 = 02              </action>
            <action>maincpu.mw@0165 = B8A0            </action>
            <action>maincpu.oq@B8A0 = FFFF3A77AFFFFF21</action>
            <action>maincpu.mq@B8A0 = C001FFFFFFE100FF</action>
            <action>maincpu.oq@B8A8 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@B8A8 = 01FFFDFFF9FFFFFF</action>
            <action>maincpu.oq@B8B0 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@B8B0 = FBFFFF01FFFEFFFF</action>
            <action>maincpu.oq@B8B8 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@B8B8 = F7FF06FFF0FF04FF</action>
            <action>maincpu.oq@B8C0 = FE787786FF3EFF20</action>
            <action>maincpu.mq@B8C0 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@B8C8 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@B8C8 = DFFF05FFFF03FFEF</action>
            <action>maincpu.oq@B8D0 = FF18FFFF32AFFF20</action>
            <action>maincpu.mq@B8D0 = CDFFC800FFFF04FF</action>
            <!--
            B8A0 | 21 00 E1 : ld   hl,$E100  // sound code address
            B8A3 | AF       : xor  a         // initialize sound code
            B8A4 | 77       : ld   (hl),a
            B8A5 | 3A 01 C0 : ld   a,($C001) // read input
            B8A8 | B8       : cp   b
            B8A9 | 47       : ld   b,a
            B8AA | 28 F9    : jr   z,$B8A5
            B8AC | FE FD    : cp   $FD
            B8AE | 20 01    : jr   nz,$B8B1
            B8B0 | 35       : dec  (hl)      // decrease code -01
            B8B1 | FE FE    : cp   $FE
            B8B3 | 20 01    : jr   nz,$B8B6
            B8B5 | 34       : inc  (hl)      // increase code +01
            B8B6 | FE FB    : cp   $FB
            B8B8 | 20 04    : jr   nz,$B8BE
            B8BA | 3E F0    : ld   a,$F0     // decrease code -10
            B8BC | 18 06    : jr   $B8C4
            B8BE | FE F7    : cp   $F7
            B8C0 | 20 05    : jr   nz,$B8C7
            B8C2 | 3E 10    : ld   a,$10     // increase code +10
            B8C4 | 86       : add  a,(hl)
            B8C5 | 77       : ld   (hl),a
            B8C6 | 78       : ld   a,b
            B8C7 | FE EF    : cp   $EF
            B8C9 | 20 03    : jr   nz,$B8CE
            B8CB | 7E       : ld   a,(hl)    // play sound
            B8CC | 18 05    : jr   $B8D3
            B8CE | FE DF    : cp   $DF
            B8D0 | 20 04    : jr   nz,$B8D6
            B8D2 | AF       : xor  a         // stop sound
            B8D3 | 32 00 C8 : ld   ($C800),a // send sound code
            B8D6 | 18 CD    : jr   $B8A5
            -->
            <action>audiocpu.mb@0100 = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@0067 = 00              </action>
            <action> maincpu.mw@0165 = 8000            </action>
            <action> maincpu.oq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A0 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8A8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8A8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B0 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.mq@B8B8 = 00FF00FF00FF00FF</action>
            <action> maincpu.oq@B8C0 = FF00FF00FF00FF04</action>
            <action> maincpu.mq@B8C0 = FF00FF00FF00FF40</action>
            <action> maincpu.oq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.mq@B8C8 = FF00FF00FF00FF00</action>
            <action> maincpu.oq@B8D0 = 00FF00FD00FF00FF</action>
            <action> maincpu.mq@B8D0 = 00FF00DF00FF00FF</action>
            <action>audiocpu.mb@0100 = C9              </action>
        </script>
    </cheat>

    <cheat desc="skip warning message">
        <script state="on">
            <action>maincpu.ob@03E0 = 00</action>
            <action>maincpu.ob@03E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.ob@03E0 = C0</action>
            <action>maincpu.ob@03E5 = C0</action>
        </script>
    </cheat>

</mamecheat>
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply