Tutorial  Updated

How to create official looking Virtual Console Injects


Hello everyone, welcome to my tutorial on how to make accurate Virtual Console injections for the 3DS. This guide is a bit reading heavy, but it's actually rather simple in practice.

The first thing you must do is acknowledge that the actual Virtual Console emulators are not perfect and often are flawed with some particular games, and thus, even if you do everything correctly, there is a chance your game may not work anyway, or portions may not be emulated correctly. This is especially the case for Super Nintendo, Game Gear, and to a certain extent, the Game Boy Advance.​

Section I: What you need

To create official looking Virtual Console injects for the 3DS you will need several tools.
First of all, you will need the injector for the console you wish to create Virtual Console Injects for. All of these Injectors are by @Asdolo and are the only injection methods I will be supporting with this guide. These tools currently only support Windows platforms.​
Note: New Super Ultimate Injector for 3DS (the public beta) is still in active development and is currently not supported by this guide, but the process for making Injects is very similar for it and it is actually much better for making GBA Injects than the older GBA tool listed above. This guide will be updated sometime shortly after Asdolo makes the first stable release of the software.

Alternatively you may use any other injector you'd like. @cots currently has a series of great, more complicated injectors for NES, SNES, and GBA. However, because they're more complex, I will not be covering how to use these to keep in line with the n00b-friendly nature of this guide. Make sure if you have questions about those injectors specifically, to ask on their respective development threads, not here.

Next you will need some other stuff:
  • Some method of attaining screenshots of the games you wish to create injects for.
    Possible Solutions: Google Images, Emulators + ShareX.
  • Roms of the games you wish to inject. I can't help you with this, obtain them on your own from your own sources on the internet.
To start, simply open the injector for the console you wish to create something for and on page 1, feed it the rom you want to create an inject for, and then click "Next step" on the bottom right.

Vb50Sln.png

For demonstration purposes, I will be using the Game Gear with the game, Legend of Illusion Starring Mickey Mouse.

Section II: Icons and Names
Prerequisites.​
  • Screenshot of the title screen of the game you are going to be creating an inject for.
  • It is recommended that this screenshot be pixel perfect and in PNG format.
  • Basic Googling Skills.
  • A character counting tool.
The first thing to do is click the "Load Icon Image" button and import your screenshot, this will create the icon image.

Next, you should google the title of the game you are creating an inject for to find 2 pieces of information. You want to find it's exact title and publisher (not developer). The easiest way to do this is to google the exact title of the game.​

FVTJg.png

As you can see from the image above, the exact title, based on the description of the game is "Legend of Illusion Starring Mickey Mouse" and the publisher is "Sega". While it says "Sega" the actual information you would put it would be "SEGA" as this is the official name of the company.

Now that you have this information, it's a good idea to put the information into the boxes.
Here are some general guidelines for inputting this information that are based on the official virtual console titles.

Long Name:​
  • This field appears on the top screen in the bubble containing the name of the game on the present icon on the top screen before it's unwrapped, above the name of the publisher. It appears in the speech bubble above the icon on the 3DS home menu that appears only while the home menu icons are all the way zoomed in. It appears while the software is suspended in the home menu on the top screen, and lastly, it also appears when you click on the title in the data management menu.
  • The full title of the game goes in this box.
  • You are allowed 2 lines.
  • Each line is allowed to go up to 32 characters.
  • This means your full title should not exceed 64 characters. (technically the actual field allows up to 128, but this is not recommended, as it will cause some distorted, unprofessional appearance throughout the 3DS system.)
  • Place line breaks in long titles up at appropriate locations. Often times longer game titles have a main title and a sub-title. The point after the main title would be an appropriate breakpoint.
  • Some good examples of long names for games with long titles:
    The Legend of Zelda:
    Oracle of Ages
    Legend of Illusion
    Starring Mickey Mouse
    Dr. Robotnik's
    Mean Bean Machine
Short Name:
  • This field appears in the data management menu in the listing of games. It also is the title used for Title listings in FBI and JKSM.
  • A shortened version of the long name goes in this box, when it is necessary.
  • Titles that are less than 32 characters will be exactly the same as the Long Name field.
  • You are allowed only 1 line.
  • You are not to exceed 32 characters. (technically the field allows up to 64, however exceeding 32 causes odd wrapping in the data management section of the system settings. No official titles exceed 32 characters.)
  • Don't be lazy! Make your short name descriptive, you don't want multiple games using the same short name.
  • If you can't think of a good way to shorten the name, an adequate option would be to type the first 29 characters followed by an ellipsis. (an ellipsis is a series of 3 periods, or ... for those unaware.)
  • Some good examples of short names for games with long titles:
    Zelda: Ages
    Legend of Illusion
    Dr. Robotnik's MBM
Publisher:
  • This field appears on the top screen in the bubble containing the name of the game on the present icon on the top screen before it's unwrapped, beneath the long name of the title. It also appears in the speech bubble above the icon on the 3DS home menu that appears only while the home menu icons are all the way zoomed in.
  • This field contains the company that published the game originally.
  • Don't list the developer here accidentally! There's is a difference.
  • Sometimes Wikipedia lists the name of some companies such as SEGA incorrectly cased to appear more proper in text. Remember to use the correct casing that is consistent with official titles where possible.
GN082vm.png
Once you're satisfied, click "Next Step".​

Section III: Title Cards/Footers
tVEThkq.png

Prerequisites.​
Note: While @Asdolo's Ultimate Injector software does include options for generating these directly in the program, they're not entirely accurate to the official virtual console titles. If you are fine with that, feel free to skip the rest of this section entirely and just use the text box he provides with the fonts you downloaded above. Keep in mind that the reason we use GIMP/PhotoShop is that it provides a lot more customization to make it look more official, though.

To start, simply open the project template I provided above and edit away following these rules the best you can.
If you downloaded the PhotoShop template, read the Readme for how to use that template instead, though I think this stuff still applies in that template too, with little variance.

Suggested Rules for All Text:​
  • Font must be SCE-PS3 Rodin LATIN Bold.
  • Text must be center justified.
  • After you have the number of lines finalized, correctly center the text vertically using the top border of the text box.
  • These are only suggestions. Do whatever looks best, study official VC title cards of the type of console you are creating an inject for. Do what you must to attain the level of quality you want.
Suggested Rules for Game Name text:
  • Up to 2 lines of text are permitted. 1 line is preferred when possible within the rule set below.
  • Text size must be between 15px and 11px. Sizes below 13px work as well but look significantly worse, the smaller you get. If you need to get any smaller to crunch more text in, consider adding a second line if you haven't already, additionally you may adjust letter spacing to -1 on one of the lines to make everything fit, having 2 lines is preferred to having text crunch, in most cases.
Suggested Rules for Release Text:
  • GBA Games do not have this line at all, as the only officially released GBA games were part of the Nintendo 3DS Ambassador program and released before these apparent standards were in place.
  • 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 on physical media for the original console, like Rom Hacks or Unofficial Translations, input "Not Released." for this line.
  • The font must have letter spacing set to 1 for the entire line. (It must be set to 2 for text that reads "Not Released.")
  • Text size must be 14px or 13px. 13px tends to be used for games that have more than one line for the name.
  • If you're a real stickler for accuracy, you may need to adjust the spacing between the colon and year slightly, and possibly on the year itself, this is a trait inconsistent among official virtual console but I decided to mention it anyway since Xyllon brought it up to me on reddit.
lgPs6As.png

here are some examples of good footer images

Once you have something you think looks good, export it as a PNG file with GIMP and import it by ticking the "import and use custom footer image" box and feeding it the PNG you just made.​

WHlSNwT.png

Section IV: Options

RYHQuTD.png
How you handle these pages is up to you. Each injector has unique options for each console and as such, it's a good idea to figure out what you yourself like the most. This is all up to you.... unless you're doing a GBA game.

Section Q: GBA Games
KQJFv.png

First of all, if you're just here for the IPS patches, here: Pokemon & Super Mario Advance 4.

Before getting into the more complex patch options, there one extra patch called the sleep patch, which allows you to add a button combo to the game that puts the GBA game into sleep mode. Personally, I can't attest to it actually saving any power, but it does work and it does what it says it does. Some games will crash with it enabled, so use this at your own discretion.

Anyhow, GBA Games oftentimes will work fine without needing any patches at all. But, sometimes, they won't. And that's what this section is for.

Some games, when using the default settings will not save properly when injected, and return errors or crash when starting when you try to play them due to a saving problem. Here is a short, very incomplete list of games that do this:​

  • 2-in-1: Dr. Mario & Puzzle League (needs applied 3 times)
  • Crash Bandicoot 2: N-Tranced
  • Crash Bandicoot: The Huge Adventure
  • Crash Nitro Kart
  • Donkey Kong Country
  • Donkey Kong Country 3
  • Doom
  • Doom II
  • Dragon Ball Z: Supersonic Warriors
  • Grand Theft Auto Advance
  • Green Eggs and Ham
  • Ice Age 2: The Meltdown
  • Nicktoons: Freeze Frame Frenzy
  • Ninja Five-O
  • Rayman 3
  • Shrek: Hassle at the Castle
  • Spider Man
  • Spider Man 2
  • Spider Man 3
  • Spider Man Battle for New York
  • Spyro Season of Ice
  • Spyro Super Pack: Spyro: Season of Ice & Spyro 2: Season of Flame (needs applied 2? times)
  • Super Ghouls 'n Ghosts
  • Super Mario Advance
  • Super Mario Ball / Mario Pinball Land
  • Super Monkey Ball Jr.

These errors are most common for games that use EEPROM saving, so if your game's saving doesn't work and it detects as EEPROM, chances are, the SRAM patch will fix it for you. Additionally, some of these EEPROM games may appear to save properly but when you exit and restart them from the Home Menu the saves will no longer be present. It is important you check and make sure. Trial and Error is key.

These games will require you tick the "SRAM Patch" box and depending on the type of rom, enable multiple applications of this patch. In particular, multicarts tend to need multiple passes, like Dr. Mario & Puzzle League which needs 3 whole passes to have the whole game save properly. Again, Trial and Error is key.

Next we have games that absolutely need custom patches to save or work properly. Here is a list of games that you absolutely need these IPS patches for.
  • Pokemon Ruby
  • Pokemon Sapphire
  • Pokemon Emerald
  • Pokemon FireRed
  • Pokemon LeafGreen
  • Pokemon Mystery Dungeon: Red Rescue Team
  • Super Mario Advance 4: Super Mario Bros. 3
Currently, there are IPS patches available for the USA versions of all the Pokemon Games.
Simply tick the IPS patch box and pick these files on page 4 of the injector and your games should save properly.

Now, for Super Mario Advance 4. This game basically requires you grab the USA, Australia Rev1 copy of that rom. (That's how it's labeled in the No-Intro Collection.)

This is the patch for the rom.

After applying this in step 4 of the injection, the game will softlock when creating a save file, from there, just use Start+Select+A+B to reset the game, and then from there, play the game, only using 1 save file and don't use the Quick Save option in the pause menu. For World E there's no additional work needed, it works fine. The game will also complain of corruption on start up, which is normal, Unfortunately, there's not really any way around this yet. Sorry.

Section V: Completion!

Once you're satisfied, hit finish to export your rom. It'd be wise of you to include the product code and TitleID in the file name, just so you can replace it without creating a new title if you realize you messed something up. From there, pop the CIA on your SD card or a web server and install it with your favorite CIA installer and you're all set.​
pTeL3lk.png
And just like that, you have something that to the untrained eye, looks like it came right from the eShop itself. Enjoy your retro gaming, everyone. If you have any questions or concerns, feel free to voice them in the thread below. Hopefully this helped some of you out there.

Afterword.
I'd like to thank a few people, as this guide wouldn't be as fleshed out as it is without them:
@Asdolo for making these injectors and being an awesome dev
@Asia81 for making threads with guides for hex editing roms (which I've turned into IPS patches)
@AmeenX for some pokemon patches
@Tdam01 for some more pokemon patches
@yafeee for making the patch for Mystery Dungeon Red Rescue Team, which I ported to the USA version
 
Last edited by CheatFreak47, , Reason: change filetrip link to a GBAtemp Downloads link

Govhatanks

New Member
Newbie
Joined
Oct 5, 2016
Messages
2
Trophies
0
Age
33
XP
58
Country
United States
Hey. Just started the whole VC injection thing. I got Fire Red to work. If I wanted to inject a ROM hack, how would that be done without breaking the game? I'm running Luma with 11.2 FW btw. Trying to play a FireRed ROMHack. Thx
 

Savvasf

Well-Known Member
Newcomer
Joined
Aug 3, 2016
Messages
48
Trophies
0
Age
21
XP
95
Country
Greece
Imagine If we could do that with .nds roms!There is already virtual console for ds games so why not implement a ds one so we can play ds games off sd card!
 

TheArcadeStriker

Well-Known Member
Member
Joined
Oct 5, 2016
Messages
215
Trophies
0
Age
21
Location
somewhere
XP
276
Country
Venezuela
Oh hey CheatFreak47! (I just noticed that you were the OP) I don't know if it can be fixed either, or if someone has done a patch for it, but F-Zero Climax does seem to have a lot of issues for saving (Does not save if not SRAM patched, seems to load default custom tracks and save for one cup with SRAM, but wipes the save after beating another cup). These issues can be fixed for the game? I would love playing the game in the 3DS, since it's kind of a hassle (currently, not for technical, but for other reasons) to get the game in the PSP, and while I can, I don't really feel like emulating the game (Feels a bit odd with a PS2 controller, and even more considering that I would have to use the stick because the d-pad left button is not working) in the PC.

If you can help, I would be very happy!
 

CheatFreak47

Catgirl Expert
OP
Member
Joined
Oct 11, 2011
Messages
1,570
Trophies
2
Age
28
Location
Michigan, USA
XP
2,760
Country
United States
Oh hey CheatFreak47! (I just noticed that you were the OP) I don't know if it can be fixed either, or if someone has done a patch for it, but F-Zero Climax does seem to have a lot of issues for saving (Does not save if not SRAM patched, seems to load default custom tracks and save for one cup with SRAM, but wipes the save after beating another cup). These issues can be fixed for the game? I would love playing the game in the 3DS, since it's kind of a hassle (currently, not for technical, but for other reasons) to get the game in the PSP, and while I can, I don't really feel like emulating the game (Feels a bit odd with a PS2 controller, and even more considering that I would have to use the stick because the d-pad left button is not working) in the PC.

If you can help, I would be very happy!

Oh hey, small world I guess.

Yeah, that's an issue I've heard about for a while now but you're the first to give some concrete details about the issue.
regardless, I honestly don't think there's any easy way to fix these problems but to reverse engineer the 3DS's AGB FIRM and just fix the issues there- and to my knowledge nobody has really managed to properly do anything of the sort.

Hopefully someone with good reverse engineering skills will have a poke at it someday but until then it's just something you'd have to put up with.
 

seseiSeki

Well-Known Member
Member
Joined
Sep 26, 2016
Messages
203
Trophies
0
Age
27
XP
2,220
Country
Germany
Some time ago, I created a thread discussing this issue. Everything I found out was, that F-Zero Climax uses 128k save files which aren't supported by the AGB_Firm. The Pokémon games also have this issue, but it can be bypassed by forcing the game to save to 64k save files, since the second half of their save file isn't that important. I don't think that that's the case for Climax, tho.
 
Last edited by seseiSeki,

Allav866

Active Member
Newcomer
Joined
Mar 9, 2012
Messages
34
Trophies
0
XP
168
Not sure if anyone else brought this up, but I'm having 2 issues making this look 100% legit.
First, there's the border:
Unofficial:
8vcAGny.jpg

Official:
4eCrJUk.jpg


Then, there's the black borders on the top and bottom of the icon. Zero Mission's borders seem smaller:
mCxHMeJ.jpg


Does anyone know how I can fix this?
 
Last edited by Allav866,
  • Like
Reactions: CatmanFan

CheatFreak47

Catgirl Expert
OP
Member
Joined
Oct 11, 2011
Messages
1,570
Trophies
2
Age
28
Location
Michigan, USA
XP
2,760
Country
United States
Not sure if anyone else brought this up, but I'm having 2 issues making this look 100% legit.
First, there's the border:
Unofficial:
8vcAGny

Official:
4eCrJUk


Then, there's the black borders on the top and bottom of the icon. Zero Mission's borders seem smaller:
mCxHMeJ


Does anyone know how I can fix this?

Well, you can manually create and import icons, but the color issue I've never noticed before.
Maybe @Asdolo can change the color or something to match closer?

Also fix your image links, you can't like to an imgur page you need to link to the image itself.
 

Allav866

Active Member
Newcomer
Joined
Mar 9, 2012
Messages
34
Trophies
0
XP
168
@CheatFreak47
I shrunk the image to be 44x29 px, cropped it to 40 px wide, set the boundary size to 40x40 px, then made sure the black bar on top was 5 px tall, and the one on the bottom 6 px tall.
5ctNwsN.jpg

As for the banner, I got really close to finding a color that perfectly matches the official banner, but comparing it to the image I showed earlier, it's still slightly off. Will fix and report back.

--------------------- MERGED ---------------------------

@CheatFreak47 ...Oh, wait, I see what you mean by the mini border, because I did get the right color for the outer border (#FF8050BA), but the mini border made me think I got it wrong.
hXeS8bi.jpg

How do I change that?
 
Last edited by Allav866,
  • Like
Reactions: CatmanFan

Asdolo

the Hedgehog
Member
Joined
Apr 29, 2016
Messages
597
Trophies
3
Age
30
Location
Buenos Aires
Website
twitter.com
XP
1,221
Country
Argentina
@CheatFreak47
I shrunk the image to be 44x29 px, cropped it to 40 px wide, set the boundary size to 40x40 px, then made sure the black bar on top was 5 px tall, and the one on the bottom 6 px tall.
5ctNwsN.jpg

As for the banner, I got really close to finding a color that perfectly matches the official banner, but comparing it to the image I showed earlier, it's still slightly off. Will fix and report back.

--------------------- MERGED ---------------------------

@CheatFreak47 ...Oh, wait, I see what you mean by the mini border, because I did get the right color for the outer border, but the mini border made me think I got it wrong.
hXeS8bi.jpg

How do I change that?

Hey, sorry for the color thing.

The thing is, to make the banner have a custom color, first I had to convert it to grayscale and then apply the color effect (acording to the selected user color).
So, to re-create the original purple color I had to find a nice color that, applying the effect, makes a banner similar to the original one.
If you find the (almost) perfect color, please let me know so I can set it as default for future versions.

Thank you!
 

Allav866

Active Member
Newcomer
Joined
Mar 9, 2012
Messages
34
Trophies
0
XP
168
Hey, sorry for the color thing.

The thing is, to make the banner have a custom color, first I had to convert it to grayscale and then apply the color effect (acording to the selected user color).
So, to re-create the original purple color I had to find a nice color that, applying the effect, makes a banner similar to the original one.
If you find the (almost) perfect color, please let me know so I can set it as default for future versions.

Thank you!
FF8050BA looks spot-on!
 
Last edited by Allav866,
  • Like
Reactions: CatmanFan

Asdolo

the Hedgehog
Member
Joined
Apr 29, 2016
Messages
597
Trophies
3
Age
30
Location
Buenos Aires
Website
twitter.com
XP
1,221
Country
Argentina
FF8050BA looks spot-on!
Thank you for your help!

I have this idea for the new Injector I'm working on:
First, set FF8050BA as default GBA color.
Then, if the user does not change the color, I'll just grab the original banner file (with the right purple color) and inject it into the CIA.
If the user changes the color, then I'll proceed to the color changing process I mentioned a few posts ago.

Enviado desde mi XT1635-02 mediante Tapatalk
 

CheatFreak47

Catgirl Expert
OP
Member
Joined
Oct 11, 2011
Messages
1,570
Trophies
2
Age
28
Location
Michigan, USA
XP
2,760
Country
United States
Thank you for your help!

I have this idea for the new Injector I'm working on:
First, set FF8050BA as default GBA color.
Then, if the user does not change the color, I'll just grab the original banner file (with the right purple color) and inject it into the CIA.
If the user changes the color, then I'll proceed to the color changing process I mentioned a few posts ago.

Enviado desde mi XT1635-02 mediante Tapatalk

You may also want to make it so it properly aligns the title screens on the icons, this is the 5th or 6th person I've seen mention that.
 

Asdolo

the Hedgehog
Member
Joined
Apr 29, 2016
Messages
597
Trophies
3
Age
30
Location
Buenos Aires
Website
twitter.com
XP
1,221
Country
Argentina
You may also want to make it so it properly aligns the title screens on the icons, this is the 5th or 6th person I've seen mention that.
I'm pretty sure latest versions of my injector makes the icon as official as possible, but I'll totally check it!

Enviado desde mi XT1635-02 mediante Tapatalk
 
  • Like
Reactions: Allav866

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: @LeoTCK, mods are probably hating you