lr-gpsp:
cpu_threaded.c built with -O2 on gcc 8 produces a non working binary. This source already had
a different optimisation level from the rest of the code (O2 vs O3). However, on gcc-8 it causes
a non working binary when built with anything other than O0, but this could have some performance
issues (would need testing on a rpi1).
I compared all the different optimisation flags enabled by O1 and also with any changes from gcc-6,
but not all GCC optimisations are controllable from flags. It was not possible to produce a working
binary with O1 - even disabling all the configurable optimisations enabled by O1.
The issue is most likely undefined behaviour in this file (which has a lot of large macros), and it
probably needs some fixes. However it could be a bug in the gcc-8 optimiser code.
As the issue isn't present with gcc-6, and as gcc-6 is available on Debian buster, the easiest
workaround is to just force the code to be build with gcc-6.
Also adjusted the makefile to pass parameters for the make clean, as some platform specific objects
are not removed otherwise.
gpsp:
Forced gcc-6 as with lr-gpsp.
Simplified the module flags to just include videocore platforms.
* rp_module_menus is no more - instead use rp_module_section with one of
- core (core packages)
- main (main packages - which will be installed by default in the image)
- opt (optional packages)
- exp (experimental packages)
- driver (driver packages)
- config (configuration packages / tools)
* The setup menu organises the data based on the above sections. more could be added in the future if needed. Packages (internally modules), can be added / configured / removed individually, or as entire sections.
* The setup menu will automatically detect if a binary is available to be installed. the nobin flag is no longer needed. modules that install directly from binary via aptInstall or via a prebuilt binary need to use an install_bin_ function instead of install_
* rp_module_section of type "config" will have the "gui_" function called first if it's available, otherwise a standard depends/sources/build/install/configure will be called
* configure is no longer used for "gui" configuration function - use gui_ instead. Had already started to move to this before, but now it is required.
I couldnt figure out how to get gpsp to not overwrite the romdir.txt
created so for the time being this PR just enables savestates but they
are all currently saved in /opt/retropie/emulators/gpsp. If people wish
for their configs to be saved they need to exit from the F10 menu rather
than pressing escape.
GPSP seems to use GLES without SDL for rendering. So DISPMANX SDL has no effect. I just modified the gpsp source to get the same result as DISPMANX SDL. I also added a SELECT+START exit emulator combo.
https://github.com/gizmo98/gpsp/commits/master
we pass the module id in, which is short and should be clear to the user if manually fiddling with the config. if the parameter is
empty, it the name of the binary will be used
the build/install paths are pregenerated making modules even simpler - we use the module type to decide where to put it, which
will be needed for supplementary / libretrocores