[kof95] The King of Fighters '95

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[kof95] The King of Fighters '95

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.rq@023be = 4eb9000801724e71</action> <!-- direct attack / firearms -->
        <action>maincpu.rq@0a60e = 4eb90008018a6700</action> <!-- catch / throw -->
        <action>maincpu.rq@0e866 = 4eb9000801964e71</action> <!-- storm bringer (heidern) -->
        <action>maincpu.rq@1017c = 4eb9000801964e71</action> <!-- super argentine back breaker (ralf) -->
        <action>maincpu.rq@115e0 = 4eb9000801964e71</action> <!-- super argentine back breaker (clark) -->
        <action>maincpu.rq@11936 = 4eb9000801964e71</action> <!-- super arabian burglary back breaker (clark) -->
        <action>maincpu.rq@1214a = 4eb9000801964e71</action> <!-- ultra argentine back breaker (clark) -->
        <action>maincpu.rq@1ad24 = 4eb9000801a84e71</action> <!-- jiraishin (daimon) -->
        <action>maincpu.rq@1aeb4 = 4eb9000801964e71</action> <!-- chou-oosotogari (daimon) -->
        <action>maincpu.rq@1bb9a = 4eb9000801964e71</action> <!-- tenchi gaeshi (daimon) -->
        <action>maincpu.rq@1cc38 = 4eb9000801964e71</action> <!-- jigoku gokuraku otoshi (daimon) -->
        <action>maincpu.rq@2e7ba = 4eb9000801964e71</action> <!-- syouran kyaku - b (takuma) -->
        <action>maincpu.rq@2eb76 = 4eb9000801964e71</action> <!-- syouran kyaku - d (takuma) -->
        <action>maincpu.rq@30524 = 4eb9000801964e71</action> <!-- hyakuretsu binta - a (yuri) -->
        <action>maincpu.rq@30876 = 4eb9000801964e71</action> <!-- hyakuretsu binta - c (yuri) -->
        <action>maincpu.rq@80150 = 48e780007001b7fc</action>
        <action>maincpu.rq@80158 = 0010810066027000</action>
        <action>maincpu.rq@80160 = b7fc001083006602</action>
        <action>maincpu.rq@80168 = 70004a804cdf0001</action>
        <action>maincpu.rq@80170 = 4e752c6d27a048e7</action>
        <action>maincpu.rq@80178 = 0010264e61d24cdf</action>
        <action>maincpu.rq@80180 = 08006704052e007c</action>
        <action>maincpu.rq@80188 = 4e754841121061c0</action>
        <action>maincpu.rq@80190 = 6702c2074e75302c</action>
        <action>maincpu.rq@80198 = 0018906b001861b0</action>
        <action>maincpu.rq@801a0 = 6602707f4a404e75</action>
        <action>maincpu.rq@801a8 = 61a6670802400008</action>
        <action>maincpu.rq@801b0 = 0c4000084e750000</action>
        <!--
        80150 | 48e7 8000      : movem.l D0,-(A7)      // player check routine
        80154 | 7001           : moveq   #$1,D0
        80156 | b7fc 0010 8100 : cmpa.l  #$108100,A3
        8015c | 6602           : bne     $80160
        8015e | 7000           : moveq   #$0,D0
        80160 | b7fc 0010 8300 : cmpa.l  #$108300,A3
        80166 | 6602           : bne     $8016a
        80168 | 7000           : moveq   #$0,D0
        8016a | 4a80           : tst.l   D0
        8016c | 4cdf 0001      : movem.l (A7)+,D0
        80170 | 4e75           : rts
        80172 | 2c6d 27a0      : movea.l ($27a0,A5),A6 // direct attack / firearms
        80176 | 48e7 0010      : movem.l A3,-(A7)
        8017a | 264e           : movea.l A6,A3
        8017c | 61d2           : bsr     $80150
        8017e | 4cdf 0800      : movem.l (A7)+,A3
        80182 | 6704           : beq     $80188
        80184 | 052e 007c      : btst    D2,($7c,A6)
        80188 | 4e75           : rts
        8018a | 4841           : swap    D1            // catch / throw
        8018c | 1210           : move.b  (A0),D1
        8018e | 61c0           : bsr     $80150
        80190 | 6702           : beq     $80194
        80192 | c207           : and.b   D7,D1
        80194 | 4e75           : rts
        80196 | 302c 0018      : move.w  ($18,A4),D0   // moves
        8019a | 906b 0018      : sub.w   ($18,A3),D0
        8019e | 61b0           : bsr     $80150
        801a0 | 6602           : bne     $801a4
        801a2 | 707f           : moveq   #$7f,D0
        801a4 | 4a40           : tst.w   D0
        801a6 | 4e75           : rts
        801a8 | 61a6           : bsr     $80150        // jiraishin (daimon)
        801aa | 6708           : beq     $801b4
        801ac | 0240 0008      : andi.w  #$8,D0
        801b0 | 0c40 0008      : cmpi.w  #$8,D0
        801b4 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.rb@8015c = 60</action>
        <action                                  >maincpu.rb@80166 = 60</action>
        <action condition="(param band 01) != 00">maincpu.rb@8015c = 66</action>
        <action condition="(param band 02) != 00">maincpu.rb@80166 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.rq@023be = 2c6d27a0052e007c</action>
        <action>maincpu.rq@0a60e = 48411210c2046700</action>
        <action>maincpu.rq@0e866 = 302c0018906b0018</action>
        <action>maincpu.rq@1017c = 302c0018906b0018</action>
        <action>maincpu.rq@115e0 = 302c0018906b0018</action>
        <action>maincpu.rq@11936 = 302c0018906b0018</action>
        <action>maincpu.rq@1214a = 302c0018906b0018</action>
        <action>maincpu.rq@1ad24 = 024000080c400008</action>
        <action>maincpu.rq@1aeb4 = 302c0018906b0018</action>
        <action>maincpu.rq@1bb9a = 302c0018906b0018</action>
        <action>maincpu.rq@1cc38 = 302c0018906b0018</action>
        <action>maincpu.rq@2e7ba = 302c0018906b0018</action>
        <action>maincpu.rq@2eb76 = 302c0018906b0018</action>
        <action>maincpu.rq@30524 = 302c0018906b0018</action>
        <action>maincpu.rq@30876 = 302c0018906b0018</action>
        <action>maincpu.rq@80150 = 0000000000000000</action>
        <action>maincpu.rq@80158 = 0000000000000000</action>
        <action>maincpu.rq@80160 = 0000000000000000</action>
        <action>maincpu.rq@80168 = 0000000000000000</action>
        <action>maincpu.rq@80170 = 0000000000000000</action>
        <action>maincpu.rq@80178 = 0000000000000000</action>
        <action>maincpu.rq@80180 = 0000000000000000</action>
        <action>maincpu.rq@80188 = 0000000000000000</action>
        <action>maincpu.rq@80190 = 0000000000000000</action>
        <action>maincpu.rq@80198 = 0000000000000000</action>
        <action>maincpu.rq@801a0 = 0000000000000000</action>
        <action>maincpu.rq@801a8 = 0000000000000000</action>
        <action>maincpu.rq@801b0 = 0000000000000000</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.rq@00a5ac = 4eb90028301a4e71</action>
        <action>maincpu.rq@283000 = 7001b9fc00108100</action>
        <action>maincpu.rq@283008 = 66027000b9fc0010</action>
        <action>maincpu.rq@283010 = 8300660270004a80</action>
        <action>maincpu.rq@283018 = 4e751e2e000161e0</action>
        <action>maincpu.rq@283020 = 66021e16024700f0</action>
        <action>maincpu.rq@283028 = 4e75000000000000</action>
        <!--
        283000 | 7001           : moveq  #$1,D0      // player check routine
        283002 | b9fc 0010 8100 : cmpa.l #$108100,A4
        283008 | 6602           : bne    $28300c
        28300a | 7000           : moveq  #$0,D0
        28300c | b9fc 0010 8300 : cmpa.l #$108300,A4
        283012 | 6602           : bne    $283016
        283014 | 7000           : moveq  #$0,D0
        283016 | 4a80           : tst.l  D0
        283018 | 4e75           : rts
        28301a | 1e2e 0001      : move.b ($1,A6),D7  // main routine
        28301e | 61e0           : bsr    $283000
        283020 | 6602           : bne    $283024
        283022 | 1e16           : move.b (A6),D7
        283024 | 0247 00f0      : andi.w #$f0,D7
        283028 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.rb@283008 = 60</action>
        <action                                  >maincpu.rb@283012 = 60</action>
        <action condition="(param band 01) != 00">maincpu.rb@283008 = 66</action>
        <action condition="(param band 02) != 00">maincpu.rb@283012 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.rq@00a5ac = 1e2e0001024700f0</action>
        <action>maincpu.rq@283000 = 0000000000000000</action>
        <action>maincpu.rq@283008 = 0000000000000000</action>
        <action>maincpu.rq@283010 = 0000000000000000</action>
        <action>maincpu.rq@283018 = 0000000000000000</action>
        <action>maincpu.rq@283020 = 0000000000000000</action>
        <action>maincpu.rq@283028 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="action speed up">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.rq@003d04 = 4eb9002830824e71</action>
        <action>maincpu.rq@283060 = 48e780007001b9fc</action>
        <action>maincpu.rq@283068 = 0010810066027000</action>
        <action>maincpu.rq@283070 = b9fc001083006602</action>
        <action>maincpu.rq@283078 = 70004a804cdf0001</action>
        <action>maincpu.rq@283080 = 4e7561dc66027001</action>
        <action>maincpu.rq@283088 = 1940007a102c007f</action>
        <action>maincpu.rq@283090 = 4e75000000000000</action>
        <!--
        283060 | 48e7 8000      : movem.l D0,-(A7)    // player check routine
        283064 | 7001           : moveq   #$1,D0
        283066 | b9fc 0010 8100 : cmpa.l  #$108100,A4
        28306c | 6602           : bne     $283070
        28306e | 7000           : moveq   #$0,D0
        283070 | b9fc 0010 8300 : cmpa.l  #$108300,A4
        283076 | 6602           : bne     $28307a
        283078 | 7000           : moveq   #$0,D0
        28307a | 4a80           : tst.l   D0
        28307c | 4cdf 0001      : movem.l (A7)+,D0
        283080 | 4e75           : rts
        283082 | 61dc           : bsr     $283060     // main routine
        283084 | 6602           : bne     $283088
        283086 | 7001           : moveq   #$1,D0
        283088 | 1940 007a      : move.b  D0,($7a,A4)
        28308c | 102c 007f      : move.b  ($7f,A4),D0
        283090 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.rb@28306c = 60</action>
        <action                                  >maincpu.rb@283076 = 60</action>
        <action condition="(param band 01) != 00">maincpu.rb@28306c = 66</action>
        <action condition="(param band 02) != 00">maincpu.rb@283076 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.rq@003d04 = 1940007a102c007f</action>
        <action>maincpu.rq@283060 = 0000000000000000</action>
        <action>maincpu.rq@283068 = 0000000000000000</action>
        <action>maincpu.rq@283070 = 0000000000000000</action>
        <action>maincpu.rq@283078 = 0000000000000000</action>
        <action>maincpu.rq@283080 = 0000000000000000</action>
        <action>maincpu.rq@283088 = 0000000000000000</action>
        <action>maincpu.rq@283090 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="enable special move">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.rq@004928 = 4eb90028304a6304</action>
        <action>maincpu.rq@00b5a2 = 4eb90028304a6304</action>
        <action>maincpu.rq@00b5ce = 4eb90028304a6304</action>
        <action>maincpu.rq@00b612 = 4eb90028304a6304</action>
        <action>maincpu.rq@283030 = 7001b9fc00108100</action>
        <action>maincpu.rq@283038 = 66027000b9fc0010</action>
        <action>maincpu.rq@283040 = 8300660270004a80</action>
        <action>maincpu.rq@283048 = 4e7561e467080c6c</action>
        <action>maincpu.rq@283050 = 004001204e750c6c</action>
        <action>maincpu.rq@283058 = 00ff01204e750000</action>
        <!--
        283030 | 7001           : moveq  #$1,D0
        283032 | b9fc 0010 8100 : cmpa.l #$108100,A4
        283038 | 6602           : bne    $28303c
        28303a | 7000           : moveq  #$0,D0
        28303c | b9fc 0010 8300 : cmpa.l #$108300,A4
        283042 | 6602           : bne    $283046
        283044 | 7000           : moveq  #$0,D0
        283046 | 4a80           : tst.l  D0
        283048 | 4e75           : rts
        28304a | 61e4           : bsr    $283030
        28304c | 6708           : beq    $283056
        28304e | 0c6c 0040 0120 : cmpi.w #$40,($120,A4)
        283054 | 4e75           : rts
        283056 | 0c6c 00ff 0120 : cmpi.w #$ff,($120,A4)
        28305c | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.rb@283038 = 60</action>
        <action                                  >maincpu.rb@283042 = 60</action>
        <action condition="(param band 01) != 00">maincpu.rb@283038 = 66</action>
        <action condition="(param band 02) != 00">maincpu.rb@283042 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.rq@004928 = 0c6c004001206304</action>
        <action>maincpu.rq@00b5a2 = 0c6c004001206304</action>
        <action>maincpu.rq@00b5ce = 0c6c004001206304</action>
        <action>maincpu.rq@00b612 = 0c6c004001206304</action>
        <action>maincpu.rq@283030 = 0000000000000000</action>
        <action>maincpu.rq@283038 = 0000000000000000</action>
        <action>maincpu.rq@283040 = 0000000000000000</action>
        <action>maincpu.rq@283048 = 0000000000000000</action>
        <action>maincpu.rq@283050 = 0000000000000000</action>
        <action>maincpu.rq@283058 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0x00ff">01 (slow)</item>
        <item value="0x0064">02       </item>
        <item value="0x0032">03       </item>
        <item value="0x0016">04       </item>
        <item value="0x0001">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.rd@39d42 = 1b7c0000</action>
    </script>
    <script state="change">
        <action>maincpu.rw@39d44 = param</action>
    </script>
    <script state="off">
        <action>maincpu.rd@39d42 = 1b6d2838</action>
    </script>
</cheat>
kof95 is very similar to kof94 so that you can divert some routines from kof94 to kof95.

I omit "skip ram/rom check" because it has already posted here.
Post Reply