How to create official looking Virtual Console Injects

Discussion in '3DS - Tutorials' started by CheatFreak47, Aug 10, 2016.

  1. CheatFreak47
    OP

    CheatFreak47 Complex Donut

    Member
    1,395
    1,007
    Oct 11, 2011
    United States
    Michigan, USA

    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.​
    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.

    [​IMG]
    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.​

    [​IMG]
    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:
    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:
    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.
    [​IMG]
    Once you're satisfied, click "Next Step".​

    Section III: Title Cards/Footers
    [​IMG]

    Prerequisites.​
    Note: While @Asdolo's Ultimate Injector softwares do 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 using GIMP entirely and continue with this whole section and just use the text box he provides with the fonts you downloaded above. Keep in mind that the reason we use GIMP is because 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.

    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.
    • 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.
    [​IMG]
    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.​

    [​IMG]
    Section IV: Options

    [​IMG]
    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
    [​IMG]
    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.​
    [​IMG]
    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, Jan 19, 2017 - Reason: add SNES VC Injector link
  2. CeeDee

    CeeDee hm?~

    Member
    3,836
    5,432
    May 4, 2014
    United States
    somewhere
    Nice work!
     
    CheatFreak47 likes this.
  3. Larsenv

    Larsenv RiiConnect24 Developer

    Member
    548
    465
    Sep 28, 2013
    United States
    Texas
    Wow.

    Love that Virtual Console Injection for the 3DS turned in the right direction.
     
    CheatFreak47 likes this.
  4. jerzmob

    jerzmob GBAtemp Regular

    Member
    122
    30
    Sep 1, 2007
    United States
    I've seen GBA virtual console games made already but how is it that the injector isn't released?
     
  5. CheatFreak47
    OP

    CheatFreak47 Complex Donut

    Member
    1,395
    1,007
    Oct 11, 2011
    United States
    Michigan, USA
    This guide is only for Asdolo's Injectors, and he has yet to complete all of them. There are other injectors as well, but at this time I'm only supporting his because they're the best. In the future, more injectors of this type will be made by him for GBA, TG16, and SNES.
     
  6. jerzmob

    jerzmob GBAtemp Regular

    Member
    122
    30
    Sep 1, 2007
    United States
    Ok I see. thanks for the clarification
     
  7. ironmaster49

    ironmaster49 GBAtemp Advanced Fan

    Member
    764
    168
    Aug 9, 2015
    Can we package SNES games into a CIA file included with an emulator that can work on o3ds and 2ds? thanks. Will be cool to have snes vc on o3ds.
     
  8. CheatFreak47
    OP

    CheatFreak47 Complex Donut

    Member
    1,395
    1,007
    Oct 11, 2011
    United States
    Michigan, USA
    You can't use the official VC emulator on old 3DS, it runs horribly slowly. If Asdolo includes support for BlargVC as an option for his injector when he makes it, maybe.
     
  9. ironmaster49

    ironmaster49 GBAtemp Advanced Fan

    Member
    764
    168
    Aug 9, 2015
    Yeah i meant blargvc emulator as in "an emulator" or retroarch maybe. It is a good idea to add in BlargVC as an option really.
     
  10. CheatFreak47
    OP

    CheatFreak47 Complex Donut

    Member
    1,395
    1,007
    Oct 11, 2011
    United States
    Michigan, USA
    I'm sure if you ask nicely, he will have a look at adding it as an option when he's looking into making his SNES injector. One thing I admire about him as a developer is how willing he is to make more options and features for his programs, something that a lot of other developers could learn from.

    @Asdolo Keep up the awesome work over there, your injectors are legendary in terms of quality and maintenance.
    Thanks. :)
     
    CatmanFan likes this.
  11. ironmaster49

    ironmaster49 GBAtemp Advanced Fan

    Member
    764
    168
    Aug 9, 2015
    @Asdolo yeah good job, i remember trying to make gbc injections manually, was a pain. I just hope for an snes option though and maybe a gba one too xD
     
  12. Asdolo

    Asdolo the Hedgehog

    Member
    505
    928
    Apr 29, 2016
    Argentina
    Buenos Aires
    I just see this! Amazing guide @CheatFreak47 ! Better explained than my poor tutorial, but you catch all the details to the perfection!

    I just want to say, I'm currently developing GBA injector

    [​IMG]


    Ah, @CheatFreak47 : the last version of every injector has now the Short Title feature
     
    Last edited by Asdolo, Aug 13, 2016
  13. ironmaster49

    ironmaster49 GBAtemp Advanced Fan

    Member
    764
    168
    Aug 9, 2015
    YEAH A GBA INJECTOR! Its cool to have all the tools in 1 executable, not switch from tools. Thank you very much
     
  14. Seriel

    Seriel Worshipper of Skiddos

    Member
    2,746
    5,050
    Aug 18, 2015
    United Kingdom
    UK
  15. CheatFreak47
    OP

    CheatFreak47 Complex Donut

    Member
    1,395
    1,007
    Oct 11, 2011
    United States
    Michigan, USA
    Seriel likes this.
  16. Seriel

    Seriel Worshipper of Skiddos

    Member
    2,746
    5,050
    Aug 18, 2015
    United Kingdom
    UK
    You could add a thing saying that this injector exists, but works differently?
    Or just.. mention it in some way lol
     
  17. CheatFreak47
    OP

    CheatFreak47 Complex Donut

    Member
    1,395
    1,007
    Oct 11, 2011
    United States
    Michigan, USA
    Done (:
     
  18. CatmanFan

    CatmanFan I guess I'm exaggerating.

    Member
    1,306
    435
    Aug 14, 2016
    Morocco
    Thanks @Asdolo for making these injectors! Can't wait to try out the GBA injector, and if possible please make injectors for SNES and TG16 soon :yay3ds:
     
  19. Asdolo

    Asdolo the Hedgehog

    Member
    505
    928
    Apr 29, 2016
    Argentina
    Buenos Aires
    I'll release the GBA injector in an hour or two
     
    CheatFreak47, CatmanFan and Seriel like this.
  20. lurkerer

    lurkerer Member

    Newcomer
    37
    6
    Jan 12, 2016
    Was waiting for your GBA injector thanks! Any specific tips for injecting the gba pokemon titles?