How to use a different shaders/overlays for each systems?

I will download and install the nightly too, so it will be there.

But, it means, it was impossible to do it before?

Thanks a lot for your help guys, I really appreciate your help and would like to thank you again.

You could sort of do it before with overrides, but it wasn’t always reliable because the current shader preset gets saved into ‘retroarch.cgp/slangp/glslp’ and that will take over on cores that don’t have something specific set up.

The core shaders are much more predictable.

First of all, thank you all for your help. With the latest version, it works perfeclty. I’ve found some nice overlay for GB, GG, Lynx etc… but why are they under the shader directory? For noobs like me, it’s not really logical to search under shader in order to find the handeld overlay… By the way, i will try to do a gallery with each borders in order to help people. Do you know if it exist or not?

The console-border shaders use a different mechanism from the overlays, which were originally intended just for use with touchscreen devices to provide inputs.

It would be pretty easy to modify the borders from those shaders to work with the overlay system instead, we just haven’t done it. Plus, we try to keep the overlays we ship fairly small, since mobile devices have to download them to get controls and we don’t want them to have to download 100 MB worth of borders just to get the gamepad controls.

Alright, I’ve tried with the latest Retroarch Version (1.4.0):

1.Launch a Game Boy game. 2.Go to menu, select shader, then choose a shader, and apply it. 3.Apply the shader, then “save core preset”.

Do exactly the same with Game Boy Color game = launch with the game boy shader, not the color one.

I did the same with the Sega Game Gear and Genesis: Genesis game are laucnhing with the Game Gear Bezel.

I will try again tomorrow morning.

You can use these split-up cores I made awhile back:

RetroArch will see them as entirely separate cores, so you can assign different core presets to them.

@anon24419061 @Hunterk: thanks again for your help.

So the solution is to use a different emulator for each system? I’m suprrised there’s no simple way to do it, for beginners like me. (just by renaming the file, for example, b

I will try your solution HunterK, with the lin kprovided. But it seems quite hard to do it: finding the file, then edit it! I’m so sorry to be annoying, but i really want to succeed!

Ok, i understand something:

genesis_plus_gx_sms_libretro.dll and genesis_plus_gx_gg_libretro.dll are the same core, but for 2 differents setup. And genesis_plus_gx_sms_libretro.info is the file I need to edit, right? Cause if I open the .dll in Notepad+, I have weird and unexploitable symbols.

just open the core’s libretro.c/pp: Here i’m lost: where’s this file? I believed I had to edit the .info file, alright?

BTW, i’m looking into https://github.com/libretro/RetroArch but can’t find where to download:

“You don’t need to decompile them, since the source is already available on github. If you have an android toolchain set up, you should be able to just go into the source tree and build it with the changes described in the OP.”

EDIT: https://buildbot.libretro.com/nightly/windows/x86_64/latest/ are the rigt source, alright?

If you downloaded the separated cores (the DLL files) and put them on the “Cores” folder, you just need to edit the playlist files (at the “Playlists”) folder.

There, you edit the systems you need to change, for example, in “Nintendo - Game Boy Color.lpl” you replace this: …"\Retroarch\cores\gambatte_libretro.dll" with this: …"\Retroarch\cores\gambatte_gbc_libretro.dll"

The same in Sega - Master System - Mark III.lpl: “genesis_plus_gx_libretro.dll” with “genesis_plus_gx_sms_libretro.dll” And Sega - Game Gear.lpl: “genesis_plus_gx_libretro.dll” with “genesis_plus_gx_gg_libretro.dll”

The playlist files (.LPL) can be easily edited on notepad.

After assigning the split cores (.DLL) for each system, you can then set the overlays/borders and apply them on the core preset.

2 Likes

Thanks, I understand now, except I haven’t any line with the core name (gambatte) in all my playlist, except when I launch a game, it creates automatically a line with gambatte inside:

DETECT FF31CC92|crc Nintendo - Game Boy Color.lpl D:\Applications\RetroArch\roms\Nintendo Game Boy Color\Aladdin (USA).gbc Aladdin (USA) D:\Applications\RetroArch\cores\gambatte_libretro.dll Gambatte

So, now, I just need to know how to do it for ALL the game, and not only the one I launch, cause 791 games to do, it will be hard.

If I succeed, I will do a tutorial for all the beginners like me, it will be useful I think.

You don’t need to do any editing of the info files or the source code. Those steps were for people trying to make their own split cores because I’m not going to do it again in the future.

I included the pre-edited info files in the zip. Just put them into your ‘core info’ directory and put the cores into your cores directory.

You can go to settings > playlists and associated a playlist with a core, such as gambatte-gbc, instead of doing it via text editor. it won’t be able to change it for games you have already loaded with a core, though, so you may want to delete your playlist and re-scan to have a fresh, unassigned playlist to work with.

Alright. I didn’t succeed. :frowning: (Am I dumb or what?)

I have my Nintendo - Game Boy Color.lpl and Nintendo - Game Boy.lpl in my playlist folder. In my cores folder: gambatte_gbc_libretro.dll and gambatte_libretro.dll. I just copy/paste the gambatte_libretro.dll and rename it to gambatte_gbc_libretro.dll, nothing more. I set up my GBC playlist to launch with gambatte_gbc_libretro.dll (it appears with this name). I set up my GB playlist to launch with Gambatte (this name appears).

So I guess i’ve done something wrong. I haven’t touched any .info file, for the moment.

I’m sorry, I think that my English is not too good to understand. Right before, Hunterk told me i didn’t need to compile it again, and you seems to told me I have to do. I’m just lost to be honest. I have the feeling i’m drowning into a terrible mess…

The settings use the internal name of the core, so the workaround I use is to do a copy of the dll and do a hexedit in it to change it’s internal name.

It’s a f-ing hack job, but is working for me…

I use is this batch file to automate the process:

@echo off

REM Setting the paths
SET "RETROCOREFOLDER=E:\games\retroarch\cores"
SET "GSAR_EXE=Y:\Le\git\retroarch-cores\gsar.exe"

REM gsar website: http://gnuwin32.sourceforge.net/packages/gsar.htm

REM Removing the older modified files
del "%RETROCOREFOLDER%\genesis_plus_gx_libretro-cd.dll"
del "%RETROCOREFOLDER%\genesis_plus_gx_libretro-gg.dll"
del "%RETROCOREFOLDER%\genesis_plus_gx_libretro-sg.dll"
del "%RETROCOREFOLDER%\genesis_plus_gx_libretro-sms.dll"
del "%RETROCOREFOLDER%\mednafen_ngp_libretro-bw.dll"
del "%RETROCOREFOLDER%\mednafen_pce_fast_libretro-16.dll"

REM Replace  orig. internal name      new internal name                       original file                                      modified files
%GSAR_EXE% -s"Genesis Plus GX"     -r"Genesis Plus CD"     "%RETROCOREFOLDER%\genesis_plus_gx_libretro.dll"   "%RETROCOREFOLDER%\genesis_plus_gx_libretro-cd.dll"
%GSAR_EXE% -s"Genesis Plus GX"     -r"Genesis Plus GG"     "%RETROCOREFOLDER%\genesis_plus_gx_libretro.dll"   "%RETROCOREFOLDER%\genesis_plus_gx_libretro-gg.dll"
%GSAR_EXE% -s"Genesis Plus GX"     -r"Genesis Plus SG"     "%RETROCOREFOLDER%\genesis_plus_gx_libretro.dll"   "%RETROCOREFOLDER%\genesis_plus_gx_libretro-sg.dll"
%GSAR_EXE% -s"Genesis Plus GX"     -r"Genesis Plus MS"     "%RETROCOREFOLDER%\genesis_plus_gx_libretro.dll"   "%RETROCOREFOLDER%\genesis_plus_gx_libretro-sms.dll"
%GSAR_EXE% -s"Mednafen NeoPop"     -r"Mednafen NPopBW"     "%RETROCOREFOLDER%\mednafen_ngp_libretro.dll"      "%RETROCOREFOLDER%\mednafen_ngp_libretro-bw.dll"
%GSAR_EXE% -s"Mednafen PCE Fast"   -r"Mednafen PCE Fa16"   "%RETROCOREFOLDER%\mednafen_pce_fast_libretro.dll" "%RETROCOREFOLDER%\mednafen_pce_fast_libretro-16.dll"

pause

With this, I have a custom config for Sega CD, Game Gear, Master System, Neo Geo Pocket BW and PC Engine/TurboGrafx 16.

PS: Be cautious on the new name, because it need to have the same number of chars than the the original name.


Due to be my first post, my post have been send for moderation. The first time I didn’t noticed the message, so I wrote a second time with additional content, but the second post is not approved yet, so I’m editing this post with the rest.


Now I have my playlists like:

\playlists\Sega - Mega Drive - Genesis.lpl

roms\Sega - Mega Drive - Genesis\some rom.zip
Some Rom Name
cores\genesis_plus_gx_libretro.dll
DETECT
-
Sega - Mega Drive - Genesis.lpl

\playlists\Sega - Mega-CD - Sega CD.lpl

roms\Sega - Mega-CD - Sega CD\Some ISO.cue
Some ISO Name
cores\genesis_plus_gx_libretro-cd.dll
DETECT
-
Sega - Mega-CD - Sega CD.lpl

And this is my custom configs/overlay:

\config\Genesis Plus GX\Genesis Plus GX.cfg

menu_wallpaper = ".\assets\wallpapers\bichromatic pads\1440x900\Sega - Mega Drive - Genesis.png"
input_overlay = ":\overlays\nosh\Sega - Mega Drive - Genesis.cfg"

\config\Genesis Plus CD\Genesis Plus CD.cfg

menu_wallpaper = ".\assets\wallpapers\bichromatic pads\1440x900\Sega - Mega-CD - Sega CD.png"
input_overlay = ":\overlays\nosh\Sega - Mega-CD - Sega CD.cfg"

Thanks le_el. But before to go further, with hexedit, batch and other stuff which need to have a phd in IT, i would like to summarize:

I have my Nintendo - Game Boy Color.lpl and Nintendo - Game Boy.lpl in my playlist folder. In my cores folder: gambatte_gbc_libretro.dll and gambatte_libretro.dll. I’ve duplicate my gambatte_libretro.info file to gambatte_gbc_libretro.info. And I edited the two:

gambatte_gbc_libretro.info:

display_name = “Game Boy Color (Gambatte)” authors = “Sinamas” supported_extensions = “gbc” corename = “Gambatte” manufacturer = “Nintendo” categories = “Emulator” systemname = “Game Boy Color” database = “Nintendo - Game Boy Color” license = “GPLv2” permissions = “” display_version = “v0.5.0” supports_no_game = “false”

And gambatte_libretro.info:

display_name = “Game Boy (Gambatte)” authors = “Sinamas” supported_extensions = “gb|dmg” corename = “Gambatte” manufacturer = “Nintendo” categories = “Emulator” systemname = “Game Boy” database = “Nintendo - Game Boy” license = “GPLv2” permissions = “” display_version = “v0.5.0” supports_no_game = “false”

The way I do, I don’t change any info at all. Basically you would need to:

  1. Remove the copy of the core dll, just keep the original one;

  2. Go to the folder \config of your retroarch and copy the name of the folder of the core you are going to make a copy (in this case “Gambatte”);

  3. From the url I posted earlier, grab the zip binaries and extract the gsar.exe to the \cores folder;

  4. Open a command prompt on the folder (on recent windows explorer, shift + right click on a empty space to the option show up on context menu);

  5. On the command prompt run: gsar.exe -s"Gambatte" -r"GambatBW" "gambatte_libretro.dll" "gambatte_libretro-blackwhite.dll" Notice that the “GambatBW” have 8 chars, the same amount as “Gambatte”;

  6. Go to \config and make a copy of the folder Gambatte and save as GambatBW;

  7. Inside \config\GambatBW rename also the Gambatte.cfg to GambatBW.cfg;

  8. Now select your game and chose the core Game Boy / Game Boy Color (Gambatte) for Game Boy Color, and the gambatte_libretro-blackwhite.dll for the Black and White. And on the retroarch ui you can change the settings as you like and then use the Quick Menu > Save Core Overrides, to save the changes to that core.

Trust me, I appreciate your help, but i haven’t anything in /config exept the “remaps” folder.

I’ve tried something else before trying your hint le_el.

My playlist for Game Boy game is launched with Emux. My playlist for Game Boy Color game is launched with Gambatte.

I launch a GB game, apply the grid shader for playing with some realistic game boy plastic bezel and urinal colors. Apply shaders, then save to core.

Did exactly the same with the GB color game, with the GB color bezel.

So I use 2 differents emulators, so basically 2 differents configuration, but still the same issue: my GB color games are launched with the GB yellow grid, and vice versa.

Of course I want to find a solution, but I want first to understand what i’m doing wrong there. I need to understand, if not I will never learn anything and I will do the same mistake again!

Don’t misunderstood guys, i’m not complaining about the difficulty, I just want to avoid to go in 1000 directions, and try to keep as simple I can my issue, and find a simple answer. No offense please! :slight_smile:

Edit: something weird. I installed some others emulators, and they launch everytime the game boy color shader/bezel even when I disabled it and save to core.

Yeah, actually, it took me like a while to me completely configure the appearances the way I liked too. The configuration part is a pain, but after that I found retroarch really awesome.

Just to be sure, on Configuration > Configuration > Load Content-Specific Core Options is set to ON?

After that, every time you enter a game and then go Quick Menu > Save Core Overrides, a folder with the core name should be saved in \configs. And with that option enabled, it should automatically load the overrides whenever you load that core.

Maybe the problem may be in the specific order to do the things?

  1. Without any core loaded, remove the overlays/shaders you are using. In this step make sure to it NOT be using the ones you actually want. *

  2. Configuration > Configuration > Load Content-Specific Core Options set to ON

  3. Main Menu > Configuration > Save Current Configuration

  4. Load the Gambatte core and select a game (this time it should NOT be using the overlays/shaders you want)

  5. Press F1 and change the overlays/shaders you want. After that, Save Core Overrides.

  6. The changes should be saved to the configs/Gambatte/Gambatte.cfg file.

  7. Load the Emux GB core and select a game

  8. Press F1 and change the overlays/shaders you want. After that, Save Core Overrides.

  9. The changes should be saved to (probably) the configs/Emux GB/Emux GB.cfg file.

  10. Load the Gambatte core and select a game, it should be auto-loaded the configs set on step 5.

  11. Load the Emux GB core and select a game, it should be auto-loaded the configs set on step 8.


* The Save overrides, only save what is different from the default config, so if you set a GB overlay on the default settings, the GB overlay will not be saved in the core override file, for example.


EDIT:

Personally, between steps 2 and 3, I also change Configuration > Configuration > Save Configuration On Exit to OFF, so the default settings only get saved when I manually go to Main Menu > Configuration > Save Current Configuration.

Once again, I really appreciate your help.

First of all, on a brand new fresh install, Load Content-Specific Core Options is OFF. So I will turn it into ON.

Then, I probably found why it’s not working!

When I follow the step by step tutorial you write for me, I have an issue with Emux: I load this core, then select a game by navigating into my game’s folder (not using the playlist), and each time… BOOM! Gambatte is launched everytime! This fuc***g core is not lauching properly! Why when I load emux, I have the Gambatte core launching? That’s why I can’t save my preset! This is a bug or what? (It’s a fresh install of Retroarch, btw).