Higan v105 Super Game Boy BIOS tutorial



The new Higan v105 core that just hit the online updater uses a simplified Super Game Boy routine that makes it much easier to access this feature than with the old v094-based cores. Instead of using the complex, CLI-based ‘subsystem’ launch commands, it looks for the necessary files in the system/BIOS directory whenever you feed the core a *.gb/c file.

To get it working, you’ll need one or more Super Game Boy ROMs from the No-Intro set and the sgb.boot.rom BIOS. I’m going to use the Super Game Boy (World) (Rev. 2).sfc ROM for the original Super Game Boy and Super Game Boy 2 (Japan).sfc ROM for Super Game Boy 2.

Step 1

Make 2 subdirectories in your system/BIOS directory, one named SGB1.sfc and the other named SGB2.sfc.

Step 2

Copy your original Super Game Boy ROM into the SGB1.sfc directory and then rename it to program.rom. Copy your Super Game Boy 2 ROM into the SGB2.sfc directory and then rename it program.rom, as well.

Step 3

Copy your sgb.boot.rom BIOS into each of your SGB1.sfc and SGB2.sfc directories, and rename them to sgb1.boot.rom and sgb2.boot.rom, respectively. There’s a core option to choose which of the two SGB BIOSes you want to use.


There’s some minor visual glitchy stuff happening in Linux, but it plays fine. Windows is perfect when rewind is enabled.


Thank you so much for this but is there any chance of a quick tutorial on using MSU hacks ? I can get them working with the BSnes core loading the manifest.bml and with Snes9x core loading the actual rom file but not with the Higan core. Maybe I am missing something simple.


I figured out how to get msu1 hacks working for higan. You will need a file structure like this:







Saves are created in the folder as save.ram. Load the manifest.bml as your game (best to apply ips or bps patches to program.rom before, did not test softpatching). If the msu1 hack has no data track (msu1.rom), create it, an empty file is fine.

A manifest.bml is not strictly necessary, as long as your game folder follows higan cartridge conventions and ends in .sfc. In that case, load program.rom as your game in RetroArch.

Edit: in case you want to generate a valid manifest file, use Mercurial Magic:

download daedalus.exe, icarus.exe and MercurialMagic.exe. Launch MercurialMagic.exe.

Now you need to create a msu1 pack. Create a zip file containing msu1.rom, program.rom and track-##.pcm files. Zip options should be store or deflate. Rename the zip file to [insert game name].msu1

Load the .msu1 file into Mercurial Magic and check Export as Game Pak (catridge folder). Check “Create v094-v104 manifest”. Hit export and you should get a folder with a correct manifest.


One question here, can you still use CLI commands?

Because that’s how I roll today!


AFAIK, the subsystem stuff isn’t hooked up at all. However, if you follow the steps in the OP, you can launch from the CLI just by pointing it at a *.gb/c file and it will initiate the SGB routines automatically.



I figured it out and it worked perfectly without graphical glitches even!


Nice. I wonder where my glitches are coming from then :confused:


Wish I could tell you what’s wrong but I tried most of the games I have in my Game Boy and Super Game Boy enhanced library and no game seems to suffer from graphical glitches at least nothing major like in your case.

bsnes-plus which I used before wasn’t completely free from graphical oddities either but the higan core is here to stay now!

Only problem I had though was my perfect complete save file of Kid Icarus - Of Myths and Monsters wasn’t compatible and refused to load :cry:

Anyway for those wanting to load from the command line it’s dead simple, basically all you need is:

<path to RetroArch> --libretro <path to higan core> <path to Game Boy/Super Game Boy enhanced game> and that’s it given you followed @hunterk instructions above regarding the SGB1.sfc, program.rom and sgb1.boot.rom


I am also getting video glitches on Linux, but the same combination of system bios and rom works perfectly fine on Windows. Looks like a problem on the RetroArch side of things… Anyway the higan core is amazing :slight_smile:


When is the Higan core coming to Android?


Yep, should have mentioned I was on Windows 10 if that had made any difference but I thought the screenshot hinted about it.

Windows seems to be smooth sailing, I can’t speak for Linux though but from the looks of it that might be the culprit here.


Whenever there’s a balanced core build, we’ll look into it, but the current accuracy core isn’t an option for any Android devices.

@SigmaVirus and @nutbro yeah, probably a linux thing. As you may recall, v094-based SGB only works on Windows and doesn’t work on linux at all, but we’ve never been able to figure out what’s up with that.


Dont work for me. I tried with the Chrono Trigger version. First, the Mercurial Magic dont work if not have a rom selected, i select the same rom outside the msu1 pack. Well, the extraction go ok, but the manifest.bml is a blank 0 byte file.

EDIT: Is not a blank file, but the bml file dont have any information about the pcm tracks.

cartridge region=NTSC rom name=program.rom size=0x400000 ram name=save.ram size=0x2000 map id=rom address=00-3f,80-bf:8000-ffff map id=rom address=40-7f,c0-ff:0000-ffff map id=ram address=10-3f,90-bf:6000-7fff mask=0xe000

board region=ntsc rom name=program.rom size=0x400000 map address=00-3f,80-bf:8000-ffff map address=40-7f,c0-ff:0000-ffff ram name=save.ram size=0x2000 map address=10-3f,90-bf:6000-7fff mask=0xe000

information region: NTSC title: Chrono Trigger MSU-1 Audio Hack v1.0 by DarkShock sha256: f98d2f927725e38905d35d0d3ba0d0bd273cc69b8948c53bb3fe5fc9abb98d55 note: heuristically generated by icarus

NEW EDIT fixed. The trick was the msu1 file, renamed from Chrono.msu1 to msu1.rom . And Mercurial works ok, like your tutorial does.


Glad you got it working :slight_smile:


Everything worked fine, but I got sound problems. only the super gameboy logo sound is clear


You get a lot of crackles otherwise? Are you sure it’s maintaining 60 fps? It’s very demanding.


You will get much better performance if you use the nsides balanced core

It’s not on the buildbot yet though so you have to download it there.


Thanks very much, I tried the better performing core, but there’s no difference. It sounds very distorted, it doesn’t seem to be crackled sound from the game, it’s more like background noise, but louder and it’s all the time, after the game started and gameplay is fluent, no performance issue. It’s only super game boy roms with this setup, snes roms with this core are fine and every other core, too when i got time I record some gameplay


Do you have to load SGB games from the command line? I can’t do anything with gb/gbc games in the GUI, it doesn’t list higan as option when I choose a file.


Try updating your core info files from the online updater.