It's looking like this thread is pretty much dead? I hope not, because what I want to know, is exactly what each file/folder in the game is responsible for. Sorry if it's in the thread farther back, but I couldn't find it.
I have no idea what the folder "ENV" means, but it has one file in it named "BallKing.szs", which is the internal name of I think the third boss, but I still have no idea what the file is actually responsible for.
The folder "Font" and "BmpFont_US.szs" are pretty self-explanatory.
I have no idea what the folder "Message" is either, and its nine files under it do not give any indication.
The folder "Model" obviously holds various 3D models for the game. I have no idea how these are encoded or whatnot; I know very little about 3D modeling.
The folder "Sound" obviously holds sound data. ".bars" files seem to be sound effects that are placed in ram well in advance, while ".bfstm" files are songs that are streamed as they are playing. I have no idea what the game does with "DummySound.bfsar". On top of being the only file outside of the "Resource" sub folder, It's only 2KB long.
The folder "System" just has ROM information for the system? The only two files under it are "RomType.xml" and "SupportRegionLang.txt" Part of "SupportRegionLang.txt" appears to be non text data. ( ƒTƒ|[ƒg‚·‚郊[ƒWƒ‡ƒ“‚ÆŒ¾Œê‚ðŒˆ‚ß‚Ü‚· )
The folder "Pack" is where things get interesting. If I'm not mistaken, ".sarc/.pack" is just a file with multiple files under it with no compression, like a file folder. I don't know why Nintendo decided to do this unless they thought it would deter hackers, as it houses "Static.pack" that defines all the weapon information like firing rate. However, there's a lot of information under here that would go against my hypothesis, particularly all the extra 3D models that would only be player side.
"Enemy.pack" holds a "Model" folder with enemy models inside of it.
"Env.pack" holds another folder named "ENV" with the internal names of all the bosses (except BallKing, as it's in the regular "ENV" folder) followed by ".szs", along with the various maps and other locations in the game.
"Layout.pack" holds a folder named "Layout" that holds a bunch of ".szs" files that I assume define the position of 2D menu items.
"Obj.pack" holds a"Model" folder with 3D models for things like propeller lifts or breakable wooden crates.
"ObjSmall.pack" holds a "Model" folder with 3D models for the same types of objects, despite the name.
"Player.pack" holds a "Model" folder, this time with 3D player models, holding the inkling girl ("Player00") the inkling boy ("Player01") and even the octoling ("Rival00")
"Sound.pack" holds a lot of ".bars" sound effects in a "Resource" folder and a bunch of other files with weird file extensions in other folders.
"Weapon.pack" holds a "Model" folder with 3D models for the various weapons.
"System.pack" holds two file folders: one named "Shader" (
ooh...) and "System". "System" holds several more file folders mainly with ".gsh" files that Windows actually recognizes as "HLSL (High Level Shading Language) Source Files", that should actually make graphics hacking feasible. All of them are only a few KB though, except "lyt_BuildinShader.gsh", whatever that means, that is 134KB. "Shader" holds "apkg_cafe.szs", and "Gambit_Proc.szs", which is also a mystery to me, as it's only 76KB. (Gambit is Splatoon's internal name, I assume because it was a gambit to release anything on the Wii U at that point, lol.)
Finally, there's "Static.pack" that I briefly mentioned, where things get
really interesting... Like many other ".pack" files here, it holds many file folders. The "Effect" folder holds a 11,061KB "Gambit.szs" folder What I find interesting about this, is what tcrf said:
"Similarly to
New Super Mario Bros. U, a set of source code files that appear to be shaders are embedded in a PTCL file. All eleven can be found in
Pack/Static.pack/Effect/Gambit.szs/Particle.ptcl. Oddly, two of them are both named
eft_Stripe.vsh, yet have different contents. Also worth noting is that
the files from New Super Mario Bros. U were encoded in Shift-JIS, whereas most of these are encoded in UTF-8. (Two of them --
GambitBasic.fsh and
GambitBasic.vsh -- seem to use neither.)"
I have no idea how they found any of this; decompressing the ".szs" file in UWizard just produces another file. It's weird if this is actually the case, because I found those ".gsh" files earlier in a different folder, but all of them combined aren't even a tenth the size of this. Anyway, there's also the folder "ELink2" that holds a 136KB "ELink2DB.szs". The folder "Etc" holds "MiniGame.szs", "NewsScript.szs", "PlayerInfo.szs", "SCLiveFesData.szs", and "SCLiveFesTexData.szs". The folder "Map" holds what I think are actually supposed to be files that define the different map layouts for the different modes; they're also only about 10KB each. The folder "Mush" appears to hold information for the game about the other files. Tcrf even says this about one of the files in the folder:
"
Splatoon has 90 unused map entries located in
MapInfo.byaml. All of their associated map layout files do not exist, so they will crash if you attempt to load them."
Anyway, there's the "Parameter" folder that holds a bunch of text files for weapon and enemy parameters that is very popular (and easy) to hack. Finally, there's the folder "SLink2" that holds a 478KB "SLink2DB.szs", whatever this does.
There appear to be about no files for actual code in the game, bar shader code; I would have expected to see different files for different weapon classes and enemy code, but I can only find things like 3D models and sound effects. Obviously it's there somewhere, I imagine probably all lumped together in one big file, although that would be unlike everything else in the game. While it would be significantly less challenging than adding a new weapon class, even if the code for the different weapon classes was separated from the rest of the game (still plenty of reverse engineering and PowerPC coding), I wonder how difficult it would be to add another weapon variant (Tentatek, Krak On, Neo, etc) or even another weapon under a preexisting class (shooter, roller, charger, etc.) I bet it wouldn't be much more beyond modifying those ".byaml" files in "Mush" and adding new files to the game, being icons, text, models, and a new ".params" (text) file. Of course, you won't be playing anyone online unless it's a private battle and they have hacked the game in the same way.