Fighting game modding/romhacking thread


#1

1st off this thread is not for where to get ROMs. keep that out of here. there also is no DLC unlocking of any kind in this thread. That stuff needs to stay out of here. This also is not for telling anyone how to cheat on any online fighting games or offline. People have been banned off srk for that shit so keep that shit away from us.

also: “You may not link to nude mods or screenshots of nude mods. No nipples, no penis, no vagina. It’s pointless to argue whether the mod is “tasteful” or not, because the forum rules are quite clear. Defy this warning and you risk a ONE YEAR BAN for linking porn.”

also please no idiot posts like "Guy i d/l the sf4moveswap.exe and when i run the .exe it just flashes and nothing happens
i couldn’t find any one with this proberlm so can u plz HELP ME? "

This thread is for romhacking / modding any fighting games.

first off, quick example videos:
[media=youtube]BmOjyB5j0jc]YouTube - Street Fighter III: 4th Strike BETA [Part 1[/media]
[media=youtube]xLTx6da75hw[/media]
[media=youtube]gmA9mpOVEPE[/media]

Tools:
Any hex editor - i use hexplorer
Yumeji’s XCOPY - this will allow you to decrypt CPS2 and CPS3 roms
An emulator with a debugger.
Palmod (see info links)

info/links:
SF4 PC modding thread
SF4mods wiki
Sf4 pc custom skin mega thread
Complete “How to Change the Music in MVC2 + How to make your game selfboot” Thread
SFIII 3rd Strike (2DF/GGPO/nFBA,etc) Palmod palettes
japanese 3s hacking info (google translate until we get any of our own info)
japanese 3s hacking info (google translate until we get any of our own info)
Rom structures for 5081 arcade games
sf2 database
sf2 hacking

known projects:
SF3 4th Strike by RVN
SF4 remix 1.1 by Anotak
[media=youtube]BFWedUJT6J8"[/media]


#2

alright well so far all i’ve managed to get from 3s until if/when RVN shows up in here and tells us how he did that 4th strike stuff:
starting at 20f6f0 in 3s’s decrypted 10 file, are frames of sorts in a 24 frame repeating pattern for yun’s command throw
000014B2F3000000000000004000025800000000020000000000
looking like those. the 14B2 part is what sprite is used. if you set it to 18b2 you get some dudley frame for example

[media=youtube]vtZa02Mxq6c[/media]
i got this by copy and pasting those first frames over and over

also at 13d990 is the intro text which is how the 4th strike guy got the game to say 4th strike

example: http://img411.imageshack.us/img411/8951/lifetooshort.png


#3

i endorse this thread.


#4

good thread Anotak
lots of info in the comments in the japenese link

[good thread Anotak
lots of info in the comments in the japenese link

[Alex> More Special Moves> Small Flash chops> _01 Motion]
Comes out details of the first frame you choose a small flash chops.
10 rewrites the value of the frame there.
Then Alex> Settings and Damage> Small Fra choose.
Reduce the value of the 1C, 01 rewrites the value of the damage.
Recompression is the end to encrypted storage.

?? (1) (2) (3)
00 2F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 40 03 40 08 20
??? (1) hits (2) guard (3) blocking

· 400X: 002F to jump to the destination code X
· 200Y: Y = jump to the code 0010 ? 2
??? Y = 0012 ? 3 jumps in the code
??? Y = jump to the code 0014 ? 4
???
??? Y = ? 8 001C jump code
? If the next line as it swung to a


#5

the thing is i can’t use that information without being able to use that struct.def file they have which is apparently for a japanese hex editor called stirling which i cannot use because it is… in japanese


#6

il have a look when i get home
but is it not just a simple hex editor[http://www.off-soft.net/en/software/develop2/hxd.html]

will an alternative not work?
i thought def was an extract from the rom itself?


#7

cool thread, hope this leads somewhere


#8

where pregnant sakura


#9

no, my understanding (this is partially assumption) is that they figured out the format of various data and then stirling somehow gives you a way to jump to labeled addresses by reading the structure file

instead of shooting around blindly

like you see you have “[Alex>” from that translated thing but where is the alex even start?


#10

SF2 Database
SF2 Hacking

a ton of interesting sf2 stuff by felineki.


#11

added to OP thanks!


#12

Nice c001357 i can see that Capcom’s development menu has not changed that much since the cps1 days.

Cause on the CPS3 well Jojo’s to that matter still has it built in.

http://i820.photobucket.com/albums/zz127/jedpossum/jojobane-05-15-221013.png

http://i820.photobucket.com/albums/zz127/jedpossum/Unused%20Sequence/jojobane-05-06-173056.png

Now on to some basic stuff the cps3 at its core is pretty universal (not down to same location), but on the roms numbers. With two exceptions Red Earth (War-zard) and Roms 60 and 61 which is only used for 3s.

When you unzip a rom you’ll see

Rom 10 & 20 - these are the main files you are going to edit cause they store frame, hit box, AI, and text data.(and yeah the rom 20 file is not used in Red Earth and SF3:NG)

Rom 30 - This Rom is where your going to find most if not all of the sound files including the instruments used for the music.

Rom 31 - This gonna hold the rest of the sound files and is the beginning of the graphics which usually the backgrounds.

Rom 40 & 41 - These files are usually reserved for the sprites sometimes there could be spill over from having a lot backgrounds.

Rom 50 - this file is mainly for palettes or the rest of the sprites if 16 megs wasn’t enough for them

Rom 51 - nothing really in this besides the palettes and a lot of zeros.


#13

http://mess.redump.net/debugger

The MAME debugger seems like a godsend in terms of figuring things out/getting a hook in to ROM data if you can learn how to use it. Felineki was gracious enough to give me a hand figuring some stuff out, from which point it’s nowhere near as daunting as it first seems. In SFA2, I was able to find the location of Ryu’s animation data in ROM by first scrolling around the memory window looking for values that changed when I moved Ryu around, then setting a watchpoint on that memory address. From there, the values in the various registers used in the instruction that triggered the watchpoint can give you some insight into where you should be looking in ROM. Here is a guide to 68000 assembly, the language used by CPS1/2 and Neo games.


#14

[media=youtube]I8nmaeYaLbA[/media]


#15

Also as heads up you make sure, I MEAN REALLY MAKE SURE YOU KEEP BACK UP FILES!! Cause roms 10 and 20 are really strict on what they can take on editing them. Cause you can be in a place that looks like hit box data but a simple 1 byte change can make it fail on loading.


#16

Hi, was pointed at this thread for some possible help. What I’ve got at the moment is an artmoney table that has a good chunk of the Vampire Savior memory data decompiled as the game runs on Kawaks. Amongst these values I’ve managed to find a pointer for the hitboxes…the bad news is that I haven’t been able to find where the actual data it refers to is. My guess is one of two things:
-A: It goes directly to the table of values rather than bringing the current values into memory.
-B: The values are constantly shifting around in the game’s memory.

So pretty much without either figured out for sure, I’m at a loss after trying for several weeks now to comprehend what I’m doing wrong here. At the very least, some idea where to look for the data table it refers to since I don’t have an offset to work with. If anyone else is interested in taking a look however, here’s my table for artmoney:
http://randomselect.piiym-net.com/temp/Vampire.amt (right click, save as. The value is shown on the table as P1 Hitbox Pointer?)

And All About Vampire Savior scans, which have some pages showing what the hitboxes look like exactly:
Index of /conceptart/aac

Whatever the case I’ll keep at it myself, see if I can’t figure something out because this info is a must for my own project. Thanks for your time and patience folks.

Something to add to that, older versions of the CPS-3 driver for Mame showed the actual hitboxes for the characters too when in the hit viewer. This somehow got lost as the driver updated and was never available in the CPS-3 emu, just what you see there.


#17

Haven’t messed with the cps2 much but i’m pretty sure the game is reading from a table on the program rom (dunno which one for VS) then uploading that to the ram. So just ram hacking isn’t going to give you the hitboxes.

That wasn’t an old driver it was a mame mod that someone made (sry i couldn’t remember his name) and it only applied to Third Strike.


#18

Nope, it was the CPS-3 driver, and the boxes were only visible in the debug mode for the JoJo games (early screenshots also showed this when the guy behind the driver was showing that a debug had been found for JoJo if it was set to a certain region). A few versions later, the boxes were no longer visible only the raw hex data, and in addition the sprite viewer gained that tiled background. However if you know how to read the data anyway, it’s not a necessity, though still odd this was lost as the driver improved.

As for Vampire Savior, the thing with artmoney is if the data was being read from a table and being put into the game’s memory, it should be viewable in Artmoney as the data would change as needed. Yet searching for when the values do or do not change only brings back up the pointer value, not anything in the memory. Regardless, how would one look for the table in the data?


#19

It’s probably a little different in rom hacking, but I found the hit box data for a certain game’s hitbox viewer I created by searching for sequences of 4 integers in a row. This requires tedious reading of the rom. I would like to help but I don’t know that much about arcade rom hacking. As a VS player I really would like to see all the hit boxes.


#20

KFM: If SF2 is anything to go by, the hitbox pointer simply points directly to the individual character’s hitbox table. I was never able to really find any meaningful changing of memory data with regard to hitboxes when I tried. The value should be a ROM address (keep in mind how the ROM data is structures across the various chips; this site is helpful for that). In SF2’s format, the first few values in each character’s list were offsets from the beginning of the character’s list for where the individual box type lists (i.e. head box list, body box list, foot box list, attack box list, etc.) start, and the first individual box entry for each type was a null (all 00’s) for frames that lack that type of box. Attack boxes also stored a bunch of attack property data for each box definition appended to the 4 dimensional values.