Last Updated: June 22nd 2017 Hey everyone. Recently the Wii U modding scene is going really crazy right now with the Brazilian method and RedNAND and Haxchi and free Wii U games and everything. There’s also been a small advantage that allows for free VC games to be installed with WUPInstaller on RedNAND and sigpatched SysNAND, which includes VC injects. For those who really want VC injects on their RedNAND or IOSUHAX or Haxchi CFW or Mocha or whatever CFW you have, here’s how to do so here. This also includes making your WUPInstall-ready VC injects look as official as possible, similar to @CheatFreak47’s 3DS VC tutorial and my (v)Wii VC tutorial. WARNING: Follow the steps closely here. I am not responsible for any damage that is done to your console. If your VC inject has all the conditions required and does not work, check the Wii U VC compatibility lists. If your VC inject does not follow the conditions at all, check the FAQ. This tutorial supports all Nintendo VC platforms on Wii U so far (NES, SNES, GBA, N64, NDS). I am not going to cover TG16 due to the fact that injecting TG16 games requires hex editing and the TG16 Wii U games themselves are very large in size compared to Nintendo’s. Section A: Preparations Before starting, you have to make preparations for injecting VC games and making them RedNAND-ready. What you will need: Recommended: A Wii U (duh!) RedNAND or sigpatched SysNAND installed on your Wii U WinRAR (you may have it installed already) An OFFICIAL VC game either downloaded from the eShop or from Wii U USB Helper MetaVerify NUSPacker FTPiiU Everywhere FileZilla A Wii U game installer (either System Config Tool or WUPInstaller) The Wii U SDK (I am not going to link you to it since it is copyright of Nintendo)* Python (either 2.7 or 3.X depending on the tools)* Paint.NET GIMP Tool64* (N64-only) The “gba_inject” Python plugin* (GBA-only) RetroInject and Hykem’s rpl2elf app* (NES/SNES-only) snesROMUtil (SNES-only) Notepad++ A lot of knowledge and research Old Tools: These are not recommended for long-term use and are placed here just for archival purposes. DDD AppConfigTool (I am not going to link you to it since it is copyright of Nintendo)* Wii U Installer Packer* * = Google it If you're wanting to inject a certain game, check the Wii U VC compatibility lists listed here to see if your game is supported. NES compatibility list SNES compatibility list N64 compatibility list GBA compatibility list NDS compatibility list If you got all of these, make preparations for both your PC and your Wii U console by dumping your game. Here is a list of recommended VC base games that have high compatibility. Punch-Out!! (NES) Super Metroid; Donkey Kong Country; Kirby's Dream Land 3 for SA-1 support (SNES) Donkey Kong 64 (N64) The Legend of Zelda: The Minish Cap (GBA) New Super Mario Bros.; Brain Age/Brain Training (NDS) Dumping your game with FTPiiU Everywhere: Open FTPiiU Everywhere from the Homebrew Launcher, and open FileZilla on your PC. Type the IP address and port displayed on your Wii U Gamepad screen onto the Host and Port typeboxes respectively, and then click Quickconnect. Navigate to storage_mlc/ or storage_usb/ on FileZilla, and then navigate to the usr/title folder. Look for your game's title ID (use the title database to help you), and then extract it to your disk drive. Easy as that. Dumping your game with DDD: Once you’re completely ready, download DDD and extract it to your SD card. Leave the titledumper.exe on your PC because it is recommended for dumping using DDD. Turn on your Wii U, open the Homebrew Launcher using your favorite exploit, and launch your CFW (Mocha, Haxchi, or CFW Booter). This will launch either RedNAND or sigpatched SysNAND depending on your settings, ensuring that you will now be able to launch your game afterwards, because it will give you an error on stock SysNAND if it is RedNAND/sigpatched SysNAND only. Now double-check that CFW Booter has launched your NAND of choice, and open the Homebrew Launcher again. Launch DDD from the Homebrew Launcher. Once DDD is launched, open CMD on your PC, and type in “ipconfig”. This will give you your PC’s IP address, among other things. Change the IP address on your Wii U on-screen to your PC’s IP address, and press X to temporarily install DDD and return to the system menu. Now open CMD in the same directory the titledumper.exe is in, by holding Ctrl+Shift, right-clicking, and selecting the open CMD option. Now type in this command: Code: titledumper.exe /vol "/Game/" Ensuring that the titledumper.exe is in the same directory as the CMD is currently set to, press Enter on your PC, and launch the VC game that you want to dump on your Wii U afterwards. When the bootscreen appears, the Wii U will now connect to the PC to dump the current game to your hard drive. This will dump everything on your game, including “meta” and your saves. The bootscreen will stay on-screen on your Wii U until it is finished dumping. Now press the HOME button, and the HOME Menu will display. From here, the Wii U will dump the “meta” to your PC’s hard drive if it’s not dumped yet, and do not touch your Wii U until it is done dumping. Now that you have a “Game” folder on the root of your hard drive, open it. There should be a “vol” sub-folder, which in turn contains everything that you dumped from your Wii U. Delete the “save” directory as we’re not going to need it. The “code”, “content” and “meta” folders are highly recommended here. Now make a backup of your dumped game, in case the injection fails or you want to make multiple VC injects. Now that we have made our preparations, it is time to inject the game. Section B: Injecting This section will be split into six sub-sections, one for each VC platform. If you're wanting to make injections for a certain VC platform, it is explained here. Make sure that your inject is clean (you have injected the game by yourself and have not downloaded a "dirty" Loadiine-ready inject from the Internet), otherwise there will be some issues. NES/SNES Injecting NES or SNES takes no more than just a few minutes. You will need additional tools for this. If you're injecting a SNES game, open snesROMUtil, select Open from the File drop-down list and look for the game that you want to inject. Select it, and the info will be displayed in the application. If the SNES game has a header, remove it by selecting "Remove Header" from the Task section and click on OK. You will now have a duplicate of the ROM that does not have the header. We're going to use that for the inject. Injecting the ROM itself is easier than you think. If you have extracted both RetroInject and rpl2elf, open the CMD from the same directory as both apps (just like you did last time when you were dumping the base game), and type this command here: Code: rpl2elf.exe (input.rpx) (output.elf) Make sure the input file name you type in matches the name of the RPX you dumped. You can name the output elf file anything you want. Press Enter, and it's going to convert the input file into an ELF file. The output ELF file will appear when it's finished. Do not close the CMD, but instead after the convert is finished, type in this command: Code: RetroInject.exe (input.elf) (rom.nes/sfc/smc) (output.elf) Again, make sure the input file name matches the name of your converted ELF file. Now press Enter, and it's going to make an output ELF file, then inject the ROM into that file. Your input file will be safe, which is good in case you're wanting to make multiple NES and SNES injects. There's one more step to finish injecting: Use makerpl(32/64).exe from the Wii U SDK to convert the output injected ELF file to an RPX file. Make sure that the output injected ELF file is copied into the makerpl sub-directory in the Wii U SDK before proceeding. Use this CMD command when converting the file: Code: makerpl64 -f -s -z9 -nolib (input.elf) Now cross your fingers, and press Enter. The application is now going to convert the ELF file to an RPX file. If it succeeds, then all you need to do is copy the new RPX file to the code folder of your injection. Now you're pretty much done with this step! On to the next one. GBA GBA injection is pretty much easy and has a higher success rate in my opinion than you would expect out of NES/SNES injection. Please note that you're going to need Python and the gba_inject Python plugin for this. Once you've downloaded and installed Python, download the gba_inject archive and extract it. Now take your alldata.bin and alldata.psb.m files that you dumped using DDD, and copy them to the gba_inject directory. Create an "out" folder in the gba_inject directory as that is where the injected alldata.bin will be sent to. Make sure you click the "install.bat" file before proceeding. I don't know if that's recommended or not, but that's what I did just to be safe. This is going to install the gba_inject plugin to your Python. After this, copy your GBA ROM of choice to the same gba_inject directory where you copied your alldata.bin, and rename it to just "rom.gba". Open "inject.bat" and wait for it to finish processing. Once it gives you a prompt that injection is complete, press any key to exit the CMD, and go to the "out" folder that you created earlier. You should see another alldata.bin, as well as another alldata.psb.m. This is the injected alldata.bin. You're pretty much done with this step at this point. On to Section C, shall we? N64 Injecting N64 is really easy for those who haven't tried it yet. First, open Tool64. This is so we can convert our N64 ROM to Z64 format which is compatible with the N64 VC emulator. Navigate to the directory of your ROM. Right-click the ROM, and select "Big Endian" from the drop-down list. Once you've done that, the application will rearrange the bytes of the N64 ROM to Z64 format. The ROM will be deleted and replaced with the Z64 format ROM, and a .bak backup file will be made. Now navigate to your dumped N64 VC game directory, go to the content sub-directory and afterwards go to the ROM sub-sub-directory. You will see a Z64 format ROM with a random file name and extension. The file name includes the title ID of the N64 game for those who haven't known yet (for example, Donkey Kong 64 (PAL)'s ROM is named "Undop0.599"; the bold "ndop" part is the title ID of the original game). Navigate to your ROM directory (the same one that you used for Tool64), rename the ROM to the exact name of the Z64 format ROM in the dumped game (this includes the file extension), drag it and drop it into the ROM sub-sub-directory. Replace the file when prompted. Now navigate to the "config" folder within the content sub-directory. You will see a long list of .ini files for certain N64 games. If there's a certain appropriately-named ROM in the ROM folder, the .ini file of the same name will be assigned to that ROM (for example, if there's an "Unsme0.005" ROM file in the ROM folder, the "Unsme0.005.ini" file will be loaded into the emulator and used for the ROM file). We have to look for the .ini file that is the exact same name as the original ROM file. Once we find the .ini file with the aforementioned conditions, double-check it to make sure that it's the same name as the ROM we replaced. Open it with Notepad, select everything and press Backspace to delete everything. This will make the .ini file blank. Now save it, and we're pretty much done with Section B at this point. NDS Injecting NDS is super easy, and takes no more than a minute or two. I'm gonna show you how to do it here. Copy your Nintendo DS ROM to the dumped VC game directory. Unlike the rest of the platforms, everything that makes up the "content" part of the VC game is located within a "0010" folder within the "content" directory, so you'll have to keep that in mind. Open the rom.zip archive from the "0010" folder. You should see a single ROM within the archive, which is named as "(VC Game Product Code).srl", depending on the base game (for example, New Super Mario Bros. (PAL) by default has "WUP-N-DADP.srl"). Drag your copied Nintendo DS ROM to the "0010" folder, rename it to the exact same name as the ROM inside the rom.zip (this includes the file extension, rename .nds to .srl). Drag it into the rom.zip, and the archive will now be updated, with the new ROM replacing the default one. That's how easy it is to inject DS games. Now on to the cosmetics. Section C: Cosmetics After you are done injecting the ROM into the VC game, you could just play it on Loadiine right away, but that is not recommended for this tutorial. What we're now going to do here is create official-looking bootscreens and an icon, change their color depths, and sign them with App Config Tool from the Wii U SDK. First, download this archive. It contains bootscreen templates supported with GIMP. You're also going to need the SCE-PS3 fonts installed on your computer since they're recommended for best results. Open your desired project template with GIMP and change the values, following the rules provided in the spoiler below. Suggested Rules for All Text The font must be SCE-PS3 Rodin LATIN Semi-Bold. The text must be left justified. Suggested Rules for Game Name Up to 2 lines of text are permitted. If you have 2 lines of Game Name text, correctly center the text vertically using the top border of the text box. Text size must be 43px. Suggested Rules for Release Date This line refers to the year that the game was released ON the physical media the Virtual Console is emulating. For games that haven't been released officially for the original console, like ROM hacks or bootlegs, input "Not Released." for this line. The font must have no letter spacing. Text size must be 30px. Suggested Rules for Player Text GBA and Nintendo DS games do not have this line at all, due to there being no multiplayer for them. This line refers to the number of players for the original game. The font must have no letter spacing. Text size must be 30px. After you have done editing the text, get the title screen of your game (either by searching on tcrf.net, looking for an image of the title screen on Google Images or taking a screenshot through an emulator), and resize it to a size slightly bigger than the cut-out for the title screen for best results. Export it to a .tga file, name it "bootTvTex.tga", and make sure that RLE compression is turned off, as the Wii U does not support it. After you're done creating your bootscreen, open it on Paint.NET, and save it. Make sure that the color depth is set to 16-bit, as App Config Tool only supports 16-bit TGA bootscreens and 32-bit TGA icons. Once that's done, resize the image to 854x480 (the resolution of the GamePad), and save it as "bootDrcTex.tga". Again, make sure that the color depth is set to 16-bit. Once you're finished with the bootscreen, on to the icon. @CeeDee has a tutorial on how to make VC icons here. Follow that tutorial, but make sure that you use the Wii U icon and not the 3DS icon, and make sure that you save your icon as a 32-bit TGA file named "iconTex.tga" with RLE compression turned off. Now is the time to change the title ID and name of the game. You can also change the product code, but it is optional and not crucially recommended as you can two or more titles with the same product code unlike the title ID. Open meta.xml from the "meta" folder of your edited dumped game with Notepad++, and look for the title ID. It should look like this: Code: 00050000XXXXXXXX Change the "XXXXXXXX" part to whatever you want, but be fully aware that it does not, I repeat NOT, conflict with another game that you already have on your system. Afterwards, open app.xml from the "code" folder, just like how you opened and edited meta.xml, and look for the title ID. It should be easier than in the meta.xml. Once you have found it, change the title ID to the same one that you changed it to in meta.xml. After you're done changing the title IDs, make sure that both are the same. Now save app.xml. Once you have changed the title ID, go back to meta.xml and look for the name of the game. After you have found it, change it to the name of the game that you injected, splitting the name into 2 lines if possible. You can also do the same for the other languages, or even blank the other language titles and leave only the title for your language. Make sure that each line does not exceed 256 characters, for a total of 512. There should also be a "short name" of the game. Think of a short game for your game if possible, and fill it in, replacing the old name. Make sure that it does not exceed 256 characters. Save meta.xml once you have edited everything. There is only one final step left, and that is signing the bootscreens and icon. There are currently two bootscreen/icon signer applications available: App Config Tool (from the Wii U SDK) and TGAVerify. TGAVerify is highly recommended since it is easier to use than App Config Tool and doesn't require the Wii U SDK at all. If you still want to use App Config Tool, do so at your own risk. Signing with App Config Tool (NOT RECOMMENDED): Before you do this, make sure that you have the latest Wii U SDK, and that you also have App Config Tool and you are able to use it. Open App Config Tool, and select paths for both the "code" and the "meta" directory created by the application. Open "Convert Image File (P)" from the Tool drop-down box and click "Icon Image (1)". When it prompts you to create a save file, do so and follow the instructions. Select the iconTex.tga, and it will prompt you to create a meta folder. Do so and it will save to the meta path you chose. Now convert the bootTvTex.tga and bootDrcTex.tga using the same method, and copy the converted TGA files to the "meta" folder from the dumped edited game. Section D: Finishing We are almost done with our injection. This section covers converting the dumped edited game to WUPInstall format, and installing it to our Wii U. There are two main game packers that you can download: NUSPacker and Wii U Installer Packer. NUSPacker is recommended for packing your game since it doesn't use the Wii U SDK. A tutorial on how to use NUSPacker is linked here. If you still want to use Wii U Installer Packer to pack your game, do so at your own risk. Packing with Wii U Installer Packer (NOT RECOMMENDED): Copy the dumped edited game directory to the Wii U Installer Packer directory, and rename it to "GAME". Now launch the bat file from the Wii U Installer Packer directory, and it will prompt you to select a type (Game or DLC). Choose Game by pressing 1, and it will then prompt you if you want to make it region-free. It's your choice from here, you can press either 1 to make it region-free or 2 to leave it untouched. After this, regardless of whatever option you choosed, it will convert the game to USB format. Be patient, this will take from 30 seconds to 1 and a half minutes depending on the conditions. After it's done, there will now be a directory with your own WUPInstall VC injection. Pop the injection into your SD Card and install it to your USB through your favorite game installer (either Sys Config Tool or WUP Installer Mod Y depending on your Wii U's conditions). That's it, it's pretty much smooth from here! And there you have it, a WUPInstall VC inject on your Wii U menu that looks like it came straight from the eShop itself. Feel free to show me your proof-of-concept photos or videos on this subject as I appreciate it a lot, and check the FAQ if you have issues with your game. Happy injecting! FAQ Q: My game shows up on the Wii U menu but it crashes when I launch it. A: This may be issues with the title ID. Try a different one as long as it does not conflict with any of your other games. Q: My game doesn't show up on the Wii U menu at all. A: Make sure your inject is "clean" (you have injected it by yourself) and you have not used a VC inject from the Internet. Q: My game launches without flaws but the game itself doesn't work or has issues. A: Your game may not be compatible with the VC emulator. Check these compatibility lists to see if your game works. NES compatibility list SNES compatibility list N64 compatibility list GBA compatibility list NDS compatibility list Q: My game shows up as a corrupt title. A: It appears that you have not signed your bootscreens and/or icon. Do so using either App Config Tool or TGAVerify and try again.