Multiple Configs Per Core

Hi,

I suspect this is a strange use case, but I wanted to see if there is a way to do it…

I’m trying to use a single core (mGBA) for GameBoy, GameBoy Color and GameBoy Advance games. That all works as it should. However, I wanted to use different shaders for each type of system (gb, gbc, gba) as core override.

I don’t see a way to do that other than on a per game basis. Is there a way?

I tried copying the core dll and renaming it per system, but Retroarch sees all the cores as the same core when I do that.

Any help is appreciated.

Keep the games for each system in separate folders.So have three folders:

gb
gbc
gba

Now load one game from each system, configure the shader how you want it, then in Shaders->Save select Save Content Directory Preset. The shader preset files should then be saved as:

retroarch/config/mGBA/gb.slangp
retroarch/config/mGBA/gbc.slangp
retroarch/config/mGBA/gba.slangp

And they should be applied automatically when content is loaded from the respective folder.

With that being said, mGBA is a great GBA emulator, but not that great of a GB emulator :stuck_out_tongue: Why prefer it over SameBoy?

2 Likes

Thanks for the info. I’ll give it a try.

As to why mGBA, no particular reason other than it seems to work just fine. :). But, if other emulators are better at a specific task (i.e. SameBoy for GameBoy games) I’m happy to do that too. Just trying things out as a go along setting things up!

Yeah, SameBoy is one of the best GB/GBC emulators right now. Has higher CPU requirements to reach the accuracy it has, so it might not run well on something like a Raspberry Pi 3. But on a PC, it should have no problems whatsoever.

Gambatte is also a very good emulator. It’s apparently not as accurate as SameBoy, but it can run on very weak CPUs.

mGBA’s support for GB/GBC is not bad, but as the site itself says, it’s not as good as GBA support https://mgba.io/faq.html#how-good-is-compatibility

I’m having the exact same problem right now. When trying to use the “save content directory preset” for two different platforms with the same core, it just doesn’t seem to work. I can go through the process of setting up the shader for both cores, and saving, but when I go back to the first core it is always the wrong shader again.

Are there additional steps I should take to get this working? Thanks for the help.

You need to look in the folders where the shader presets are saved and see what else is in there.

Thanks for the reply. Do you mean the config folder? What am I looking for? Are there files I need to get rid of?

If you have a Game specific Preset saved, that one will have highest priority. You can see in RetroArch menu if there is any saved and remove it. Run the game and core and open RetroArch menu > “Shaders” > “Remove” a click will delete one of the presets. Be careful not to delete your Global or Core specific rule in this case (unless you really want to).

I don’t have any game specific presets saved.

Have in mind Directory Presets are for the core. If you play the game with a different core, then it does not affect it. You was talking about different cores, so it might be that issue.


Directory Presets only work for one level deep of file structure. That means if you have a folder named gb and load a game from that folder, then click Save Directory Preset for the Shader, then a Shader preset is saved as gb.slangp for that core. It only affects files in that folder, no subfolders. In example

roms/gb/
    directory_mods/
    file1.gb
    file2.gb

works as described before. Now if you open the sub-folder

directory_mods/
    mod1.gb
    mod2.gb

then the Directory Preset you saved earler in the gb folder won’t have an effect here. You need to load the mod1.gb from the subfolder and save another Preset, which would be saved as directory_mods.slangp.

I hope that I could explain this. At least this was a big issue for me before I understood it. It’s not documented I think. So, do you have subfolders there?