Mupen64plus uses gl, Beetle-PSX uses vulkan, what do?


i use vulkan because of beetle-psx. opengl mode of beetle has bugs in games (Silent Hill is notable but I am sure there are others). however mupen64plus cannot run on the vulkan driver.

I have tried to switch the video driver in per-core settings, but it crashes. I have also tried “–append-config” to command line in an attempt to make an alternate shortcut to RE for N64. However it overwritten my retroarch.cfg to default in the process… (maybe I wasn’t doing it right).

How can I get the best of beetle-psx and the best of mupen64plus at the same time!?

Also paraLLEl is not fast enough on my i5 laptop to be useful. Even my i7-3770 desktop is only able to get OoT to run at fullspeed with all settings off–banjo tooie is 50% speed and unplayable.

any ideas? thanks!


I used to have this crash problem as well every time i was switching a core that uses Vulkan to one that uses GL and vice versa. I fixed this issue by creating two different RetroArch folders/setups. One for Vulkan and one for GL. I use other frontends to launch RA so i only have to point to the correct version.

ParaLLEl is slow because it uses accurate graphics plugins that aren’t meant for general use. It has it’s own ParaLLel graphics plugin (it needs Vulkan) but it’s not very good atm. It also has the (better) Angrylion plugin which used to be so slow that it was only meant for testing purposes. However, now that it’s multi-threaded it can run some games full speed. It’s still very slow in most other games for most systems though.

Maybe in a couple of years the average Desktop CPU will be fast enough to run it full speed. Until then it’s better to use the standalone Mupen64 or PJ64 and the latest GlideN64 plugin. Not the RA core though, it’s very outdated.


It’s not that old… I still use it just fine.


I honestly don’t know how old it is exactly but if i judge by it’s inability to load the later BOSS games (Stunt Racer and WDC) it must mean it’s based on a old enough version since these games were fixed and able to load fine some pretty decent amount of time ago.

But i agree, it’s still fine for general use and for about 90% of N64’s catalog.


I’m now dealing with this exact issue. Sorry to resurrect an old thread, but have there been any advancements with options for the configuration files that would eliminate the need for a duplicate RetroArch build? Some kind of setting to tell RetroArch to start with the gl graphics driver when starting an N64 game?


Not automatically, no. You can use -appendconfig in a launch script to add on a config fragment that switches to the GL driver on launch, but you still have to quit and then use that launcher before you load.


I see. It seems like the simplest option is just to remember to change the graphics driver before starting Mupen64Plus.


yeah, or get ParaLLEl-N64 set up with Angrylion gfx plugin instead (assuming your CPU is fast enough and you don’t mind native res).


I looked into it, and please correct me if I’m wrong, but it seems the graphics are inferior, and the Angrylion gfx plugin is more taxing on the CPU. (graphics plugins use the CPU, where shaders use the GPU, correct?) Is there any hope of Mupen64Plus supporting vulkan in the future?


Correct. There is a vulkan renderer, but it’s similar to Angrylion (i.e., low-res). I don’t know of anyone working on a vulkan-native renderer, but there are a few general (i.e., not emu-specific) projects working toward running GL programs on top of vulkan, so maybe something like that will help in the future.


Personally, I use a frontend (Launchbox) to launch my roms, most of my libretro cores use Vulkan, except Reicast which uses OpenGL and in that case I have set Launchbox to use a custom retroarch.cfg with "video_renderer = “gl” in it.


I use mostly opengl. Because of the glal shaders which have more features or are updated. It is really a pity that beetle psx is much more advanced on vulkan.


The slang shaders are usually in slightly better shape than the GLSL shaders, though I try to keep them as even as possible. Is there something specific you’re referring to?


I thought I read somewhere here, that the vulkan shaders needs to be ported. Therefore the glsl are sometimes more up to date. But maybe I am wrong. Personally I would also like to go fully to Vulkan but reicast is opengl based. It is always a trade off :sweat_smile:


Can this be done in the GUI, or does it have to be added in the custom retroarch.cfg? If it’s the latter, where would I add this? Thanks!


I was able to figure out how to do this in LaunchBox using this guide:


After years(?) I wanted to give Vulkan a new try, since most progress is done in Vulkan and fps comparison looks promising on the frontpage blog. To bad that it is still not possible to switch between OpenGL and Vulkan related to core, like a core specific setting and restart whole RetroArch to do. But if it would be that easy, it would be propably done.

Currently I use Intels NUC Hades Canyon NUC8i7HVK and it performs very well. I can use paraLLEI for most N64 games with GFX Accuracy veryhigh, GFX Plugin angrylon, RSP Plugin cxd4, Texture filtering N64 3-point, VI Overlay Filtered, Multi-threading enabled. I tried Mario Kart 64 and it runs fine. When I switch to Vulkan, instead of getting little fps boost, the fps drops and music is scratchy. The settings are still the same. Don’t know why. But I remember, paraLLEI was Vulkan only?

The next thing, when I load slang crt royale and change Geometry Mode to 1, the image goes black, but thats my prefered option.

So it was a short ride to Vulkan and it would be really nice to force Vulkan for a core (Bettle PSX HW), without doing always settings changes.


Same here, i am using Lunchbox with multiple Retroarch configs and i have no problems with cores requiring GL or Vulkan. Launchbox (the free version) is very good for managing your collection, i even organized and run my old Infocom & ScummVM adventures and my Visual Pinball tables with it.


I use gl for everything, what are the advantages of vulkan on Beetle PSX? Also, maybe I’m missing something here, but wouldn’t it be easy to simply add video_driver = “gl”/“vulkan” to the Beetle PSX HW.cfg and Mupen64Plus OpenGL.cfg files? That’s how I set up aspect ratios, sound levels, latency settings etc for the different cores (and individual games) and it works like a charm.


You can literally just add video_driver = “gl” or w/e to a core override file and it will automatically load.


I will give that a go