Modding SSF4AE for PC (NO DLC UNLOCKS!)

Hmm, that’s weird. You’re replacing the file located at dlc\03_character_free\ui\chara_select right?

Here’s Juri’s entire default files.

Can you do me a favor and send me the default title.emz file located at resource\ui\advertise itle? I overwrote that one and forgot to back it up. Thanks.

The files are in the right location, but it always crash. same thing when I tried to change the title screen. On title.dmz

Now, how does AE seek for files?

I know that putting mods into a ‘newer’ DLC directory will make it use those. But what happens if it can’t find, say, the Oni character files in 03_chara, but instead in the normal location?

Or is this a case of <standard location> or newer only? For example, I’m seeing duplicated files in the standard installation (two copies of GKX_E.csb, for instance), and I’m wondering if it’s safe to remove one of them.

Naturally, if this can be done, we can put an inevitable ‘koryu’ mod into its own directory to be enabled/disabled at will.

Just a simple question… I’ve been fooling around with some skins and so far I managed to do a good work (3 different skins for Vega, 2 for Cammy, 3 for Ryu and so on), but I came against something weird. I was “transforming” files from Shoryuken pack (3rd official costume for Ryu) and up to there, everything was cool. When I transferred the “costume” itself to the folder (battle/chara/ryu) putting the costume with the first color as its main pattern, the game froze.
My question is: if I have costumes (not colors) and I modify them for AE, is there any way that I can put it as color itself without having to take out the ones I already applied and without replacing original files? I mean, to have the costume and the modified colors in the gap of the 10 colors that you have by character. Cause I could apply some for Cammy and Balrog, without changing patterns or models, just as if they were only color variants.
I hope you could understand what I mean! I’m being to complex I guess!
Thanx for your patience!

@Tiberious
It’s a mess! Now with the last patch we have 3 folders to look into…
[LIST]
[]resource: contains all the Super stuff (it’s basically SSF4 missing the 4th dlc costumes)
[
]dlc: contains all the AE updates + SSF4 4th dlc costumes
[*]patch1a: contains all the last fixes
[/LIST]
patch1a>dlc>resource

If the same folder/file exists in resource and dlc, the one in dlc will have priority over the one in resource.
If the same folder/file exists in dlc and patch1a, the one in patch1a will have priority over the one in dlc.

That means you can put costume mods for SSF4 characters in dlc/02_costumes/battle/chara they will have priority over the original costumes in resource/battle/chara (same for stages and stages bgm)
For AE characters you’re stuck with replacing the originals in dlc/03_character/battle/chara and dlc/03_character_free/battle/chara

There are 2 instances of GKX_E.csb (RYX, YUN and YAN) because some costumes use different sounds packed into the same soundbanks, and they put costumes in 2 folders, so you need the same soundbank in both folders.
They didn’t do the same mistake with the 4th costumes, that have their own little soundbanks (that was the system used in SSF4 for dlc costumes 3 & 4, I dunno why they changed it for AE)

@Shin_gokusatsu
Costume files contains the model, you can only have one at a time on the same costume spot.
If you don’t earn the dlc, you’re stuck using one costume at a time.
You can have different color mods (erasing stuff on one color doesn’t apply on the 9 others)

That’s why I prefer color mods over costumes mods: you can have 40 colors at the same time (with dlc) when you can only have 4 different costumes at a time (with dlc).
Most of the time my color mods are only 1 or 2 colors, because you can use it with others.
When I make a costume mod, I try to do 10 colors, because in most cases it won’t be compatible with others.

Okay, what I mean is…

What will happen if I moved the GKX/RYX/YUN/YAN files (say, everything but the alternate outfit) into resource\battle\chara&lt;abbrev> ?

As these are AE-only characters, they wouldn’t be overwriting anything. Would the game still be able to find these files?

Hi guys.

I haven’t had much chance to work on this. But I did investigate a few things. I’ve gone back to the problem of making uncancelable moves cancelable.

Specifically, Dantarion mentioned that he was able to have multiple aerial normals chain to each other - i.e. 8hp to 9hp to 9hk etc etc.

There’s the messy solution that I did for my previous mod - copy-pasting an aerial cancel move and changing the animations and hitboxes.

But that’s not a fundamental solution. I want to be able to have more than one effect or attack while in the air.

I looked at Anotak’s new tools (awesome tools by the way). His readme states that “ThatsMindgames.exe,” the one that handles cancelable moves, is referenced by the BCM files.

But when I look at each individual index and open the relevant command from a hex editor, I don’t see the same index # in the lists.

For example, I took a look at the cancel list for Seth’s head stomps (BOS.bcm, open up 10, or 82MKKK). But the same index isn’t shown in the actual 82MKKK file that can be extracted from BOS.bac (the actual individual animation files).

I also saw that the cancel lists for Jump_V (neutral jump) and Jump_B/Jump_F are different. I took a more basic approach, and tried replacing Jump with Jump_F (both the stand2Jump, Jump, and Jump2stand files), to see if I can create the forward/backward jump attacks on neutral jumps. However, even though the actual jump animations are changed to a “flip” that indicates forward/backward jumps, the attack that comes out are still neutral jump attacks and not the forward/backward jump normals. This is even though the exact file bytes are used to replace neutral jump with forward/backward jumps.

Somehow, with the messy solution, I can have an aerial normal cancel into its same normal without messing with the cancel lists. But when I replace the jumps, I still get the same cancels as in the cancel lists…

So… I’m not sure how much further I can go in this manner unless I go back to the messy solution.

To Dantarion - how did you make new cancel lists and have the animation files reference the cancel lists? How did you make aerial normals link into each other?

To everyone else - did any of you have any success having aerial moves cancelable? i.e. rather than a simple move that repeats itself like in my last mod, were you able to, say, go from aerial shunpuken (hurricane kick) to aerial fireball to an aerial normal? and so on…

I humbly ask for your help.

Ok now it worked, its was the structure of the file, the file has messed up. i taked it from other folder modded and put back on the right folder. Thank you.

Hey guys I am new to the SSF4 ae modding, and I just loaded my first few skins for each character. I wanted to learn how to create chain combos for each character, but i am having no luck on how to get them to work. I downloaded the ssf4ae tools to use but when i save the BCM. files and start the game none of the moves seems to chain. Any Ideas on how to create chain combos reminiscent to MvC3 style game play? For example normals chain into specials, specials chain into supers, and supers chain into ultras. I tried modding the BCM. file in the dlc folder, and the resource folder and still no luck. Can someone please give me advice?

I’ve been investigating the data format for a couple days and here is my understanding, hope it helps.

To enable a move on neutral jump, just add that move to BCM cancel table AIR_V category and remove the move with the same input if there is one (or leave it be, BCM move table priority order will then kick in). E.g. RYU add 9MP and remove 8MP from AIR_V.

BCM move table is the main entry of everything. Looking at Seth’s BCM move table [36] 82MKK, offset 36 points to BAC animation table [311] 82MKK. Each entry in animation table contains 13 types of different data units. Type-0 is consequential animation; type-6 is cancelability. [311] 82MKK has 2 possible consequences, [313] 82MK_GROUND and [317] 82MKK_JUMP. Neither [311] and [313] are cancellable while [317] has two type-6 units saying it can be cancelled into category [16] during condition ON_BEGIN and ON_END. Now looking at BCM cancel table, category [16] is 82MKKK which has 8 moves to cancel into.

So to create a new Target Combo,

  1. Mod BAC animation table for “canceller”
  2. Mod BCM cancel table for “cancellee”
  3. If mix-n-match is not desired, then fork some moves. E.g.
    create TC1 A1->B->C1 and TC2 A2->B->C2, but A1->B->C2 is not expected, then you need two copies of B, B1 and B2. That’s why Ibuki has 4 versions of 6MK for NORMAL, TC1, TC3 and TC7.

Thank you so much for your insight.

Can you help me a bit with this part of what you mentioned? I see that the length of the animation tables vary with different moves. That would mean that the location of the beginning of each data unit in the table would also be different. Where would I find the beginning byte of the type-6 data unit of an animation table? This is a problem for me as most moves that don’t cancel into anything do not have any entry for that data unit, leading to a stream of zeroes for that section without a clear beginning and an end.

Btw, just wanted to say that it’s awesome that you could figure this out.

Hi guys! First, thank you to all the modders for making this great game into an awesome game! Now I have a question… I used piecemontee SF4 explorer to convert a vanilla SF4 costume (Piuma’s Cammy Adidas costume) into SSF4 AE… But I change the costume number which is 01, to replace the costume 03… Can I do that? I followed the instructions, but when i play the game, if I take out the CMY_03.bsr file from the Cammy Char folder, the game get stuck at the screen just before the match starts (the screen where the announcer introduce the fighters and locale)… if I keep the file in the folder, the game crashes at the same screen, instead of getting stuck… Can anyone know what should I do? Thank you in advance!

Couple of questions:

  1. Did you change the names all of the associated files from 01 to 03?

  2. Is the CMY_03.bsr file the original one, or is it a renamed CMY_01.bsr?

Hi Kudistos, thank you for the reply…
1.Yes, I did rename each converted files into 03 to match the costume number, I forgot to mention it…
2.Yes, the CMY_03.bsr file is the original file, since the SF4 explorer tool doesn’t produce that file in the conversions… But in the video tutorial (the one where the guy explain how to do it with the Rufus/Santa skin, he did took out the .bsr file from the folder…

Thanks!!

Update: OK, I managed to get it to work, I saw that there was indeed a BSR file to convert in the original files… its just that in the tutorial video, the guy didnt do it… now it works! thanks again to the modding community for creating these fantastic skins and costumes!! :stuck_out_tongue:


Offset      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

00009000                                       0E 00 18 00
00009010  00 00 2D 00 7E 00 00 00  02 00 02 00 00 00 07 00    - ~
00009020  18 00 00 00<01 00 02 00  54 00 00 00 5C 00 00 00/         T  \
00009030  03 00 02 00 60 00 00 00  68 00 00 00/04 00 03 00      `  h
00009040  6C 00 00 00 78 00 00 00/ 07 00 02 00 78 00 00 00  l  x      x
00009050  80 00 00 00/08 00 02 00  CC 00 00 00 D4 00 00 00/ €      Ì  Ô
00009060  09 00 01 00 E8 00 00 00  EC 00 00 00/0C 00 02 00      è  ì
00009070  00 01 00 00 08 01 00 00&gt;[00 00 2D 00 00 00 18 00            -
00009080  66 00 00 07 00 00 2D 00  1C 00 01 00 00 00 01 00]   f     -         

Using RYU 8MK as example, animation starts at ryu.bac 0x900C.

First 24 bytes are metadata, within which byte 18-19 is the number of groups in this entry, in this example it’s 7 (0x901E). Each group contains one or more data units of the same type.

Then the address table starts at byte 24 (echoed by metadata byte 20-21: header size(0x9020)). Each group address takes 12 bytes, so the total size is 12 bytes * 7 groups = 84 bytes, 0x9024-0x907F in this example, annotated with “<…/…/…>”.

Each 12 byte should be read like this:
00009024: 01 00 02 00 54 00 00 00 5C 00 00 00

2 type-1 units. Timeline is at 0x9024+0x54=0x9078, data is at 0x9024+0x5C=0x9080.

Timeline means begin/end frame numbers. Then the data is parsed this way:

00009078: 00 00 2D 00 00 00 18 00 <- 1st unit: frame 0 to 0x2D , 2nd unit: 0 to 0x18.
00009080: 66 00 00 07 00 00 2D 00 1C 00 01 00 00 00 01 00 <- Each unit has 8 bytes of data * 2 units. Depending on unit type, data size is different.

I wish I could document everything I’ve found but it’s soooooo timesucking and I’ve been busy with my job…

BTW, I just saw Dantarion’s and Anotak’s work in this thread, GUI tools?!! That is way ahead of me… Pure awesomeness, kudos to you all!

waterine you should come in #sf4-modding on synirc server

I can deduce what some of the unit data deals with. i.e. the first type I think deals with the animation/voice or the yellow flash… somewhere towards the last few types of data deal with the number of hits and valid targets, as well as which damage ID it corresponds to.

Is there a separate index or pattern to these different types of data? i.e. in your example, the address list shows that there’s two type 1 units, and when you look a little further, it says that there’s two type 3 units. Has anyone deduced a correct pattern to what each of these unit types correspond?

We also have to figure out what each sections of the data types correspond to. Right now all I can do is look at patterns of same types of data for different moves with separate effects, and just do a brute comparison…

I’m particularly interested in rose’s reflect move - not just that she can reflect a projectile, but increase the damage of the reflected projectile by 10%. I wonder if that’s hardcoded or if the value can be manipulated in the file…

What I’ve done so far is just try overwriting each data section from the reflect with moves for other characters, but most efforts cause the game to crash, making it really difficult to test every single possibility.

So I’ve got tired of all the Yuns & Yans so I figured I could try and just maybe replace their model with something that I’d like to see more.
Just tried out Makoto, works really well actually: Yun http://i.imgur.com/AEbV9.jpg
Yan http://i.imgur.com/kDuug.jpg

soo… if anyone figures out a way to fix the ultras(NFSW):smiley:

I want to mod this section in order to change the color sequence.

http://img708.imageshack.us/img708/8149/senzanomen.png

Someone know the trick?

Hey I noticed sensibeat has some stuff on EMG file structure. I found out a little more here.
I extracted the raw EMG of Cammy’s cap from CMY_01.obj.emo and looked at it. It’s a rather simple EMG with only 1 submesh and 1 texture map and 1 normal map reference. Offset 20-21 says 59 01, so this EMG contains 345 vertices (59 01 => 01 59 = 345 in decimal).

The second part of the EMG is the raw vertex data. Its offset is given by offset 24 of the EMG + 10. I go to it here:

http://img155.imageshack.us/img155/4681/ex1t.jpg

Each vertex is a block of 64 bytes. I boxed the first 3 here. The values in it are floating point decimals in hex. So A1142D3D BB0B203F 7EFE3B3D in red here tell you the x,y,z coordinates of the vertex which when you convert to decimal is 0.042256 0.625179 0.045897. Next values in yellow tell you the coordinates of the normal vector in the same way. The next values in green tell you the UV texture coordinates, except V here is read backwards and gives you the negative value. So 2CD5493F is 0.788409, but 85B644BF should be 0.768410 (85B644BF=> BF44B685 = -0.768410).

Next values in turquoise I think are for bone assignments (i got it wrong in the pic above), not sure how those work. Next values in blue I think tell you the ambiant value (notice how when you view some models in SF4 assets explorer, some models have dark shadowed areas even when you don’t have any texture loaded). It’s given as a diffuse color value, so FDFDFD here is white. Next values in purple should be 4 floats, and list the bone weighs - These floats should add up to 1.

This goes on until the end of the EMG file. Here’s the 345th and last vertex boxed:

http://img706.imageshack.us/img706/5365/ex2da.jpg

Found this stuff out by exporting as .obj and comparing values and looked at some of piecemontee’s source code.

Still I have no idea how data for faces is read. I suspect it’s found somewhere above the vertex data. If anybody here knows please teach me. This might be a step towards being able to import our own .obj models without vertex limits into the game.