[mtlchampj] Martial Champion

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

[mtlchampj] Martial Champion

Post by jman »

Code: Select all

<cheat desc="no hit">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <!-- jin : tenga renken -->
        <action>maincpu.mq@174c2 = 4eb9000718406400</action>
        <action>maincpu.mq@71840 = bbfc001051006006</action>
        <action>maincpu.mq@71848 = 023c00fe4e75bbfc</action>
        <action>maincpu.mq@71850 = 001055006006023c</action>
        <action>maincpu.mq@71858 = 00fe4e750c680058</action>
        <action>maincpu.mq@71860 = 00a04e75ffffffff</action>
        <!--
        071840 | bbfc 0010 5100 : cmpa.l #$105100,A5
        071846 | 6006           : bra    $7184e
        071848 | 023c 00fe      : andi   #$fe,CCR
        07184c | 4e75           : rts
        07184e | bbfc 0010 5500 : cmpa.l #$105500,A5
        071854 | 6006           : bra    $7185c
        071856 | 023c 00fe      : andi   #$fe,CCR
        07185a | 4e75           : rts
        07185c | 0c68 0058 00a0 : cmpi.w #$58,($a0,A0)
        071862 | 4e75           : rts
        -->
        <!-- throw -->
        <action>maincpu.mq@169fa = 4eb9000718706700</action> <!-- air -->
        <action>maincpu.mq@16cc4 = 4eb9000718706700</action> <!-- ground -->
        <action>maincpu.mq@71870 = bbfc001051006004</action>
        <action>maincpu.mq@71878 = 70004e75bbfc0010</action>
        <action>maincpu.mq@71880 = 5500600470004e75</action>
        <action>maincpu.mq@71888 = 024000204a004e75</action>
        <!--
        71870 | bbfc 0010 5100 : cmpa.l #$105100,A5
        71876 | 6004           : bra    $7187c
        71878 | 7000           : moveq  #$0,D0
        7187a | 4e75           : rts
        7187c | bbfc 0010 5500 : cmpa.l #$105500,A5
        71882 | 6004           : bra    $71888
        71884 | 7000           : moveq  #$0,D0
        71886 | 4e75           : rts
        71888 | 0240 0020      : andi.w #$20,D0
        7188c | 4a00           : tst.b  D0
        7188e | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.mb@124ca = 62</action> <!-- P1 normal attack -->
        <action                                  >maincpu.mb@13170 = 64</action> <!-- P1 weapon -->
        <action                                  >maincpu.mb@125ec = 62</action> <!-- P1 firearm -->
        <action                                  >maincpu.mb@12b30 = 62</action> <!-- P1 guard -->
        <action                                  >maincpu.mb@71846 = 60</action> <!-- P1 jin : tenga renken -->
        <action                                  >maincpu.mb@71876 = 60</action> <!-- P1 throw -->
        <action                                  >maincpu.mb@11ff0 = 62</action> <!-- P2 normal attack -->
        <action                                  >maincpu.mb@13072 = 64</action> <!-- P2 weapon -->
        <action                                  >maincpu.mb@12814 = 62</action> <!-- P2 firearm -->
        <action                                  >maincpu.mb@12d62 = 62</action> <!-- P2 guard -->
        <action                                  >maincpu.mb@71854 = 60</action> <!-- P2 jin : tenga renken -->
        <action                                  >maincpu.mb@71882 = 60</action> <!-- P2 throw -->
        <action condition="(param band 01) != 00">maincpu.mb@124ca = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@13170 = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@125ec = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@12b30 = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@71846 = 66</action>
        <action condition="(param band 01) != 00">maincpu.mb@71876 = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@11ff0 = 60</action>
        <action condition="(param band 02) != 00">maincpu.mb@13072 = 60</action>
        <action condition="(param band 02) != 00">maincpu.mb@12814 = 60</action>
        <action condition="(param band 02) != 00">maincpu.mb@12d62 = 60</action>
        <action condition="(param band 02) != 00">maincpu.mb@71854 = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@71882 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.mb@124ca =               62</action>
        <action>maincpu.mb@13170 =               64</action>
        <action>maincpu.mb@125ec =               62</action>
        <action>maincpu.mb@12b30 =               62</action>
        <action>maincpu.mb@11ff0 =               62</action>
        <action>maincpu.mb@13072 =               64</action>
        <action>maincpu.mb@12814 =               62</action>
        <action>maincpu.mb@12d62 =               62</action>
        <action>maincpu.mq@174c2 = 0c68005800a06400</action>
        <action>maincpu.mq@71840 = ffffffffffffffff</action>
        <action>maincpu.mq@71848 = ffffffffffffffff</action>
        <action>maincpu.mq@71850 = ffffffffffffffff</action>
        <action>maincpu.mq@71858 = ffffffffffffffff</action>
        <action>maincpu.mq@71860 = ffffffffffffffff</action>
        <action>maincpu.mq@169fa = 024000204a006700</action>
        <action>maincpu.mq@16cc4 = 024000204a006700</action>
        <action>maincpu.mq@71870 = ffffffffffffffff</action>
        <action>maincpu.mq@71878 = ffffffffffffffff</action>
        <action>maincpu.mq@71880 = ffffffffffffffff</action>
        <action>maincpu.mq@71888 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@16544 = 4eb9000718904e71</action>
        <action>maincpu.mq@71890 = 10280035b1fc0010</action>
        <action>maincpu.mq@71898 = 510060041028001e</action>
        <action>maincpu.mq@718a0 = b1fc001055006004</action>
        <action>maincpu.mq@718a8 = 1028001e02400070</action>
        <action>maincpu.mq@718b0 = 4e75ffffffffffff</action>
        <!--
        71890 | 1028 0035      : move.b ($35,A0),D0
        71894 | b1fc 0010 5100 : cmpa.l #$105100,A0
        7189a | 6004           : bra    $718a0
        7189c | 1028 001e      : move.b ($1e,A0),D0
        718a0 | b1fc 0010 5500 : cmpa.l #$105500,A0
        718a6 | 6004           : bra    $718ac
        718a8 | 1028 001e      : move.b ($1e,A0),D0
        718ac | 0240 0070      : andi.w #$70,D0
        718b0 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.mb@7189a = 60</action>
        <action                                  >maincpu.mb@718a6 = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@7189a = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@718a6 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.mq@16544 = 1028003502400070</action>
        <action>maincpu.mq@71890 = ffffffffffffffff</action>
        <action>maincpu.mq@71898 = ffffffffffffffff</action>
        <action>maincpu.mq@718a0 = ffffffffffffffff</action>
        <action>maincpu.mq@718a8 = ffffffffffffffff</action>
        <action>maincpu.mq@718b0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x80">02       </item>
        <item value="0x40">03       </item>
        <item value="0x20">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@14153 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@14153 = 27</action>
    </script>
</cheat>

<cheat desc="unlock secret character">
    <script state="on">
        <action>maincpu.mb@c4d7 = 0x0a</action>
        <action>maincpu.mb@c4c7 = 0x0b</action>
    </script>
    <script state="off">
        <action>maincpu.mb@c4d7 = 09</action>
        <action>maincpu.mb@c4c7 = 0a</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mw@034d8 =             4e71</action> <!-- accept sound code -->
        <action>maincpu.md@010f4 =         000718c0</action>
        <action>maincpu.mq@718c0 = 41f9001010004200</action>
        <action>maincpu.mq@718c8 = 1200103900414001</action>
        <action>maincpu.mq@718d0 = b20067f40c0000fe</action>
        <action>maincpu.mq@718d8 = 660253100c0000fd</action>
        <action>maincpu.mq@718e0 = 660252100c0000f7</action>
        <action>maincpu.mq@718e8 = 6604041000100c00</action>
        <action>maincpu.mq@718f0 = 00fb660406100010</action>
        <action>maincpu.mq@718f8 = 0c0000ef66041e10</action>
        <action>maincpu.mq@71900 = 600a0c0000df6608</action>
        <action>maincpu.mq@71908 = 1e3c00f44eb8347e</action>
        <action>maincpu.mq@71910 = 60b6ffffffffffff</action>
        <!--
        718c0 | 41f9 0010 1000 : lea    $101000.l,A0 // sound code address
        718c6 | 4200           : clr.b  D0
        718c8 | 1200           : move.b D0,D1
        718ca | 1039 0041 4001 : move.b $414001.l,D0 // read input
        718d0 | b200           : cmp.b  D0,D1
        718d2 | 67f4           : beq    $718c8
        718d4 | 0c00 00fe      : cmpi.b #-$2,D0
        718d8 | 6602           : bne    $718dc
        718da | 5310           : subq.b #1,(A0)      // decrease code -01
        718dc | 0c00 00fd      : cmpi.b #-$3,D0
        718e0 | 6602           : bne    $718e4
        718e2 | 5210           : addq.b #1,(A0)      // increase code +01
        718e4 | 0c00 00f7      : cmpi.b #-$9,D0
        718e8 | 6604           : bne    $718ee
        718ea | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        718ee | 0c00 00fb      : cmpi.b #-$5,D0
        718f2 | 6604           : bne    $718f8
        718f4 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        718f8 | 0c00 00ef      : cmpi.b #-$11,D0
        718fc | 6604           : bne    $71902
        718fe | 1e10           : move.b (A0),D7      // play sound
        71900 | 600a           : bra    $7190c
        71902 | 0c00 00df      : cmpi.b #-$21,D0
        71906 | 6608           : bne    $71910
        71908 | 1e3c 00f4      : move.b #$f4,D7      // stop sound
        7190c | 4eb9 347e      : jsr    $347e.l      // send sound code
        71910 | 60b6           : bra    $718c8
        -->
    </script>
    <script state="run">
        <output format="----- martial champion 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="up : increase code +10"                       line="13" align="center" />
        <output format="down : decrease 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@101000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@034d8 =             4e75</action>
        <action>maincpu.md@010f4 =         00001f50</action>
        <action>maincpu.mq@718c0 = ffffffffffffffff</action>
        <action>maincpu.mq@718c8 = ffffffffffffffff</action>
        <action>maincpu.mq@718d0 = ffffffffffffffff</action>
        <action>maincpu.mq@718d8 = ffffffffffffffff</action>
        <action>maincpu.mq@718e0 = ffffffffffffffff</action>
        <action>maincpu.mq@718e8 = ffffffffffffffff</action>
        <action>maincpu.mq@718f0 = ffffffffffffffff</action>
        <action>maincpu.mq@718f8 = ffffffffffffffff</action>
        <action>maincpu.mq@71900 = ffffffffffffffff</action>
        <action>maincpu.mq@71908 = ffffffffffffffff</action>
        <action>maincpu.mq@71910 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mq@35b8 = 4ef90000107a103c</action>
    </script>
    <script state="off">
        <action>maincpu.mq@35b8 = 4df9000035c6103c</action>
    </script>
</cheat>
"sound test mode" is incomplete. Character voice is not played in this code.
jman

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

[mtlchampj] Martial Champion (update)

Post by jman »

Code: Select all

<cheat desc="no hit">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@174c2 = 4eb9000718406400</action> <!-- tenga renken (jin) -->
        <action>maincpu.mq@169fa = 4eb9000718626700</action> <!-- throw (air) -->
        <action>maincpu.mq@16cc4 = 4eb9000718626700</action> <!-- throw -->
        <action>maincpu.mq@71840 = bbfc001051006706</action>
        <action>maincpu.mq@71848 = bbfc001055004e75</action>
        <action>maincpu.mq@71850 = 61ee6606023c00fe</action>
        <action>maincpu.mq@71858 = 4e750c68005800a0</action>
        <action>maincpu.mq@71860 = 4e7561dc66047000</action>
        <action>maincpu.mq@71868 = 4e75024000204a00</action>
        <action>maincpu.mq@71870 = 4e75ffffffffffff</action>
        <!--
        71840 | bbfc 0010 5100 : cmpa.l #$105100,A5   // player check routine
        71846 | 6706           : beq    $7184e
        71848 | bbfc 0010 5500 : cmpa.l #$105500,A5
        7184e | 4e75           : rts
        71850 | 61ee           : bsr    $71840        // tenga renken (jin)
        71852 | 6606           : bne    $7185a
        71854 | 023c 00fe      : andi   #$fe,CCR
        71858 | 4e75           : rts
        7185a | 0c68 0058 00a0 : cmpi.w #$58,($a0,A0)
        71860 | 4e75           : rts
        71862 | 61dc           : bsr    $71840        // throw
        71864 | 6604           : bne    $7186a
        71866 | 7000           : moveq  #$0,D0
        71868 | 4e75           : rts
        7186a | 0240 0020      : andi.w #$20,D0
        7186e | 4a00           : tst.b  D0
        71870 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.md@71842 = 00000000</action> <!-- P1 tenga renken / throw -->
        <action                                  >maincpu.mb@124ca =       62</action> <!-- P1 attack -->
        <action                                  >maincpu.mb@13170 =       64</action> <!-- P1 weapon -->
        <action                                  >maincpu.mb@125ec =       62</action> <!-- P1 firearm -->
        <action                                  >maincpu.mb@12b30 =       62</action> <!-- P1 guard -->
        <action                                  >maincpu.md@7184a = 00000000</action> <!-- P2 tenga renken / throw -->
        <action                                  >maincpu.mb@11ff0 =       62</action> <!-- P2 attack -->
        <action                                  >maincpu.mb@13072 =       64</action> <!-- P2 weapon -->
        <action                                  >maincpu.mb@12814 =       62</action> <!-- P2 firearm -->
        <action                                  >maincpu.mb@12d62 =       62</action> <!-- P2 guard -->
        <action condition="(param band 01) != 00">maincpu.md@71842 = 00105100</action>
        <action condition="(param band 01) != 00">maincpu.mb@124ca =       60</action>
        <action condition="(param band 01) != 00">maincpu.mb@13170 =       60</action>
        <action condition="(param band 01) != 00">maincpu.mb@125ec =       60</action>
        <action condition="(param band 01) != 00">maincpu.mb@12b30 =       60</action>
        <action condition="(param band 02) != 00">maincpu.md@7184a = 00105500</action>
        <action condition="(param band 02) != 00">maincpu.mb@11ff0 =       60</action>
        <action condition="(param band 02) != 00">maincpu.mb@13072 =       60</action>
        <action condition="(param band 02) != 00">maincpu.mb@12814 =       60</action>
        <action condition="(param band 02) != 00">maincpu.mb@12d62 =       60</action>
    </script>
    <script state="off">
        <action>maincpu.mq@174c2 = 0c68005800a06400</action>
        <action>maincpu.mq@169fa = 024000204a006700</action>
        <action>maincpu.mq@16cc4 = 024000204a006700</action>
        <action>maincpu.mq@71840 = ffffffffffffffff</action>
        <action>maincpu.mq@71840 = ffffffffffffffff</action>
        <action>maincpu.mq@71850 = ffffffffffffffff</action>
        <action>maincpu.mq@71850 = ffffffffffffffff</action>
        <action>maincpu.mq@71860 = ffffffffffffffff</action>
        <action>maincpu.mq@71860 = ffffffffffffffff</action>
        <action>maincpu.mq@71870 = ffffffffffffffff</action>
        <action>maincpu.mb@124ca =               62</action>
        <action>maincpu.mb@13170 =               64</action>
        <action>maincpu.mb@125ec =               62</action>
        <action>maincpu.mb@12b30 =               62</action>
        <action>maincpu.mb@11ff0 =               62</action>
        <action>maincpu.mb@13072 =               64</action>
        <action>maincpu.mb@12814 =               62</action>
        <action>maincpu.mb@12d62 =               62</action>
    </script>
</cheat>
"no hit" : rewrite routine.

Code: Select all

<cheat desc="auto fire">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@16544 = 4eb9000718804e71</action>
        <action>maincpu.mq@71880 = 10280035b1fc0010</action>
        <action>maincpu.mq@71888 = 51006708b1fc0010</action>
        <action>maincpu.mq@71890 = 550066041028001e</action>
        <action>maincpu.mq@71898 = 024000704e75ffff</action>
        <!--
        71880 | 1028 0035      : move.b ($35,A0),D0
        71884 | b1fc 0010 5100 : cmpa.l #$105100,A0
        7188a | 6708           : beq    $71894
        7188c | b1fc 0010 5500 : cmpa.l #$105500,A0
        71892 | 6604           : bne    $71898
        71894 | 1028 001e      : move.b ($1e,A0),D0
        71898 | 0240 0070      : andi.w #$70,D0
        7189c | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.md@71886 = 00000000</action>
        <action                                  >maincpu.md@7188e = 00000000</action>
        <action condition="(param band 01) != 00">maincpu.md@71886 = 00105100</action>
        <action condition="(param band 02) != 00">maincpu.md@7188e = 00105500</action>
    </script>
    <script state="off">
        <action>maincpu.mq@16544 = 1028003502400070</action>
        <action>maincpu.mq@71880 = ffffffffffffffff</action>
        <action>maincpu.mq@71888 = ffffffffffffffff</action>
        <action>maincpu.mq@71890 = ffffffffffffffff</action>
        <action>maincpu.mq@71898 = ffffffffffffffff</action>
    </script>
</cheat>
"auto fire" : rewrite routine.

Code: Select all

<cheat desc="action speed up (test)">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@08784 = 4eb9000718a04e71</action>
        <action>maincpu.mq@718a0 = 06020001b1fc0010</action>
        <action>maincpu.mq@718a8 = 51006708b1fc0010</action>
        <action>maincpu.mq@718b0 = 5500660c12360006</action>
        <action>maincpu.mq@718b8 = b202630453011401</action>
        <action>maincpu.mq@718c0 = b43600064e75ffff</action>
        <!--
        718a4 | b1fc 0010 5100 : cmpa.l #$105100,A0
        718aa | 6708           : beq    $718b4
        718ac | b1fc 0010 5500 : cmpa.l #$105500,A0
        718b2 | 660c           : bne    $718c0
        718b4 | 1236 0006      : move.b ($6,A6,D0.w),D1
        718b8 | b202           : cmp.b  D2,D1
        718ba | 6304           : bls    $718c0
        718bc | 5301           : subq.b #1,D1
        718be | 1401           : move.b D1,D2
        718c0 | b436 0006      : cmp.b  ($6,A6,D0.w),D2
        718c4 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.md@718a6 = 00000000</action>
        <action                                  >maincpu.md@718ae = 00000000</action>
        <action condition="(param band 01) != 00">maincpu.md@718a6 = 00105100</action>
        <action condition="(param band 02) != 00">maincpu.md@718ae = 00105500</action>
    </script>
    <script state="off">
        <action>maincpu.mq@08784 = 06020001b4360006</action>
        <action>maincpu.mq@718a0 = ffffffffffffffff</action>
        <action>maincpu.mq@718a8 = ffffffffffffffff</action>
        <action>maincpu.mq@718b0 = ffffffffffffffff</action>
        <action>maincpu.mq@718b8 = ffffffffffffffff</action>
        <action>maincpu.mq@718c0 = ffffffffffffffff</action>
    </script>
</cheat>
"action speed up" : add new as test code because of some bugs (failed to shoot firearms, frozen character after throw etc).

Code: Select all

<cheat desc="easy moves (test)">
    <script state="on">
        <action>maincpu.mw@1a16c = a368</action> <!-- jin -->
        <action>maincpu.mw@1a3c6 = a5ce</action> <!-- jin -->
        <action>maincpu.mw@1a894 = a94e</action> <!-- goldor -->
        <action>maincpu.mw@1a9d1 =   01</action> <!-- goldor -->
        <action>maincpu.mw@1a670 = a742</action> <!-- racheal -->
        <action>maincpu.mb@1a7c7 =   01</action> <!-- racheal -->
        <action>maincpu.mw@1b3ba = b46e</action> <!-- zen -->
        <action>maincpu.mw@1aa94 = ab4e</action> <!-- hoi -->
        <action>maincpu.mw@1aba0 = ad9e</action> <!-- hoi -->
        <action>maincpu.mb@1ae33 =   01</action> <!-- chaos -->
        <action>maincpu.mw@1aeee = b0e6</action> <!-- chaos -->
        <action>maincpu.mw@1bfba = bff8</action> <!-- mahambah -->
        <action>maincpu.mw@1b4ca = b584</action> <!-- avu -->
        <action>maincpu.mw@1b5d6 = b7de</action> <!-- avu -->
        <action>maincpu.mw@1bcb6 = bcf4</action> <!-- titi -->
        <action>maincpu.mw@1bd70 = bf78</action> <!-- titi -->
        <action>maincpu.mw@1b824 = ba2c</action> <!-- bobby -->
        <action>maincpu.mw@1ba6c = bc74</action> <!-- bobby -->
    </script>
    <script state="off">
        <action>maincpu.mw@1a16c = a22c</action>
        <action>maincpu.mw@1a16c = a42e</action>
        <action>maincpu.mw@1a894 = a8a2</action>
        <action>maincpu.mw@1a9d1 =   05</action>
        <action>maincpu.mw@1a670 = a67e</action>
        <action>maincpu.mw@1a7c7 = 06</action>
        <action>maincpu.mw@1b3ba = b3c8</action>
        <action>maincpu.mw@1aa94 = aaa2</action>
        <action>maincpu.mw@1aba0 = ac60</action>
        <action>maincpu.mb@1ae33 =   05</action>
        <action>maincpu.mw@1aeee = af56</action>
        <action>maincpu.mw@1bfba = bfc0</action>
        <action>maincpu.mw@1b4ca = b4d8</action>
        <action>maincpu.mw@1b5d6 = b63e</action>
        <action>maincpu.mw@1bcb6 = bcbc</action>
        <action>maincpu.mw@1bd70 = bdd8</action>
        <action>maincpu.mw@1b824 = b88c</action>
        <action>maincpu.mw@1ba6c = bad4</action>
    </script>
</cheat>
"easy moves" : add new as test code because of unverified.

Code: Select all

<cheat desc="sound test mode">
    <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mw@034d8 =             4e71</action> <!-- enable sound code check -->
        <action>maincpu.md@010f4 =         000718d0</action>
        <action>maincpu.mq@718d0 = 41f90010100043e8</action>
        <action>maincpu.mq@718d8 = 0001120010390041</action>
        <action>maincpu.mq@718e0 = 4001b20067f40c00</action>
        <action>maincpu.mq@718e8 = 00fe660253100c00</action>
        <action>maincpu.mq@718f0 = 00fd660252100c00</action>
        <action>maincpu.mq@718f8 = 00f7660404100010</action>
        <action>maincpu.mq@71900 = 0c0000fb66040610</action>
        <action>maincpu.mq@71908 = 00100c0000be6604</action>
        <action>maincpu.mq@71910 = 041100100c0000bd</action>
        <action>maincpu.mq@71918 = 6604061100100c00</action>
        <action>maincpu.mq@71920 = 00ef66061c111e10</action>
        <action>maincpu.mq@71928 = 600c0c0000df660a</action>
        <action>maincpu.mq@71930 = 42061e3c00ff4eb8</action>
        <action>maincpu.mq@71938 = 347e609effffffff</action>
        <!--
        718d0 | 41f9 0010 1000 : lea    $101000.l,A0 // $101000 : sound code address
        718d6 | 43e8 0001      : lea    ($1,A0),A1   // $101001 : bank number address
        718da | 1200           : move.b D0,D1
        718dc | 1039 0041 4001 : move.b $414001.l,D0 // read input
        718e2 | b200           : cmp.b  D0,D1
        718e4 | 67f4           : beq    $718da
        718e6 | 0c00 00fe      : cmpi.b #-$2,D0
        718ea | 6602           : bne    $718ee
        718ec | 5310           : subq.b #1,(A0)      // decrease code -01
        718ee | 0c00 00fd      : cmpi.b #-$3,D0
        718f2 | 6602           : bne    $718f6
        718f4 | 5210           : addq.b #1,(A0)      // increase code +01
        718f6 | 0c00 00f7      : cmpi.b #-$9,D0
        718fa | 6604           : bne    $71900
        718fc | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        71900 | 0c00 00fb      : cmpi.b #-$5,D0
        71904 | 6604           : bne    $7190a
        71906 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        7190a | 0c00 00be      : cmpi.b #-$42,D0
        7190e | 6604           : bne    $71914
        71910 | 0411 0010      : subi.b #$10,(A1)    // decrease bank -10
        71914 | 0c00 00bd      : cmpi.b #-$43,D0
        71918 | 6604           : bne    $7191e
        7191a | 0611 0010      : addi.b #$10,(A1)    // increase bank +10
        7191e | 0c00 00ef      : cmpi.b #-$11,D0
        71922 | 6606           : bne    $7192a
        71924 | 1c11           : move.b (A1),D6      // play sound
        71926 | 1e10           : move.b (A0),D7
        71928 | 600c           : bra    $71936
        7192a | 0c00 00df      : cmpi.b #-$21,D0
        7192e | 660a           : bne    $7193a
        71930 | 4206           : clr.b  D6           // stop sound
        71932 | 1e3c 00ff      : move.b #$ff,D7
        71936 | 4eb8 347e      : jsr    $347e.w      // send sound code
        7193a | 609e           : bra    $718da
        -->
    </script>
    <script state="run">
        <output format="----- martial champion 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 3 + left : decrease bank -10"          line="15" align="center" />
        <output format="button 3 + right : increase bank +10"         line="16" align="center" />
        <output format="button 1 : play sound"                        line="17" align="center" />
        <output format="button 2 : stop sound"                        line="18" align="center" />
        <output format="----------------------------"                 line="19" align="center" />
        <output format="&lt;&lt; bank %2.2X &gt;&gt;"                 line="21" align="center"  >
            <argument>maincpu.pb@101001</argument>
        </output>
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"           line="23" align="center"  >
            <argument>maincpu.pb@101000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@034d8 =             4e75</action>
        <action>maincpu.md@010f4 =         00001f50</action>
        <action>maincpu.mq@718d0 = ffffffffffffffff</action>
        <action>maincpu.mq@718d8 = ffffffffffffffff</action>
        <action>maincpu.mq@718e0 = ffffffffffffffff</action>
        <action>maincpu.mq@718e8 = ffffffffffffffff</action>
        <action>maincpu.mq@718f0 = ffffffffffffffff</action>
        <action>maincpu.mq@718f8 = ffffffffffffffff</action>
        <action>maincpu.mq@71910 = ffffffffffffffff</action>
        <action>maincpu.mq@71918 = ffffffffffffffff</action>
        <action>maincpu.mq@71920 = ffffffffffffffff</action>
        <action>maincpu.mq@71928 = ffffffffffffffff</action>
        <action>maincpu.mq@71930 = ffffffffffffffff</action>
        <action>maincpu.mq@71938 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add "bank" selector (button 3 + left or right key) to access character voice codes.
  • bank : 0x00, code : 0xa1-0xb4 - jin
  • bank : 0x10, code : 0xa1-0xb4 - goldor
  • bank : 0x20, code : 0xa1-0xb4 - racheal
  • bank : 0x30, code : 0xa1-0xb4 - zen
  • bank : 0x40, code : 0xa1-0xb4 - hoi
  • bank : 0x50, code : 0xa1-0xb4 - chaos
  • bank : 0x60, code : 0xa1-0xb4 - mahambah
  • bank : 0x70, code : 0xa1-0xb4 - avu
  • bank : 0x80, code : 0xa1-0xb4 - titi
  • bank : 0x90, code : 0xa1-0xb4 - bobby
  • bank : 0xa0, code : 0xa1-0xb4 - salamander
But character voices are clearly odd. Perhaps due to inaccurate K054539 emulation (https://mametesters.org/view.php?id=7624).

BTW, konami/mystwarr.cpp games have gfx problem after 0.143. It will be impossible to fix via cheat code...
Image
jman

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

[mtlchamp]+ Martial Champion

Post by jman »

mtlchamp.xml

Code: Select all

<!-- Martial Champion (ver EAB) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16C56 = 4EB9000735D86700</action> <!-- throw (air)-->
            <action>maincpu.mq@16F20 = 4EB9000735D86700</action> <!-- throw -->
            <action>maincpu.mq@1771E = 4EB9000735E66400</action> <!-- tenga renken (jin) -->
            <action>maincpu.mq@735D0 = 082D000000FF4E75</action>
            <action>maincpu.mq@735D8 = 61F6670270000240</action>
            <action>maincpu.mq@735E0 = 00204A004E7561E8</action>
            <action>maincpu.mq@735E8 = 023C00FE66060C68</action>
            <action>maincpu.mq@735F0 = 005800A04E75FFFF</action>
            <!--
            735D0 | 082D 0000 00FF : btst    #$0, ($ff,A5)  // flag check routine
            735D6 | 4E75           : rts
            735D8 | 61F6           : bsr     $735d0         // throw
            735DA | 6702           : beq     $735de
            735DC | 7000           : moveq   #$0, D0
            735DE | 0240 0020      : andi.w  #$20, D0
            735E2 | 4A00           : tst.b   D0
            735E4 | 4E75           : rts
            735E6 | 61E8           : bsr     $735d0         // tenga renken (jin)
            735E8 | 023C 00FE      : andi    #$fe, CCR
            735EC | 6606           : bne     $735f4
            735EE | 0C68 0058 00A0 : cmpi.w  #$58, ($a0,A0)
            735F4 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FE</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FE</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01    </action>
        </script>
        <script state="change">
            <!-- 1P off -->
            <action condition="(param band 01) == 00">maincpu.mb@12726 = 62</action> <!-- attack -->
            <action condition="(param band 01) == 00">maincpu.mb@12848 = 62</action> <!-- weapon -->
            <action condition="(param band 01) == 00">maincpu.mb@12D8C = 62</action> <!-- guard -->
            <action condition="(param band 01) == 00">maincpu.mb@133CC = 64</action> <!-- firearms -->
            <!-- 2P off -->
            <action condition="(param band 02) == 00">maincpu.mb@1224C = 62</action> <!-- attack -->
            <action condition="(param band 02) == 00">maincpu.mb@12A70 = 62</action> <!-- weapon -->
            <action condition="(param band 02) == 00">maincpu.mb@12FBE = 62</action> <!-- guard -->
            <action condition="(param band 02) == 00">maincpu.mb@132CE = 64</action> <!-- firearms -->
            <!-- 1P on -->
            <action condition="(param band 01) != 00">maincpu.mb@12726 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12848 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12D8C = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@133CC = 60</action>
            <!-- 2P on -->
            <action condition="(param band 02) != 00">maincpu.mb@1224C = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12A70 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12FBE = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@132CE = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@16C56 = 024000204A006700</action>
            <action>maincpu.mq@16F20 = 024000204A006700</action>
            <action>maincpu.mq@1771E = 0C68005800A06400</action>
            <action>maincpu.mq@735D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@12726 = 62              </action>
            <action>maincpu.mb@12848 = 62              </action>
            <action>maincpu.mb@12D8C = 62              </action>
            <action>maincpu.mb@133CC = 64              </action>
            <action>maincpu.mb@1224C = 62              </action>
            <action>maincpu.mb@12A70 = 62              </action>
            <action>maincpu.mb@12FBE = 62              </action>
            <action>maincpu.mb@132CE = 64              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@167A0 = 4EB9000736004E71</action>
            <action>maincpu.mq@73600 = 1028003508280001</action>
            <action>maincpu.mq@73608 = 00FF67041028001E</action>
            <action>maincpu.mq@73610 = 024000704E75FFFF</action>
            <!--
            73600 | 1028 0035      : move.b  ($35,A0), D0
            73604 | 0828 0001 00FF : btst    #$1, ($ff,A0)
            7360A | 6704           : beq     $73610
            7360C | 1028 001E      : move.b  ($1e,A0), D0
            73610 | 0240 0070      : andi.w  #$70, D0
            73614 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FD</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FD</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@167A0 = 1028003502400070</action>
            <action>maincpu.mq@73600 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73608 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73610 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@087FA = 4EB9000736204E71</action>
            <action>maincpu.mq@73620 = 52020828000200FF</action>
            <action>maincpu.mq@73628 = 670C12360006B202</action>
            <action>maincpu.mq@73630 = 630453011401B436</action>
            <action>maincpu.mq@73638 = 00064E75FFFFFFFF</action>
            <!--
            73620 | 5202           : addq.b  #1, D2
            73622 | 0828 0002 00FF : btst    #$2, ($ff,A0)
            73628 | 670C           : beq     $73636
            7362A | 1236 0006      : move.b  ($6,A6,D0.w), D1
            7362E | B202           : cmp.b   D2, D1
            73630 | 6304           : bls     $73636
            73632 | 5301           : subq.b  #1, D1
            73634 | 1401           : move.b  D1, D2
            73636 | B436 0006      : cmp.b   ($6,A6,D0.w), D2
            7363A | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FB</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FB</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@087FA = 06020001B4360006</action>
            <action>maincpu.mq@73620 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73628 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73630 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73638 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
            <action>maincpu.mb@0143AF = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@105833 = 27</action>
            <action>maincpu.mb@0143AF = 27</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <!-- selectable salamander in character selection screen -->
        <script state="on">
            <action>maincpu.mb@C4C7 =  B</action>
            <action>maincpu.mb@C4D7 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C4C7 = 0A</action>
            <action>maincpu.mb@C4D7 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!--
         character voices
          bank : 0x00, code : 0xa1-0xb4 - jin
          bank : 0x10, code : 0xa1-0xb4 - goldor
          bank : 0x20, code : 0xa1-0xb4 - racheal
          bank : 0x30, code : 0xa1-0xb4 - zen
          bank : 0x40, code : 0xa1-0xb4 - hoi
          bank : 0x50, code : 0xa1-0xb4 - chaos
          bank : 0x60, code : 0xa1-0xb4 - mahambah
          bank : 0x70, code : 0xa1-0xb4 - avu
          bank : 0x80, code : 0xa1-0xb4 - titi
          bank : 0x90, code : 0xa1-0xb4 - bobby
          bank : 0xa0, code : 0xa1-0xb4 - salamander
        -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@034D8 = 4E71            </action> <!-- enable sound code check -->
            <action>maincpu.md@010F4 = 00073640        </action>
            <action>maincpu.mq@73640 = 41F90010000043E8</action>
            <action>maincpu.mq@73648 = 0001120010390041</action>
            <action>maincpu.mq@73650 = 4001B20067F40C00</action>
            <action>maincpu.mq@73658 = 00FE660253100C00</action>
            <action>maincpu.mq@73660 = 00FD660252100C00</action>
            <action>maincpu.mq@73668 = 00F7660404100010</action>
            <action>maincpu.mq@73670 = 0C0000FB66040610</action>
            <action>maincpu.mq@73678 = 00100C0000BE6604</action>
            <action>maincpu.mq@73680 = 041100100C0000BD</action>
            <action>maincpu.mq@73688 = 6604061100100C00</action>
            <action>maincpu.mq@73690 = 00EF66061C111E10</action>
            <action>maincpu.mq@73698 = 600C0C0000DF660A</action>
            <action>maincpu.mq@736A0 = 42061E3C00FF4EB8</action>
            <action>maincpu.mq@736A8 = 347E609EFFFFFFFF</action>
            <!--
            73640 | 41F9 0010 0000 : lea     $100000.l, A0 // sound code address
            73646 | 43E8 0001      : lea     ($1,A0), A1   // bank number address ($100001)
            7364A | 1200           : move.b  D0, D1
            7364C | 1039 0041 4001 : move.b  $414001.l, D0 // read input
            73652 | B200           : cmp.b   D0, D1
            73654 | 67F4           : beq     $7364a
            73656 | 0C00 00FE      : cmpi.b  #-$2, D0
            7365A | 6602           : bne     $7365e
            7365C | 5310           : subq.b  #1, (A0)      // decrease code -01
            7365E | 0C00 00FD      : cmpi.b  #-$3, D0
            73662 | 6602           : bne     $73666
            73664 | 5210           : addq.b  #1, (A0)      // increase code +01
            73666 | 0C00 00F7      : cmpi.b  #-$9, D0
            7366A | 6604           : bne     $73670
            7366C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            73670 | 0C00 00FB      : cmpi.b  #-$5, D0
            73674 | 6604           : bne     $7367a
            73676 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            7367A | 0C00 00BE      : cmpi.b  #-$42, D0
            7367E | 6604           : bne     $73684
            73680 | 0411 0010      : subi.b  #$10, (A1)    // decrease bank -10
            73684 | 0C00 00BD      : cmpi.b  #-$43, D0
            73688 | 6604           : bne     $7368e
            7368A | 0611 0010      : addi.b  #$10, (A1)    // increase bank +10
            7368E | 0C00 00EF      : cmpi.b  #-$11, D0
            73692 | 6606           : bne     $7369a
            73694 | 1C11           : move.b  (A1), D6      // play sound
            73696 | 1E10           : move.b  (A0), D7
            73698 | 600C           : bra     $736a6
            7369A | 0C00 00DF      : cmpi.b  #-$21, D0
            7369E | 660A           : bne     $736aa
            736A0 | 4206           : clr.b   D6            // stop sound
            736A2 | 1E3C 00FF      : move.b  #$ff, D7
            736A6 | 4EB8 347E      : jsr     $347e.w       // send sound code
            736AA | 609E           : bra     $7364a
            -->
        </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 3 + left : decrease bank -10"  line="15" align="center" />
            <output format="button 3 + right : increase bank +10" line="16" align="center" />
            <output format="button 1 : play sound"                line="17" align="center" />
            <output format="button 2 : stop sound"                line="18" align="center" />
            <output format="----------------------------"         line="19" align="center" />
            <output format="&lt;&lt; bank %02X &gt;&gt;"          line="21" align="center"  >
                <argument>maincpu.pb@100001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"    line="23" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@034D8 = 4E75            </action>
            <action>maincpu.md@010F4 = 00001F50        </action>
            <action>maincpu.mq@73640 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73648 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73650 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73658 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73660 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73668 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73678 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73680 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73688 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73698 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@736A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@736A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mq@35B8 = 4EF90000107A103C</action>
        </script>
        <script state="off">
            <action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
        </script>
    </cheat>

</mamecheat>
mtlchamp1.xml

Code: Select all

<!-- Martial Champion (ver EAA) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16A54 = 4EB9000702086700</action> <!-- throw (air)-->
            <action>maincpu.mq@16D1E = 4EB9000702086700</action> <!-- throw -->
            <action>maincpu.mq@1751C = 4EB9000702166400</action> <!-- tenga renken (jin) -->
            <action>maincpu.mq@70200 = 082D000000FF4E75</action>
            <action>maincpu.mq@70208 = 61F6670270000240</action>
            <action>maincpu.mq@70210 = 00204A004E7561E8</action>
            <action>maincpu.mq@70218 = 023C00FE66060C68</action>
            <action>maincpu.mq@70220 = 005800A04E75FFFF</action>
            <!--
            70200 | 082D 0000 00FF : btst    #$0, ($ff,A5)  // flag check routine
            70206 | 4E75           : rts
            70208 | 61F6           : bsr     $70200         // throw
            7020A | 6702           : beq     $7020e
            7020C | 7000           : moveq   #$0, D0
            7020E | 0240 0020      : andi.w  #$20, D0
            70212 | 4A00           : tst.b   D0
            70214 | 4E75           : rts
            70216 | 61E8           : bsr     $70200         // tenga renken (jin)
            70218 | 023C 00FE      : andi    #$fe, CCR
            7021C | 6606           : bne     $70224
            7021E | 0C68 0058 00A0 : cmpi.w  #$58, ($a0,A0)
            70224 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FE</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FE</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01    </action>
        </script>
        <script state="change">
            <!-- 1P off -->
            <action condition="(param band 01) == 00">maincpu.mb@12524 = 62</action> <!-- attack -->
            <action condition="(param band 01) == 00">maincpu.mb@12646 = 62</action> <!-- weapon -->
            <action condition="(param band 01) == 00">maincpu.mb@12B8A = 62</action> <!-- guard -->
            <action condition="(param band 01) == 00">maincpu.mb@131CA = 64</action> <!-- firearms -->
            <!-- 2P off -->
            <action condition="(param band 02) == 00">maincpu.mb@1204A = 62</action> <!-- attack -->
            <action condition="(param band 02) == 00">maincpu.mb@1286E = 62</action> <!-- weapon -->
            <action condition="(param band 02) == 00">maincpu.mb@12DBC = 62</action> <!-- guard -->
            <action condition="(param band 02) == 00">maincpu.mb@130CC = 64</action> <!-- firearms -->
            <!-- 1P on -->
            <action condition="(param band 01) != 00">maincpu.mb@12524 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12646 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12B8A = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@131CA = 60</action>
            <!-- 2P on -->
            <action condition="(param band 02) != 00">maincpu.mb@1204A = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@1286E = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12DBC = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@130CC = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@16A54 = 024000204A006700</action>
            <action>maincpu.mq@16D1E = 024000204A006700</action>
            <action>maincpu.mq@1751C = 0C68005800A06400</action>
            <action>maincpu.mq@70200 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70208 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70210 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70218 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70220 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@12524 = 62              </action>
            <action>maincpu.mb@12646 = 62              </action>
            <action>maincpu.mb@12B8A = 62              </action>
            <action>maincpu.mb@131CA = 64              </action>
            <action>maincpu.mb@1204A = 62              </action>
            <action>maincpu.mb@1286E = 62              </action>
            <action>maincpu.mb@12DBC = 62              </action>
            <action>maincpu.mb@130CC = 64              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@1659E = 4EB9000702304E71</action>
            <action>maincpu.mq@70230 = 1028003508280001</action>
            <action>maincpu.mq@70238 = 00FF67041028001E</action>
            <action>maincpu.mq@70240 = 024000704E75FFFF</action>
            <!--
            70230 | 1028 0035      : move.b  ($35,A0), D0
            70234 | 0828 0001 00FF : btst    #$1, ($ff,A0)
            7023A | 6704           : beq     $70240
            7023C | 1028 001E      : move.b  ($1e,A0), D0
            70240 | 0240 0070      : andi.w  #$70, D0
            70244 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FD</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FD</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@1659E = 1028003502400070</action>
            <action>maincpu.mq@70230 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70238 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70240 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@087AE = 4EB9000702504E71</action>
            <action>maincpu.mq@70250 = 52020828000200FF</action>
            <action>maincpu.mq@70258 = 670C12360006B202</action>
            <action>maincpu.mq@70260 = 630453011401B436</action>
            <action>maincpu.mq@70268 = 00064E75FFFFFFFF</action>
            <!--
            70250 | 5202           : addq.b  #1, D2
            70252 | 0828 0002 00FF : btst    #$2, ($ff,A0)
            70258 | 670C           : beq     $70266
            7025A | 1236 0006      : move.b  ($6,A6,D0.w), D1
            7025E | B202           : cmp.b   D2, D1
            70260 | 6304           : bls     $70266
            70262 | 5301           : subq.b  #1, D1
            70264 | 1401           : move.b  D1, D2
            70266 | B436 0006      : cmp.b   ($6,A6,D0.w), D2
            7026A | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FB</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FB</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@087AE = 06020001B4360006</action>
            <action>maincpu.mq@70250 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70258 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70260 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70268 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
            <action>maincpu.mb@0141AD = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@105833 = 27</action>
            <action>maincpu.mb@0141AD = 27</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <!-- selectable salamander in character selection screen -->
        <script state="on">
            <action>maincpu.mb@C501 =  B</action>
            <action>maincpu.mb@C511 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C501 = 0A</action>
            <action>maincpu.mb@C511 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!--
         character voices
          bank : 0x00, code : 0xa1-0xb4 - jin
          bank : 0x10, code : 0xa1-0xb4 - goldor
          bank : 0x20, code : 0xa1-0xb4 - racheal
          bank : 0x30, code : 0xa1-0xb4 - zen
          bank : 0x40, code : 0xa1-0xb4 - hoi
          bank : 0x50, code : 0xa1-0xb4 - chaos
          bank : 0x60, code : 0xa1-0xb4 - mahambah
          bank : 0x70, code : 0xa1-0xb4 - avu
          bank : 0x80, code : 0xa1-0xb4 - titi
          bank : 0x90, code : 0xa1-0xb4 - bobby
          bank : 0xa0, code : 0xa1-0xb4 - salamander
        -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@034D8 = 4E71            </action> <!-- enable sound code check -->
            <action>maincpu.md@010F4 = 00070270        </action>
            <action>maincpu.mq@70270 = 41F90010000043E8</action>
            <action>maincpu.mq@70278 = 0001120010390041</action>
            <action>maincpu.mq@70280 = 4001B20067F40C00</action>
            <action>maincpu.mq@70288 = 00FE660253100C00</action>
            <action>maincpu.mq@70290 = 00FD660252100C00</action>
            <action>maincpu.mq@70298 = 00F7660404100010</action>
            <action>maincpu.mq@702A0 = 0C0000FB66040610</action>
            <action>maincpu.mq@702A8 = 00100C0000BE6604</action>
            <action>maincpu.mq@702B0 = 041100100C0000BD</action>
            <action>maincpu.mq@702B8 = 6604061100100C00</action>
            <action>maincpu.mq@702C0 = 00EF66061C111E10</action>
            <action>maincpu.mq@702C8 = 600C0C0000DF660A</action>
            <action>maincpu.mq@702D0 = 42061E3C00FF4EB8</action>
            <action>maincpu.mq@702D8 = 347E609EFFFFFFFF</action>
            <!--
            70270 | 41F9 0010 0000 : lea     $100000.l, A0 // sound code address
            70276 | 43E8 0001      : lea     ($1,A0), A1   // bank number address ($100001)
            7027A | 1200           : move.b  D0, D1
            7027C | 1039 0041 4001 : move.b  $414001.l, D0 // read input
            70282 | B200           : cmp.b   D0, D1
            70284 | 67F4           : beq     $718ba
            70286 | 0C00 00FE      : cmpi.b  #-$2, D0
            7028A | 6602           : bne     $718ce
            7028C | 5310           : subq.b  #1, (A0)      // decrease code -01
            7028E | 0C00 00FD      : cmpi.b  #-$3, D0
            70292 | 6602           : bne     $718d6
            70294 | 5210           : addq.b  #1, (A0)      // increase code +01
            70296 | 0C00 00F7      : cmpi.b  #-$9, D0
            7029A | 6604           : bne     $718e0
            7029C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            702A0 | 0C00 00FB      : cmpi.b  #-$5, D0
            702A4 | 6604           : bne     $718ea
            702A6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            702AA | 0C00 00BE      : cmpi.b  #-$42, D0
            702AE | 6604           : bne     $718f4
            702B0 | 0411 0010      : subi.b  #$10, (A1)    // decrease bank -10
            702B4 | 0C00 00BD      : cmpi.b  #-$43, D0
            702B8 | 6604           : bne     $718fe
            702BA | 0611 0010      : addi.b  #$10, (A1)    // increase bank +10
            702BE | 0C00 00EF      : cmpi.b  #-$11, D0
            702C2 | 6606           : bne     $7190a
            702C4 | 1C11           : move.b  (A1), D6      // play sound
            702C6 | 1E10           : move.b  (A0), D7
            702C8 | 600C           : bra     $71916
            702CA | 0C00 00DF      : cmpi.b  #-$21, D0
            702CE | 660A           : bne     $7191a
            702D0 | 4206           : clr.b   D6            // stop sound
            702D2 | 1E3C 00FF      : move.b  #$ff, D7
            702D6 | 4EB8 347E      : jsr     $347e.w       // send sound code
            702DA | 609E           : bra     $718ba
            -->
        </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 3 + left : decrease bank -10"  line="15" align="center" />
            <output format="button 3 + right : increase bank +10" line="16" align="center" />
            <output format="button 1 : play sound"                line="17" align="center" />
            <output format="button 2 : stop sound"                line="18" align="center" />
            <output format="----------------------------"         line="19" align="center" />
            <output format="&lt;&lt; bank %02X &gt;&gt;"          line="21" align="center"  >
                <argument>maincpu.pb@100001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"    line="23" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@034D8 = 4E75            </action>
            <action>maincpu.md@010F4 = 00001F50        </action>
            <action>maincpu.mq@70270 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70278 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70280 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70288 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70290 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70298 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mq@35B8 = 4EF90000107A103C</action>
        </script>
        <script state="off">
            <action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
        </script>
    </cheat>

</mamecheat>
mtlchampu.xml

Code: Select all

<!-- Martial Champion (ver UAE) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16C4A = 4EB9000735C86700</action> <!-- throw (air)-->
            <action>maincpu.mq@16F14 = 4EB9000735C86700</action> <!-- throw -->
            <action>maincpu.mq@17712 = 4EB9000735D66400</action> <!-- tenga renken (jin) -->
            <action>maincpu.mq@735C0 = 082D000000FF4E75</action>
            <action>maincpu.mq@735C8 = 61F6670270000240</action>
            <action>maincpu.mq@735D0 = 00204A004E7561E8</action>
            <action>maincpu.mq@735D8 = 023C00FE66060C68</action>
            <action>maincpu.mq@735E0 = 005800A04E75FFFF</action>
            <!--
            735C0 | 082D 0000 00FF : btst    #$0, ($ff,A5)  // flag check routine
            735C6 | 4E75           : rts
            735C8 | 61F6           : bsr     $735c0         // throw
            735CA | 6702           : beq     $735ce
            735CC | 7000           : moveq   #$0, D0
            735CE | 0240 0020      : andi.w  #$20, D0
            735D2 | 4A00           : tst.b   D0
            735D4 | 4E75           : rts
            735D6 | 61E8           : bsr     $735c0         // tenga renken (jin)
            735D8 | 023C 00FE      : andi    #$fe, CCR
            735DC | 6606           : bne     $735e4
            735DE | 0C68 0058 00A0 : cmpi.w  #$58, ($a0,A0)
            735E4 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FE</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FE</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01    </action>
        </script>
        <script state="change">
            <!-- 1P off -->
            <action condition="(param band 01) == 00">maincpu.mb@1271A = 62</action> <!-- attack -->
            <action condition="(param band 01) == 00">maincpu.mb@1283C = 62</action> <!-- weapon -->
            <action condition="(param band 01) == 00">maincpu.mb@12D80 = 62</action> <!-- guard -->
            <action condition="(param band 01) == 00">maincpu.mb@133C0 = 64</action> <!-- firearms -->
            <!-- 2P off -->
            <action condition="(param band 02) == 00">maincpu.mb@12240 = 62</action> <!-- attack -->
            <action condition="(param band 02) == 00">maincpu.mb@12A64 = 62</action> <!-- weapon -->
            <action condition="(param band 02) == 00">maincpu.mb@12FB2 = 62</action> <!-- guard -->
            <action condition="(param band 02) == 00">maincpu.mb@132C2 = 64</action> <!-- firearms -->
            <!-- 1P on -->
            <action condition="(param band 01) != 00">maincpu.mb@1271A = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@1283C = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12D80 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@133C0 = 60</action>
            <!-- 2P on -->
            <action condition="(param band 02) != 00">maincpu.mb@12240 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12A64 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12FB2 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@132C2 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@16C4A = 024000204A006700</action>
            <action>maincpu.mq@16F14 = 024000204A006700</action>
            <action>maincpu.mq@17712 = 0C68005800A06400</action>
            <action>maincpu.mq@735C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@1271A = 62              </action>
            <action>maincpu.mb@1283C = 62              </action>
            <action>maincpu.mb@12D80 = 62              </action>
            <action>maincpu.mb@133C0 = 64              </action>
            <action>maincpu.mb@12240 = 62              </action>
            <action>maincpu.mb@12A64 = 62              </action>
            <action>maincpu.mb@12FB2 = 62              </action>
            <action>maincpu.mb@132C2 = 64              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16794 = 4EB9000735F04E71</action>
            <action>maincpu.mq@735F0 = 1028003508280001</action>
            <action>maincpu.mq@735F8 = 00FF67041028001E</action>
            <action>maincpu.mq@73600 = 024000704E75FFFF</action>
            <!--
            735F0 | 1028 0035      : move.b  ($35,A0), D0
            735F4 | 0828 0001 00FF : btst    #$1, ($ff,A0)
            735FA | 6704           : beq     $73600
            735FC | 1028 001E      : move.b  ($1e,A0), D0
            73600 | 0240 0070      : andi.w  #$70, D0
            73604 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FD</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FD</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@16794 = 1028003502400070</action>
            <action>maincpu.mq@735F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@735F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73600 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@087F4 = 4EB9000736104E71</action>
            <action>maincpu.mq@73610 = 52020828000200FF</action>
            <action>maincpu.mq@73618 = 670C12360006B202</action>
            <action>maincpu.mq@73620 = 630453011401B436</action>
            <action>maincpu.mq@73628 = 00064E75FFFFFFFF</action>
            <!--
            73610 | 5202           : addq.b  #1, D2
            73612 | 0828 0002 00FF : btst    #$2, ($ff,A0)
            73618 | 670C           : beq     $73626
            7361A | 1236 0006      : move.b  ($6,A6,D0.w), D1
            7361E | B202           : cmp.b   D2, D1
            73620 | 6304           : bls     $73626
            73622 | 5301           : subq.b  #1, D1
            73624 | 1401           : move.b  D1, D2
            73626 | B436 0006      : cmp.b   ($6,A6,D0.w), D2
            7362A | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FB</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FB</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@087F4 = 06020001B4360006</action>
            <action>maincpu.mq@73610 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73618 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73620 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73628 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
            <action>maincpu.mb@0143A3 = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@105833 = 27</action>
            <action>maincpu.mb@0143A3 = 27</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <!-- selectable salamander in chracter selection screen -->
        <script state="on">
            <action>maincpu.mb@C6F7 =  B</action>
            <action>maincpu.mb@C707 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C6F7 = 0A</action>
            <action>maincpu.mb@C707 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!--
         character voices
          bank : 0x00, code : 0xa1-0xb4 - jin
          bank : 0x10, code : 0xa1-0xb4 - goldor
          bank : 0x20, code : 0xa1-0xb4 - racheal
          bank : 0x30, code : 0xa1-0xb4 - zen
          bank : 0x40, code : 0xa1-0xb4 - hoi
          bank : 0x50, code : 0xa1-0xb4 - chaos
          bank : 0x60, code : 0xa1-0xb4 - mahambah
          bank : 0x70, code : 0xa1-0xb4 - avu
          bank : 0x80, code : 0xa1-0xb4 - titi
          bank : 0x90, code : 0xa1-0xb4 - bobby
          bank : 0xa0, code : 0xa1-0xb4 - salamander
        -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@034D8 = 4E71            </action> <!-- enable sound code check -->
            <action>maincpu.md@010F4 = 00073630        </action>
            <action>maincpu.mq@73630 = 41F90010000043E8</action>
            <action>maincpu.mq@73638 = 0001120010390041</action>
            <action>maincpu.mq@73640 = 4001B20067F40C00</action>
            <action>maincpu.mq@73648 = 00FE660253100C00</action>
            <action>maincpu.mq@73650 = 00FD660252100C00</action>
            <action>maincpu.mq@73658 = 00F7660404100010</action>
            <action>maincpu.mq@73660 = 0C0000FB66040610</action>
            <action>maincpu.mq@73668 = 00100C0000BE6604</action>
            <action>maincpu.mq@73670 = 041100100C0000BD</action>
            <action>maincpu.mq@73678 = 6604061100100C00</action>
            <action>maincpu.mq@73680 = 00EF66061C111E10</action>
            <action>maincpu.mq@73688 = 600C0C0000DF660A</action>
            <action>maincpu.mq@73690 = 42061E3C00FF4EB8</action>
            <action>maincpu.mq@73698 = 347E609EFFFFFFFF</action>
            <!--
            73630 | 41F9 0010 0000 : lea     $100000.l, A0 // sound code address
            73636 | 43E8 0001      : lea     ($1,A0), A1   // bank number address ($100001)
            7363A | 1200           : move.b  D0, D1
            7363C | 1039 0041 4001 : move.b  $414001.l, D0 // read input
            73642 | B200           : cmp.b   D0, D1
            73644 | 67F4           : beq     $7363a
            73646 | 0C00 00FE      : cmpi.b  #-$2, D0
            7364A | 6602           : bne     $7364e
            7364C | 5310           : subq.b  #1, (A0)      // decrease code -01
            7364E | 0C00 00FD      : cmpi.b  #-$3, D0
            73652 | 6602           : bne     $73656
            73654 | 5210           : addq.b  #1, (A0)      // increase code +01
            73656 | 0C00 00F7      : cmpi.b  #-$9, D0
            7365A | 6604           : bne     $73660
            7365C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            73660 | 0C00 00FB      : cmpi.b  #-$5, D0
            73664 | 6604           : bne     $7366a
            73666 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            7366A | 0C00 00BE      : cmpi.b  #-$42, D0
            7366E | 6604           : bne     $73674
            73670 | 0411 0010      : subi.b  #$10, (A1)    // decrease bank -10
            73674 | 0C00 00BD      : cmpi.b  #-$43, D0
            73678 | 6604           : bne     $7367e
            7367A | 0611 0010      : addi.b  #$10, (A1)    // increase bank +10
            7367E | 0C00 00EF      : cmpi.b  #-$11, D0
            73682 | 6606           : bne     $7368a
            73684 | 1C11           : move.b  (A1), D6      // play sound
            73686 | 1E10           : move.b  (A0), D7
            73688 | 600C           : bra     $73696
            7368A | 0C00 00DF      : cmpi.b  #-$21, D0
            7368E | 660A           : bne     $7369a
            73690 | 4206           : clr.b   D6            // stop sound
            73692 | 1E3C 00FF      : move.b  #$ff, D7
            73696 | 4EB8 347E      : jsr     $347e.w       // send sound code
            7369A | 609E           : bra     $7363a
            -->
        </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 3 + left : decrease bank -10"  line="15" align="center" />
            <output format="button 3 + right : increase bank +10" line="16" align="center" />
            <output format="button 1 : play sound"                line="17" align="center" />
            <output format="button 2 : stop sound"                line="18" align="center" />
            <output format="----------------------------"         line="19" align="center" />
            <output format="&lt;&lt; bank %02X &gt;&gt;"          line="21" align="center"  >
                <argument>maincpu.pb@100001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"    line="23" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@034D8 = 4E75            </action>
            <action>maincpu.md@010F4 = 00001F50        </action>
            <action>maincpu.mq@73630 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73638 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73640 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73648 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73650 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73658 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73660 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73668 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73678 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73680 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73688 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@73698 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mq@35B8 = 4EF90000107A103C</action>
        </script>
        <script state="off">
            <action>maincpu.mq@35B8 = 4DF9000035C6103C</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: 1321
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times

[mtlchamp]+ Martial Champion

Post by jman »

mtlchampu1.xml

Code: Select all

<!-- Martial Champion (ver UAD) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16A36 = 4EB9000701F86700</action> <!-- throw (air)-->
            <action>maincpu.mq@16D00 = 4EB9000701F86700</action> <!-- throw -->
            <action>maincpu.mq@174FE = 4EB9000702066400</action> <!-- tenga renken (jin) -->
            <action>maincpu.mq@701F0 = 082D000000FF4E75</action>
            <action>maincpu.mq@701F8 = 61F6670270000240</action>
            <action>maincpu.mq@70200 = 00204A004E7561E8</action>
            <action>maincpu.mq@70208 = 023C00FE66060C68</action>
            <action>maincpu.mq@70210 = 005800A04E75FFFF</action>
            <!--
            701F0 | 082D 0000 00FF : btst    #$0, ($ff,A5)  // flag check routine
            701F6 | 4E75           : rts
            701F8 | 61F6           : bsr     $701f0         // throw
            701FA | 6702           : beq     $701fe
            701FC | 7000           : moveq   #$0, D0
            701FE | 0240 0020      : andi.w  #$20, D0
            70202 | 4A00           : tst.b   D0
            70204 | 4E75           : rts
            70206 | 61E8           : bsr     $701f0         // tenga renken (jin)
            70208 | 023C 00FE      : andi    #$fe, CCR
            7020C | 6606           : bne     $70214
            7020E | 0C68 0058 00A0 : cmpi.w  #$58, ($a0,A0)
            70214 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FE</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FE</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01    </action>
        </script>
        <script state="change">
            <!-- 1P off -->
            <action condition="(param band 01) == 00">maincpu.mb@12506 = 62</action> <!-- attack -->
            <action condition="(param band 01) == 00">maincpu.mb@12628 = 62</action> <!-- weapon -->
            <action condition="(param band 01) == 00">maincpu.mb@12B6C = 62</action> <!-- guard -->
            <action condition="(param band 01) == 00">maincpu.mb@131AC = 64</action> <!-- firearms -->
            <!-- 2P off -->
            <action condition="(param band 02) == 00">maincpu.mb@1202C = 62</action> <!-- attack -->
            <action condition="(param band 02) == 00">maincpu.mb@12850 = 62</action> <!-- weapon -->
            <action condition="(param band 02) == 00">maincpu.mb@12D9E = 62</action> <!-- guard -->
            <action condition="(param band 02) == 00">maincpu.mb@130AE = 64</action> <!-- firearms -->
            <!-- 1P on -->
            <action condition="(param band 01) != 00">maincpu.mb@12506 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12628 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12B6C = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@131AC = 60</action>
            <!-- 2P on -->
            <action condition="(param band 02) != 00">maincpu.mb@1202C = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12850 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12D9E = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@130AE = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@16A36 = 024000204A006700</action>
            <action>maincpu.mq@16D00 = 024000204A006700</action>
            <action>maincpu.mq@174FE = 0C68005800A06400</action>
            <action>maincpu.mq@701F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@701F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70200 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70208 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70210 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@12506 = 62              </action>
            <action>maincpu.mb@12628 = 62              </action>
            <action>maincpu.mb@12B6C = 62              </action>
            <action>maincpu.mb@131AC = 64              </action>
            <action>maincpu.mb@1202C = 62              </action>
            <action>maincpu.mb@12850 = 62              </action>
            <action>maincpu.mb@12D9E = 62              </action>
            <action>maincpu.mb@130AE = 64              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16580 = 4EB9000702204E71</action>
            <action>maincpu.mq@70220 = 1028003508280001</action>
            <action>maincpu.mq@70228 = 00FF67041028001E</action>
            <action>maincpu.mq@70230 = 024000704E75FFFF</action>
            <!--
            70220 | 1028 0035      : move.b  ($35,A0), D0
            70224 | 0828 0001 00FF : btst    #$1, ($ff,A0)
            7022A | 6704           : beq     $70230
            7022C | 1028 001E      : move.b  ($1e,A0), D0
            70230 | 0240 0070      : andi.w  #$70, D0
            70234 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FD</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FD</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@16580 = 1028003502400070</action>
            <action>maincpu.mq@70220 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70228 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70230 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@08796 = 4EB9000702404E71</action>
            <action>maincpu.mq@70240 = 52020828000200FF</action>
            <action>maincpu.mq@70248 = 670C12360006B202</action>
            <action>maincpu.mq@70250 = 630453011401B436</action>
            <action>maincpu.mq@70258 = 00064E75FFFFFFFF</action>
            <!--
            70240 | 5202           : addq.b  #1, D2
            70242 | 0828 0002 00FF : btst    #$2, ($ff,A0)
            70248 | 670C           : beq     $70256
            7024A | 1236 0006      : move.b  ($6,A6,D0.w), D1
            7024E | B202           : cmp.b   D2, D1
            70250 | 6304           : bls     $70256
            70252 | 5301           : subq.b  #1, D1
            70254 | 1401           : move.b  D1, D2
            70256 | B436 0006      : cmp.b   ($6,A6,D0.w), D2
            7025A | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FB</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FB</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@08784 = 06020001B4360006</action>
            <action>maincpu.mq@71890 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71898 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
            <action>maincpu.mb@01418F = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@105833 = 27</action>
            <action>maincpu.mb@01418F = 27</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <!-- selectable salamander in character selection screen -->
        <script state="on">
            <action>maincpu.mb@C4E3 =  B</action>
            <action>maincpu.mb@C4F3 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C4E3 = 0A</action>
            <action>maincpu.mb@C4F3 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!--
         character voices
          bank : 0x00, code : 0xa1-0xb4 - jin
          bank : 0x10, code : 0xa1-0xb4 - goldor
          bank : 0x20, code : 0xa1-0xb4 - racheal
          bank : 0x30, code : 0xa1-0xb4 - zen
          bank : 0x40, code : 0xa1-0xb4 - hoi
          bank : 0x50, code : 0xa1-0xb4 - chaos
          bank : 0x60, code : 0xa1-0xb4 - mahambah
          bank : 0x70, code : 0xa1-0xb4 - avu
          bank : 0x80, code : 0xa1-0xb4 - titi
          bank : 0x90, code : 0xa1-0xb4 - bobby
          bank : 0xa0, code : 0xa1-0xb4 - salamander
        -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@034D8 = 4E71            </action> <!-- enable sound code check -->
            <action>maincpu.md@010F4 = 00070260        </action>
            <action>maincpu.mq@70260 = 41F90010000043E8</action>
            <action>maincpu.mq@70268 = 0001120010390041</action>
            <action>maincpu.mq@70270 = 4001B20067F40C00</action>
            <action>maincpu.mq@70278 = 00FE660253100C00</action>
            <action>maincpu.mq@70280 = 00FD660252100C00</action>
            <action>maincpu.mq@70288 = 00F7660404100010</action>
            <action>maincpu.mq@70290 = 0C0000FB66040610</action>
            <action>maincpu.mq@70298 = 00100C0000BE6604</action>
            <action>maincpu.mq@702A0 = 041100100C0000BD</action>
            <action>maincpu.mq@702A8 = 6604061100100C00</action>
            <action>maincpu.mq@702B0 = 00EF66061C111E10</action>
            <action>maincpu.mq@702B8 = 600C0C0000DF660A</action>
            <action>maincpu.mq@702C0 = 42061E3C00FF4EB8</action>
            <action>maincpu.mq@702C8 = 347E609EFFFFFFFF</action>
            <!--
            70260 | 41F9 0010 0000 : lea     $100000.l, A0 // sound code address
            70266 | 43E8 0001      : lea     ($1,A0), A1   // bank number address ($100001)
            7026A | 1200           : move.b  D0, D1
            7026C | 1039 0041 4001 : move.b  $414001.l, D0 // read input
            70272 | B200           : cmp.b   D0, D1
            70274 | 67F4           : beq     $7026a
            70276 | 0C00 00FE      : cmpi.b  #-$2, D0
            7027A | 6602           : bne     $7027e
            7027C | 5310           : subq.b  #1, (A0)      // decrease code -01
            7027E | 0C00 00FD      : cmpi.b  #-$3, D0
            70282 | 6602           : bne     $70286
            70284 | 5210           : addq.b  #1, (A0)      // increase code +01
            70286 | 0C00 00F7      : cmpi.b  #-$9, D0
            7028A | 6604           : bne     $70290
            7028C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            70290 | 0C00 00FB      : cmpi.b  #-$5, D0
            70294 | 6604           : bne     $7029a
            70296 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            7029A | 0C00 00BE      : cmpi.b  #-$42, D0
            7029E | 6604           : bne     $702a4
            702A0 | 0411 0010      : subi.b  #$10, (A1)    // decrease bank -10
            702A4 | 0C00 00BD      : cmpi.b  #-$43, D0
            702A8 | 6604           : bne     $702ae
            702AA | 0611 0010      : addi.b  #$10, (A1)    // increase bank +10
            702AE | 0C00 00EF      : cmpi.b  #-$11, D0
            702B2 | 6606           : bne     $702ba
            702B4 | 1C11           : move.b  (A1), D6      // play sound
            702B6 | 1E10           : move.b  (A0), D7
            702B8 | 600C           : bra     $702c6
            702BA | 0C00 00DF      : cmpi.b  #-$21, D0
            702BE | 660A           : bne     $702ca
            702C0 | 4206           : clr.b   D6            // stop sound
            702C2 | 1E3C 00FF      : move.b  #$ff, D7
            702C6 | 4EB8 347E      : jsr     $347e.w       // send sound code
            702CA | 609E           : bra     $7026a
            -->
        </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 3 + left : decrease bank -10"  line="15" align="center" />
            <output format="button 3 + right : increase bank +10" line="16" align="center" />
            <output format="button 1 : play sound"                line="17" align="center" />
            <output format="button 2 : stop sound"                line="18" align="center" />
            <output format="----------------------------"         line="19" align="center" />
            <output format="&lt;&lt; bank %02X &gt;&gt;"          line="21" align="center"  >
                <argument>maincpu.pb@100001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"    line="23" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@034D8 = 4E75            </action>
            <action>maincpu.md@010F4 = 00001F50        </action>
            <action>maincpu.mq@70260 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70268 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70270 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70278 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70280 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70288 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70290 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70298 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mq@35B8 = 4EF90000107A103C</action>
        </script>
        <script state="off">
            <action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
        </script>
    </cheat>

</mamecheat>
mtlchampj.xml

Code: Select all

<!-- Martial Champion (ver JAA) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@169FA = 4EB9000718486700</action> <!-- throw (air)-->
            <action>maincpu.mq@16CC4 = 4EB9000718486700</action> <!-- throw -->
            <action>maincpu.mq@174C2 = 4EB9000718566400</action> <!-- tenga renken (jin) -->
            <action>maincpu.mq@71840 = 082D000000FF4E75</action>
            <action>maincpu.mq@71848 = 61F6670270000240</action>
            <action>maincpu.mq@71850 = 00204A004E7561E8</action>
            <action>maincpu.mq@71858 = 023C00FE66060C68</action>
            <action>maincpu.mq@71860 = 005800A04E75FFFF</action>
            <!--
            71840 | 082D 0000 00FF : btst    #$0, ($ff,A5)  // flag check routine
            71846 | 4E75           : rts
            71848 | 61F6           : bsr     $71840         // throw
            7184A | 6702           : beq     $7184e
            7184C | 7000           : moveq   #$0, D0
            7184E | 0240 0020      : andi.w  #$20, D0
            71852 | 4A00           : tst.b   D0
            71854 | 4E75           : rts
            71856 | 61E8           : bsr     $71840         // tenga renken (jin)
            71858 | 023C 00FE      : andi    #$fe, CCR
            7185C | 6606           : bne     $71864
            7185E | 0C68 0058 00A0 : cmpi.w  #$58, ($a0,A0)
            71864 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FE</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FE</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01    </action>
        </script>
        <script state="change">
            <!-- 1P off -->
            <action condition="(param band 01) == 00">maincpu.mb@124CA = 62</action> <!-- attack -->
            <action condition="(param band 01) == 00">maincpu.mb@125EC = 62</action> <!-- weapon -->
            <action condition="(param band 01) == 00">maincpu.mb@12B30 = 62</action> <!-- guard -->
            <action condition="(param band 01) == 00">maincpu.mb@13170 = 64</action> <!-- firearms -->
            <!-- 2P off -->
            <action condition="(param band 02) == 00">maincpu.mb@11FF0 = 62</action> <!-- attack -->
            <action condition="(param band 02) == 00">maincpu.mb@12814 = 62</action> <!-- weapon -->
            <action condition="(param band 02) == 00">maincpu.mb@12D62 = 62</action> <!-- guard -->
            <action condition="(param band 02) == 00">maincpu.mb@13072 = 64</action> <!-- firearms -->
            <!-- 1P on -->
            <action condition="(param band 01) != 00">maincpu.mb@124CA = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@125EC = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12B30 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@13170 = 60</action>
            <!-- 2P on -->
            <action condition="(param band 02) != 00">maincpu.mb@11FF0 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12814 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12D62 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@13072 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@169FA = 024000204A006700</action>
            <action>maincpu.mq@16CC4 = 024000204A006700</action>
            <action>maincpu.mq@174C2 = 0C68005800A06400</action>
            <action>maincpu.mq@71840 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71848 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71850 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71858 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71860 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@124CA = 62              </action>
            <action>maincpu.mb@125EC = 62              </action>
            <action>maincpu.mb@12B30 = 62              </action>
            <action>maincpu.mb@13170 = 64              </action>
            <action>maincpu.mb@11FF0 = 62              </action>
            <action>maincpu.mb@12814 = 62              </action>
            <action>maincpu.mb@12D62 = 62              </action>
            <action>maincpu.mb@13072 = 64              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16544 = 4EB9000718704E71</action>
            <action>maincpu.mq@71870 = 1028003508280001</action>
            <action>maincpu.mq@71878 = 00FF67041028001E</action>
            <action>maincpu.mq@71880 = 024000704E75FFFF</action>
            <!--
            71870 | 1028 0035      : move.b  ($35,A0), D0
            71874 | 0828 0001 00FF : btst    #$1, ($ff,A0)
            7187A | 6704           : beq     $71880
            7187C | 1028 001E      : move.b  ($1e,A0), D0
            71880 | 0240 0070      : andi.w  #$70, D0
            71884 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FD</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FD</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@16544 = 1028003502400070</action>
            <action>maincpu.mq@71870 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71878 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71880 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@08784 = 4EB9000718904E71</action>
            <action>maincpu.mq@71890 = 52020828000200FF</action>
            <action>maincpu.mq@71898 = 670C12360006B202</action>
            <action>maincpu.mq@718A0 = 630453011401B436</action>
            <action>maincpu.mq@718A8 = 00064E75FFFFFFFF</action>
            <!--
            71890 | 5202           : addq.b  #1, D2
            71892 | 0828 0002 00FF : btst    #$2, ($ff,A0)
            71898 | 670C           : beq     $718a6
            7189A | 1236 0006      : move.b  ($6,A6,D0.w), D1
            7189E | B202           : cmp.b   D2, D1
            718A0 | 6304           : bls     $718a6
            718A2 | 5301           : subq.b  #1, D1
            718A4 | 1401           : move.b  D1, D2
            718A6 | B436 0006      : cmp.b   ($6,A6,D0.w), D2
            718AA | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FB</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FB</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@08784 = 06020001B4360006</action>
            <action>maincpu.mq@71890 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71898 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
            <action>maincpu.mb@014153 = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@105833 = 27</action>
            <action>maincpu.mb@014153 = 27</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <!-- selectable salamander in character selection screen -->
        <script state="on">
            <action>maincpu.mb@C4C7 =  B</action>
            <action>maincpu.mb@C4D7 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C4C7 = 0A</action>
            <action>maincpu.mb@C4D7 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!--
         character voices
          bank : 0x00, code : 0xa1-0xb4 - jin
          bank : 0x10, code : 0xa1-0xb4 - goldor
          bank : 0x20, code : 0xa1-0xb4 - racheal
          bank : 0x30, code : 0xa1-0xb4 - zen
          bank : 0x40, code : 0xa1-0xb4 - hoi
          bank : 0x50, code : 0xa1-0xb4 - chaos
          bank : 0x60, code : 0xa1-0xb4 - mahambah
          bank : 0x70, code : 0xa1-0xb4 - avu
          bank : 0x80, code : 0xa1-0xb4 - titi
          bank : 0x90, code : 0xa1-0xb4 - bobby
          bank : 0xa0, code : 0xa1-0xb4 - salamander
        -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@034D8 = 4E71            </action> <!-- enable sound code check -->
            <action>maincpu.md@010F4 = 000718B0        </action>
            <action>maincpu.mq@718B0 = 41F90010000043E8</action>
            <action>maincpu.mq@718B8 = 0001120010390041</action>
            <action>maincpu.mq@718C0 = 4001B20067F40C00</action>
            <action>maincpu.mq@718C8 = 00FE660253100C00</action>
            <action>maincpu.mq@718D0 = 00FD660252100C00</action>
            <action>maincpu.mq@718D8 = 00F7660404100010</action>
            <action>maincpu.mq@718E0 = 0C0000FB66040610</action>
            <action>maincpu.mq@718E8 = 00100C0000BE6604</action>
            <action>maincpu.mq@718F0 = 041100100C0000BD</action>
            <action>maincpu.mq@718F8 = 6604061100100C00</action>
            <action>maincpu.mq@71900 = 00EF66061C111E10</action>
            <action>maincpu.mq@71908 = 600C0C0000DF660A</action>
            <action>maincpu.mq@71910 = 42061E3C00FF4EB8</action>
            <action>maincpu.mq@71918 = 347E609EFFFFFFFF</action>
            <!--
            718B0 | 41F9 0010 0000 : lea     $100000.l, A0 // sound code address
            718B6 | 43E8 0001      : lea     ($1,A0), A1   // bank number address ($100001)
            718BA | 1200           : move.b  D0, D1
            718BC | 1039 0041 4001 : move.b  $414001.l, D0 // read input
            718C2 | B200           : cmp.b   D0, D1
            718C4 | 67F4           : beq     $718ba
            718C6 | 0C00 00FE      : cmpi.b  #-$2, D0
            718CA | 6602           : bne     $718ce
            718CC | 5310           : subq.b  #1, (A0)      // decrease code -01
            718CE | 0C00 00FD      : cmpi.b  #-$3, D0
            718D2 | 6602           : bne     $718d6
            718D4 | 5210           : addq.b  #1, (A0)      // increase code +01
            718D6 | 0C00 00F7      : cmpi.b  #-$9, D0
            718DA | 6604           : bne     $718e0
            718DC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            718E0 | 0C00 00FB      : cmpi.b  #-$5, D0
            718E4 | 6604           : bne     $718ea
            718E6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            718EA | 0C00 00BE      : cmpi.b  #-$42, D0
            718EE | 6604           : bne     $718f4
            718F0 | 0411 0010      : subi.b  #$10, (A1)    // decrease bank -10
            718F4 | 0C00 00BD      : cmpi.b  #-$43, D0
            718F8 | 6604           : bne     $718fe
            718FA | 0611 0010      : addi.b  #$10, (A1)    // increase bank +10
            718FE | 0C00 00EF      : cmpi.b  #-$11, D0
            71902 | 6606           : bne     $7190a
            71904 | 1C11           : move.b  (A1), D6      // play sound
            71906 | 1E10           : move.b  (A0), D7
            71908 | 600C           : bra     $71916
            7190A | 0C00 00DF      : cmpi.b  #-$21, D0
            7190E | 660A           : bne     $7191a
            71910 | 4206           : clr.b   D6            // stop sound
            71912 | 1E3C 00FF      : move.b  #$ff, D7
            71916 | 4EB8 347E      : jsr     $347e.w       // send sound code
            7191A | 609E           : bra     $718ba
            -->
        </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 3 + left : decrease bank -10"  line="15" align="center" />
            <output format="button 3 + right : increase bank +10" line="16" align="center" />
            <output format="button 1 : play sound"                line="17" align="center" />
            <output format="button 2 : stop sound"                line="18" align="center" />
            <output format="----------------------------"         line="19" align="center" />
            <output format="&lt;&lt; bank %02X &gt;&gt;"          line="21" align="center"  >
                <argument>maincpu.pb@100001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"    line="23" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@034D8 = 4E75            </action>
            <action>maincpu.md@010F4 = 00001F50        </action>
            <action>maincpu.mq@718B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@718F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71900 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71908 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71910 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@71918 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mq@35B8 = 4EF90000107A103C</action>
        </script>
        <script state="off">
            <action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
        </script>
    </cheat>

<!--
    <cheat desc="easy moves (test)">
        <!== unverified ==>
        <script state="on">
            <action>maincpu.mw@1A16C = A368</action> <!== jin ==>
            <action>maincpu.mw@1A3C6 = A5CE</action> <!== jin ==>
            <action>maincpu.mw@1A894 = A94E</action> <!== goldor ==>
            <action>maincpu.mw@1A9D0 = 0001</action> <!== goldor ==>
            <action>maincpu.mw@1A670 = A742</action> <!== racheal ==>
            <action>maincpu.mw@1A7C6 = 0001</action> <!== racheal ==>
            <action>maincpu.mw@1B3BA = B46E</action> <!== zen ==>
            <action>maincpu.mw@1AA94 = AB4E</action> <!== hoi ==>
            <action>maincpu.mw@1ABA0 = AD9E</action> <!== hoi ==>
            <action>maincpu.mw@1AE32 = 0001</action> <!== chaos ==>
            <action>maincpu.mw@1AEEE = B0E6</action> <!== chaos ==>
            <action>maincpu.mw@1BFBA = BFF8</action> <!== mahambah ==>
            <action>maincpu.mw@1B4CA = B584</action> <!== avu ==>
            <action>maincpu.mw@1B5D6 = B7DE</action> <!== avu ==>
            <action>maincpu.mw@1BCB6 = BCF4</action> <!== titi ==>
            <action>maincpu.mw@1BD70 = BF78</action> <!== titi ==>
            <action>maincpu.mw@1B824 = BA2C</action> <!== bobby ==>
            <action>maincpu.mw@1BA6C = BC74</action> <!== bobby ==>
        </script>
        <script state="off">
            <action>maincpu.mw@1A16C = A22C</action>
            <action>maincpu.mw@1A3C6 = A42E</action>
            <action>maincpu.mw@1A894 = A8A2</action>
            <action>maincpu.mw@1A9D0 = 0005</action>
            <action>maincpu.mw@1A670 = A67E</action>
            <action>maincpu.mw@1A7C6 = 0006</action>
            <action>maincpu.mw@1B3BA = B3C8</action>
            <action>maincpu.mw@1AA94 = AAA2</action>
            <action>maincpu.mw@1ABA0 = AC60</action>
            <action>maincpu.mw@1AE32 = 0005</action>
            <action>maincpu.mw@1AEEE = AF56</action>
            <action>maincpu.mw@1BFBA = BFC0</action>
            <action>maincpu.mw@1B4CA = B4D8</action>
            <action>maincpu.mw@1B5D6 = B63E</action>
            <action>maincpu.mw@1BCB6 = BCBC</action>
            <action>maincpu.mw@1BD70 = BDD8</action>
            <action>maincpu.mw@1B824 = B88C</action>
            <action>maincpu.mw@1BA6C = BAD4</action>
        </script>
    </cheat>
-->

</mamecheat>
mtlchampa.xml

Code: Select all

<!-- Martial Champion (ver AAA) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16A4E = 4EB9000702086700</action> <!-- throw (air)-->
            <action>maincpu.mq@16D18 = 4EB9000702086700</action> <!-- throw -->
            <action>maincpu.mq@17516 = 4EB9000702166400</action> <!-- tenga renken (jin) -->
            <action>maincpu.mq@70200 = 082D000000FF4E75</action>
            <action>maincpu.mq@70208 = 61F6670270000240</action>
            <action>maincpu.mq@70210 = 00204A004E7561E8</action>
            <action>maincpu.mq@70218 = 023C00FE66060C68</action>
            <action>maincpu.mq@70220 = 005800A04E75FFFF</action>
            <!--
            70200 | 082D 0000 00FF : btst    #$0, ($ff,A5)  // flag check routine
            70206 | 4E75           : rts
            70208 | 61F6           : bsr     $70200         // throw
            7020A | 6702           : beq     $7020e
            7020C | 7000           : moveq   #$0, D0
            7020E | 0240 0020      : andi.w  #$20, D0
            70212 | 4A00           : tst.b   D0
            70214 | 4E75           : rts
            70216 | 61E8           : bsr     $70200         // tenga renken (jin)
            70218 | 023C 00FE      : andi    #$fe, CCR
            7021C | 6606           : bne     $70224
            7021E | 0C68 0058 00A0 : cmpi.w  #$58, ($a0,A0)
            70224 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FE</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FE</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01    </action>
        </script>
        <script state="change">
            <!-- 1P off -->
            <action condition="(param band 01) == 00">maincpu.mb@1251E = 62</action> <!-- attack -->
            <action condition="(param band 01) == 00">maincpu.mb@12640 = 62</action> <!-- weapon -->
            <action condition="(param band 01) == 00">maincpu.mb@12B84 = 62</action> <!-- guard -->
            <action condition="(param band 01) == 00">maincpu.mb@131C4 = 64</action> <!-- firearms -->
            <!-- 2P off -->
            <action condition="(param band 02) == 00">maincpu.mb@12044 = 62</action> <!-- attack -->
            <action condition="(param band 02) == 00">maincpu.mb@12868 = 62</action> <!-- weapon -->
            <action condition="(param band 02) == 00">maincpu.mb@12DB6 = 62</action> <!-- guard -->
            <action condition="(param band 02) == 00">maincpu.mb@130C6 = 64</action> <!-- firearms -->
            <!-- 1P on -->
            <action condition="(param band 01) != 00">maincpu.mb@1251E = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12640 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@12B84 = 60</action>
            <action condition="(param band 01) != 00">maincpu.mb@131C4 = 60</action>
            <!-- 2P on -->
            <action condition="(param band 02) != 00">maincpu.mb@12044 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12868 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@12DB6 = 60</action>
            <action condition="(param band 02) != 00">maincpu.mb@130C6 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@16A4E = 024000204A006700</action>
            <action>maincpu.mq@16D18 = 024000204A006700</action>
            <action>maincpu.mq@17516 = 0C68005800A06400</action>
            <action>maincpu.mq@70200 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70208 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70210 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70218 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70220 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@1251E = 62              </action>
            <action>maincpu.mb@12640 = 62              </action>
            <action>maincpu.mb@12B84 = 62              </action>
            <action>maincpu.mb@131C4 = 64              </action>
            <action>maincpu.mb@12044 = 62              </action>
            <action>maincpu.mb@12868 = 62              </action>
            <action>maincpu.mb@12DB6 = 62              </action>
            <action>maincpu.mb@130C6 = 64              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16598 = 4EB9000702304E71</action>
            <action>maincpu.mq@70230 = 1028003508280001</action>
            <action>maincpu.mq@70238 = 00FF67041028001E</action>
            <action>maincpu.mq@70240 = 024000704E75FFFF</action>
            <!--
            70230 | 1028 0035      : move.b  ($35,A0), D0
            70234 | 0828 0001 00FF : btst    #$1, ($ff,A0)
            7023A | 6704           : beq     $70240
            7023C | 1028 001E      : move.b  ($1e,A0), D0
            70240 | 0240 0070      : andi.w  #$70, D0
            70244 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FD</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FD</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@16598 = 1028003502400070</action>
            <action>maincpu.mq@70230 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70238 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70240 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@087A8 = 4EB9000702504E71</action>
            <action>maincpu.mq@70250 = 52020828000200FF</action>
            <action>maincpu.mq@70258 = 670C12360006B202</action>
            <action>maincpu.mq@70260 = 630453011401B436</action>
            <action>maincpu.mq@70268 = 00064E75FFFFFFFF</action>
            <!--
            70250 | 5202           : addq.b  #1, D2
            70252 | 0828 0002 00FF : btst    #$2, ($ff,A0)
            70258 | 670C           : beq     $70266
            7025A | 1236 0006      : move.b  ($6,A6,D0.w), D1
            7025E | B202           : cmp.b   D2, D1
            70260 | 6304           : bls     $70266
            70262 | 5301           : subq.b  #1, D1
            70264 | 1401           : move.b  D1, D2
            70266 | B436 0006      : cmp.b   ($6,A6,D0.w), D2
            7026A | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@1051FF &amp;= FB</action>
            <action condition="(param band 02) == 00">maincpu.pb@1055FF &amp;= FB</action>
            <action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04    </action>
            <action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04    </action>
        </script>
        <script state="off">
            <action>maincpu.mq@087A8 = 06020001B4360006</action>
            <action>maincpu.mq@70250 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70258 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70260 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70268 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
            <action>maincpu.mb@0141A7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@105833 = 27</action>
            <action>maincpu.mb@0141A7 = 27</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <!-- selectable salamander in character selection screen -->
        <script state="on">
            <action>maincpu.mb@C4FB =  B</action>
            <action>maincpu.mb@C50B = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C4FB = 0A</action>
            <action>maincpu.mb@C50B = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!--
         character voices
          bank : 0x00, code : 0xa1-0xb4 - jin
          bank : 0x10, code : 0xa1-0xb4 - goldor
          bank : 0x20, code : 0xa1-0xb4 - racheal
          bank : 0x30, code : 0xa1-0xb4 - zen
          bank : 0x40, code : 0xa1-0xb4 - hoi
          bank : 0x50, code : 0xa1-0xb4 - chaos
          bank : 0x60, code : 0xa1-0xb4 - mahambah
          bank : 0x70, code : 0xa1-0xb4 - avu
          bank : 0x80, code : 0xa1-0xb4 - titi
          bank : 0x90, code : 0xa1-0xb4 - bobby
          bank : 0xa0, code : 0xa1-0xb4 - salamander
        -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@034D8 = 4E71            </action> <!-- enable sound code check -->
            <action>maincpu.md@010F4 = 00070270        </action>
            <action>maincpu.mq@70270 = 41F90010000043E8</action>
            <action>maincpu.mq@70278 = 0001120010390041</action>
            <action>maincpu.mq@70280 = 4001B20067F40C00</action>
            <action>maincpu.mq@70288 = 00FE660253100C00</action>
            <action>maincpu.mq@70290 = 00FD660252100C00</action>
            <action>maincpu.mq@70298 = 00F7660404100010</action>
            <action>maincpu.mq@702A0 = 0C0000FB66040610</action>
            <action>maincpu.mq@702A8 = 00100C0000BE6604</action>
            <action>maincpu.mq@702B0 = 041100100C0000BD</action>
            <action>maincpu.mq@702B8 = 6604061100100C00</action>
            <action>maincpu.mq@702C0 = 00EF66061C111E10</action>
            <action>maincpu.mq@702C8 = 600C0C0000DF660A</action>
            <action>maincpu.mq@702D0 = 42061E3C00FF4EB8</action>
            <action>maincpu.mq@702D8 = 347E609EFFFFFFFF</action>
            <!--
            70270 | 41F9 0010 0000 : lea     $100000.l, A0 // sound code address
            70276 | 43E8 0001      : lea     ($1,A0), A1   // bank number address ($100001)
            7027A | 1200           : move.b  D0, D1
            7027C | 1039 0041 4001 : move.b  $414001.l, D0 // read input
            70282 | B200           : cmp.b   D0, D1
            70284 | 67F4           : beq     $718ba
            70286 | 0C00 00FE      : cmpi.b  #-$2, D0
            7028A | 6602           : bne     $718ce
            7028C | 5310           : subq.b  #1, (A0)      // decrease code -01
            7028E | 0C00 00FD      : cmpi.b  #-$3, D0
            70292 | 6602           : bne     $718d6
            70294 | 5210           : addq.b  #1, (A0)      // increase code +01
            70296 | 0C00 00F7      : cmpi.b  #-$9, D0
            7029A | 6604           : bne     $718e0
            7029C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            702A0 | 0C00 00FB      : cmpi.b  #-$5, D0
            702A4 | 6604           : bne     $718ea
            702A6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            702AA | 0C00 00BE      : cmpi.b  #-$42, D0
            702AE | 6604           : bne     $718f4
            702B0 | 0411 0010      : subi.b  #$10, (A1)    // decrease bank -10
            702B4 | 0C00 00BD      : cmpi.b  #-$43, D0
            702B8 | 6604           : bne     $718fe
            702BA | 0611 0010      : addi.b  #$10, (A1)    // increase bank +10
            702BE | 0C00 00EF      : cmpi.b  #-$11, D0
            702C2 | 6606           : bne     $7190a
            702C4 | 1C11           : move.b  (A1), D6      // play sound
            702C6 | 1E10           : move.b  (A0), D7
            702C8 | 600C           : bra     $71916
            702CA | 0C00 00DF      : cmpi.b  #-$21, D0
            702CE | 660A           : bne     $7191a
            702D0 | 4206           : clr.b   D6            // stop sound
            702D2 | 1E3C 00FF      : move.b  #$ff, D7
            702D6 | 4EB8 347E      : jsr     $347e.w       // send sound code
            702DA | 609E           : bra     $718ba
            -->
        </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 3 + left : decrease bank -10"  line="15" align="center" />
            <output format="button 3 + right : increase bank +10" line="16" align="center" />
            <output format="button 1 : play sound"                line="17" align="center" />
            <output format="button 2 : stop sound"                line="18" align="center" />
            <output format="----------------------------"         line="19" align="center" />
            <output format="&lt;&lt; bank %02X &gt;&gt;"          line="21" align="center"  >
                <argument>maincpu.pb@100001</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"    line="23" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@034D8 = 4E75            </action>
            <action>maincpu.md@010F4 = 00001F50        </action>
            <action>maincpu.mq@70270 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70278 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70280 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70288 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70290 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70298 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@702D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mq@35B8 = 4EF90000107A103C</action>
        </script>
        <script state="off">
            <action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit", "rapid fire" and "action speed up" : Simplified code. Converted address check to flag check.
  • "easy moves" : Commented out. Because this code requires major rewriting.
  • "sound test mode : Added note.
jman

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