Finding and adding the correct BIOS files to Garlic OS on the Anbernic RG35XX so that you can play ROMs
Each step is explained in English with the corresponding terminal command below it. These instructions should work without problem on any modern macOS — with either Intel or Apple Silicon CPUs. Tested on macOS Ventura 13.5 on both an Intel i9 chip, and an Apple M1 Max chip.
-
A relatively recent version of macOS.
-
Comfortable-enough using Terminal.app (or alternatives).
-
You have Homebrew installed. (Installation is outside the scope of this tutorial, but it’s pretty fundamental if you do technical things on your Mac.)
- This includes installing the Xcode CLI tools (a much smaller download than the entire Xcode).
Garlic OS shares certain fundamentals with Onion OS. Namely, these include names of ROM folders, and the BIOS files that are necessary to play games. The canonical guide for Onion OS lives at https://github.com/OnionUI/Onion/wiki/Emulators, and it is extremely good. However, Garlic OS and Onion OS are not identical, and in some cases, they do things slightly differently.
This document was created by cross-referencing Onion UI: Emulators, Libretro: Core List, and GitHub: @libretro.
These BIOS files also generally work well with other emulators (like OpenEmu), although the focus here is on the RG35XX device.
If you followed one of the Installing Garlic OS on your Anbernic RG35XX using macOS guides to do an initial installation of Garlic OS, you’ll remember that we had a volume called MISC
and another called ROMS
.
-
In the
ROMS
volume, you should have (at least) these folders:BIOS
,CFW
,Roms
,Saves
, andScreenshots
. -
Inside the
ROMS/BIOS
folder, this is where you will put all of the BIOS files (listed below). -
The ROM folders are mapped back to a specific emulator core by opening the
ROMS
SD card partition, going into theCFW
→config
folder, and openingcoremapping.json
in your preferred editor.See the Terminal command…
Open the Finder window:
open /Volumes/ROMS/CFW/config/
Then double-click
coremapping.json
to open the file with whichever application is configured to open JSON files. (If you don’t have a preferred code editor, I can suggest VS Code.)Alternatively…
open /Volumes/ROMS/CFW/config/coremapping.json
TLDR
Save files are emulator-specific. The (default) emulator that is assigned to a ROM folder will create save files in that emulator’s format (which is why I’m mentioning this here).
If you want to "cross-save" with a different device, you need to ensure you’re using the same emulator on the other device.
This is not bulletproof, however. Different systems may use different versions/commits of these emulators, which may be incompatible with each other. So make sure you regularly backup your save files.
TLDR
This applies to Neo Geo arcade games, Neo Geo console games, Neo Geo CD games. Sometimes the Neo Geo emulator looks for BIOS files in the same directory as the game, and sometimes it looks in the BIOS/
directory.
-
Inside the
ROMS/Roms
folder, create a new subfolder calledNEOGEO
if it doesn’t already exist.-
Copy (not move)
ROMS/BIOS/neogeo.zip
toROMS/Roms/NEOGEO/neogeo.zip
.See the Terminal command…
cp --verbose --force /Volumes/ROMS/BIOS/neogeo.zip /Volumes/ROMS/Roms/NEOGEO/neogeo.zip
-
-
Inside the
ROMS/Roms
folder, create a new subfolder calledNEOCD
if it doesn’t already exist.-
Copy (not move)
ROMS/BIOS/neogeo.zip
toROMS/Roms/NEOCD/neogeo.zip
.See the Terminal command…
cp --verbose --force /Volumes/ROMS/BIOS/neogeo.zip /Volumes/ROMS/Roms/NEOCD/neogeo.zip
-
Yes, this means that there will be multiple copies of neogeo.zip
on your SD card. No, don’t create symlinks.
While you can certainly do some fiddling if you are a true arcade aficionado, for most people we’re going to recommend FinalBurn Neo for playing arcade games. It seems to work more consistently than MAME, CPS, or the other options.
Inside the ROMS/Roms
folder, create a new subfolder called FBNEO
if it doesn’t already exist. This is where you will put all of the Arcade ROMs.
Note
You can validate MD5 checksums using Appendix: BIOS Checksums.
Finalburn Neo not doing it for you?
Garlic OS and RetroArch will try to execute games inside the FBNEO
folder with the Finalburn Neo arcade emulator. This is probably OK, but if you have an arcade game that doesn’t work well with Finalburn Neo, there are some alternatives.
Folder | Emulator |
---|---|
ARCADE |
MAME 2003 Plus |
FBA2012 |
Finalburn Alpha (2012) |
FBNEO |
Finalburn Neo |
MAME2000 |
MAME 2000 |
While RetroArch (libretro
) supports other Arcade emulators, Garlic OS on the RG35XX does not.
Game system | BIOS filenames |
---|---|
Bubble System BIOS | bubsys.zip |
C-Chip Internal ROM | cchip.zip |
Fairchild Channel F BIOS | channelf.zip |
Nebula (Deco Cassette) (BIOS) | cnebula.zip |
ColecoVision System BIOS | coleco.zip |
DECO Cassette System BIOS | decocass.zip |
FDS System BIOS | fdsbios.zip |
ISG Selection Master Type 2006 System BIOS | isgsm.zip |
Midway SSIO Sound Board Internal ROM | midssio.zip |
MSX1 System BIOS | msx.zip |
Namco C69 BIOS | namcoc69.zip |
Namco C70 BIOS | namcoc70.zip |
Namco C75 BIOS | namcoc75.zip |
Neo Geo CDZ System BIOS | neocdz.zip |
Neo Geo BIOS | neogeo.zip |
Neo Geo Pocket BIOS | ngp.zip |
NMK004 Internal ROM | nmk004.zip |
PGM System BIOS | pgm.zip |
Super Kaneko Nova System BIOS | skns.zip |
ZX Spectrum 128 BIOS | spec128.zip |
ZX Spectrum 128 +2a BIOS | spec1282a.zip |
ZX Spectrum BIOS | spectrum.zip |
YM2608 Internal ROM | ym2608.zip |
Source: https://docs.libretro.com/library/fbneo/
If the game system has a flag next to it, it means that the name/device was only sold in that market.
Note
You can validate MD5 checksums using Appendix: BIOS Checksums.
Game system | Year | Core/Emulator | BIOS filenames | ROM folder name |
---|---|---|---|---|
3DO Interactive Multiplayer¹ | 1993 | Opera | panafz1.bin or panafz10.bin or panafz10-norsa.bin or panafz10e-anvil.bin or panafz10e-anvil-norsa.bin or panafz1j.bin or panafz1j-norsa.bin or goldstar.bin or sanyotry.bin or 3do_arcade_saot.bin (JP: panafz1-kanji.bin , panafz10ja-anvil-kanji.bin , panafz1j-kanji.bin ) |
PANASONIC |
Amstrad CPC | 1984 | CrocoDS | None | CPC |
Atari 800 | 1979 | Atari800 | ATARIOSA.ROM , ATARIOSB.ROM , ATARIBAS.ROM |
EIGHTHUNDRED |
Atari 2600 | 1977 | Stella 2014 | None | ATARI |
Atari 5200 SuperSystem | 1982 | a5200 | 5200.rom , ATARIBAS.ROM |
FIFTYTWOHUNDRED |
Atari 7800 ProSystem | 1986 | ProSystem | 7800 BIOS (U).rom , 7800 BIOS (E).rom |
SEVENTYEIGHTHUNDRED |
Atari Falcon | 1992 | Hatari | tos.img v4.x |
ATARIST |
Atari MEGA STE | 1991 | Hatari | tos.img v1.x, 2.x |
ATARIST |
Atari ST | 1985 | Hatari | tos.img v1.00, 1.02, 1.04, 2.06 |
ATARIST |
Atari TT | 1990 | Hatari | tos.img v3.x |
ATARIST |
ColecoVision | 1982 | blueMSX | coleco.rom |
COLECO |
Commodore 64 | 1982 | VICE x64 | None | COMMODORE |
Commodore 128 | 1985 | VICE x128 | None | C128 |
Commodore Amiga | 1985 | PUAE 2021 | kick33180.A500 , kick34005.A500 , kick34005.CDTV , kick37175.A500 , kick37350.A600 , kick39106.A1200 , kick39106.A4000 , kick40060.CD32 , kick40060.CD32.ext , kick40063.A600 , kick40068.A1200 , kick40068.A4000 |
AMIGA |
Commodore Amiga CD32 | 1993 | PUAE 2021 | kick33180.A500 , kick34005.A500 , kick40068.A1200 |
AMIGACD |
Commodore PET | 1977 | VICE xpet | None | PET |
Commodore Plus/4 | 1984 | VICE xplus4 | None | PLUS4 |
Commodore VIC-20 | 1980 | VICE xvic | None | VIC20 |
Fairchild Channel F | 1976 | FreeChaF | sl31253.bin , sl31254.bin , sl90025.bin |
FAIRCHILD |
GCE Vectrex | 1982 | vecx | None | VECTREX |
Magnavox Odyssey 2 🇺🇸 |
1978 | O2EM | o2rom.bin |
ODYSSEY |
Mattel Intellivision | 1979 | FreeIntv | exec.bin , grom.bin |
INTELLIVISION |
Microsoft MS-DOS | 1981 | DOSBox-Pure | None | DOS |
NEC PC Engine 🇯🇵 🇪🇺 |
1987 | Beetle PCE Fast | None | PCE |
NEC PC Engine SuperGrafx 🇯🇵 |
1989 | Beetle SuperGrafx | syscard3.pce |
SGFX |
NEC PC-8000 series | 1979 | QUASI88 | None | PCEIGHTYEIGHT |
NEC PC-8800 (PC-88) series | 1981 | QUASI88 | None | PCEIGHTYEIGHT |
NEC PC-9800 (PC-98) series | 1982 | Neko Project II Kai | np2/font.bmp , np2/FONT.ROM , np2/bios.rom , np2/itf.rom , np2/sound.rom |
PCNINETYEIGHT |
NEC PC-FX 🇯🇵 |
1994 | Beetle PCFX | pcfx.rom |
PCFX |
NEC TurboGrafx-16 🇺🇸 |
1989 | Beetle PCE Fast | None | PCE |
Nintendo Entertainment System (NES) 🇺🇸 🇪🇺 |
1985 | FCEUmm | None | FC |
Nintendo Entertainment System (NES) 🇺🇸 🇪🇺 |
1985 | Nestopia UE | None | NESTOPIA |
Nintendo Family Computer (Famicom) 🇯🇵 |
1983 | FCEUmm | None | FC |
Nintendo Family Computer (Famicom) 🇯🇵 |
1983 | Nestopia UE | None | NESTOPIA |
Nintendo Virtual Boy | 1995 | Beetle VB | None | VB |
Philips Videopac+ 🇯🇵 🇪🇺 |
1978 | O2EM | o2rom.bin , g7400.bin (maybe c52.bin , jopac.bin ) |
VIDEOPAC |
Sega Genesis 🇺🇸 |
1989 | PicoDrive | bios_MD.bin |
MD |
Sega Mark III 🇯🇵 |
1985 | PicoDrive | bios_E.sms , bios_U.sms , bios_J.sms |
MS |
Sega Master System 🇺🇸 🇪🇺 |
1986 | PicoDrive | bios_E.sms , bios_U.sms , bios_J.sms |
MS |
Sega Mega Drive 🇯🇵 🇪🇺 |
1988 | PicoDrive | bios_MD.bin |
MD |
Sega SG-1000 🇯🇵 |
1983 | Gearsystem | None | SEGASGONE |
Sharp X1 🇯🇵 |
1982 | X Millennium | xmil/IPLROM.X1 , xmil/IPLROM.X1T |
XONE |
Sharp X68000 🇯🇵 |
1987 | PX68k | keropi/iplrom.dat , keropi/cgrom.dat , keropi/iplrom30.dat , keropi/iplromco.dat , keropi/iplromxv.dat |
X68000 |
Sinclair ZX Spectrum 🇪🇺 |
1982 | Fuse | None | ZXS |
Sinclair ZX-81 🇪🇺 |
1981 | EightyOne | None | ZXEIGHTYONE |
SNK Neo Geo | 1990 | Final Burn Alpha (2012) Neo Geo | neogeo.zip |
NEOGEO |
SNK Neo Geo CD | 1994 | NeoCD | (000-lo.lo or ng-lo.rom ) + (neocd_f.rom or neocd.bin or uni-bioscd.rom ) + neogeo.zip |
NEOCD |
Sony Playstation | 1995 | PCSX ReARMed | PSXONPSP660.bin , scph101.bin , scph7001.bin , scph5501.bin , scph1001.bin |
PS |
Super Famicom 🇯🇵 |
1990 | Snes9x | None | SFC |
Super Nintendo Entertainment System (SNES) 🇺🇸 🇪🇺 |
1991 | Snes9x | None | SFC |
Uzebox | 2008 | Uzem | None | UZEBOX |
¹ 3DO was a set of specifications, with manufacturing licensed to Panasonic, GoldStar, Sanyo, Creative, and Samsung.
Unplayable systems
These systems are deemed unplayable either because emulation is far too slow on RG35XX, or because the BIOS files are extraordinarily hard to find on the internet.
Game system | Core/Emulator | BIOS filenames | ROM folder name | Issue(s) |
---|---|---|---|---|
Atari Jaguar | Virtual Jaguar | virtualjaguar_bios |
JAGUAR |
Poor performance; BIOS files cannot be found. |
Note
You can validate MD5 checksums using Appendix: BIOS Checksums.
Game system | Year | Core/Emulator | BIOS filenames | ROM folder name |
---|---|---|---|---|
Atari Lynx | 1989 | Handy | lynxboot.img |
LYNX |
Bandai SwanCrystal 🇯🇵 | 2002 | Beetle Wonderswan | None | WS |
Bandai WonderSwan 🇯🇵 | 1999 | Beetle Wonderswan | None | WS |
Bandai WonderSwan Color 🇯🇵 | 2000 | Beetle Wonderswan | None | WS |
Cougar Boy 🇧🇷 | 1993 | SameDuck | None | MEGADUCK |
Nintendo Game & Watch | 1980 | GW | None | GW |
Nintendo Game Boy | 1989 | Gambatte | gb_bios.bin |
GB |
Nintendo Game Boy Advance | 2001 | gpSP | gba_bios.bin |
GPSP |
Nintendo Game Boy Advance | 2001 | mGBA | gba_bios.bin |
GBA |
Nintendo Game Boy Color | 1998 | Gambatte | gbc_bios.bin |
GBC |
Nintendo Pokemon Mini | 2001 | PokeMini | bios.min |
POKE |
QuickShot Supervision 🇬🇧 | 1992 | Potator | None | SUPERVISION |
Sega Game Gear | 1990 | PicoDrive | bios.gg |
GG |
SNK Neo Geo Pocket | 1998 | Beetle NGP | None | NGP |
SNK Neo Geo Pocket Color | 1999 | Beetle NGP | None | NGP |
Watara Supervision 🇺🇸 🇯🇵 🇪🇺 | 1992 | Potator | None | SUPERVISION |
Welback Holdings Mega Duck WG-108 🇪🇺 | 1993 | SameDuck | None | MEGADUCK |
If the game system has a flag next to it, it means that the name/device was only sold in that market.
Note
You can validate MD5 checksums using Appendix: BIOS Checksums.
Game system | Year | Core/Emulator | BIOS filenames | ROM folder name |
---|---|---|---|---|
Bandai SuFami Turbo 🇯🇵 | 1996 | Snes9x | STBIOS.bin |
SUFAMI |
NEC PC Engine CD-ROM² 🇯🇵 🇪🇺 | 1988 | Beetle PCE Fast | syscard3.pce |
PCECD |
NEC TurboGrafx-CD 🇺🇸 | 1989 | Beetle PCE Fast | syscard3.pce |
PCECD |
Nintendo Family Computer Disk System 🇯🇵 | 1986 | FCEUmm | disksys.rom |
FDS |
Nintendo Satellaview 🇯🇵 | 1995 | Snes9x | BS-X.bin |
SATELLAVIEW |
Nintendo Super Game Boy | 1994 | mGBA | sgb_bios.bin |
SGB |
Nintendo Super Game Boy 2 🇯🇵 | 1998 | mGBA | sgb_bios.bin |
SGB |
Sega CD 🇺🇸 | 1992 | PicoDrive | bios_CD_U.bin , bios_CD_E.bin , bios_CD_J.bin |
SEGACD |
Sega Genesis 32X 🇺🇸 | 1994 | PicoDrive | None | THIRTYTWOX |
Sega Mega Drive 32X 🇪🇺 | 1994 | PicoDrive | None | THIRTYTWOX |
Sega Mega-CD 🇯🇵 🇪🇺 | 1991 | PicoDrive | bios_CD_U.bin , bios_CD_E.bin , bios_CD_J.bin |
SEGACD |
Sega Super 32X 🇯🇵 | 1994 | PicoDrive | None | THIRTYTWOX |
Sega Visual Memory System (VMS) 🇯🇵 🇪🇺 | 1998 | VeMUlator | None | VMU |
Sega Visual Memory Unit (VMU) 🇺🇸 | 1999 | VeMUlator | None | VMU |
Game system | Year | Core/Emulator | BIOS filenames | ROM folder name |
---|---|---|---|---|
ASCII Corporation + Microsoft MSX | 1983 | blueMSX | See blueMSX from libretro for more information. | MSX |
Pico-8 Fantasy Console | 2015 | fake-08 | None | PICO |
ScummVM | 2001 | ScummVM | None | SCUMMVM |
TIC-80 | 2017 | TIC-80 | None | TIC |