Prefer to keep package updating in once place to avoid confusion and issues with future packaging changes. This
code for example would force a source install, which may not be preferable if the user has installed from binary
and we have an updated binary available also.
Function could fail if RetroPie-Setup/tmp didn't exist - as we use $__tmpdir primarily for building,
I have switched this to use mktemp -d.
Create destination folders also as required.
I ran into this bug when installing lr-tyrquake from binary install on a new system. $__tmpdir is not actually
created by default, but in this case when unpacking archives, it's better to use mktemp as detailed.
There are open-source implementations of NVIDIA's GFE server which
expands Moonlight compatibility to other GPU manufacturers on both
Linux and Windows:
1. https://github.com/loki-47-6F-64/sunshine
(original project with CPU and NVIDIA HW encoder support)
2. https://github.com/LS3solutions/openstream-server
(forked project focused on Windows support with partial AMD HW encoding)
Unfortunately, moonlight-embedded does not work out of the box, so
provide a new host menu to assist in configuring the options needed
to attain full compatibility with these servers.
We don't want to remove install folder before we download a binary - in the case of a download failure we could end up
just removing the installed version which isn't wanted. Added the removal to before the tar unpacking / verification.
Remove some checks for function existing for cases where it had been done earlier and move some logic for
install/install_bin to later case statement to clean up logic a bit
Previously all the module data was in indexed arrays with matching offsets.
Each scriptmodule folder had an initial index and it was incremented per module.
Many package functions expected an index. Indexes were never unique and could change
depending on added modules etc. We also had to convert between them and module IDs.
Now it's all done by module id. There is a numbered index of all modules found, that
increments which is used in the GUI setup menus. But it's not needed by any packaging functions.
md_idx is dropped and the few modules that used it for install checks etc now use md_id.
all packaging functions use the id.
retropie_packages.sh now accepts the module id only.
* switched to use -eq so it will be less strict with for example whitespace in value
* do a test for -eq 0 rather than just else, to avoid defaulting to 0 in the case of a bad config
Currently the code for calling frontend hooks just calls all modules with the hook functions
_add_system_* _del_system_* _add_rom_* etc. For additional frontends we check if they are installed in these
functions, but for emulationstation-dev it just called the emulationstation module functions. This actually
meant that we called the emulationstation functions twice when adding a system or removing.
The helper functions probably should do the check to only call the frontend hook functions when they are installed,
which may be a better fix, but for now, this works. I am overhauling some of the packaging code, so I will revisit this.
* Amiga - new extensions supported by `lr-puae`
* C64 - new extensions supported by `lr-vice`
* 3DO - added `.chd`, supported by the Opera Libretro core; updated license URL for the core.
* GC/Wii - added `.rvz`, supported by Dolphin
* MSX - added `.cas`, supported by both `lr-bluesmsx` and `openmsx`
* PC88 - added `.m3u`, supported by `lr-quasi88`
I made some changes before to hide previously registered devices from the connect menu, to make it
easier when dealing with multiple devices of the same name. However due to the way bluetoothctl works,
previously "seen" devices are added to the system, meaning devices that are not paired are registered and cached,
and then won't be shown again.
This changeset addresses the following:
Only actually paired devices will be hidden from the register and connect menu
New functions list_paired and list_connected have been added
Switched to use bt-device to check for connected devices for consistency. Private function handles
grepping for Paired or Connected via bt-device --info
display_active_and_registered function renamed to simpler status and reworked to use the new functions.
It outputs to console - the GUI menu just calls this and then outputs to a dialog menu - making this now
a more useful commandline function
remove_device shows all registered devices, even ones seen before. These previously seen devices show
up when scanning so we still want to be able to remove them. I have adjusted it though so paired devices are
shown first, followed by any known devices.
When PulseAudio is installed and active, it takes over as the default ALSA device.
Remove any `.asoundrc` when it's enabled and configure the PulseAudio default output sink instead.
Added the option to enable/disable PulseAudio, depending on the running configuration.
Users reported that this version runs faster on videocore on the rpi1/2/3
Adjusted ppsspp sources to allow branch parameter and fixed build subfolder to ppsspp
so that paths are the same for md_ret_files, including adjusting lr-ppsspp in the same way.
Older code builds ok with our current ppsspp module script on rpi1/2/3 + videocore gles2,
but not rpi4, which it isn't needed on anyway. This may need changing if we have to update
ppsspp further in the future.
This adds a __setup global variable which is used for this (set to 1 during setup_depends).
In the past, sources were not cleaned on error which was an issue for some users when an
upstream source changed causing a custom patch to fail or upstream url code changed. It was
changed so source folders were cleaned up on error which was useful for end users.
This wasn't helpful for development and testing though, so when using retropie_packages
directly, the source folder won't be removed. When building a module and testing via
./retropie_packages.sh MODULE sources, it was nuisance to have the source folder removed on
a patch failure, especially on larger repositories.