Page 1 of 1

[kof95] The King of Fighters '95

Posted: Wed Jul 20, 2022 12:16 pm
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.