PPSSPP Core Segmentation

Hi

tried playing Burnout dominator on the ppsspp core and it segment fault when pressing F1. I’m using to latest from the Testing PPA

 retroarch -L /usr/lib/libretro/ppsspp_libretro.so "/Games/Romz/Sony/psp/Burnout_Dominator/psy-bdom.iso" --verbose
RetroArch [INFO] :: Redirecting save file to "/Games/Romz/Sony/psp/Burnout_Dominator/psy-bdom.srm".
RetroArch [INFO] :: === Build =======================================
Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 
Built: Aug 17 2016
RetroArch [INFO] :: Version: 1.3.6
RetroArch [INFO] :: =================================================
RetroArch [INFO] :: Looking for config in: "/home/telanus/.config/retroarch/retroarch.cfg".
RetroArch [INFO] :: Config: loading config from: /home/telanus/.config/retroarch/retroarch.cfg.
RetroArch [INFO] :: Resetting undo buffers.
RetroArch [INFO] :: Loading dynamic libretro core from: "/usr/lib/x86_64-linux-gnu/libretro/ppsspp_libretro.so"
RetroArch [INFO] :: Overrides: no core-specific overrides found at /home/telanus/.config/retroarch/PPSSPP/PPSSPP.cfg.
RetroArch [INFO] :: Overrides: no game-specific overrides found at /home/telanus/.config/retroarch/PPSSPP/psy-bdom.cfg.
RetroArch [INFO] :: Shaders: preset directory: /home/telanus/.config/retroarch/shaders/presets
RetroArch [INFO] :: Shaders: no game-specific preset found at /home/telanus/.config/retroarch/shaders/presets/PPSSPP/psy-bdom.cgp.
RetroArch [INFO] :: Shaders: no game-specific preset found at /home/telanus/.config/retroarch/shaders/presets/PPSSPP/psy-bdom.glslp.
RetroArch [INFO] :: Shaders: no core-specific preset found at /home/telanus/.config/retroarch/shaders/presets/PPSSPP/PPSSPP.cgp.
RetroArch [INFO] :: Shaders: no core-specific preset found at /home/telanus/.config/retroarch/shaders/presets/PPSSPP/PPSSPP.glslp.
RetroArch [INFO] :: Environ SET_VARIABLES.
RetroArch [INFO] :: Remaps: remap directory: /home/telanus/.config/retroarch/config/remaps
RetroArch [INFO] :: Remaps: no game-specific remap found at /home/telanus/.config/retroarch/config/remaps/PPSSPP/psy-bdom.rmp.
RetroArch [INFO] :: Remaps: no core-specific remap found at /home/telanus/.config/retroarch/config/remaps/PPSSPP/PPSSPP.rmp.
RetroArch [INFO] :: Redirecting save file to "/Games/Romz/Sony/psp/Burnout_Dominator/psy-bdom.srm".
RetroArch [INFO] :: Environ GET_LOG_INTERFACE.
RetroArch [WARN] :: SYSTEM DIR is empty, assume CONTENT DIR /Games/Romz/Sony/psp/Burnout_Dominator/psy-bdom.iso
RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "/Games/Romz/Sony/psp/Burnout_Dominator/".
RetroArch [INFO] :: Content loading skipped. Implementation will load it on its own.
RetroArch [INFO] :: Environ SET_INPUT_DESCRIPTORS:
RetroArch [INFO] ::     RetroPad, User 1, Button "B (bottom)" => "Cross"
RetroArch [INFO] ::     RetroPad, User 1, Button "Y (left)" => "Square"
RetroArch [INFO] ::     RetroPad, User 1, Button "Select" => "Select"
RetroArch [INFO] ::     RetroPad, User 1, Button "Start" => "Start"
RetroArch [INFO] ::     RetroPad, User 1, Button "D-Pad Up" => "D-Pad Up"
RetroArch [INFO] ::     RetroPad, User 1, Button "D-Pad Down" => "D-Pad Down"
RetroArch [INFO] ::     RetroPad, User 1, Button "D-Pad Left" => "D-Pad Left"
RetroArch [INFO] ::     RetroPad, User 1, Button "D-Pad Right" => "D-Pad Right"
RetroArch [INFO] ::     RetroPad, User 1, Button "A (right)" => "Circle"
RetroArch [INFO] ::     RetroPad, User 1, Button "X (up)" => "Triangle"
RetroArch [INFO] ::     RetroPad, User 1, Button "L" => "L"
RetroArch [INFO] ::     RetroPad, User 1, Button "R" => "R"
RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: XRGB8888.
RetroArch [INFO] :: Environ SET_HW_RENDER.
RetroArch [INFO] :: Requesting OpenGL context.
W: file_util.cpp:215: W: IsDirectory: stat failed on /Games/Romz/Sony/psp/Burnout_Dominator/PPSSPP/lang/.ini
RetroArch [INFO] :: Environ GET_USERNAME: "".
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_internal_resolution:
RetroArch [INFO] ::     960x544
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_output_resolution:
RetroArch [INFO] ::     960x544
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_button_preference:
RetroArch [INFO] ::     cross
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_fast_memory:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_set_rounding_mode:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_vertex_cache:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_gpu_hardware_transform:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_frameskip:
RetroArch [INFO] ::     0
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_audio_latency:
RetroArch [INFO] ::     0
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_framerate_limit:
RetroArch [INFO] ::     0
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_language:
RetroArch [INFO] ::     automatic
RetroArch [INFO] :: Environ GET_LANGUAGE: "0".
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_auto_frameskip:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_block_transfer_gpu:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_texture_scaling_type:
RetroArch [INFO] ::     hybrid
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_texture_scaling_level:
RetroArch [INFO] ::     1
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_internal_shader:
RetroArch [INFO] ::     off
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_texture_anisotropic_filtering:
RetroArch [INFO] ::     off
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_texture_deposterize:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_separate_io_thread:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_unsafe_func_replacements:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_sound_speedhack:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_cpu_core:
RetroArch [INFO] ::     jit
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_locked_cpu_speed:
RetroArch [INFO] ::     off
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_rendering_mode:
RetroArch [INFO] ::     read_framebuffers_to_memory_gpu
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_force_max_fps:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_prescale_uv:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE ppsspp_threaded_input:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Skipping SRAM load..
RetroArch [INFO] :: Version of libretro API: 1
RetroArch [INFO] :: Compiled against API: 1
RetroArch [INFO] :: Set audio input rate to: 44107.32 Hz.
RetroArch [INFO] :: Video @ fullscreen
RetroArch [INFO] :: Using HW render, OpenGL driver forced.
RetroArch [ERROR] :: Failed to connect to Wayland server.
RetroArch [INFO] :: Found GL context: x
RetroArch [INFO] :: Detecting screen resolution 1600x900.
RetroArch [INFO] :: [X11]: Xinerama version: 1.1.
RetroArch [INFO] :: [X11]: Xinerama screens: 1.
RetroArch [INFO] :: [GLX]: Using Xinerama on screen #0.
RetroArch [INFO] :: [GLX]: X = 0, Y = 0, W = 1600, H = 900.
RetroArch [INFO] :: [GLX]: Using windowed fullscreen.
RetroArch [INFO] :: [GLX]: Found swap function: glXSwapIntervalEXT.
RetroArch [INFO] :: [GLX]: glXSwapIntervalEXT(0)
RetroArch [INFO] :: [GL]: Vendor: NVIDIA Corporation, Renderer: GeForce GT 240/PCIe/SSE2.
RetroArch [INFO] :: [GL]: Version: 3.3.0 NVIDIA 304.131.
RetroArch [INFO] :: Querying GL extension: ARB_ES2_compatibility => exists
RetroArch [INFO] :: Querying GL extension: ARB_sync => exists
RetroArch [INFO] :: Querying GL extension: ARB_texture_float => exists
RetroArch [INFO] :: Querying GL extension: EXT_texture_sRGB => exists
RetroArch [INFO] :: Querying GL extension: ARB_framebuffer_sRGB => exists
RetroArch [INFO] :: GL: Using resolution 1600x900
RetroArch [INFO] :: [GL]: Default shader backend found: glsl.
RetroArch [INFO] :: [Shader driver]: Using GLSL shader backend.
RetroArch [INFO] :: Checking GLSL shader support ...
RetroArch [WARN] :: [GL]: Stock GLSL shaders will be used.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: [GL]: Using 1 textures.
RetroArch [INFO] :: [GL]: Loaded 1 program(s).
RetroArch [INFO] :: [GL]: Initializing HW render (1024 x 1024).
RetroArch [INFO] :: [GL]: Max texture size: 8192 px, renderbuffer size: 8192 px.
RetroArch [INFO] :: Querying GL extension: ARB_framebuffer_object => exists
RetroArch [INFO] :: [GL]: Supports FBO (render-to-texture).
RetroArch [INFO] :: [udev]: Plugged pad: Xbox 360 Wireless Receiver (0:0) on port #0.
RetroArch [INFO] :: Autodetect: 130 profiles found
RetroArch [INFO] :: Autodetect: selected configuration: /home/telanus/.config/retroarch/autoconfig/udev/Xbox_360_Wireless_Receiver.cfg
RetroArch [INFO] :: [udev]: Pad #0 (/dev/input/event14) supports 0 force feedback effects.
RetroArch [INFO] :: [udev]: Plugged pad: Xbox 360 Wireless Receiver (0:0) on port #1.
RetroArch [INFO] :: Autodetect: 130 profiles found
RetroArch [INFO] :: Autodetect: selected configuration: /home/telanus/.config/retroarch/autoconfig/udev/Xbox_360_Wireless_Receiver.cfg
RetroArch [INFO] :: [udev]: Pad #1 (/dev/input/event15) supports 0 force feedback effects.
RetroArch [INFO] :: [udev]: Plugged pad: Xbox 360 Wireless Receiver (0:0) on port #2.
RetroArch [INFO] :: Autodetect: 130 profiles found
RetroArch [INFO] :: Autodetect: selected configuration: /home/telanus/.config/retroarch/autoconfig/udev/Xbox_360_Wireless_Receiver.cfg
RetroArch [INFO] :: [udev]: Pad #2 (/dev/input/event16) supports 0 force feedback effects.
RetroArch [INFO] :: [udev]: Plugged pad: Xbox 360 Wireless Receiver (0:0) on port #3.
RetroArch [INFO] :: Autodetect: 130 profiles found
RetroArch [INFO] :: Autodetect: selected configuration: /home/telanus/.config/retroarch/autoconfig/udev/Xbox_360_Wireless_Receiver.cfg
RetroArch [INFO] :: [udev]: Pad #3 (/dev/input/event17) supports 0 force feedback effects.
RetroArch [INFO] :: Found joypad driver: "udev".
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: Suspending screensaver (X11).
RetroArch [INFO] :: [PulseAudio]: Requested 24576 bytes buffer, got 18432.
RetroArch [INFO] :: Found menu display driver: "menu_display_null".
RetroArch [INFO] :: Querying GL extension: ARB_framebuffer_object => exists
RetroArch [INFO] :: Loading history file: [/home/telanus/.config/retroarch/content_history.lpl].
RetroArch [INFO] :: Loading history file: [/home/telanus/.config/retroarch/content_music_history.lpl].
RetroArch [INFO] :: Loading history file: [/home/telanus/.config/retroarch/content_video_history.lpl].
RetroArch [INFO] :: Loading history file: [/home/telanus/.config/retroarch/content_image_history.lpl].
RetroArch [INFO] :: [GL]: VSync => off
RetroArch [INFO] :: [GLX]: glXSwapIntervalEXT(0)
I: gl_state.cpp:137: I: GPU Vendor : NVIDIA Corporation ; renderer: GeForce GT 240/PCIe/SSE2 version str: 3.3.0 NVIDIA 304.131 ; GLSL version str: 3.30 NVIDIA via Cg compiler
I: gpu_features.cpp:20: I: Checking for GL driver bugs... vendor=1 model='GeForce GT 240/PCIe/SSE2'
I: zip_read.cpp:337: I: Not a VFS path: /Games/Romz/Sony/psp/Burnout_Dominator/PPSSPP/shaders/defaultshaders.ini . Reading local file.
I: zip_read.cpp:370: I: Not a VFS path: /Games/Romz/Sony/psp/Burnout_Dominator/PSP/shaders . Reading local directory.
RetroArch [INFO] :: [GL]: VSync => on
RetroArch [INFO] :: [GLX]: glXSwapIntervalEXT(1)
RetroArch [INFO] :: [PulseAudio]: Pausing.
Segmentation fault (core dumped)


Do other ROMs run okay? Can you get us a backtrace through gdb?

To do that, type into a terminal: gdb retroarch and then at the gdb terminal, type: -L /usr/lib/libretro/ppsspp_libretro.so “/Games/Romz/Sony/psp/Burnout_Dominator/psy-bdom.iso” --verbose When it freezes, go back to your terminal and type: bt and hit enter. It should print some stuff about what actually caused the crash.

here is the backtrace’s output:


bt
#0  0x00000000004d96a4 in matrix_4x4_multiply (out=0x7fffffffc720, 
    a=a@entry=0x7fffffffc550, b=b@entry=0x0)
    at libretro-common/gfx/math/matrix_4x4.c:185
#1  0x00000000004b8459 in menu_display_rotate_z (
    draw=draw@entry=0x7fffffffc640) at menu/menu_display.c:560
#2  0x0000000000484186 in xmb_frame (data=0x1005020) at menu/drivers/xmb.c:2166
#3  0x0000000000487fc0 in menu_driver_ctl (
    state=state@entry=RARCH_MENU_CTL_FRAME, data=data@entry=0x0)
    at menu/menu_driver.c:484
#4  0x00000000004ddd54 in gl_frame (data=0xa8bfd0, frame=<optimized out>, 
    frame_width=<optimized out>, frame_height=<optimized out>, 
    frame_count=285, pitch=0, msg=0x9bfac0 <video_driver_msg> "")
    at gfx/drivers/gl.c:1544
#5  0x000000000043dcf0 in video_driver_frame (data=0x9bfc00 <dummy_pixels>, 
    width=960, height=544, pitch=0) at gfx/video_driver.c:2168
#6  0x000000000041c987 in core_frame (info=info@entry=0x7fffffffddb0)
    at core_impl.c:293
#7  0x000000000043d30e in video_driver_cached_frame ()
    at gfx/video_driver.c:1129
#8  video_driver_cached_frame_render () at gfx/video_driver.c:1696
#9  0x00000000004b7b91 in menu_display_libretro () at menu/menu_display.c:305
#10 0x0000000000488a89 in menu_driver_ctl (
    state=state@entry=RARCH_MENU_CTL_RENDER, data=data@entry=0x0)
---Type <return> to continue, or q <return> to quit---
    at menu/menu_driver.c:451
#11 0x000000000042ace4 in runloop_iterate_menu (sleep_ms=0x7fffffffdf9c, 
    action=<optimized out>) at runloop.c:1370
#12 runloop_iterate (sleep_ms=sleep_ms@entry=0x7fffffffdf9c) at runloop.c:1517
#13 0x000000000041bc1a in rarch_main (argc=5, argv=<optimized out>, data=0x0)
    at frontend/frontend.c:121
#14 0x00007ffff042b830 in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
#15 0x0000000000418f89 in _start ()

Only happens with the PPSSPP Core so far in my short testing

Another Core with the same problem: Mupen64

(gdb) bt
#0  0x00000000004d96a4 in matrix_4x4_multiply (out=0x7fffffffc730, 
    a=a@entry=0x7fffffffc560, b=b@entry=0x0)
    at libretro-common/gfx/math/matrix_4x4.c:185
#1  0x00000000004b8459 in menu_display_rotate_z (
    draw=draw@entry=0x7fffffffc650) at menu/menu_display.c:560
#2  0x0000000000484186 in xmb_frame (data=0x1ea2970) at menu/drivers/xmb.c:2166
#3  0x0000000000487fc0 in menu_driver_ctl (
    state=state@entry=RARCH_MENU_CTL_FRAME, data=data@entry=0x0)
    at menu/menu_driver.c:484
#4  0x00000000004ddd54 in gl_frame (data=0xab0a90, frame=<optimized out>, 
    frame_width=<optimized out>, frame_height=<optimized out>, frame_count=71, 
    pitch=0, 
    msg=0x9bfac0 <video_driver_msg> "Xbox 360 Wireless Receiver configured in port #1.") at gfx/drivers/gl.c:1544
#5  0x000000000043dcf0 in video_driver_frame (data=0x0, width=640, height=480, 
    pitch=0) at gfx/video_driver.c:2168
#6  0x000000000041c987 in core_frame (info=info@entry=0x7fffffffddc0)
    at core_impl.c:293
#7  0x000000000043d30e in video_driver_cached_frame ()
    at gfx/video_driver.c:1129
#8  video_driver_cached_frame_render () at gfx/video_driver.c:1696
#9  0x00000000004b7b91 in menu_display_libretro () at menu/menu_display.c:305
#10 0x0000000000488a89 in menu_driver_ctl (
---Type <return> to continue, or q <return> to quit---
    state=state@entry=RARCH_MENU_CTL_RENDER, data=data@entry=0x0)
    at menu/menu_driver.c:451
#11 0x000000000042ace4 in runloop_iterate_menu (sleep_ms=0x7fffffffdfac, 
    action=<optimized out>) at runloop.c:1370
#12 runloop_iterate (sleep_ms=sleep_ms@entry=0x7fffffffdfac) at runloop.c:1517
#13 0x000000000041bc1a in rarch_main (argc=4, argv=<optimized out>, data=0x0)
    at frontend/frontend.c:121
#14 0x00007ffff042b830 in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
#15 0x0000000000418f89 in _start ()
(gdb) 



#0  0x00000000004d96a4 in matrix_4x4_multiply (out=0x7fffffffc730, 
    a=a@entry=0x7fffffffc560, b=b@entry=0x0)
    at libretro-common/gfx/math/matrix_4x4.c:185

Seems to be the same issue.

What Ubuntu version are you using? I can’t reproduce here.

Those are both libretro-gl cores, which means they’re rendering via GL rather than software rendering like most of the other cores. I’m not sure what would cause the segfaulting, though.

[QUOTE=sergio-br2;45309]


#0  0x00000000004d96a4 in matrix_4x4_multiply (out=0x7fffffffc730, 
    a=a@entry=0x7fffffffc560, b=b@entry=0x0)
    at libretro-common/gfx/math/matrix_4x4.c:185

Seems to be the same issue.

What Ubuntu version are you using? I can’t reproduce here.[/QUOTE] I’m using Ubuntu Mate 16.04.1 with mate updated to 1.14.1.

Only happens when I press F1. I can play as long as i want but as soon as I press F1 it segment fault

Getting this issue with mupen-libretro on a raspberry pi (raspian) also. i think any core with native GL will be getting this issue

Getting this issue with mupen-libretro also. i think any core with native GL will be getting this issue.