Dolphin does not run after reading all information

  1. I have downloaded and copied Sys dir to retro arch system folder /dolphin-emu (system/dolphin-emu/Sys)

  2. I tried to disable options such as shared hw context and/or allow core to change video driver

  3. I tried setting log_level to 0,1,2,3 (should not higher levels provide some debug info, not just errors?). It does not seem to affect anything. Tried log_level for core and frontend in retroarch.cfg

  4. tried nightly windows build x64 with dolphin core dll

  5. verbose logging is on

  6. tried gl, glcore, vulkan

After each config change, I’m restarting Retroarch. Saving options on exit is enabled, Rewind feature is disabled.

Log for gl: [INFO] === Build ======================================= [INFO] CPU Model Name: Intel® Core™2 Quad CPU Q9550 @ 2.83GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 [INFO] Built: Jan 6 2022 [INFO] Version: 1.9.14 [INFO] Git: 19d05db [INFO] ================================================= [INFO] === Build ======================================= [INFO] CPU Model Name: Intel® Core™2 Quad CPU Q9550 @ 2.83GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 [INFO] Built: Jan 6 2022 [INFO] Version: 1.9.14 [INFO] Git: 19d05db [INFO] =================================================

Log for vulkan (does not seem to work at all, tried changing hw shared context option): [INFO] === Build ======================================= [INFO] CPU Model Name: Intel® Core™2 Quad CPU Q9550 @ 2.83GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 [INFO] Built: Jan 6 2022 [INFO] Version: 1.9.14 [INFO] Git: 19d05db [INFO] ================================================= [ERROR] [Environ]: SET_HW_RENDER: Dynamic verify HW context failed. [ERROR] [Environ]: SET_HW_RENDER: Dynamic verify HW context failed. [ERROR] Requesting OpenGLES3 context, but RetroArch is compiled against OpenGL. Cannot use HW context. [ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed. [ERROR] [Environ]: SET_HW_RENDER: Dynamic verify HW context failed.

It appears to be requesting a GLES3 context for some reason. Try going to settings > core and set “allow cores to change the video driver” to OFF and set your video driver to d3d11.

Standalone Dolphin is working in both opengl and vulkan. Anyway, standalone Dolphin does not have d3d. Allow blabla is already off. I hope I can set video renderers per core as vulkan is faster.

Video drivers can already be set per-core via core overrides. Dolphin does indeed have a d3d11 renderer.

Ok, so d3d11 have same issue. It complains about unable to switch to opengles3 context. I have restarted retroarch and verified saved settings. Hardware shared context is Off as well as Allow cores to switch the video driver is Off.

Amiga, PSP, PSX, NES, SNES do work. It runs on 2nd monitor, which is Sony PVM with 640x480 resolution. NES games will switch to 320x240 automatically.

Running windowed non-fullscreen mode does not help.

What build of RetroArch are you using? That is, can you post a link to which one you downloaded?

Buildbot - nightly - windows x86_64

I will retest tomorrow. I tried also some older dolphin plugin someone compiled in 2020 on github.

Anyway I suspect it might be default options of internal resolution as Im running Sony PVM with CRT EmuDriver and resolution can be 640x480 (480i) or 240p mostly. And the problem is you cannot set core options until some rom gets running, it is a blind circle.

I have also resolution problem with PSP emulator, which works standalone as well. I tried various CRT_SwitchRes options in Retroarch, but in the end did set to off and dont get annoying no sync errors on TV anymore.

Dolphin core options documentation is missing, it contains PSP options: https://docs.libretro.com/library/dolphin/

I will need to set it up and create core cfg file manually, that might be the solution. Unable to set core option without running rom has been a long time issue for me. If core crash, you are out of luck and in that case it gets more convenient to use external emulator directly.

I will investigate this more in 12 hours.

OpenGLES3 is from ARM (like Android for example), so that might point to some compilation issue. But strange is that other emulators do work quite well.

Yes, that was what I was thinking, as well. GLES is also used with ANGLE (though it’s GLES2, AFAIK), so I thought you might be using a weird MSVC build or something, but that doesn’t sound like it’s the case.

EDIT: looks like the option you want is:

dolphin_efb_scale = "x1 (640 x 528)"

However, that’s the minimum, so if switchres is treating that as progressive 1x, that’s a problem on 15 khz.

Ok, so I have installed Retroarch win64 stable and downloaded Dolphin core inside using the frontend. It runs with default configuration. Then I open WinMerge and compare the diff between my original retroarch.cfg and newly created one (default). Found out a few bugs:

  1. Libretro documentation is wrong:

There is also currently a bug with this core and the GL driver that can be worked around by going to settings > user interface > show advanced settings ON and then going to settings > core > allow cores to change the video driver OFF.

The Dolphin core will now work without issues.

This does not have any impact, at least not when using GL video driver. Reddit thread says also changing shared video context false/true is required in order to get Dolphin to work. That is not true either in current stable version.

  1. Vulkan in RetroArch is not working at all. I am able to reproduce the behavior. Log level set to 3, including verbose, nothing important is printed.

[ERROR] [Environ]: SET_HW_RENDER: Dynamic verify HW context failed. [ERROR] Requesting OpenGLES3 context, but RetroArch is compiled against OpenGL. Cannot use HW context. [ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed. [ERROR] [Environ]: SET_HW_RENDER: Dynamic verify HW context failed.

Only this and OpenGLES3 error does not make sense on x64 (win) architecture. I try to search for a keyword on Github Retroarch for GLES3 and was not able to find this particular error or decision logic. Perhaps it is in Dolphin Libretro repository?

Anyway Dolphin standalone runs Vulkan and OpenGL and does not have D3D. While RetroArch will crash in Vulkan with ANY emulator and no error message apart from OpenGLES3 is present.

What is the purpose of https://github.com/libretro/dolphin - why 3358 commits behind dolphin-emu:master? I cannot search forked repository on Github (their limitation), but this does not look good.

Now with GL it is working. CRT_SwitchRes is set to NATIVE (tried also INI with switchres.ini in CWD next to retroarch.exe). It works with Nintendo NES. But does not work for Dolphin and PSP.

Now how to create a core resolution override, so it will run in 640x480 (that is default desktop resolution where standalone emulator works) ? If you boot core with rom, you get out of sync and cannot change core settings. How to do an override manually? Where is some documentation about it? Where to get property names and values?

Dolpin-emu.opt was not created the whole time. Only after first successful boot. Now I can see the values here (I format the code as paragraph, there is no code formatting here):

dolphin_bbox_enabled = “disabled” dolphin_cheats_enabled = “disabled” dolphin_cpu_clock_rate = “100%” dolphin_cpu_core = “JIT64” dolphin_dsp_hle = “enabled” dolphin_dsp_jit = “enabled” dolphin_efb_scale = “x1 (640 x 528)” dolphin_efb_scaled_copy = “enabled” dolphin_efb_to_texture = “enabled” dolphin_efb_to_vram = “disabled” dolphin_fast_depth_calculation = “enabled” dolphin_fastmem = “enabled” dolphin_force_texture_filtering = “disabled” dolphin_gpu_texture_decoding = “disabled” dolphin_ir_mode = “Right Stick controls pointer (relative)” dolphin_ir_offset = “10” dolphin_ir_pitch = “15” dolphin_ir_yaw = “15” dolphin_language = “English” dolphin_load_custom_textures = “disabled” dolphin_log_level = “Info” dolphin_max_anisotropy = “1x” dolphin_mixer_rate = “32000” dolphin_osd_enabled = “enabled” dolphin_pal60 = “enabled” dolphin_progressive_scan = “enabled” dolphin_renderer = “Hardware” dolphin_sensor_bar_position = “Bottom” dolphin_shader_compilation_mode = “sync” dolphin_texture_cache_accuracy = “Fast” dolphin_wait_for_shaders = “disabled” dolphin_widescreen = “enabled” dolphin_widescreen_hack = “disabled” dolphin_wiimote_continuous_scanning = “disabled”

Why everything has to be so stupid? I am Java and Python software developer, also with embedded systems experience and last month I spent only time tweaking RetroArch. First on Raspberry 4, now on Windows 10.

You know, even with AMD CRT_EmuDriver, SuperResolutions, switchres.ini in CWD, your solution will not work. I had to Google a lot and find out that you need to manually edit retroarch.cfg and set: video_refresh_rate = “60.099827” video_aspect_ratio = “8.000000” video_aspect_ratio_auto = “false”

After that NES, SNES, Amiga started to work. For MAME, I use GroovyMAME (more native support through CRT_EmuDriver).

But now for new generation cores that use higher resolutions or quirky specific resolutions (PSP), the Dolphin and PSP cores are not going to choose the right resolution and frequency and it is impossible to use an override.

SUM UP: So currently, I solved one Dolphin issue with changing Vulkan to GL as video driver. Re-testing on stable branch. Verified this happens in nightly branch as well. Now the issue is egg & chicken problem with core config overrides and so far I only Googled a lot of confused users. Everyone says, you need to boot a rom to set core override. But what if core crash or sets some wrong settings and you are unable to read the menu because of wrong VSYNC or similar issues? STUPID

I have fixed crt and found issues in documentstion of retroarch. It should have two versions. One for 15khz crt, one for vga crt. The setting is completely different and superresolution is not good if you have 15khz crt for native 240p.

Next, there is bug that dolphin under retroarch does not work with vulkan rendere. Other emulators do work with vulkan in retroarch and dolphin standalone also do work with vulkan. This should be probably posted on github issues.

PSP games need more than 15 KHz because of 272 active [email protected] Hz. Manually it’s of course possible with Vsync off.

PSP works better with 2x resolution (960x544) and I had to only use non-super resolution configuration from RetroArch github readme. For Dolphin I had to set 1920 in configuration override, but I suspect it is because of 55 Hz mode that does not work well. Now it runs at 59hz and it is good.

But RetroArch Libretro Dolphin is in very bad shape. I need to use standalone anyway. One issue got workaround, another issue appears: How to setup DSU for Dolphin emu in Retroarch