lesserkuma / GBA_MultiMenu

GNU General Public License v3.0
69 stars 2 forks source link

GBA Multi Game Menu (by Lesserkuma)

This is a menu program to be run on Game Boy Advance bootleg cartridges which are equipped with a special multi-game mapper.

The binaries are available in the Releases section.

Usage

Place your ROM files and save data files into the roms folder, then run the ROM Builder tool. Upon first launch, it will create a config.json automatically which you can then modify further to your liking. To reset the configuration and re-generate a new one, just delete the config.json file.

Configuration

Open the config.json file in a text editor like Notepad.

The following section must be edited in order to specify the cartridge type to use and whether or not your cartridge has a battery installed:

"cartridge": {
    "type": 2,
    "battery_present": false,
    "min_rom_size": 4194304
},

Set type to 1 or 2:

Set battery_present to true or false. This will enable enhanced save data handling which will only be functional with a working battery.

Set min_rom_size to whatever your cartridge supports as the smallest possible ROM size. Many newer cartridges only support ROMs no smaller than 4 MiB (4194304) while some older cartridges can go as low as 512 KiB (524288).

In the games section, you can edit the game-related stuff:

"games": [
    {
        "enabled": true,
        "file": "wah7.gba",
        "title": "Super WAHluigi Bros. 7",
        "title_font": 1,
        "save_slot": 1
    },

ROM Builder Command Line Arguments

No command line arguments are required for creating a compilation, however there are some optional ones that can tweak some things:

--split                 splits output files into 32 MiB parts
--no-wait               don't wait for user input when finished
--no-log                don't write a log file
--config config.json    sets the config file to use
--bg bg.png             sets the background image to use
--output output.gba     sets the file name of the compilation ROM

Limitations

Save Data

If the cartridge has a battery installed, the ROMs must be SRAM-patched with GBATA for saving to work.

If the cartridge has no battery installed, the ROMs must be patched for batteryless SRAM saving with maniac's Automatic batteryless saving patcher.

On battery-equipped cartridges, when starting a game from the menu, the previously played game's save data will be read from SRAM and stored to permanent flash memory. To skip this, you can hold the SELECT button while starting the game.

Compatibility

Tested repro cartridges:

The generated compilation ROM can be written and read using a GBxCart RW v1.4+ device by insideGadgets and the FlashGBX software.

Thanks

Thanks to FraX, Ausar, liuyunx, BennVenn, Jenetrix, Matt

Screenshots