background
okay so basically i just got really pissed about the game calling you a woman and i, in my eternal naïveté, thought, "surely it can't be that hard to edit some text". oh you sweet summer child, past me. all of the tools for this aren't linux-native and are kind of terrible. this has been much pain and suffering. but hey now parts of the game no longer call me a woman. i'll release this gender-neutrality mod eventually but there are like 5k text files in this game and there is no good program right now to mass-edit. if i want to change all instances of a word i have to go through every single file individually. this shit fucking sucks. i don't know shit about reverse engineering, game modding, or whatever the hell these filetypes are, but it is my god-sent duty to make this fashion game targeted towards young girls woke and by god am i willing to learn to make that happen.
okay here's how i did it basically
and i did check to make sure all of this is reproducible because i didn't initially document my process, specifically so that i could write a blog post eventually! this general process probably works for some other games but i haven't tested because idc about those games. just like cut out the steps about ELPKs or CPKs if it's not a game that uses archives like that. also i'm on linux so i used all of these programs via Wine (well really Bottles bc im lazy). also i don't know what i'm doing if this explodes your computer you can't sue me.
Sequences using ==> arrows are exact lists of the buttons to click on.
prerequisites
- Legally obtain a backup copy of the game. For legal reasons, I do not endorse pirating video games, but I'm sure we all know what that really means.
- Configure the emulator of your choice. I'm using Azahar, but other Citra forks should be basically the same.
- Set up the game in said emulator.
- If on Linux (or like a Mac I guess but that's worse), configure Wine or Bottles or something so that you can run Windows programs.
- CriPakTools/CriPakGUI
- rELPKckr
- Kuriimu. Kuriimu 1, not Kuriimu2. I couldn't get Kuriimu2 to work, so no idea if it's better or not.
- CpkPatcher
- A hex editor. I've been using ImHex but I don't know shit no idea if this one's any good it has dark mode and seemed to have the most features when i was looking for one.
- Know how to open a terminal.
- (Optional, but highly recommended.) ugrep
OKAY HERE'S THE REAL INSTRUCTIONS
- Dump the game's RomFS. In Azahar, this is simply right clicking on the game in the game list and clicking "Dump RomFS", and it automatically opens up the dumped RomFS for you. If you're modding the English version of the game, you likely want the EN folder, but for other languages you'll want the appropriate folder.
- You will notice that all of the files are
.cpk. Extract these using CriPakGUI.- Open CriPakGUI.
- File ==> Open CPK
- Navigate to wherever you put your CPK files or the RomFS dump and open the CPK you want to extract.
- Click "Extract Files"
- Navigate to wherever you want the extracted files and open that location.
- Wait patiently.
- Open whatever folder you extracted them to.
- Figure out what type of file these really are, using your hex editor. ELPK files will conveniently start with
ELPKin ASCII, while MSBT files will conveniently start withMsgStdBnin ASCII. Convenient! - If it's an ELPK, extract it via rELPKckr, using the command
wine rELPKckr.exe file, replacing "file" with the filename of the ELPK file. If you're on windows just like, remove the wine part, figure it out yourself i'm too sexy to use windows in 2025. - The extracted ELPK should contain MSBT files, so you can proceed to the next step.
- To more easily find the files you want to edit, you can run the command
ugrep --encoding=UTF-16LE -r "search" --exclude=*.bak, replacing "search" (keeping it in the quotes) with a term from the file you want to edit. Or suffer manually looking through 5k text files, I'm not going to tell you how to live. The--exclude=*.bakpart excludes the .bak files that Kuriimu creates so that you won't get the unedited versions if you're replacing a specific word or something. - Because Kuriimu only can edit files with specifically the
.msbtextension, you'll need to rename the.msgsfiles to.msbt. - Edit the
.msbtfiles using Kuriimu.- Navigate to your
.msbtfiles and open them. - Look, it's a text editor, I'm sure you can figure it out on your own.
- There is no god that can help you if you want to edit the formatting.
- Click the save icon in the top bar to save after you're done editing the text.
- Navigate to your
- Rename the
.msbtfiles back to whatever they were before. - If applicable, repack the ELPK file using rELPKckr. This is just
wine rELPKckr.exe folder, replacing "folder" with the name of the folder rELPKckr unpacked the ELPK to. - Patch the CPK file using CpkPatcher.
- Put your edited MSBT or ELPK in a folder with structure mirroring that of the CPK file. So if the CPK file has directories like
whatever.cpk/msbt/fileIwantToEdit, you'd need a directory likepatch/msbt/fileIwantToEdit, with the "patch" directory containing only the files you want to edit and the folders that those are contained in. - Run
wine CpkPatcher.exe sourceCPK patchDir outputCPK, replacing "sourceCPK" with the original, unedited CPK file, "patchDir" with the directory mirroring the CPK file's structure, and outputCPK with the filename and path to output to. - Right click the game, then press Mods Location under the Open menu.
- Create a folder called
romfs, and put your patched CPKs in it, mirroring the directory structure of the RomFS dump. For Style Savvy: Fashion Forward's US version's English language, this would beromfs/USA/EN. - Launch the game and hope it works.
if you came for fun technical details about this game or my gender neutrality mod sorry this is just documentation for my hellworkflow for now. and the rest of this is basically a rant
i do love reading obscure technical details about video games too but i am not much of a programmer or reverse-engineer and most of the work on MSBT is already done. it's great that there are tools for this i just wish they were better and linux-native and easier to edit arbitrary formatting with. and because these tools are kind of bad (at least for this specific game. i don't want to deny that lots of effort went into making all of these programs, and i sincerely appreciate the work of all of the developers, reverse-engineers, and modders that worked to create these programs. they just don't seem to work well with my workflow, and that's fine!), it's going to take a while to go through all five thousand text files (that's text files! there are multiple lines per text file!) and go through all the text. and Azahar doesn't really have good tools for debugging, so it's not like i can force it to load some piece of text, i have to go edit the text and then patch the file and then put it in the mod folder and then open the game and then find a place in the game where i can see that text (and a lot of the text in this game isn't easily reproducible) if i want to make sure that i didn't break the text.
anyway here's just the funny shit i said while figuring all of this out
did you know that Noor is white in the japanese version for some reason. isn't that fucked up. i just feel like i have to share that. anyway here's the start of my wafrn thread about this if you want to see my public liveposting.