From GameBrew

Last Updated2020/04/09
TypeSave Managers and Editors

GBAVCSM, or Game Boy Advance Virtual Console Save Manager, is a GodMode9 (gm9) script dedicated to handling GBA VC saves.


  • Automatically mass dump all the GBA VC saves in one go. Caching the titles list is not required.
  • Extract the *.gba roms from the individual injections.
  • User customizable script icon, title box art, and save folder's name & directory.
    • See further details in the option, About the script.
    • Edit the settings with a text editor like Notepad or Programmer's Notepad.
  • Supports up to four (4) separate Nintendo 3DS folders. Compatible with:

User guide

Box Arts, Banners, Screenshots, Rom Info Lookup


The [9:] RAMDRIVE was chosen for its availability on both o3DS and n3DS series systems.

  • It is close proximity to the [S:] SYSNAND VIRTUAL, and no need for post cleanup as the file erases itself after closing GodMode9.
  • Update edit 2020/01/17 - For the v1.2 release, this only applies for EEPROM 64k saves when the EEPROM 64k Mode is set to manual.

Unlike this method, you can inject saves for multiple titles in a single session.

  • The process of going back and forth exiting GodMode9, launching the GBA VC title, and going back to GodMode9 is eliminated.
  • A newly installed GBA VC title needs to be launched at least once in order to initialized its save.
  • If the save isn't initialized, the script will fail to find the title in a cache search.

About cache setup:

  • Rebuild Cache (Auto) - Carefully read the top screen's ~ INSTRUCTIONS ~.
  • Update Cache (Manual) - To find newly installed games so that they can be added:
    • [A:] SYSNAND SD/title/00040000 > hold (R) and press (A) > Search for titles.
    • Use pen(cil) and paper to write down their TitleIDs.

A title's folder name and NAME_* cache are adjustable. However, changing the NAME_* affect its save folder's name.

To quickly switch from Home Menu/NATIVE_FIRM to GodMode9:

  • Press (L)+(DOWN)+(SELECT) to open Rosalina menu.
  • Press (UP) twice, reboot, and then quickly press & hold (START) to access Luma3DS chainloader.

Early in its development, this script was internally known as project TOTO. The code name was adopted in jest to the person who helped out the most, and it stems from this individual's game character. However, the actual meaning or backstory of the name and how it came to be was never divulged; whoever this original TOTO refers to remains a mystery.​


gbavcsm2.png gbavcsm24.png



  • Choosing a game in Titles Selection now checks if it is still installed in the Nintendo 3DS folder. If the game is not found, ask the user if (s)he would like to remove it from the cache. The [removed] game's save files are kept intact and left alone in the saves folder.
  • Streamlined some of the code by exchanging the fset command with fill command when generating dummy CIAs. Very minor speed bump when adding new titles to the cache.


  • @Aurora Wright - Research in AGB_FIRM save types and sizes.
  • @d0k3 - Research in GBA VC *.sav and agbsave.bin CMACs.
  • @Wolfvak - Peer reviewed the initial rough draft code for CMAC handling the GBA VC saves on the SD card.
  • @CheatFreak47 - Research in EEPROM saves 0x8 bytes flipping.
  • @KleinesSinchen - Very thorough safety, critical functions, validation, and stress testings.
  • @EventAssistant (Bernardo Giordano) - Save manager ideas of cache and naming conventions borrowed from Checkpoint.
  • @JK_ - Save manager ideas of a bare minimum user interference appropriate for gm9 script borrowed from JKSM.
  • Nintendo - Box icon's simple style inspired from CTR SDK dev tools.

External links