[kof94] Update/add. cheats

This forum is for posting M.A.M.E. arcade cheats. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

[kof94] Update/add. cheats

Post by mezdap »

kof94.xml

Code: Select all

  <cheat desc="Infinite Character Select Time">
    <script state="on">
      <action>temp0=maincpu.rw@03706A</action>
      <action>temp1=maincpu.rw@037EFC</action>
    </script>
    <script state="run">
      <action>maincpu.rw@03706A=8301</action> <!-- This ROM cheat was made by mezdap -->
      <action>maincpu.rw@037EFC=8301</action>
    </script>
    <script state="off">
      <action>maincpu.rw@03706A=temp0</action>
      <action>maincpu.rw@037EFC=temp1</action>
    </script>
  </cheat>
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [kof94] Select Character

Post by mezdap »

P1 Select Character:

Code: Select all

  <cheat desc="P1 Select 1st Character"> <comment>Free player selection - The character will change after the select screen or If used in-game the character will only change when a new round starts.</comment>
    <parameter>
      <item value="0x00">Heidern</item>
      <item value="0x01">Ralf</item>
      <item value="0x02">Clark</item>
      <item value="0x03">Athena</item>
      <item value="0x04">Sie</item>
      <item value="0x05">Chin</item>
      <item value="0x06">Kyo</item>
      <item value="0x07">Benimaru</item>
      <item value="0x08">Goro</item>
      <item value="0x09">Heavy-D!</item>
      <item value="0x0A">Lucky</item>
      <item value="0x0B">Brian</item>
      <item value="0x0C">Kim</item>
      <item value="0x0D">Chang</item>
      <item value="0x0E">Choi</item>
      <item value="0x0F">Terry</item>
      <item value="0x10">Andy</item>
      <item value="0x11">Joe</item>
      <item value="0x12">Ryo</item>
      <item value="0x13">Robert</item>
      <item value="0x14">Takuma</item>
      <item value="0x15">Yuri</item>
      <item value="0x16">Mai</item>
      <item value="0x17">King</item>
      <item value="0x18">Rugal B.(Jacket On)</item>
      <item value="0x19">Rugal B.(Jacket Off)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108232=param</action>
      <action condition="(maincpu.pb@108171 == 18 OR maincpu.pb@108171 == 19)">maincpu.pb@108231=08</action>
      <action condition="(maincpu.pw@108102 == 9222)">maincpu.pw@108102=9236</action> <!-- Fixed Reload char controls -->
    </script>
  </cheat>
  
  <cheat desc="P1 Select 2nd Character"> <comment>Free player selection - The character will change after the select screen or If used in-game the character will only change when a new round starts.</comment>
    <parameter>
      <item value="0x00">Heidern</item>
      <item value="0x01">Ralf</item>
      <item value="0x02">Clark</item>
      <item value="0x03">Athena</item>
      <item value="0x04">Sie</item>
      <item value="0x05">Chin</item>
      <item value="0x06">Kyo</item>
      <item value="0x07">Benimaru</item>
      <item value="0x08">Goro</item>
      <item value="0x09">Heavy-D!</item>
      <item value="0x0A">Lucky</item>
      <item value="0x0B">Brian</item>
      <item value="0x0C">Kim</item>
      <item value="0x0D">Chang</item>
      <item value="0x0E">Choi</item>
      <item value="0x0F">Terry</item>
      <item value="0x10">Andy</item>
      <item value="0x11">Joe</item>
      <item value="0x12">Ryo</item>
      <item value="0x13">Robert</item>
      <item value="0x14">Takuma</item>
      <item value="0x15">Yuri</item>
      <item value="0x16">Mai</item>
      <item value="0x17">King</item>
      <item value="0x18">Rugal B.(Jacket On)</item>
      <item value="0x19">Rugal B.(Jacket Off)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108233=param</action>
      <action condition="(maincpu.pb@108171 == 18 OR maincpu.pb@108171 == 19)">maincpu.pb@108231=08</action>
      <action condition="(maincpu.pw@108102 == 9222)">maincpu.pw@108102=9236</action> <!-- Fixed Reload char controls -->
    </script>
  </cheat>

  <cheat desc="P1 Select 3rd Character"> <comment>Free player selection - The character will change after the select screen or If used in-game the character will only change when a new round starts.</comment>
    <parameter>
      <item value="0x00">Heidern</item>
      <item value="0x01">Ralf</item>
      <item value="0x02">Clark</item>
      <item value="0x03">Athena</item>
      <item value="0x04">Sie</item>
      <item value="0x05">Chin</item>
      <item value="0x06">Kyo</item>
      <item value="0x07">Benimaru</item>
      <item value="0x08">Goro</item>
      <item value="0x09">Heavy-D!</item>
      <item value="0x0A">Lucky</item>
      <item value="0x0B">Brian</item>
      <item value="0x0C">Kim</item>
      <item value="0x0D">Chang</item>
      <item value="0x0E">Choi</item>
      <item value="0x0F">Terry</item>
      <item value="0x10">Andy</item>
      <item value="0x11">Joe</item>
      <item value="0x12">Ryo</item>
      <item value="0x13">Robert</item>
      <item value="0x14">Takuma</item>
      <item value="0x15">Yuri</item>
      <item value="0x16">Mai</item>
      <item value="0x17">King</item>
      <item value="0x18">Rugal B.(Jacket On)</item>
      <item value="0x19">Rugal B.(Jacket Off)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108234=param</action>
      <action condition="(maincpu.pb@108171 == 18 OR maincpu.pb@108171 == 19)">maincpu.pb@108231=08</action>
      <action condition="(maincpu.pw@108102 == 9222)">maincpu.pw@108102=9236</action> <!-- Fixed Reload char controls -->
    </script>
  </cheat>
P2 Select Character:

Code: Select all

  <cheat desc="P2 Select 1st Character"> <comment>Free player selection - The character will change after the select screen or If used in-game the character will only change when a new round starts.</comment>
    <parameter>
      <item value="0x00">Heidern</item>
      <item value="0x01">Ralf</item>
      <item value="0x02">Clark</item>
      <item value="0x03">Athena</item>
      <item value="0x04">Sie</item>
      <item value="0x05">Chin</item>
      <item value="0x06">Kyo</item>
      <item value="0x07">Benimaru</item>
      <item value="0x08">Goro</item>
      <item value="0x09">Heavy-D!</item>
      <item value="0x0A">Lucky</item>
      <item value="0x0B">Brian</item>
      <item value="0x0C">Kim</item>
      <item value="0x0D">Chang</item>
      <item value="0x0E">Choi</item>
      <item value="0x0F">Terry</item>
      <item value="0x10">Andy</item>
      <item value="0x11">Joe</item>
      <item value="0x12">Ryo</item>
      <item value="0x13">Robert</item>
      <item value="0x14">Takuma</item>
      <item value="0x15">Yuri</item>
      <item value="0x16">Mai</item>
      <item value="0x17">King</item>
      <item value="0x18">Rugal B.(Jacket On)</item>
      <item value="0x19">Rugal B.(Jacket Off)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108432=param</action>
      <action condition="(maincpu.pb@108371 == 18 OR maincpu.pb@108371 == 19)">maincpu.pb@108431=08</action>
      <action condition="(maincpu.pw@108302 == 9222)">maincpu.pw@108302=9236</action> <!-- Fixed Reload char controls -->
    </script>
  </cheat>
  
  <cheat desc="P2 Select 2nd Character"> <comment>Free player selection - The character will change after the select screen or If used in-game the character will only change when a new round starts.</comment>
    <parameter>
      <item value="0x00">Heidern</item>
      <item value="0x01">Ralf</item>
      <item value="0x02">Clark</item>
      <item value="0x03">Athena</item>
      <item value="0x04">Sie</item>
      <item value="0x05">Chin</item>
      <item value="0x06">Kyo</item>
      <item value="0x07">Benimaru</item>
      <item value="0x08">Goro</item>
      <item value="0x09">Heavy-D!</item>
      <item value="0x0A">Lucky</item>
      <item value="0x0B">Brian</item>
      <item value="0x0C">Kim</item>
      <item value="0x0D">Chang</item>
      <item value="0x0E">Choi</item>
      <item value="0x0F">Terry</item>
      <item value="0x10">Andy</item>
      <item value="0x11">Joe</item>
      <item value="0x12">Ryo</item>
      <item value="0x13">Robert</item>
      <item value="0x14">Takuma</item>
      <item value="0x15">Yuri</item>
      <item value="0x16">Mai</item>
      <item value="0x17">King</item>
      <item value="0x18">Rugal B.(Jacket On)</item>
      <item value="0x19">Rugal B.(Jacket Off)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108433=param</action>
      <action condition="(maincpu.pb@108371 == 18 OR maincpu.pb@108371 == 19)">maincpu.pb@108431=08</action>
      <action condition="(maincpu.pw@108302 == 9222)">maincpu.pw@108302=9236</action> <!-- Fixed Reload char controls -->
    </script>
  </cheat>

  <cheat desc="P2 Select 3rd Character"> <comment>Free player selection - The character will change after the select screen or If used in-game the character will only change when a new round starts.</comment>
    <parameter>
      <item value="0x00">Heidern</item>
      <item value="0x01">Ralf</item>
      <item value="0x02">Clark</item>
      <item value="0x03">Athena</item>
      <item value="0x04">Sie</item>
      <item value="0x05">Chin</item>
      <item value="0x06">Kyo</item>
      <item value="0x07">Benimaru</item>
      <item value="0x08">Goro</item>
      <item value="0x09">Heavy-D!</item>
      <item value="0x0A">Lucky</item>
      <item value="0x0B">Brian</item>
      <item value="0x0C">Kim</item>
      <item value="0x0D">Chang</item>
      <item value="0x0E">Choi</item>
      <item value="0x0F">Terry</item>
      <item value="0x10">Andy</item>
      <item value="0x11">Joe</item>
      <item value="0x12">Ryo</item>
      <item value="0x13">Robert</item>
      <item value="0x14">Takuma</item>
      <item value="0x15">Yuri</item>
      <item value="0x16">Mai</item>
      <item value="0x17">King</item>
      <item value="0x18">Rugal B.(Jacket On)</item>
      <item value="0x19">Rugal B.(Jacket Off)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108434=param</action>
      <action condition="(maincpu.pb@108371 == 18 OR maincpu.pb@108371 == 19)">maincpu.pb@108431=08</action>
      <action condition="(maincpu.pw@108302 == 9222)">maincpu.pw@108302=9236</action> <!-- Fixed Reload char controls -->
    </script>
  </cheat>
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [kof94] Dizzy Status

Post by mezdap »

P1 Dizzy Status:

Code: Select all

  <cheat desc="P1 Dizzy Status">
    <parameter>
      <item value="0x32">Never get dizzied</item>
      <item value="0x00">Always get dizzied</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108224=param|(maincpu.pb@108224 BAND ~30)</action>
      <action>maincpu.pb@108225=00</action>
    </script>
  </cheat>
P2 Dizzy Status:

Code: Select all

  <cheat desc="P2 Dizzy Status">
    <parameter>
      <item value="0x32">Never get dizzied</item>
      <item value="0x00">Always get dizzied</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@108424=param|(maincpu.pb@108424 BAND ~30)</action>
      <action>maincpu.pb@108425=00</action>
    </script>
  </cheat>
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [kof94] Alternate Outfit

Post by mezdap »

P1 Alternate Outfit:

Code: Select all

  <cheat desc="P1 Alternate Outfit">
    <script state="run">
      <action>maincpu.pb@1081D8=01</action>
    </script>
    <script state="off">
      <action>maincpu.pb@1081D8=00</action>
    </script>
  </cheat>
P2 Alternate Outfit:

Code: Select all

  <cheat desc="P2 Alternate Outfit">
    <script state="run">
      <action>maincpu.pb@1083D8=01</action>
    </script>
    <script state="off">
      <action>maincpu.pb@1083D8=00</action>
    </script>
  </cheat>
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

[kof94] Reselect Character

Post by mezdap »

Code: Select all

  <cheat desc="Reselect Character"> <comment>Lets you reselect character on the select screen for P1 and P2.</comment>
    <script state="on">
      <action>temp0=maincpu.rw@037836</action>
    </script>
    <script state="run">
      <action>maincpu.rw@037836=1212</action> <!-- This ROM cheat was made by mezdap -->
	</script>
    <script state="off">
      <action>maincpu.rw@037836=temp0</action>
    </script>
  </cheat>
jman
Posts: 863
Joined: Tue Dec 01, 2020 1:24 pm

Re: [kof94] Update/add. cheats

Post by jman »

mezdap wrote:

Code: Select all

  <cheat desc="Reselect Character"> <comment>Lets you reselect character on the select screen for P1 and P2.</comment>
    <script state="on">
      <action>temp0=maincpu.rw@037836</action>
    </script>
    <script state="run">
      <action>maincpu.rw@037836=1212</action> <!-- This ROM cheat was made by mezdap -->
	</script>
    <script state="off">
      <action>maincpu.rw@037836=temp0</action>
    </script>
  </cheat>
This code doesn't work for me.

Before

Code: Select all

 03782C  move.b  ($501d,A5), ($d8,A4)                        196D 501D 00D8
 037832  andi.b  #$7f, D0                                    0200 007F
 037836  move.b  D0, D1                                      1200
 037838  not.b   D0                                          4600
 03783A  and.b   D0, ($7e6,A5)                               C12D 07E6
 03783E  lsl.b   #2, D1                                      E509
 037840  or.b    D1, ($7e6,A5)                               832D 07E6
 037844  move.b  ($131,A4), ($7de,A5)                        1B6C 0131 07DE
 03784A  move.l  #$372bc, (A4)                               28BC 0003 72BC
 037850  rts                                                 4E75
mezdap replaces 0x1200 at $37836 with 0x1212 but...

After

Code: Select all

 03782C  move.b  ($501d,A5), ($d8,A4)                        196D 501D 00D8
 037832  andi.b  #$7f, D0                                    0200 007F
 037836  move.b  (A2), D1                                    1212
 037838  not.b   D0                                          4600
 03783A  and.b   D0, ($7e6,A5)                               C12D 07E6
 03783E  lsl.b   #2, D1                                      E509
 037840  or.b    D1, ($7e6,A5)                               832D 07E6
 037844  move.b  ($131,A4), ($7de,A5)                        1B6C 0131 07DE
 03784A  move.l  #$372bc, (A4)                               28BC 0003 72BC
 037850  rts                                                 4E75
Why does mezdap read "A2" register? The value in A2 seems to be uncertain and read value is unclear too.
Frankly speaking, I don't know mezdap wants. So I can't fix it.
jman
Posts: 863
Joined: Tue Dec 01, 2020 1:24 pm

Re: [kof94] Update/add. cheats

Post by jman »

One more...
mezdap wrote:

Code: Select all

  <cheat desc="Infinite Character Select Time">
    <script state="on">
      <action>temp0=maincpu.rw@03706A</action>
      <action>temp1=maincpu.rw@037EFC</action>
    </script>
    <script state="run">
      <action>maincpu.rw@03706A=8301</action> <!-- This ROM cheat was made by mezdap -->
      <action>maincpu.rw@037EFC=8301</action>
    </script>
    <script state="off">
      <action>maincpu.rw@03706A=temp0</action>
      <action>maincpu.rw@037EFC=temp1</action>
    </script>
  </cheat>
Original code.

Code: Select all

 037062  moveq   #$1, D0                                     7001
 037064  moveq   #$0, D1                                     7200
 037066  move.b  ($654,A5), D1                               122D 0654
 03706A  sbcd    D0, D1                                      8300
 03706C  bcs     $3707c                                      6500 000E
 037070  move.b  D1, ($654,A5)                               1B41 0654
 037074  move.b  #$3c, ($655,A5)                             1B7C 003C 0655
 03707A  rts                                                 4E75
 03707C  move.l  #$37086, ($584,A5)                          2B7C 0003 7086 0584
 037084  rts                                                 4E75
mezdap replaces "sbcd D0,D1" (0x8300) at $3706A and $37EFC with "sbcd D1,D1" (0x8301).
But "sbcd D1,D1" always returns zero, for example 0x15 - 0x15 = 0x00.

I suggest fix mezdap's code because keeps zero seems to be abnormal in case of "decrease" timer code.

Code: Select all

    <cheat desc="Infinite Character Select Time">
        <script state="on">
            <action>temp0 = maincpu.rb@37063</action>
            <action>temp1 = maincpu.rb@37EF5</action>
        </script>
        <script state="run">
            <action>maincpu.rb@37063 = 00</action> <!-- player selection -->
            <action>maincpu.rb@37EF5 = 00</action> <!-- order selection -->
        </script>
        <script state="off">
            <action>maincpu.rb@37063 = temp0</action>
            <action>maincpu.rb@37EF5 = temp1</action>
        </script>
    </cheat>
In this case, "sbcd D0,D1" always returns original value into D1 register, for example 0x15 - 0x00 = 0x15.
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [kof94] Update/add. cheats

Post by mezdap »

Good on you to checking my cheats. Thank you.
First, While I was making this cheat, I had several test cheats same address and I posted wrong one 'Reselect Character' sorry!

The correct working Reselect Character:

Code: Select all

  <cheat desc="Reselect Character"> <comment>Lets you reselect character on the select screen for P1 and P2.</comment>
    <script state="on">
      <action>temp0=maincpu.rw@037836</action>
    </script>
    <script state="run">
      <action>maincpu.rw@037836=1600</action> <!-- This ROM cheat was made by mezdap -->
	</script>
    <script state="off">
      <action>maincpu.rw@037836=temp0</action>
    </script>
  </cheat>
About your fixed code ''Infinite Character Select Time'' your right, timer does increase. But this is where the problem starts that I've been tried to fix since beginning...First, I tried to use RAM address to make a cheat even with 'Frame cheat' But, timer has to go to the zero, once you press the button to select a team...
Sometimes ''abnormal'' is a good thing...
Thanks.
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

[kof94] Select Background

Post by mezdap »

Code: Select all

  <cheat desc="Select Background">
    <parameter>
      <item value="0x00">Brazil</item>
      <item value="0x01">Hong Kong</item>
      <item value="0x02">Japan</item>
      <item value="0x03">America</item>
      <item value="0x04">Korea</item>
      <item value="0x05">Italy</item>
      <item value="0x06">Mexico</item>
      <item value="0x07">Britain</item>
      <item value="0x08">Germany</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@(1087DD+1)=param</action>
    </script>
  </cheat>
mezdap
Posts: 131
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

[kof94] Area Select

Post by mezdap »

Code: Select all

  <cheat desc="Area Select"> <comment>Lets you select a stage on the screen before a first round starts.</comment>
    <script state="on">
      <action>temp0=maincpu.rw@033D02</action>
    </script>
    <script state="run">
      <action>maincpu.rw@033D02=0002</action> <!-- This ROM cheat was made by mezdap -->
	</script>
    <script state="off">
      <action>maincpu.rw@033D02=temp0</action>
    </script>
  </cheat>
Note: This is a hidden feature, it shows an area (stage) on the screen to select from it.
I looked on Google, UniBios and F2 DIP Switches' settings and I found nothing about it!!! I guess they only used for testing the game?
jman
Posts: 863
Joined: Tue Dec 01, 2020 1:24 pm

Re: [kof94] Update/add. cheats

Post by jman »

mezdap wrote:

Code: Select all

  <cheat desc="Reselect Character"> <comment>Lets you reselect character on the select screen for P1 and P2.</comment>
    <script state="on">
      <action>temp0=maincpu.rw@037836</action>
    </script>
    <script state="run">
      <action>maincpu.rw@037836=1600</action> <!-- This ROM cheat was made by mezdap -->
	</script>
    <script state="off">
      <action>maincpu.rw@037836=temp0</action>
    </script>
  </cheat>
This code seems to work but still "abnormal". 0x1600 is "move.b D0,D3".
  1. Suddenly D3 register is broken. If later routine reads this register, some kind of bug may happen.
  2. D1 register is key. But stored value is irregular.
Especially, 2) is important. For example, character reselection doesn't happen in case of 0xFF. I don't know certain value but zero seems to be effective.

So...

Code: Select all

    <cheat desc="Reselect Character">
        <comment>Lets you reselect character on the select screen for P1 and P2.</comment>
        <script state="off">
            <action>temp0 = maincpu.rw@37836</action>
        </script>
        <script state="run">
            <action>maincpu.rw@37836 = 4201</action>
        </script>
        <script state="off">
            <action>maincpu.rw@37836 = temp0</action>
        </script>
    </cheat>
0x4201 is "clr.b D1". It doesn't break D3 register and 0x00 is always stored in D1 register.

one more...
mezdap wrote:

Code: Select all

  <cheat desc="Select Background">
    <parameter>
      ...
    </parameter>
    <script state="run">
      <action>maincpu.pb@(1087DD+1)=param</action>
    </script>
  </cheat>
$1087DD+1 is always $1087DE. Why does mezdap write like this?
Post Reply