After loading gameboy game, pressing F1 crashes Retroarch every time

I’m trying to load shaders for Gameboy.

If I load a Gameboy game through my front-end, RocketLauncher (or HyperSpin) it works just fine. I can press F1 to enter the menu but since I use a bezel and the menu is so small, I can’t read it.

If I go to retroarch.exe directly without a front end and load content from there, the Gameboy game loads full screen, but as soon as I press F1 to enter the menu, it crashes…Every time.

I need to be able to load a Gameboy game directly through Retroarch and access the menu directly through Retroarch to be able to load a shader, which is why I’m trying to do it that way to begin with.

Any suggestions would be greatly appreciated. Thanks in advance.

–J

Can you get us a log to hopefully find out why it’s crashing?

I don’t see a log. Can you tell me what it’s named and where it would be?

It doesn’t generate them by default.

You need to launch RetroArch from a command line by shift+right-clicking inside your RetroArch directory and choose ‘open command window here…’. Then, type:

retroarch_debug.exe --menu --verbose --log-file log.txt

and do whatever you need to do to cause the crashing behavior. You should then have a log.txt file in your RetroArch directory. Copy/paste its contents somewhere like pastebin.com and then post a link here.

Here you go…Let me know if this is what you need and if it works. I’ve never shared a file before. :slight_smile:

https://1drv.ms/t/s!AvrMc8hrhb76niEwpp_MH9S6wksR

That worked just fine :slight_smile:

I’m not seeing any crash in there. Is it possible that you are calling the exit command accidentally? Like, maybe it got remapped to f1 at some point?

No, it says this program has crashed/stopped responding or something like that…The normal crash message. It’s definitely a crash as soon as I press F1.

Hmm, yeah, that’s definitely a crash, then.

I guess at this point, the best option for you is to just create the core preset file manually. To do that, just go to your shader directory, look for the ‘presets’ directory (in the case of the Cg shaders, you’ll have to make that directory manually if it doesn’t exist already) and then create a subdirectory in there named after the core (in your case, it’d be ‘Gambatte’), then make a copy of preset you want to use and put it in there and rename it to match the core (again, Gambatte.glslp/cgp/slangp). Open that file with a text editor and it will have paths to each of the individual shader passes. You’ll have to do a little tweaking to make them work. For the gameboy shader, you would need to add “…/…/handheld/” in front of each pass.

There’s no other way? Honestly, reading what you just wrote is like Greek to me. I’m so sorry but I don’t follow at all. :frowning:

Well, obviously, the best outcome would be to stop the crashes, but if we don’t know what’s causing them, I figured it would be easier to go straight to the result you’re looking for rather than going down any rabbit holes.

if it’s working via Hyperspin and crashing on its own, there’s some conflicting setting in your main config that doesn’t exist in whichever config Hyperspin is calling when it loads stuff (maybe video_driver = “d3d”?). You could try to track that conflicting setting down, or you could try temporarily setting your menu driver to “rgui”, which is not as attractive as the default XMB menu but is more compatible (i.e., less likely to crash due to settings) and has larger text.

I can reproduce it with Gambatte and XMB. Looks like the menu system is updating the currently selected item before the transition to the new list is done. I’ll take a deeper look on it later.

Okay, I’ll try RGUI and report back.

Thanks,

–J

Ah, thanks for confirming. Hopefully it’s easy enough to fix :slight_smile:

Ok, I changed the cfg file to load rgui instead of xmb. When I open retroarch.exe by itself rgui comes up, I load the shader, I apply changes, and I see the shader I want. I can load a different game and the shader still works. I can exit retroarch and go back into it directly and the shader still works.

However, when I launch through RocketLauncher, the shader is not applied. When I then press F1 to set it again or see if I can see what’s going on, the XMB menu comes back up and it’s so small I can’t see it. rgui isn’t coming up at all if I launch a game from Rocketlauncher and for whatever reason, the shader isn’t working, either.

Sounds like HS/RL are pointing to another config somewhere and that config is still using XMB. If you go into your launch commands for HS/RL, you should see where it says -c C:\path\to\something.cfg and that’s the config file that it’s actually loading. Change the menu driver in there and it should let you use RGUI. Change the video_shader in there and it should load it when the core loads.

I just did a full computer search for retroarch.cfg and the only one that exists is the one in my main Retroarch directory. Could it be looking at a different file? I don’t know what else to look for??

I figured it out!!!

RocketLauncher was calling a gambette-libretro.cfg file in the /config directory.

In it, XMB was set as menu so I changed that to RGUI. Video Shader was set to false, and I simply changed that to true.

It works!!

Thanks for everyone’s help!

–J

Well, I spoke too soon.

Doing what I did, editing the gambette-libretro.cfg file that RocketLauncher calls ends up turning shaders on for many other systems besides just the Gameboy.

I need to know how to turn shaders on “just” for Gameboy and can’t figure that out.

I see the rgui menu when I run a game and can see what I’m doing now, but I still can’t find the shaders option anywhere.

Also, I don’t know how, but somehow now all my user binds are messed up. I don’t know what I did, but simply rebinding them with no core loaded was all I used to have to do, but now, that doesn’t work and I’m having to rebind everything system by system. That’s a pain because I have so many systems.

How can I get back to letting the binds affect ALL systems instead of just the one I’m on?

Do I need to make a new thread for this?

Thanks,

–J

Ok, once again I’m calling success.

Here’s what I did…

In Rocketlauncher, I set my log to troubleshooting and saw it was calling files in the config directory like the module notes say it will if that directory exists.

I renamed that directory to bak so it would then load the main retroarch.cfg file and shaders still loaded for all or nothing.

I changed the retroarch.cfg file to turn shaders “off.”

I then made a copy of the retroarch.cfg file and named it Nintendo Game Boy.cfg and placed a copy of it, and only it, with nothing else, in the config directory.

Success.

My problem ended up being I had shaders turned on globally AND in the system cfg file.

Now…I am off to see if I can figure out how to set my inputs globally (used to work that way till I messed with something) instead of per system…

Thanks,

–J

If RocketLauncher is pointing to an entirely different config, whatever settings are in that config will take effect. Try pointing to your main retroarch.cfg instead (or remove the -c config.cfg switch altogether).