Tutorial
Updated
Remove the dark filter from Wii U GBA VC titles.
Introduction
Like other Virtual Console platforms, Nintendo's Game Boy Advance Virtual Console releases on the Wii U have reduced brightness. In the GBA's case, this is somewhat more defensible than with home consoles, as the original GBA model did display quite dimly.
Still, later in the handheld's lifespan, multiple successive frontlit and backlit models were released. Between the Game Boy Advance SP 001, SP 101, Game Boy Micro, Nintendo DS, DS Lite and even the Game Boy Player, the vast majority of ways to play GBA games don't involve a dim screen.
As such, many of us don't really have nostalgia for the dim old original GBA display and would prefer to see the vibrant graphics as they naturally appear on more modern screens. This thread is about doing that on the Wii U, so you can play your games with full brightness, or indeed change the brightness to any value you like.
Tutorial
- Download the command line tool MArchiveBatchTool, available for Windows and Linux. Extract the archive wherever feels right to you.
- Get the alldata.bin and alldata.psb.m files from the GBA VC title you're modifying. The obvious way to do this is to connect to your Wii U over FTP (using either ftpiiu_everywhere or WiiUFtpServer) and navigate to /usr/title/00050000/YourGame/content. Copy the two alldata files to the same place where you extracted MArchiveBatchTool.
- Open a command prompt or terminal window. If you're on Linux, I'll just assume you know how to do this. For Windows users, open the folder where you extracted MArchiveBatchTool in Windows Explorer and click inside the address bar. Delete the text in the address bar, replace it with just cmd, then press Enter. A command prompt window will open.
- At the command line/terminal prompt, enter the following command. If you're on Windows, you can copy and paste these commands, but note that several of them will need to be changed depending on what game you're modifying. If you're on Linux, remember to use forward slashes (/) instead of the backslashes (\) seen in the following commands.
Code:MArchiveBatchTool archive extract alldata.psb.m --codec zlib --seed MX8wgGEJ2+M47 --keyLength 80
- For the next few commands, you'll need a unique number for each GBA VC title. e.g. Drill Dozer USA is 1021, Super Mario Advance 4: Super Mario Bros. 3 USA is 0141, etc. In your file explorer, you can open the alldata.psb.m_extracted directory to see your game's unique number, as the name of the first directory underneath it. Remember to replace the #### marks in the next few commands with your number.
Code:MArchiveBatchTool m unpack "alldata.psb.m_extracted\####\config\title_prof.psb.m" zlib MX8wgGEJ2+M47 80 MArchiveBatchTool psb deserialize "alldata.psb.m_extracted\####\config\title_prof.psb"
- Back in your file explorer, browse to alldata.psb.m_extracted/####/config/ and open title_prof.psb.json in any standard text editor.
- Toward the beginning of that file, under "m2epi", locate where it says ...
Code:"brightness": 0.75,
Code:"brightness": 1,
- Return to your command line window and enter the following two commands (again, replace the ####s):
Code:MArchiveBatchTool psb serialize "alldata.psb.m_extracted\####\config\title_prof.psb.json" MArchiveBatchTool m pack "alldata.psb.m_extracted\####\config\title_prof.psb" zlib MX8wgGEJ2+M47 80
- You've just re-encrypted your modified config file, so delete your modified title_prof.psb.json now. Your final, encrypted config file is title_prof.psb.m; do not delete the wrong file!
- Back at the command line again, enter the following command:
Code:MArchiveBatchTool archive build --codec zlib --seed MX8wgGEJ2+M47 --keyLength 80 alldata.psb.m_extracted alldata
- You now have your modified alldata.bin and alldata.psb.m. Upload these files back to your Wii U, replacing the original versions and exit from your Wii U FTP server.
Additional Notes
Not much else to say here, but what the hell.
- Full/maximum brightness is 1, anything >1 just gives you 1 brightness. I didn't bother testing, but anything between 0 and 1 is probably an acceptable value.
- M2 has used this same basic setup (alldata files) for ages and have continued to use it on later systems. Lucky for us! They have periodically changed their encryption seed, but they're pretty easy to find; just extract the main executable (and if appropriate, decompress it--on Wii U, you can do this with 0CBH0's wiiurpxtool) and search the file for a thing that looks exactly like a secret encryption key. strings -n 13 is a great start.
- I know this tutorial is kind of a lot. @NicoAICP is interested in adding this feature to UWUVCI for GBA injections, so if you're patient you can just wait for that. Don't hassle them about it though, just be cool.
Last edited by Vague Rant,