Rune Factory 4 - Missing textures/graphics while using an OpenGL v3.3 compatible dedicated legacy GPU


#1

Issue:
Certain textures/graphics does not appear when using hardware renderer to emulate Rune Factory 4 on an OpenGL v3.3 compatible dedicated legacy GPU. The issue is non-existent when using an OpenGL v4.0 compatible integrated GPU and v4.3 compatible dedicated legacy GPU.

Additional Info:

  • Legacy is used to reference a non-latest generation device. (Example: Latest GPU Gen being RX 500 series and GeForce 10 series)
  • 3DS System Archives and Shared Fonts are already dumped into Citra.
  • Issue persists with or without a save file from 3DS.
  • Have not been using any GL Hook programs.
  • Might have similar shader error with [this thread] (Fire Emblem Fates SE Crash) with difference in DebugHandler number 472, vs 483 from the other thread but with the same API Performance number 131218. (Might be due to different Citra builds)
  • Nvidia 9600GT is specified on Nvidia’s website to support OpenGL v2.1 but driver updates enabled v3.3 support.
  • Uses the last supported windows 10 64-bit GeForce 342.01 Driver for 9600 GT. (384.76 is the latest driver version for recent Nvidia GPUs)
  • Latest Bleeding Edge HEAD-c017065 performed better than latest Nightly HEAD-22e7402. (Approximately +10% to +15% speed and +3 to +5 fps)

System Information

  • Operating System: Microsoft Windows 10 Professional 64-bit
  • CPU: Intel Core i3-3220 @ 3.3GHz
  • GPU: Nvidia 9600 GT @ 600Mhz / Intel HD 2500 @ 650 MHz
  • Citra Version: Citra Nightly “HEAD-22e7402” / Citra Bleeding Edge “HEAD-c017065”
  • Game: Rune Factory 4 (US)

Screenshot:

Citra Nightly on 9600 GT Log:
[ 0.656842] Service.SRV core\hle\service\sm\srv.cpp:Service::SM::SRV::RegisterClient:47: (STUBBED) called
[ 0.659941] Service.SRV core\hle\service\sm\srv.cpp:Service::SM::SRV::EnableNotification:69: (STUBBED) called
[ 0.672724] Service.APT core\hle\service\apt\apt.cpp:Service::APT::GetLockHandle:122: (STUBBED) called handle=0x00030008 applet_attributes=0x00000000
[ 0.693910] Service.NDM core\hle\service\ndm\ndm.cpp:Service::NDM::OverrideDefaultDaemons:203: (STUBBED) default_daemon_bit_mask=0x0000000F
[ 0.695490] Service.NDM core\hle\service\ndm\ndm.cpp:Service::NDM::SuspendDaemons:89: (STUBBED) daemon_bit_mask=0x00000009
[ 0.703483] Service.APT core\hle\service\apt\apt.cpp:Service::APT::Enable:131: (STUBBED) called attributes=0x00000000
[ 0.710649] Service.APT core\hle\service\apt\apt.cpp:Service::APT::GlanceParameter:270: called app_id=0x00000300, buffer_size=0x00001000
[ 0.716435] Service.APT core\hle\service\apt\apt.cpp:Service::APT::NotifyToWait:104: (STUBBED) app_id=768
[ 0.723739] Service.APT core\hle\service\apt\apt.cpp:Service::APT::ReceiveParameter:240: called app_id=0x00000300, buffer_size=0x00001000
[ 0.732769] Service.APT core\hle\service\apt\apt.cpp:Service::APT::AppletUtility:346: (STUBBED) called command=0x00000007, input_size=0x00000004, output_size=0x00000001, input_addr=0x0FFFFF30, output_addr=0x0FFFFEFC
[ 0.735139] Service.APT core\hle\service\apt\apt.cpp:Service::APT::AppletUtility:346: (STUBBED) called command=0x00000004, input_size=0x00000001, output_size=0x00000001, input_addr=0x0FFFFEF8, output_addr=0x0FFFFEFC
[ 0.748372] Service.FS core\hle\service\fs\fs_user.cpp:Service::FS::InitializeWithSdkVersion:806: (STUBBED) called, version: 0x040205C8
[ 0.932501] Service.GSP core\hle\service\gsp_gpu.cpp:Service::GSP::AcquireRight:703: called
[ 0.936868] Service.GSP core\hle\service\gsp_gpu.cpp:Service::GSP::RegisterInterruptRelayQueue:397: called, flags=0x00000001
[ 1.177487] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:472: API PERFORMANCE 131218: Program/shader state performance warning: Fragment Shader is going to be recompiled because the shader key based on GL state mismatches.
[ 1.663790] Kernel.SVC core\hle\svc.cpp:SVC::CreateThread:655: Newly created thread must run in the SysCore (Core1), unimplemented.
[ 1.874946] Service.FS core\file_sys\savedata_archive.cpp:FileSys::SaveDataArchive::CreateFile:189: C:\Users\Danny\AppData\Roaming/Citra/nand/data/00000000000000000000000000000000/extdata/00000000/F000000B/user/gamecoin.dat already exists

Only notable errors were listed due to character limit. Full log below.

Additonal Logs: (For cross referencing?)

Does this mean that the minimum graphic chp requirement should be OpenGL v4.0 compliant?


#2

Hey…

have you found a solution for this problem yet?? i kinda have same problem like yours,
pls tell me if you found the solution :smiley:


#3

Well, I found out that a user with similar gpu (9600GT) had already tried to report this issue back in 2015 @ GitHub but it was closed off due to incomplete / lack of information.

The issue was then reported again in 2016 but within a different issue thread causing it to be ignored as off-topic.

When I inquired in Citra’s discord. The developers hypothesized that it’s either a driver problem or some inconsistency within Citra.

From Citra Discord:




Without mentioning the specifics I could only provide some information which may be of assistance to you.

  1. It could be fixed by updating to the latest version of your video card driver .

  2. For AMD video cards. the problem may alleviated by using beta drivers as suggested from this thread.

  3. The problem could also be game specific.

  4. This is not recommended but if you really want to play Citra despite having possible similar issue or low speed, you could try using Mesa.

Mesa additional info:
Mesa has 3 kinds of software-based renderers.

  1. Softpipe - slowest. Low fps, and RF4 graphic issue persists.
  2. Llvmpipe - high-speed can be used for gaming. High fps, RF4 graphic issue persists.
  3. Swr - speed depends on CPU. CPU must also support AVX or AVX 2.
               - does not exhibit the graphical issue and is a tad bit faster than Citra’s current software
             renderer(Citra’s software renderer @ 3-5 fps / 5+% speed vs Mesa swr @ 15-20 fps / 32+% speed on RF4).

Test each one and see if it works.