pcsx-rearmed keep crashing on Raspberry Pi Zero with DPI display
-
Hi,
I have tried to run pcsx-rearmed emulator on Raspberry Pi Zero because I have performance issues with lr-pcsx-rearmed, also on RetroPie wiki is mentioned to use this emulator on Rpi 0 or 1 for better performance. I am using Rpi Zero with DPI display with 320x240 fixed resolution (GameBoy Zero with SAIO board). Detailed description of this problem and also more useful information can be obtained in the support thread for this board but the problem will be probably the same for any DPI display connected.. I can confirm that emulator is running well with HDMI display. Can somebody help or suggest what to check, where to dig?I have also opened the bug #112 on Github
Thank you for any help
TM
-
Ok, I have some progress here... I can run the emulator from a console and play a game on SAIO :) (rpi zero 320x240 DPI display)
I can also confirm that game and sound are both without any performance issues which is really great, compared to lr-pcsx-rearmed.
I tried Worms World party and Worms Armageddon earlier today...
The main problem is in this line
ret = plat_sdl_change_video_mode(g_menuscreen_w, g_menuscreen_h, 1);
in frontend/lippicofe/plat_sdl.c
which needs to be commented (// at the start of this line) for the emulator to start correctly.
I have done many experiments with the rest of the code to achieve the best menu resolution - 320x240 and it was working somehow (some segfaults, sometimes did not work with -cdfile cmd option, and so on, I can also run the emulator with 640x480 with not so much problems but then the menu is not usable. I have seen the menu in some edge conditions nicely in 320x240 and the game was also perfect but the other problems like segfaults raised with this).
The problem is with my knowledge of C and SDL. It should be really fast for someone who has some insight into it. Is here somebody interested who can help me with this? I can provide my patches to show what is working and how but I think I am nearly at the end with everything that I can do here.
-
Also the problem is not directly in pcsx-rearmed but in libpicofe library, corresponding bug has been opened here:
-
Today, I have some great news :) The emulator is now fully functional. The only thing you need to do is to update git repository line in RetroPie-Setup/scriptmodules/emulators/pcsx-rearmed.sh
from
gitPullOrClone "$md_build" https://github.com/notaz/pcsx_rearmed.gitto
gitPullOrClone "$md_build" https://github.com/timemaster5/pcsx_rearmed.git saioand then run update pcsx-rearmed from source in retropie-setup script
Then you will be able to run this emulator without performance issues but only with USB keyboard. I am now struggling with key bindings, I am not able to bind UP/DOWN/LEFT/RIGHT buttons of GBZ SAIO.. probably because they are not buttons but hat... I don't know now.
Another issue is with the mouse cursor being visible in some games, but this could be hopefully easily fixable.
And for the record, the main problem has been caused by one commit to libpicofe adds SDL_DOUBLEBUF flag.
-
I've run into a compile error. Details are below. After you review below, let me know what I can do to further troubleshoot and provide useful information.
I'm using the MZDPI-ZERO-VGA 2.8" display and I was heartbroken when pcsx-rearmed froze at launch with the display enabled (but worked fine with HDMI.) I was so thrilled to see you discovered a way through the DPI display problem.
I followed your instructions to modify my pcsx-rearmed.sh file. When I do RetroPie's "compile from source", I see the script successfully pull your code from git. However, the compile crashes with the log below.
(Note that the log says RPi3, but I have the brand new RPi Zero 2, which uses the 1ghz down clocked RPi3 core.)
The key error message seems to be "libpcsxcore/cdriso.c:1092:12: error: conflicting types for ‘uncompress2’"
I'm afraid my git and c skills are not up to par, otherwise I would try to be a contributor. I don't know if this error is due user incompetence at my end, or maybe enough time has passed that dependencies have changed from underneath you.
I am so grateful that your code will let me use my DPI display. Let me know how to help.
RetroPie-Setup version: 4.7.19 (b3acb001) System: rpi3 (armv7l) - Raspbian GNU/Linux 10 (buster) - Linux retropie 5.10.63-v7+ #1459 SMP Wed Oct 6 16:41:10 BST 2021 armv7l GNU/Linux = = = = = = = = = = = = = = = = = = = = = Installing dependencies for 'pcsx-rearmed' : Playstation emulator - PCSX (arm optimised) = = = = = = = = = = = = = = = = = = = = = /home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed /home/pi = = = = = = = = = = = = = = = = = = = = = Getting sources for 'pcsx-rearmed' : Playstation emulator - PCSX (arm optimised) = = = = = = = = = = = = = = = = = = = = = Already on 'master' Your branch is up to date with 'origin/master'. Already up to date. HEAD is now in branch 'master' at commit 'bebe989ba22f0bac230a0b8a75617ae895ea274f' /home/pi /home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed /home/pi = = = = = = = = = = = = = = = = = = = = = Building 'pcsx-rearmed' : Playstation emulator - PCSX (arm optimised) = = = = = = = = = = = = = = = = = = = = = architecture arm platform generic built-in GPU neon sound drivers alsa plugins gpu_gles.so gpu_unai.so gpu_peops.so spunull.so C compiler gcc C compiler flags -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -O2 -marm -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -D_FILE_OFFSET_BITS=64 -Wno-unused-result libraries -L/usr/lib/arm-linux-gnueabihf -lSDL -lasound -lpng -ldl -lm -lpthread -lz linker flags enable dynarec yes ARMv7 optimizations yes enable ARM NEON yes TI C64x DSP support no tslib support no OpenGL ES output yes make -C plugins/gpulib/ clean make[1]: Entering directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/gpulib' rm -f gpulib.a obj/gpu.o obj/vout_pl.o make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/gpulib' for dir in plugins/spunull/spunull.so plugins/dfxvideo/gpu_peops.so plugins/gpu_unai/gpu_unai.so plugins/gpu-gles/gpu_gles.so ; do \ make -C $(dirname $dir) clean; done make[1]: Entering directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/spunull' rm -f spunull.so make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/spunull' make[1]: Entering directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/dfxvideo' rm -f gpu_peops.so make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/dfxvideo' make[1]: Entering directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/gpu_unai' rm -f gpu_unai.so make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/gpu_unai' make[1]: Entering directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/gpu-gles' rm -f gpu_gles.so make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/plugins/gpu-gles' rm -f pcsx libpcsxcore/cdriso.o libpcsxcore/cdrom.o libpcsxcore/cheat.o libpcsxcore/debug.o libpcsxcore/decode_xa.o libpcsxcore/disr3000a.o libpcsxcore/mdec.o libpcsxcore/misc.o libpcsxcore/plugins.o libpcsxcore/ppf.o libpcsxcore/psxbios.o libpcsxcore/psxcommon.o libpcsxcore/psxcounters.o libpcsxcore/psxdma.o libpcsxcore/psxhle.o libpcsxcore/psxhw.o libpcsxcore/psxinterpreter.o libpcsxcore/psxmem.o libpcsxcore/r3000a.o libpcsxcore/sio.o libpcsxcore/socket.o libpcsxcore/spu.o libpcsxcore/gte.o libpcsxcore/gte_nf.o libpcsxcore/gte_divider.o libpcsxcore/gte_arm.o libpcsxcore/gte_neon.o libpcsxcore/new_dynarec/new_dynarec.o libpcsxcore/new_dynarec/linkage_arm.o libpcsxcore/new_dynarec/pcsxmem.o libpcsxcore/new_dynarec/emu_if.o plugins/dfsound/dma.o plugins/dfsound/freeze.o plugins/dfsound/registers.o plugins/dfsound/spu.o plugins/dfsound/out.o plugins/dfsound/nullsnd.o plugins/dfsound/arm_utils.o plugins/dfsound/alsa.o plugins/gpulib/gpu.o plugins/gpulib/vout_pl.o plugins/gpu_neon/psx_gpu_if.o plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.o plugins/cdrcimg/cdrcimg.o plugins/dfinput/main.o plugins/dfinput/pad.o plugins/dfinput/guncon.o frontend/cspace.o frontend/cspace_neon.o frontend/libpicofe/in_sdl.o frontend/libpicofe/plat_sdl.o frontend/libpicofe/plat_dummy.o frontend/libpicofe/linux/in_evdev.o frontend/plat_sdl.o frontend/libpicofe/gl.o frontend/libpicofe/gl_platform.o frontend/plugin_lib.o frontend/libpicofe/linux/plat.o frontend/libpicofe/readpng.o frontend/libpicofe/fonts.o frontend/libpicofe/arm/neon_scale2x.o frontend/libpicofe/arm/neon_eagle2x.o frontend/menu.o frontend/libpicofe/input.o frontend/main.o frontend/plugin.o pcsx.map frontend/revision.h gcc -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -O2 -Wall -ggdb -Iinclude -ffast-math -O2 -DNDEBUG -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -O2 -marm -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -D_FILE_OFFSET_BITS=64 -Wno-unused-result -c -o libpcsxcore/cdriso.o libpcsxcore/cdriso.c libpcsxcore/cdriso.c: In function ‘parsetoc’: libpcsxcore/cdriso.c:354:31: warning: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; did you mean to use the size of the destination? [-Wsizeof-pointer-memaccess] strncpy(tmp, linebuf, sizeof(linebuf)); ^ libpcsxcore/cdriso.c: In function ‘parsecue’: libpcsxcore/cdriso.c:504:33: warning: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; did you mean to use the size of the destination? [-Wsizeof-pointer-memaccess] strncpy(dummy, linebuf, sizeof(linebuf)); ^ libpcsxcore/cdriso.c: At top level: libpcsxcore/cdriso.c:1092:12: error: conflicting types for ‘uncompress2’ static int uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size) ^~~~~~~~~~~ In file included from libpcsxcore/cdriso.c:40: /usr/include/zlib.h:1283:21: note: previous declaration of ‘uncompress2’ was here ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, ^~~~~~~~~~~ make: *** [<builtin>: libpcsxcore/cdriso.o] Error 1 Could not successfully build pcsx-rearmed - Playstation emulator - PCSX (arm optimised) (/home/pi/RetroPie-Setup/tmp/build/pcsx-rearmed/pcsx not found). /home/pi Log ended at: Sat 06 Nov 2021 09:17:29 AM MDT Total running time: 0 hours, 0 mins, 7 secs
-
@jasonlovespi The poster hasn't been active for 3 years in the forum. Please open a separate topic - don't necro-post by bumping old topics. Lots of things have changed since the original post and the informations here may not be accurate and/or out of date.
-
-
-
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.