libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.35k stars 1.84k forks source link

CRT switch res causes blackscreen for GB/GBC when launched via CLI since version 1.7.5 #9618

Open shawly opened 5 years ago

shawly commented 5 years ago

Description

I’m using RocketLauncher as an interlayer between Launchbox and RA (1.7.9), I’m displaying RA on my CRT TV, so CRT switch res is enabled.

Now I got the problem that GB aswell as GBC games cause a black screen where I’m still able to see the onscreen notifications but neither the game nor the quick menu, but I can hear the sound of the game. This happens when starting RA via the commandline or any frontend, with every Gameboy core with every rom either zipped or unzipped.

When I start RA normally without any other frontends, I can launch every GB/GBC rom without any issues whatsoever, this ONLY happens when RA is launched via CLI or any frontend and this only happens for GB/GBC games, NDS, NES and SNES are not affected by this.

I’ve started out with a new config and narrowed the issue down to CRT switchres being active.

Expected behavior

Launching GB/C roms via CLI should behave the same as launching roms via menu when CRT Switch res is active.

Actual behavior

Black screen when launching GB/C roms via CLI while CRT switch res is active, sound is still audible so the game is starting. When starting roms via menu everything works normal.

Steps to reproduce the bug

  1. Download any RetroArch version from 1.7.5 onwards
  2. Enable CRT switch res
  3. Get any Gameboy core via online updater
  4. Launch a Gameboy or Gameboy Color rom via CLI: retroarch.exe "path/to/rom" -L "path/to/core/core.dll"

Bisect Results

I tested the latest nightly and all stables up to 1.7.3 until it worked. So this issue seems to begin with version 1.7.5 onwards.

Version/Commit

You can find this information under Information/System Information

Environment information

Jeepnheel commented 4 years ago

I can confirm the same issue/behavior without the RL interlayer. I'm using RA 1.7.6, with Gambatte core for both GB/GBC, and CRTswitchres (CRTemudriver 2.0). I'm only using Launchbox/BigBox 10.7 (no interlayer). I'm also seeing the same issue with the Gearsystem core for GG games, however this issue does NOT appear to impact GBA or VB (mGBA & Beetle VB/Mednafen). All other full-size/non-portable cores also do not have this issue.

I'm hoping the below may help to further narrow down a cause:

  1. If I open RA directly and load a GB/GBC/GG game through the menu, everything works and displays correctly. There are two core-specific overrides applied to video settings -- changing the Driver from the default "gl" to "d3d11", and enabling Integer Scaling. Both overrides are needed to properly show GB/GBC, GBA, VB, and GG on my setup.

However, if opened through Launchbox/Bigbox, I get either of two outcomes:

  1. If no core overrides are used, or only a single override of (video_driver = "d3d11"), the outcome is a black screen with the proper sound indicating that the game is running, but not able to display properly.
  2. If the other necessary core override (video_scale_integer = "true") is also used, I do see a small/compacted attempt to display the game, followed by a crash after 2-3 seconds.

In all cases above, I do see the OSD notification indicating that the config overrides were applied successfully. I've also tried simply changing the default retroarch.cfg with these two changes (and not used core-overrides) -- this resulted in exactly the same outcomes as above.

Jeepnheel commented 4 years ago

Further test -- I am getting the same problem when simply launching from CLI (retroarch -v -L C:\RetroArch\cores\gambatte_libretro.dll C:\ROMs\GB\Alleyway.zip 2>log.txt). Log file attached. RA_GB_CLI_Crash.txt