• As part of the relaunch of Skullheart, ALL previous threads have been archived. You can find them at the bottom of the forum in the Archives (2021) section. The archives are locked, so please use the new forum sections to create new discussion threads.

Modding Tool: SkullMod

0xFAIL

Active Member
Joined
Dec 23, 2013
Messages
86
Reaction score
192
Points
33
SkullMod
What can SkullMod do?
Read/write .gfs files, the main resource files of the game
Can be found in the data01 directory

Convert the images throughout the game to .png (normal images)
.dds ==> Used for textures / cutscenes / story art / character select ...
.spr + .dds ==> Animations for character select / hitsparks ...
.pcx ==> Character portrait during battle

Read this thread for a how-to:
http://skullgirls.com/forums/index.php?threads/skullmod-guide.6080/

_______________
Attachements
convert_background_music.zip
Additional files needed to change the background music
 

Attachments

  • convert_background_music.zip
    169.8 KB · Views: 4,330
Last edited:
(Reserved)
 
Last edited:
I heard about your mod a few weeks ago when it was the go-to tool for opening GFS files, I'm really happy to see you're planning on expanding its utility.
 
Want to see gfsEdit in action (and a slightly changed texture ingame)?

(Don't forget to enable captions on the video)

Youtube video
 
Last edited:
  • Like
Reactions: Flotilla
Want to see gfsEdit in action (and a slightly changed texture ingame)?
Does this mean we can remove NPCS we don't like?
 
Last edited:
Yes, but it will be way easier to remove them using lvlEdit, I'm currently working on that.
 
So, this tools can do what exactly (have never been knowledgeable about modding games)? What're we going to be able to do with this?
 
Does this mean I can now replace the game's music with the Anarchy Reigns soundtrack?

Yes, you can. Gonna make a video for that (tomorrow)

So, this tools can do what exactly (have never been knowledgeable about modding games)? What're we going to be able to do with this?

Modding the following parts of the game: Maps (edit and probably make new ones), Changing music/some sound effects using gfsEdit and lvlEdit
 
Last edited:
Is it just me or am I the only one who thinks that someone will make nude mods or other hilariously obscene things with it?
 
Is it just me or am I the only one who thinks that someone will make nude mods or other hilariously obscene things with it?

The (game) characters and their palettes are protected by the game itself and won't work if edited in any way.
 
Is it just me or am I the only one who thinks that someone will make nude mods or other hilariously obscene things with it?
The (game) characters and their palettes are protected by the game itself and won't work if edited in any way.
sounds like this is something Lab 0 wants to prevent.
I'm glad this is the case. I'd hate to see it, if for no other reason than it would likely look like complete ass compared to the quality of the normal frames.

Now that I'm thinking about it, though, that doesn't stop anybody from harem-ing out the backgrounds :/
 
So how will creating new stages work? I assume that you will have to replace an existing stage with your custom stage, and that only you can see it? Otherwise I am imagining that it's gonna cause some nasty things online if you try to select a stage that your opponent doesn't have.
 
Does this mean I can now replace the game's music with the Anarchy Reigns soundtrack?
Yes, you can. Gonna make a video for that (tomorrow)
Awesome, now I just need to locate music tracks that are repeat safe.
 
This is pretty damn cool

I know exactly what I'm using this for
 
Pretty cool...I kinda doubt I'll use it because I like everything as it is, but I know some stuff I could use it for that seem awesome in my head. Thanks for making this.
 
Ok I've completed my task, behold:
oKIbEHv.jpg

fYYOn6j.jpg

If you look closely you'll see that this is the only texture mod that matters. I should say that those aren't the only characters who've been changed (there's at least one per randomised set of characters!).

Anyway, I've uploaded just the altered texture folder files, this does mean you'll need to unpack and repack by yourself but it stays out of trouble (see posts below for why I shouldn't have had it up in the first place =_=").
https://drive.google.com/folderview?id=0B0VnH6Cbcl7xMGpkSGhDeV8xS2M&usp=sharing

Installation Instructions
If you haven't done so already, download GFS Edit (see OPs post)
Go to the Skullgirls data folder (C:/Program Files (x86)/Steam/SteamApps/common/Skullgirls)
Make a backup of the folder "data01"
Go into data01 (not the backup)
Open GFS Edit
Drag levels.gfs into the window and hit Unpack
Download and extract my file into the textures folder (common/Skullgirls/levels/temp/levels/textures), if it asks you to overwrite stuff just say yes
Switch to the "Pack" tab in GFS Edit
Hit select directory and select the levels folder (common/Skullgirls/levels)
Click pack
Open up Skullgirls
Pick River King Casino
Feel the love.
 
Last edited:
For those who don't want to go through all this and are fine with downloading 258mb of jam:

You should remove that .gfs file, it is a substantial part of the game, posting that will get you into trouble almost guaranteed.
For modified game files (the individual .dds files) I guess the forum mods/admins will decide that. Just a fair warning.
 
@DARKNESSxEAGLE
Yeah, you probably don't want to be posting gfs files containing actual unmodified game data, duder.
(Also, eww...why...)

@0xFAIL
FWIW, if you wrote a tool that could unpack a character, edit frames, and repack them...I would be in awe, considering I don't have the faintest clue how you'd even do that, since the data is in crazy proprietary formats with no equivalent elsewhere and is spread across multiple files. Actually even if you got to the "editing level geometry" state, I'd be pretty impressed. Unpacking a gfs, changing a standard-file-format texture, and repacking isn't nearly as intense from a technical standpoint.
 
@0xFAIL
FWIW, if you wrote a tool that could unpack a character, edit frames, and repack them...

A level editor for .sgi and .sgm files should be finished in one week, .sga and .sgs files need work.
Level geometry is done but has to be verified.

Extraction of the sound effects is en route as well.

For the character stuff: The shaders told me what data has to be in the different parts so it's a simple (well not that simple) mix and match.
PS_SpritesPalette in renderer.fx and the pcx files that were used for the character portraits explained the structure that had to be used for the characters:
A base palettized color image + greyscale diffuse for detail + black outlines.
But after seeing that some files are protected against modification I changed focus to the bigger files. (maps and music)
 
  • Like
Reactions: Candra Software
hell yes.that is all.
 
Finally. Can't wait for the non-Java version
 
For the character stuff: The shaders told me what data has to be in the different parts so it's a simple (well not that simple) mix and match.
PS_SpritesPalette in renderer.fx and the pcx files that were used for the character portraits explained the structure that had to be used for the characters:
A base palettized color image + greyscale diffuse for detail + black outlines.
But after seeing that some files are protected against modification I changed focus to the bigger files. (maps and music)
If you'd watched any Lab Zero cleanup streams or heard me talking about the game you'd know there was a color/shading/line layer, that's our excellent patented HD sprite tech, and is no secret. :: bows ::
However, that has nothing to do with how the data is stored, and the format the shaders receive it in is likewise unrelated to the file structure. :^)

It's less of a "hahah bet you can't" and more of a sincerely-wondering-if-it-can-be-done-in-a-reasonable-way. Although THAT bit I can't guarantee you wouldn't get a C&D for...

I'll reiterate my standing offer: monetary reward to anyone who can significantly improve the shader performance or allow more lights with the same performance. Heh.
 
  • Like
Reactions: SeValentine
Updated gfsEdit to 1.2
Windows version does not need Java to be installed (but is a lot bigger as a consequence of that)

See CHANGELOG in the second post of this thread.

Please give feedback if any problems arise.
 
Postponed audio related things until I can sort out what tool to use for encoding the wav files.
ffmpeg, sox, audacity, xact don't work for encoding and the results just hurt my ears.
 
Postponed audio related things until I can sort out what tool to use for encoding the wav files.
ffmpeg, sox, audacity, xact don't work for encoding and the results just hurt my ears.
Already tried Reaper? It has some expansive WAV options, though I use it for music production, ao I'm not sure if it has what you're looking for. Can't hurt to look.
 
I got things working (for music) with
adpcmencode.exe -B 128 in.wav out.wav
(adpcmencode from the Xaudio2 pack.)
I can say that worked after the music was changed to be smaller. But for all I know, that doesn't work anymore. I've been out of this game since early august, and now stuff is hashed and I can't even load my super old version (before those checks were added) anymore. :D Good to know what's actually used, though.
 
  • Like
Reactions: 0xFAIL
adpcmencode.exe
I did not find a download for XAudio 2, or is adpcm.exe in the Direct X SDK?
Edit: ok, seems to be in the current Win 8 SDK, let's have a look...
Edit2: Yeah it's in the Win 8.1 SDK as well. ~ let's have some fun
Edit3: It still works (at least for music)
adpcm.exe -b 128 uncompressedPCM.wav compressedADPCM.wav
Thanks for pointing me into the right direction.

Ok, research post incoming: (no info for the average user here, just for future reference)

For the music found in music and character sounds:
The target format for SkullGirls is the codec "XAUDIO2 ADPCM" in the container WAV with a fixed bitrate of 385 kb/s (for music) / 192 kb/s (for character sounds) and slightly varying sample rate (around 44,1 k) and a fixed block size of 140 samples (music) / 70 samples (sound).
The required FACT chunk is missing (according to Microsoft docs it is required in any non-uncompressed-PCM file to be true to the standard, but not for XAUDIO2 ADPCM) but it doesn't matter if it's streamed.
Additionally loop information is (probably) given by the SMPL chunk (or it's just a leftover from production)

I'm guessing but I think a low block size is needed because a loop can only occur on the end of each block: see here for a technical overview
Sadly the encoder adds silence (something that is not desired when looping) if the music data has ended before the last block is filled.
(if there is no loop it doesn't matter if there is silence at the end)

A block with 140 samples is ~3,2 ms long
A block with 70 samples is ~1,6 ms long
Those seem reasonable.

A block with 2048 samples (ffmpeg, old) is ~46 ms long
Way too long. Speeding up the source material will distort the music, this was a problem in one of the updates if I remember correctly.
(at least the extracted files were ever so slightly distorted when playing with VLC, now they aren't anymore, maybe it was just my imagination)

The sample rate was probably slightly changed to fit the samples into the last sample block without changing the play speed.



@Mike_Z:
Thank you for your tip, I really appreciate not being C&D'd.
The problem is that I found no way to get the block alignment to 140 or 70 (with or without CoolEdit) using any encoder (see above)
Using a normal MS ADPCM file (block size 2048) only gives me static with a faint noise of the actual music.
ffmpeg has the value 2048 (older versions) or 1024 (newer versions) hardcoded in the source, I don't really want to recompile it, there should be another way.
So how did you work around that? Pleast don't let it be Soundforge or Audition...

Edit2: adpcm.exe seems nice, let me have a look at that...
Edit3: Look up at the other edit

Other things I stumbled upon:
During the beta Wavosaur was used when the music was uncompressed (2013-07-19 or better known as the day of the "DAFUQ 700 MB patch")
My guess is that XACT or the XAudio SDK was used for the XBox release (xma files in the Xbox Version) and another encoder for PS3 (mp3, lame, if I remember correctly)
 
Last edited:
It is done. (editing background music for stages) @Kasumi helped, thanks.

Btw. this is trickier to do than the last one.

Go to the Youtube video and enable video captions

==> Youtube
Edit: (Annotations work now)

I also forgot to change the download for gfsEdit, corrected.
 
Last edited:
Alright, so now I'm gonna be "that guy". I emailed you with some stuff I discovered about this game including the adpcm thing a few months ago. If you happen to not check there, it may be worth a read. (Maybe I just failed the human test though, heh.) At the end of the day, I didn't discover anything I wanted to, but I figured out all sorts of other easier stuff. I guess I never noticed adpcmencode added silence, but I only ever did one mod to check it. I only looked into it at all because someone asked me to. Same for voice acting stuff.

Edit: Removed link, apparently old.

The required FACT chunk is missing
Hahaha. Memories of frustration... yeah, that's how I found adpcmencode in the first place. I looked for other examples of things that didn't have it, and what created them.

At this point, I'm somewhat happy I can't launch that old build I have. This thread would have renewed my interest in the thing, but the time I would spend could definitely be put to other things.

Edit3: It still works (at least for music)
Does this mean you tried it for Voice Acting and it DOESN'T work, or just that you didn't try it for voice acting yet? I recall getting voice acting edited with no frustration (didn't require hunting down some random tool, I'm pretty sure I just used Audacity), but things may have changed since I did it. I can maybe look into that, if you can't find a way.
 
Last edited:
... a few months ago ...

That should have bounced, strange that it didn't. Care to resend it as a PM on this forum?
The website should be empty by now anyway. If it wasn't it is now.

Does this mean you tried it for Voice Acting and it DOESN'T work, or just that you didn't try it for voice acting yet?
I assumed it does not work because I couldn't find a preset that has a block lenght of exactly 70.
Will try to make it work.
 
You have all known file extensions hidden (for example the name of "convert" is actually "convert.bat" etc.) this is the default setting in Windows.

You named your file "input.mp3" but because the extension is hidden its name is actually "input.mp3.mp3"

Solution: remove the .mp3 that you can see (rename input.mp3 to input) and it works.

...gonna add that as an annotation
 
Last edited:
Ahhh okay that makes sense. Thank you it worked :)
 
Thank you, I have been wanting to switch the music out for awhile now.