King of Fighters 94: Team Edit hack

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
And I just figured out how to do alternate colors correctly. Holy crap that took days of banging my head against the wall. ROM hacking can be brutal. I finally came up with an approach that let me see what the game was doing.

I'm down to one mystery left to solve and assuming there's no other dragons I will then be on the downhill glide for the rest of the hack.
 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
Versus mode is now fully working unless there's some bugs I missed (always possible).

In versus mode the stage is random, and whenever a player re-challenges, both players can choose their team over. Both different from original KOF94 but I thought both made the game a tad more modern.


Single player mode still has a ways to go. But all in all a lot of progress.

More details here: https://neorh.mattgreer.dev/

And you can build the rom there too.

winScreen.png
 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
I also don't think it'll be too much longer.
Let me just retract this. I was excited :) It will probably still be a while.

And that is because I now realize I can most likely also fix the cutscenes. They probably work very similar to how the win and continue screens do. I feel pretty confident that other than endings, I should be able to make it pretty much like kof94 always had custom teams.🤞 For endings I am just going to stick in a quick "thanks for playing" message, endings are almost certainly a no go.

If anyone is curious, each team has an id



0Brazil
1China
2Japan
3USA
4Korea
5Italy
6Mexico
7England
8Rugal

Then in the ROM there is a list of who is on each team, in the team id order. For the win screen and continue screen, the game takes the id of the winning team, and looks up its members in this list, then uses the team's character ids to load up everything. Once it switches from team ids to character ids, the engine is then character based and doesn't care about teams. My hack has the game look for that list in RAM instead of ROM, so I can change it based on which characters the player chose.

Total guess, but I wouldn't be surprised if KOF95 and my hack have similarities, character ids in RAM instead of ROM.

Rugal is special and doesn't participate in most of this. When fighting, each player is given a team id. When fighting Rugal, that team's id is 8.
 

SieKensou

n00b
Joined
Jul 8, 2017
Posts
17
Wooow. This is going faster than expected. Excellent job, congratulations.
I noticed you put KOF 98 Rugal's icon for Rugal. Don't you think KOF 95 icon would fit better? At least for Rugal's first form, if you finally can add him(I hope yes, even if the first form doesn't have special moves it would be nice to be able to play with him too). You can edit a bit the icon palette to match it's 94 colors for the small part of his suit that is showed. The 98 icon you put is nice for his second form.
 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
I noticed you put KOF 98 Rugal's icon for Rugal
Yeah I might switch to that. I personally don't like the 95 avatar much, he kinda looks goofy :) That's why I chose 98. But yeah, 95 is probably more fitting.

This is what Sie is referring to. Rugal pops onto the char select once you get to him.


0004.png


Everyone is grey because you will have beaten all teams once getting to Rugal. And yeah, Yuri, Mai and Takuma have palette issues. There's definitely bugs at this point.

You can select Rugal with a debug dip, so I can probably make him playable, but I haven't looked into it yet.
 
Last edited:

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
Sadly Rugal just isn't that fun to use. His first form only has basics (doesn't even have a throw), and if you pick him he's your entire team. I'll still make him an unlockable character, but eh, it's just a gimmick.

At least the world will finally see his alternate colors in action

rugalVsrugal.png
 

SieKensou

n00b
Joined
Jul 8, 2017
Posts
17
Good to see you will add it anyway. I think that's a good add for the hack. I have some questions about your hack. Will you put both Rugal forms at the character select screen? You can use the 95 avatar you did for the first form and the 98 avatar for the second form. It's not possible to play with him and 2 other fighters? Is the panther at the background for the assistance? If it is your entire team, how will you deal with that when you already selected any other character to not let select Rugal?

Any possibillity of adding the TEAM EDIT? YES [NO] text at the begining of the character select screen as it is in KOF95? I think it would be a nice touch.

The cut scenes and endings will work the same as originally when you select an entire team?

Does this hack works perfect in MVS mode too?

Thanks for bring this into life and congratulations for the great work you are doing with this hack, you are taking into consideration a lot of things and fixing everything and making everything look good on the screen.
 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
Will you put both Rugal forms at the character select screen?
Unfortunately Rugal doesn't work that way. He's not really a character, he's truly the boss. As in when you are using him, it's exactly as if the other player is fighting the game's boss. You can't only play with his second form, it just doesn't show up. It will only show up if you first use his first form and have that form lose a round.

Anything is possible if someone is willing to reverse engineer the game and make Rugal a more normal character. But I think that would be insanely hard.

When you enable him with a debug dip, it was really intended just to be a way for the devs to test him out. It will be the same in my hack, I'm basically setting the debug dip for you.

If it is your entire team, how will you deal with that when you already selected any other character to not let select Rugal?

That's a good question. Not sure yet. I might just make it if you pick Rugal he just becomes your team regardless of who else you picked.

Is the panther at the background for the assistance?
Yup, his panther is there. Not sure if it assists, but it probably does. As far as I can tell it's just like when fighting cpu Rugal in every way.

Also when he enters his second form, he screws up a ton of palettes, because the game assumes you're at Blacknoah. Although, I think I can make the game leave the palettes alone.

rugalMessedPalettes.png

Oh and when he charges with ABC, he has no sprite

0001.png

So yeah, Rugal is pretty crusty all in all. I think I will still add him because if you don't want him around, just don't enter the code.

Any possibillity of adding the TEAM EDIT? YES [NO] text

It would be doable. I'll add it to the "post release" bucket. Not sure I'll add this myself, as to be honest I never really liked it in KOF95. I think SNK didn't either, as after 95 they ditched it. The rom hack is open source, so anyone else is welcome to add it if they are feeling adventurous.

The cut scenes and endings will work the same as originally when you select an entire team?

I'm also adding this to the "post release" bucket. I plan to have fairly generic cutscenes and a generic ending to accommodate any team. Noticing the player chose a story based team and having the real cutscenes for that team run would certainly be doable. But it'd also be more work. My first goal is to just get out a good but maybe not totally perfect hack.

Does this hack works perfect in MVS mode too?

Yup, works just fine on MVS. It also works in single play mode, but it's kind of hokey. In single play mode, you still pick three characters, then pick one of the three to actually use in order select. That is also how the original game works, single play in KOF94 was kinda tacked on.

The more I write about Rugal and all his limitations, maybe I shouldn't add him. You'd still be able to get him using the debug dips as before. Not sure, let me think on that.
 

SieKensou

n00b
Joined
Jul 8, 2017
Posts
17
Unfortunately Rugal doesn't work that way. He's not really a character, he's truly the boss. As in when you are using him, it's exactly as if the other player is fighting the game's boss. You can't only play with his second form, it just doesn't show up. It will only show up if you first use his first form and have that form lose a round.

Anything is possible if someone is willing to reverse engineer the game and make Rugal a more normal character. But I think that would be insanely hard.

When you enable him with a debug dip, it was really intended just to be a way for the devs to test him out. It will be the same in my hack, I'm basically setting the debug dip for you.
Oh, I understand. What a pity, I was thinking it was possible to select one form or another independently. Well, at least we have the boss available, and that's are really good news.


That's a good question. Not sure yet. I might just make it if you pick Rugal he just becomes your team regardless of who else you picked.
Sounds good.


Also when he enters his second form, he screws up a ton of palettes, because the game assumes you're at Blacknoah. Although, I think I can make the game leave the palettes alone.

rugalMessedPalettes.png



Oh and when he charges with ABC, he has no sprite

0001.png



So yeah, Rugal is pretty crusty all in all. I think I will still add him because if you don't want him around, just don't enter the code.
Yeah, I remember all that bugs in all the old "boss hacks" I tried for this game. I hope you can fix that problems.


It would be doable. I'll add it to the "post release" bucket. Not sure I'll add this myself, as to be honest I never really liked it in KOF95. I think SNK didn't either, as after 95 they ditched it. The rom hack is open source, so anyone else is welcome to add it if they are feeling adventurous.
Yeah, you are right. It was just to keep the essence of the first 2 games. I think it would be good to have it there.


I'm also adding this to the "post release" bucket. I plan to have fairly generic cutscenes and a generic ending to accommodate any team. Noticing the player chose a story based team and having the real cutscenes for that team run would certainly be doable. But it'd also be more work. My first goal is to just get out a good but maybe not totally perfect hack.
Okay. That would be great to have it into consideration because I would love lost nothing from the original game.


Yup, works just fine on MVS. It also works in single play mode, but it's kind of hokey. In single play mode, you still pick three characters, then pick one of the three to actually use in order select. That is also how the original game works, single play in KOF94 was kinda tacked on.
Nice, good to see it works in bot systems. The work you are doing is brilliant.


The more I write about Rugal and all his limitations, maybe I shouldn't add him. You'd still be able to get him using the debug dips as before. Not sure, let me think on that.
I think you should add it and see if the bugs can be fixed in some way.
 

NeoSeeD

n00b
Joined
Jul 29, 2023
Posts
49
This is pretty amazing work and something that I remember wanting even way back when it first came out when I played it at the arcade with my buddies. Out of curiosity, any chance of getting this on the CD since that is the only KOF that doesn't load between rounds? It would make it even more playable.
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,038
This is pretty amazing work and something that I remember wanting even way back when it first came out when I played it at the arcade with my buddies. Out of curiosity, any chance of getting this on the CD since that is the only KOF that doesn't load between rounds? It would make it even more playable.
I wonder if the NGCD version is even capable of loading the characters independent from their teams or if the data is exclusively grouped with the 3 characters stuck together. Knowing the way NGCD games are generally structured, I'm going to guess that hack will be a lot tougher to do than the cartridge.
 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
any chance of getting this on the CD since that is the only KOF that doesn't load between rounds?
I don't know much about the Neo CD ... yet. I want to learn, but haven't gotten there. So at least for now, no CD plans.
 

NeoSeeD

n00b
Joined
Jul 29, 2023
Posts
49
I wonder if the NGCD version is even capable of loading the characters independent from their teams or if the data is exclusively grouped with the 3 characters stuck together. Knowing the way NGCD games are generally structured, I'm going to guess that hack will be a lot tougher to do than the cartridge.
That's a good question. My hope is that they aren't and that the lack of loading is due to the smaller amounts of moves and animations per character.
I don't know much about the Neo CD ... yet. I want to learn, but haven't gotten there. So at least for now, no CD plans.
Thanks for answering. Your work is still fascinating. Thanks for sharing.
 

SieKensou

n00b
Joined
Jul 8, 2017
Posts
17
Nice video, the game looks very good. I like the idea of having a random select.

About the character select screen, is possible to move a few pixels down the character grid to not be as much over the KOF94 logo as it is? I think it would look better but I'm not sure if it's possible at this state. I think it would look better like this:
kof94002.png

- I'm testing it now and I noticed that the cursor border is not fully drawn and it has a red line in some sides.

- For some reason, the part you added of the background to hide were the flags was doesn't exactly match colors with the rest of the bg (they are too close but not the same) and it miss some detail on the SNK letters for example. I attached the right graphic you need with the right palette here:
kof94_hideflags.png
Other way to do this could be replacing that bg layer that loads here for the one that appear at the order select. It fits perfectly and doesn't have the box for the flags and you will not have to add that sprite to hide it.

- When I selected the 3rd member of the first player in a 2 players battle, part of a sprite appeared in the top left part of the screen (I think it is Heidern sprite, I attached the image here:
kof94003.png
Tested in 1P mode, and in single mode and it happens too.

If I found some any other issue I will let you know.
 
Last edited:

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
I'm testing it now and I noticed that the cursor border is not fully drawn and it has a red line in some sides.
I'm not sure what you mean by this. I just noticed both player cursors are now using the wrong palette. I'll see what's going on with that.
is possible to move a few pixels down the character grid to not be as much over the KOF94 logo as it is?
I moved it down a couple of pixels. But the character names are written on the fix layer, so they can only move in increments of 8 pixels. That is why the characters ended up where they are. But I did move it down a couple pixels at least

couplePixels.png


I attached the right graphic you need with the right palette here:
Thanks, I've added this to the repo.
Other way to do this could be replacing that bg layer that loads here for the one that appear at the order select. It fits perfectly and doesn't have the box for the flags and you will not have to add that sprite to hide it.
Unfortunately that's easier said than done. KOF94's graphic engine is very complex. Hopefully I or someone will figure this out at some point. I talked about the route I took with this here: https://github.com/city41/kof94te/blob/main/contributing/howTheHackWorks.md

EDIT: and I just had an idea on how I can do this 🤞

When I selected the 3rd member of the first player in a 2 players battle, part of a sprite appeared in the top left part of the screen (I think it is Heidern sprite, I attached the image here:
I have an idea of what is causing this. But so far I can't reproduce it. I'll keep trying and hopefully repro it. If my idea is correct, this is an easy fix.

Thanks for the bug reports!
 
Last edited:

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
Oh and @SieKensou which version are you using? It will say in the message up to when you first enter character select


version.png
 

SieKensou

n00b
Joined
Jul 8, 2017
Posts
17
I'm not sure what you mean by this. I just noticed both player cursors are now using the wrong palette. I'll see what's going on with that.
I see it like this:
kof94001.png


I moved it down a couple of pixels. But the character names are written on the fix layer, so they can only move in increments of 8 pixels. That is why the characters ended up where they are. But I did move it down a couple pixels at least

View attachment 73552
Oh, I understand. Well, it's better than nothing yeah. Much better.


IUnfortunately that's easier said than done. KOF94's graphic engine is very complex. Hopefully I or someone will figure this out at some point. I talked about the route I took with this here: https://github.com/city41/kof94te/blob/main/contributing/howTheHackWorks.md

EDIT: and I just had an idea on how I can do this 🤞
Yeah, I understand that things are not always easy. Just giving you ideas and good too see they can help with the project. I hope your idea can work.


I have an idea of what is causing this. But so far I can't reproduce it. I'll keep trying and hopefully repro it. If my idea is correct, this is an easy fix.
Weird, it happens always to me. And then play more through the game I noticed another weird sprites and garbage on the screen. Here is another example:
kof94002.png
I'm using Razoola's emulator WinKawaks if it helps (That emulator works very good so it shouldn't be a problem of the emulator I think...)


Thanks for the bug reports!
You're welcome. I like to help to make this project as perfect as possible. Thanks to you for the great job!


Oh and @SieKensou which version are you using? It will say in the message up to when you first enter character select
I'm using the last version from today, 4.0.
 

SieKensou

n00b
Joined
Jul 8, 2017
Posts
17
Hmm. Ok, I'll try WinKawaks. Do you have MAME handy? Does it happen there too?
I tried in an old version I had over here and it doesn't happen there. Weird.

I moved it down a couple of pixels. But the character names are written on the fix layer, so they can only move in increments of 8 pixels. That is why the characters ended up where they are. But I did move it down a couple pixels at least

View attachment 73552
Following your instructions, then you should be able to move the character names 8 pixels down and then the character grid a bit more, right? It would look like this:
kof94000.png
 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
I hope your idea can work.
woohoo! it did!

I added in copying the order select background tilemap on top of the team select tilemap. In other words, the game no longer renders the flags frame, it just renders a clean background.

"the part you added of the background to hide were the flags was"

so this part no longer exists thanks to this change.

This also means I can now properly scale down the character grid once the team has been chosen, just like in KOF95. So the hack can now do this

 

city41

Mai's Tabloid Photographer
10 Year Member
Joined
Dec 27, 2010
Posts
2,125
I tried in an old version I had over here and it doesn't happen there. Weird.
This might be a bug in Kawaks then. A lot of emulators once they can properly emulate the entire commercial game set, they stop worrying about compatibility. MAME and Furrtek's MiSTer core on the other hand are very accurate. I also don't see this happen on real hardware with the NeoSD.

But with that said, I'll still try to fix this, as Kawaks is a popular emulator.
 
Top