Building PPSSPP on the Vero4K

Hi,

I’ve have been trying for some months now to get the PSP emulator PPSSPP working on the Vero4K.
The long story is detailed on Github Build failures on Debian arm64 · Issue #10534 · hrydgard/ppsspp · GitHub but the 2 main aspects are:

1.
It is intended by the developers that on aarch64/armv8 I would build in a 64-bit userland.
This I attempted by using the following in my workflow:
sudo apt-get install aarch64-toolchain-osmc gcc:arm64 g++:arm64

I fail only at the final linking stage with:

/usr/bin/ld: skipping incompatible /opt/vero3/lib/libGLESv2.so when searching for -lGLESv2
/usr/bin/ld: cannot find -lGLESv2

Does this suggest our libGLESv2.so (libMali.so) is only 32bit when a 64bit binary is expected?
Are 64bit drivers available for the platform?

2.
As a workaround I attempted to build as for 32bit armv7, as they do on the Rpi3.
This was successful and runs with sound and controller interaction, but I get only a black screen despite no error messages from the emulator.
Any theories why this should be?

Many thanks,

Vero 4K’s userland is 32-bit. Don’t build using the aarch64 toolchain.

Not sure why you only get a black screen. Did you make sure Kodi was stopped first?
Make sure you link against libGLESv2 under the Vero library directory and not MESA.

Sam

Hi Sam, thanks for looking in on this.

ldd on the final binary gives:

libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xf6898000)
libSDL2-2.0.so.0 => /usr/local/lib/libSDL2-2.0.so.0 (0xf67f0000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xf67da000)
libGLESv2.so => /opt/vero3/lib/libGLESv2.so (0xf66c1000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xf66ae000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xf65a2000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xf6528000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xf64ff000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf6411000)
/lib/ld-linux-armhf.so.3 (0xaaf2e000)

So it seems to be looking in the right place, as passed to cmake.

Oh yes, and I’ve run sudo systemctl stop mediacenter first.

Well it turns out that what was needed after stopping Kodi was to set the framebuffer colour depth to 16:

fbset -fb /dev/fb0 -g 1920 1080 1920 2160 16

No more black screen!

Holy cows, I’ll try that with Moonlight on the Vero 4k which also has the black screen issue. Thanks!

Makes sense: we unbind the console when we start Kodi.