Force a specific shader on a specific platform?

I am aware of the capacity for saving shader presets on a per-core basis. Things break down when it comes to using the same core for multiple platforms (mGBA, MAME). I suppose what I’m asking here is what steps are needed to cause RetroArch to successfully load a custom config which specifies my shader of choice.

What I have tried is duplicating the retroarch.cfg, sticking it in the config dir, changing the shader filename, and pointing RetroArch to it, a-la:

retroarch.exe -L \path\to\mame_libretro.dll -c \path\to\astrocade.cfg “astrocde -cart1 “/path/to/astrocade_game.zip” -rp /MAME/roms”

RetroArch unfortunately crashes when I feed it the -c command, and succeeds when I don’t. I have to suppose that a near-duplicate of retroarch.cfg is not what it’s looking for.

You can try just putting that one changed config line into a text file and then use the “appendconfig” option, like this:

It’s the same thing that happens automatically with overrides, you’re just invoking it manually instead.

I gave that a shot. What --appendconfig seems to do is make a modification to retroarch.cfg. The trouble with that solution (apart from not necessarily wanting to do that) is that the core-specific shader setting dutifully overrides the default config. Come to think of it, I don’t even know if a config file loaded with the -c command will override the core-specific shader, assuming I can ever get it to work. MAME covers a heck of a lot of platforms so this is not easy to juggle. I’m assuming -c remains my only avenue to defining the shader in a way that overrides everything else, so it’s a matter of determining what exactly -c doesn’t like in a standard config file.

Can you post a log of when you use the -c switch? It definitely should work.

Sorry for the wait. My attempts to generate a log file in text invariably produced a file of zero bytes. So I had to do this:

http://i.imgur.com/1SWs7Pn.jpg

That’s all the output I get before it crashes. It does not offer a notice of failure.

There are some errors in there related to your CLI line. It doesn’t seem to like -cart1, AFAICT

I made the change to -cart but it didn’t have an effect. Yes I agree that the syntax seems to be what it’s not liking, because I have encountered the same crash in other instances and managed to solve it, more or less, by figuring out syntax it was happy with in those cases. But the fact remains that all I have to do is eliminate the -c argument and RetroArch likes the command just fine.

I fiddled around a bit more based on that premise and determined that RetroArch will accept the -c argument without crashing if there is no path – a filename only. Doesn’t seem to matter if it’s a root path or otherwise, quotes or no quotes; if there’s a backslash in there (or a forward slash), it crashes.

I had to eliminate my MAME core preset because it still overrode the defined config, as I suspected it might. And obviously I have to keep the config files in the RetroArch root. But at last I can force shaders on a per-platform basis.

Really off-topic but I wondered whether you might have insight as to why the mouse does not function in CD-i under mame_libretro? As elaborated here.

I don’t, unfortunately. I’ve never played any CD-i games. I would think it would work as much there as anywhere else. Do other mouse-enabled things work through mame-libretro for you?

I went ahead and tried out mame_libretro’s Amiga 500 (a500) emulation, running Workbench1.3. MAME64 natively has no trouble picking up on mouse input, just as with the CD-i emulation, but mame_libretro exhibits the same phenomenon: Mouse is ignored and the pointer drifts steadily down+right.

I did notice something else, though. Once RetroArch begins emulating the A500, it leaves the (Windows) mouse pointer on top, despite being fullscreen. And if I hit F1 to bring up RetroArch’s menu, RetroArch’s own mouse pointer is displayed behind the Windows pointer (a frame or two latent). If I then exit fullscreen, RetroArch’s mouse pointer goes away, although none of this helps solve the problem of the emulator ignoring the mouse.

Edit: Incidentally, I just tested puae_libretro, and while the mouse sensitivity is off the charts, it does pick up mouse input successfully. So this problem is seemingly limited to mame_libretro.

Your log says you have the MAME mouse disabled. Enable it after loading a game in the MAME core, pressing F1 and going into Options.

That did it, thanks.

Since every issue I had with RA seems to be ironing out one by one, I may as well ask: Is there anything that can be done about the fact that fullscreen very reliably mistakenly allows the Windows mouse pointer to appear? Seems to happen most frequently when RA goes fullscreen once, reconsiders for a moment, and then finally settles upon fullscreen a second time. When that second time happens, there’s the mouse pointer. It sounds like people have been struggling with this for literally years, and while a kludge solution was found for LaunchBox users, I am not using LaunchBox.

I’ll ask in a different thread later. This is just in case someone happens to have a suggestion.

The mouse cursor bug seems to be happening more often to me on the newer MAME core. Before it only occasionally happened; usually certain games were more likely to cause it. Now it happens most of the time with pretty much every game. I don’t think it happens much for other cores.

Anyways, you can hit F11 to hide the cursor when it happens. There is an open issue about it here: https://github.com/libretro/RetroArch/issues/4586