libretro / REminiscence

Flashback engine reimplementation
15 stars 14 forks source link

Blackscreen on many platforms when running by command line #13

Closed schmurtzm closed 8 months ago

schmurtzm commented 1 year ago

Hi,

I have compiled REminiscence for Miyoo Mini (a little linux handheld console) but I have a black screen at start if I run it by command line. Many REminiscence users have this problem on various platforms :

A known workaround to make the game work is to "close content" and then launch the the game from the history. It means that if you run the game from the Retroarch UI and not from a command line it works.

So I've investigated a little and found something interesting : the game can run by command line if retroarch.cfg is empty. You can also remove all lines from input_player14_xxx to input_player16_xxx and then REminiscence will works. (But if you save retroarch config then these lines are created again and it broke the workaround.)

An alternative workaround can be to use a temporary reduced config file in the command line, something like that : /usr/bin/retroarch --verbose -L cores/reminiscence_libretro.so --config REminiscence.cfg Flashback/level1.map

So there is a bug somewhere in REminiscence which is triggered by retroarch.cfg. May be when the file is too long or may be when it contains many input_playerxx lines. 🤷‍♂️

I hope it will help the community for the black screens and libretro team for the diagnose 😉

schmurtzm commented 1 year ago

It works on PC (linux or Windows) but the problem appears on low power devices (Miyoo Mini, wii, S905m, ODROID-GO Advance, mini SNES). The common denominator there seems to be ARM/MIPS (non-x86). (Or less likely could be related to the lack of memory (often 256 MB or less)).

XQuader commented 11 months ago

A one-line change in the source code will fix the issue - add memset(&_pi, 0, sizeof (PlayerInput)); in the Game constructor