New version needs WiringPi, but not the original version that got discontinued. There's an active fork of WiringPi which also provides `.deb` files, so check whether this new version is installed first before compiling locally a static version and using it.
Other modifications:
* modified the installation/build to use `$md_build` and handle the installation ourselves, instead of using the upstream `make` targets. This means the driver is copied to `/opt/retropie` (just like `xboxdrv`) instead of being located in `/usr/local`.
* added a `systemd` unit file to start the driver and don't rely on the upstream `rc.d` service scripts.
The Pi5 uses a different architecture for the GPIO pins, which is not compatible with previous models.
All GPIO functions are now handled by the RP1 [1] southbridge chip and the GPIO reading mechanism used in previous models doesn't work here.
Disabled drivers:
- gamecond and db9 (gamecondriver)
- mk_arcadejoystick_rpi
- snesdev
[1] https://www.raspberrypi.com/documentation/microcontrollers/rp1.html
Mostly drivers and supplementary packages - most install to md_inst which should be handled better now,
but also adjusted sixaxis to use md_build rather than a subfolder in md_build as it didn't seem to require it.
* 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.
* use arrays for info/error messages
* create a helper function to print our information to console/dialog etc
* rename prebious printMsg to printHeading
* fix for duplication of error messages in rp_callModule
values at once, we now have a iniConfig function that sets up the delimiter type (such as "=" or " = "), the value quote
character (often "" nothing or "\"" a single quote) and the filename. you can then just call "iniSet" or "iniUnset" with two parameters
for key and value. A third parameter can be used in case you wish to use the current ini settings but on a different file. We should now easily
be able to handle any key/value configs whilst keeping the code simple/compact