[Solved] - Super Game Boy - Enough is enough

Ok, I’ve bounced back to this ‘system’ a few times over the years… but no more. I am going to sit here and figure it out until it works.

Basics out of the way, I have the proper sgb.boot.rom file and the Super Game Boy (World).sfc file in the …\system directory.

I’m passing the following CLI to RA:

W:\Emulators\RetroArch\retroarch.exe -f -c “W:\Emulators\RetroArch\retroarch.cfg” -L “W:\Emulators\RetroArch\cores\bsnes_balanced_libretro.dll” “W:\Emulators\RetroArch\system\Super Game Boy (World).sfc” --subsystem sgb “W:\Games\Handhelds\Nintendo Game Boy\Metroid 2 - Return of Samus.gb”

Every time, no matter the game, it instantly crashes.

I wanted to check the log, but I can’t seem to figure out how to do that properly with the CLI commands in place as well.

Can someone please help me run a log on this thing? I really want to get this marked off on the big to-do list.

This is mine:

M:\Emulatio\RetroArch\x64\retroarch.exe -L M:\Emulatio\RetroArch\x64\cores\bsnes_balanced_libretro.dll “M:\Roms\Nintendo_SuperNintendo\All_Games_Merged\Super Game Boy (NA) (1.2).zip” --subsystem sgb “M:\roms\Nintendo_Gameboy\Addams Family, The - Pugsley’s Scavenger Hunt (USA, Europe).zip”

My RetroArch Path is: M:\Emulatio\RetroArch\x64
My Snes Roms Path is: M:\Roms\Nintendo_SuperNintendo\All_Games_Merged
and my GB Path is: M:\roms\Nintendo_Gameboy\

Swap mine for yours and it should work fine. Make sure you have sgb.boot.rom (SGB BOOT PROGRAM) (CRC: ec8a83b9 in the system.

Otherwise, run with Verbose, and paste the output?

Where do I put verbose? and what exactly should I put? I tried it on a few places, but just got errors that I didn’t enter it correctly.

Run the above and append --verbose --log-file log.txt to it, and have a look at the log.txt in the retroarch dir.

Alright, I switched up my CLI to match yours but now I just get a black screen with no game starting, I can still hit F1 to call up the RA menu… but no game.

Here’s my log: https://pastebin.com/embed_js/QP5ai6Cm

this must be a path bug in bsnes(mercury or the one without mercury). if the sgb.boot.rom is in your < system > it will not load and give something like this

RetroArch [libretro INFO] :: [Memory]: ID 41, Request "sgb.boot.rom".
RetroArch [libretro INFO] :: Load BIOS.
RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: ".\system".
RetroArch [libretro ERROR] :: Cannot find requested file in system directory: ".\system/sgb.boot.rom
".

, despite sgb.boot.rom being there.

Move your sgb.boot.rom to either where Super Game Boy rom is or to where the gameboy rom you are trying to load and it should work.

ADDITIONALS: cant seem to get this working under linux. just black screen. if anyone have successfuly loaded this on Linux, please post how.

I’ve tried putting the sgb.boot.rom in both …\system and my roms folder. Neither configuration throws up the log snippet you posted.

If anything, my log doesn’t seem to be looking for the sgb.boot.rom what-so-ever.

cleanup your command line, or remove shaders. better yet save a copy of retroarch.cfg and start fresh. something else is screwing cli loading on yours. i have mine as a “.cmd” file like so:

E:\EMULATORS\retroarch\retroarch.exe -L "E:\EMULATORS\retroarch\cores\bsnes_balanced_libretro.dll" "C:\Users\MEDIA\Desktop\New folder (2)\Super Game Boy (World).sfc" --subsystem sgb "C:\Users\MEDIA\Desktop\New folder (2)\Castlevania Legends (USA, Europe).gb"

yours does not seem to have loaded the core at all and the shaders has fallback to stock

So, my command line is exactly the same as yours:

“W:\Emulators\retroarch - alt\retroarch_debug.exe” -L “W:\Emulators\retroarch - alt\cores\bsnes_balanced_libretro.dll” “W:\Emulators\retroarch - alt\system\Super Game Boy (World).sfc” --subsystem sgb “W:\Games\Handhelds\Nintendo Game Boy\Castlevania - Legends.gb” --verbose --log-file log.txt

It’s definitely loading the core up, bsnes is listed when I press F1 to view the menu.

I deleted my retroarch.cfg, as well as my shader presets, though I’m not sure what my shaders had to do with it. It should be on a stock setting, as in no shader, by default right?

Same result though, black screen, no game, but can open F1 menu.

Updated log file here: https://pastebin.com/QP5ai6Cm

do not put --verbose --log-file log.txt at the end or anything else other than the 2nd rom after “–subsystem”, instead do it like this:

“W:\Emulators\retroarch - alt\retroarch_debug.exe” --verbose --log-file log.txt -L “W:\Emulators\retroarch - alt\cores\bsnes_balanced_libretro.dll” “W:\Emulators\retroarch - alt\system\Super Game Boy (World).sfc” --subsystem sgb “W:\Games\Handhelds\Nintendo Game Boy\Castlevania - Legends.gb”

1 Like

Wertz, I could kiss you if you were in front of me lol!

Moving the log portion of that brought up the directory error you mentioned previously, and then throwing the sgb.boot.rom file into the game directory to fix that (as you mentioned) made it work.

I think had I tested it with RL when I tried moving it before it would have worked, but I was trying to get a log with my garbage command structure and was just killing it hahaha.

Anyway I also threw RocketLauncher at it… and it worked! Time to fully integrate this into my system!!!

Thank you thank you thank you thank you thank you, a million times, thank you!!!

1 Like

somebody should make a guide about this, coz its quite a bit confusing.

also if somebody could make this work in linux, it would also be of great help.

1 Like

this should just be temporary as this “is” a bug. i did posted this already in github

theres a difference: RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: ".\system". and RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "....\EmulatorData\System".

anyways you probably have sgb.bios.rom anywhere from rompath location since moving the system folder does not seem to help in loading supergameboy.

its not just me,… /20 characters

… let me revise last statement doing more tests

ok retested… its does seems that sgb.bios.rom should not be i a system folder that is in “retroarch” folder or subfolder. so if retroarch is in \retroarch, then the system folder should not be in \retroarch\system… moving the system folder outside from retroarch’s folder (and setting retroarch system to that folder) resolves sgb.bios.rom issue(if you want the bios to be in system folder, like where it should be).

its still a bug though.

based on retroarch.cfg, system_directory is actually using fullpath to the system directory set.

EDIT: sorry let me rephrase this. it does work if its full path even if system is inside of retroarch’s folder/sub-folder

[bsnes]: Loading GB ROM.
[bsnes]: [Memory]: ID 41, Request "sgb.boot.rom".
[bsnes]: Load BIOS.
RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "E:\EMULATORS\retroarch\system".
[bsnes]: Complete load request.
[bsnes]: [Memory]: ID 6, Request "".
[bsnes]: Complete load request.

I kinda got lost in the jargon here, but I can confirm that putting sgb.boot.rom in “…\retroarch\system” never worked for me.

Also, enabling rewind seems to crash the core. FYI for any future readers.

@SkyHighGam3r having rewind enabled didn’t crash the core for me, however I had it enabled by default, and that would result in a black screen (the super game boy built in bezel border would still appear though).

Turning off rewind solved the issue, so I saved the core override, and now all is working.

Thank you for posting that information - I could have easily invested another 8 hours into this, had you not pointed that out.

2 Likes