hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.23k stars 2.17k forks source link

Black screen on PinePhone Pro #17447

Open Shatur opened 1 year ago

Shatur commented 1 year ago

Game or games this happens in

Burnout Legends, Grand Theft Auto: Chinatown Wars

What area of the game

After the game

What happens

Screen is black, but sound is present. I can blindly navigate the menu. Here is the log.txt from retroarch --verbose

What should happen

Rendering should work :smile:

GE frame capture

No response

Platform

libretro / Retroarch

Mobile phone model or graphics card

PinePhone Pro

PPSSPP version affected

1.15.3.r12.g38c4c48ebe

Last working version

No response

Graphics backend (3D API)

OpenGL / GLES

Checklist

hrydgard commented 1 year ago

Any idea of the latest previous version that worked in this configuration?

Shatur commented 1 year ago

Unfortunately, first time trying it on the phone. I compiled it from source. Maybe you could suggest commits that I can try?

hrydgard commented 1 year ago

Well if you can compile from source, then you can even do a git bisect. Or just manually pick som versions, maybe start 100 revisions back or something? Any idea approximately when you tried it and it worked?

Shatur commented 1 year ago

I just used AUR that basically a recipe to compile the package. The issue that the compilation takes a lot of time on the phone and cross-compilation is not very easy to setup... Maybe you could suggest the commits to try?

sum2012 commented 1 year ago

@Shatur try v1.14

Shatur commented 1 year ago

@sum2012 tried, same result :(

unknownbrackets commented 1 year ago

The timing of "ThreadManager::Init" in that log seems weird.

Anyway, does PPSSPP proper work? RetroArch seems to mostly get in the way, performance is worse with it and there's a lot of bugs that only exist when using it. It would at least help to know if PPSSPP runs fine on this device without the libretro garbage. Do other emulators work?

-[Unknown]

Shatur commented 1 year ago

Anyway, does PPSSPP proper work?

Is it possible to compile standalone PPSSPP for aarch64? I trying to, but having this error:

CC  libavcodec/aacadtsdec.o
{standard input}: Assembler messages:
{standard input}:68: Error: unknown mnemonic `shrl' -- `shrl -12,x0'
{standard input}:270: Error: unknown mnemonic `shrl' -- `shrl -4,x8'
{standard input}:287: Error: unknown mnemonic `shrl' -- `shrl -2,x10'
{standard input}:475: Error: unknown mnemonic `shrl' -- `shrl -3,x11'
{standard input}:592: Error: unknown mnemonic `shrl' -- `shrl -13,x0'
{standard input}:719: Error: unknown mnemonic `shrl' -- `shrl -2,x2'

Do other emulators work?

Yes, other retroarch cores such as PS1 works. My device have OpenGL ES 3.1 support.

pinoverclock commented 1 year ago

I can confirm the issue with libretro-ppsspp, I tried 1.13.2, 1.14.0, 1.14.4 and 1.15.3 But I compiled ppsspp (git version) and is working great, note that the AUR package needs some minor changes not just the arch

So most likely it's some kind of issue introduced by the retroarch layer

unknownbrackets commented 1 year ago

Is it possible to compile standalone PPSSPP for aarch64? I trying to, but having this error:

How are you compiling this? It seems like maybe you're trying to compile x64 or something. You should run ./linux_arm64.sh in ffmpeg/.

-[Unknown]

Shatur commented 1 year ago

I used this PKGBUILD. But looks like @pinoverclock already compiled it and confirmed that the issue is in libretro backend.

pinoverclock commented 1 year ago

Original AUR package: ppsspp-git Modified PKGBUILD: ppsspp_PKGBUILD_mod Custom configuration file for ffmpeg (needs to be included in the same folder as the PKGBUILD): linux_arm64_ppp.sh Note that (sadly) clang won't like any exotic mtune/mfix cflags

After some testing/tweaking still heavy games get low fps (10/30), but more than I was expecting from this device anyway, other than that it runs as was expected.

Shatur commented 1 year ago

@pinoverclock I have the following error with your PKGBUILD at the end:

CMake Error at ext/rcheevos-build/CMakeLists.txt:44 (add_library):
  Cannot find source file:

    ../rcheevos/src/rapi/rc_api_common.c

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc

CMake Error at ext/rcheevos-build/CMakeLists.txt:44 (add_library):
  No SOURCES given to target: rcheevos

Happens after compilation on install step. Have you encountered such a problem?

pinoverclock commented 1 year ago

I see in the last PKGBUILD the author has included a new repo sync https://github.com/RetroAchievements/rcheevos.git I haven't tried it myself yet but I would try to include the ppp changes in that last PKGBUILD

wget -qO PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=ppsspp-git wget -qO linux_arm64_ppp.sh https://pastebin.com/raw/nTz96K9g wget -qO ppsspp-ppp-pkgbuild.patch https://pastebin.com/raw/61E2TCMa patch PKGBUILD < ppsspp-ppp-pkgbuild.patch

Shatur commented 1 year ago

@pinoverclock thank you a lot. I probably should open an issue in https://github.com/hrydgard/ppsspp-ffmpeg to request include scripts to build on Arm64 to simplify this process. If I understand correctly, current linux_arm64.sh is for cross-compilation, right?

pinoverclock commented 1 year ago

I think so, linux_arm64.sh is just used to specify the compiler arch, flags and options so you can customize it for your device

gouchi commented 2 months ago

@Shatur Is it is still an issue ? Thank you.

Shatur commented 2 months ago

Can't confirm, no longer run PPSSPP on PPP.

gouchi commented 2 months ago

@Shatur Thank you for your feedback.

@pinoverclock Is it is still an issue ? Thank you.