[HOW-TO / TESTING] RetroPie on Vero4k

I tried another gamedap (from an old OUYA console) and although the behavior was the same, with it I was able to enter the ppsspp configuration menu and map the keys again. I can now play with all the buttons.

For the record, this was my output of the Dragonrise gamepad from the gamepadcontroller tool:

03000000790000000600000010010000,DragonRise Inc.   Generic   USB  Joystick,platform:Linux,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b6,righttrigger:b7,

My problem now is that many ppsspp games fail with a Segmentation Fault at boot time. Some games boot in 1 out of 5 attempts, but many others never boot at all. This happens after a fresh install of Retropie and ppsspp. Is this normal behavior for heavier games? Or is it something that can be fixed? This is the error in the logs:

Parameters: 
Executing: /opt/retropie/emulators/ppsspp/PPSSPPSDL --fullscreen "/home/osmc/RetroPie/roms/psp/Assassins Creed Bloodlines.iso"
55:11:172 Core/Config.cpp:1192 I[LOADER]: Loading controller config: /home/osmc/.config/ppsspp/PSP/SYSTEM/controls.ini
55:11:197 Core/Config.cpp:1277 I[LOADER]: Config saved (got storage permission): '/home/osmc/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
55:11:198 Core/Config.cpp:1290 I[LOADER]: Controller config saved: /home/osmc/.config/ppsspp/PSP/SYSTEM/controls.ini
SDL_CreateWindow failed for GL 3.2: mali-fbdev: Can't create EGL window surface
SDL_CreateWindow failed for GL 3.1: mali-fbdev: Can't create EGL window surface
SDL_CreateWindow failed for GL 3.0: mali-fbdev: Can't create EGL window surface
I: VulkanLoader.cpp:261: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:268: VulkanMayBeAvailable: Library loaded ('libvulkan.so')
I: VulkanLoader.cpp:319: VulkanMayBeAvailable: Enumerating instance extensions
I: VulkanLoader.cpp:330: VulkanMayBeAvailable: Instance extension count: 1
I: VulkanLoader.cpp:371: VulkanMayBeAvailable: Calling vkCreateInstance
E: VulkanLoader.cpp:375: Failed to create vulkan instance.
DEBUG: Vulkan is not available, not using Vulkan.
I: Config.cpp:526: Longest display side: -1 pixels. Choosing scale 1
I: NativeApp.cpp:572: Boot filename found in args: '/home/osmc/RetroPie/roms/psp/Assassins Creed Bloodlines.iso'
Pixels: 1920 x 1080
Virtual pixels: 1920 x 1080
I: gpu_features.cpp:174: GPU Vendor : ARM ; renderer: Mali-450 MP version str: OpenGL ES 2.0 ; GLSL version str: OpenGL ES GLSL ES 1.00
loading control pad mappings from gamecontrollerdb.txt: gamecontrollerdb.txt missing
SUCCESS!
Control pad device 0 not supported by SDL game controller database, attempting to create default mapping...
Added default mapping ok
found control pad: OUYA Game Controller, loading mapping: SUCCESS, mapping is:
05000000362800000100000003010000,OUYA Game Controller,x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4
pad 1 has been assigned to control pad: OUYA Game Controller
55:12:720 UI/DiscordIntegration.cpp:57 I[SYSTEM]: Discord connection initialized
55:12:720 Common/MsgHandler.cpp:45 E[SYSTEM]: Warning: Failed to load ui_atlas.zim.

Place it in the directory "assets" under your PPSSPP directory.
/opt/retropie/supplementary/runcommand/runcommand.sh: line 1006: 19633 Segmentation fault      /opt/retropie/emulators/ppsspp/PPSSPPSDL --fullscreen "/home/osmc/RetroPie/roms/psp/Assassins Creed Bloodlines.iso"

Not sure why it’s only a problem now. Even when your DragonRise controller wasn’t recognized originally it should still have booted and then encountered whatever issue is segfaulting it. So either your new OUYA controller is causing this, or since your first build there has been a bad commit in PPSSPP upstream. Try your old controller again.

I’ve had no such crashes at startup. I’ve not tested that particular ROM, and I shall do so, but you’re saying most are affected in some way so that’s not right.


The only error in that little lot is:

Where has that gone then?
You’ll be building from a newer version than me, but at latest commits RetroPie-Setup is still meant to be installing the entire assets folder (which also holds your gamepad DB file) and PPSSPP haven’t removed it from there.
Check for its presence manually.


With respect to the original controller issue - it looks like the keymappings are the same as the database, just in a different order. The guide button is how you would normally get to the setting page/home screen, so I’m not sure how PPSSSPP maps that for such controllers?
Out of curiosity is this an issue? Either before you start RetroPie or when running the SDL test to see if it maps differently?

Hang on, where did you get libvulkan.so from? :triangular_flag_on_post:
The output should only read:

I: VulkanLoader.cpp:261: VulkanMayBeAvailable: Device allowed (‘SDL:Linux’)
I: VulkanLoader.cpp:277: Vulkan loader: Library not available
DEBUG: Vulkan is not available, not using Vulkan.

I’ve just built PPSSPP from current upstream master and it’s running fine. What have you been up to then?

1 Like

You’re a genius!
The seg faults have been solved by deleting libvulkan1 which I don’t know why it was installed on August 13 doing tests to solve the gamepad problem I guess. That package was installed from some script I used along with these others:

2019-08-13 17:35:41 status installed libvulkan1:armhf 1.0.39.0+dfsg1-1
2019-08-13 17:35:41 status installed mesa-common-dev:armhf 13.0.6-1+b2
2019-08-13 17:35:42 status installed libvulkan-dev:armhf 1.0.39.0+dfsg1-1
2019-08-13 17:35:42 status installed libgl1-table-dev:armhf 13.0.6-1+b2
2019-08-13 17:35:42 status installed libc-bin:armhf 2.24-11+deb9u4

I can’t remember exactly what I installed that needed these packages, I’m sorry. But problem solved, thank you very much! The strange thing is that I realized that launching the PPSSPP binary from the console launched well, and I could load all the games from the PPSSPP menu. It only failed to launch ROMS from emulationstation. Funny.

As for the gamepad, at the moment I have solved the problem by going from the OUYA controller to the PPSSPP configuration menu with the guide button, and mapping the Dragonrise gamepad correctly, so I can play normally with both gamepads. But it would be nice to know the cause of the problem. It would be solved if we could map that GUIDE button on DragonRise to map the buttons correctly from the menu. Today I don’t have any more time but I hope in a few days to be able to do more tests, including with and without analog button pressed, and give a solution to this issue.

Thanks for the help again!

Splendid news. Glad you’ve got a fix.

PPSSPP needs plenty of per game configuration to get the best out of it, but it’s very much the flagship emulator of the bunch. Quite impressive really.

That was easy. Only had to modify /opt/retropie/emulators/ppsspp/assets/gamecontrollerdb.txt and change the line for DragonRise (I guess it would work for other PS2 generic gamepads) to map for “guide” some key we don’t use in PSP (triggers, stick thumbs…). In my case changed rightstick:b11 for guide:b11.

Now I can play and exit games with my DragonRise gamepad.

There’s a new installer for RetroPie on the Vero4K! It also works on the RPi, so it’s been imaginatively called…

retrOSMCmk2


What does this installer add?

  1. Binary install options for the Vero4K for all of the tested emulators, so you’ll be up and running in minutes rather than hours;
  2. Provides a new launcher addon as standard;
  3. Fixes the popup menus when you start a game (you may not have noticed but previously they didn’t display at all, so you couldn’t select the default core for a ROM etc, or TV mode);
  4. Runs Emulationstation as a proper service.

Thanks to:
@DBMandrake - popup menu fixes and the startup service.
@joakim_s - TV mode selection fixes.
@mcobit - the original name that I really couldn’t improve upon.
@sam_nazarko - hosting the binaries.


Installation is via:

sudo apt-get install git
cd
git clone https://github.com/hissingshark/retrOSMCmk2.git
cd retrOSMCmk2
sudo ./setup.sh

Just select RetroPie-Setup from the menu and proceed as normal.

You will need to install all of the core packages:
Manage packages->Manage core packages->Install/Update all core packages from binary

Then start installing the individual emulators you want to try under:
Manage packages->Manage main/optional/experimental packages

Only installing one at a time the packages you intend to use is more sensible, but if you really are going to use most/all of the main emulators you could save a few clicks by running:
Basic install which will install the Core and Main packages from binary in one step.


Currently tested:

EmulationStation

Amiberry
Mupen64Plus
PPSSPP
Reicast
ScummVM
VICE

Retroarch and the 27 “main” cores including:
lr-fuse
lr-gambatte
lr-genesis-plux-gx
lr-mgba
lr-nestopia
lr-pcsx-rearmed
lr-snes9x2010
lr-mame-2003-plus

ADVISORY:

  1. If you encounter problems with the above supported subset, try again with a clean OSMC install.
    90% of the problems encountered by new users have related to systems contaminated by previous experiments and configurations. You will save a lot of time if you try this first. Then if there is a problem we are at least all on the same page. I want you gaming as quickly as possible!
  2. Not all emulators are tested as yet. Some may not work or building them may break others. Adding one at a time and checking how things are is the way to go!

Please report back with your findings! Good or bad.

2 Likes

This probably warrants a new thread with a link to it from here as this is quite a significant development

1 Like

Agreed. I shall make it so.

1 Like

After the above announcement this thread has reached it’s logical conclusion.

The story continues here with retrOSMCmk2.

I hope to see you there :video_game:.