commit
7c6ab06f39
194 changed files with 2889 additions and 3757 deletions
|
@ -111,6 +111,7 @@ limitations under the License.
|
|||
|
||||
### Using JELOS
|
||||
* [Setting Up Cloud Drives](/documentation/SETUP_CLOUD_DRIVES.md)
|
||||
* [Setting Up Syncthing](/documentation/SETUP_SYNCTHING.md)
|
||||
* [Game Engines and Launch Files](/documentation/SETUP_GAME_ENGINES_AND_LAUNCH_FILES.md)
|
||||
* [Configuring Moonlight Streaming](/documentation/SETUP_MOONLIGHT_STREAMING.md)
|
||||
* [Setting Up P2P Networking With ZeroTier](/documentation/SETUP_P2P_ZEROTIER.md)
|
||||
|
|
|
@ -38,7 +38,10 @@
|
|||
GLIBC_LOCALES="yes"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
PULSEAUDIO_SUPPORT="no"
|
||||
|
||||
# build and install pipewire support (yes / no)
|
||||
PIPEWIRE_SUPPORT="yes"
|
||||
|
||||
# Define package sets to clean based on the type of build being executed.
|
||||
# This should be updated to be more dynamic in the future.
|
||||
|
|
|
@ -58,11 +58,6 @@ This configuration file contains basic information for JELOS that cannot current
|
|||
* KEYA/B_MODIFIER - `evtest`.
|
||||
* PATH_SPK/HP - `amixer`.
|
||||
|
||||
#### 001-audio
|
||||
Audio is not detected automatically in JELOS currently, and requires a quirk to configure it on startup. To test and identify the proper configuration for your device use the following method.
|
||||
* Configure Audio using the "System Settings" menu in EmulationStation.
|
||||
* `set-audio get` and `set-audio esget`
|
||||
|
||||
#### 002-fancontrol
|
||||
Not all devices have methods available to control the fan. The following can help determine if yours can be controlled.
|
||||
* `find /sys/devices -name pwm*` and evaluate if fan control is available.
|
||||
|
|
|
@ -40,11 +40,13 @@ JELOS branding is licensed for non-commercial use only. Even if approved to be
|
|||
* Emulators and game engines are configured on a per device basis and are automatically documented at build time. Documentation can be found at the following URL:
|
||||
* [Per Device Documentation](/documentation/PER_DEVICE_DOCUMENTATION)
|
||||
|
||||
### I'm using an Intel or AMD based device and I have no sound.
|
||||
* Press Start, select System Settings, select your audio output device, save, then choose an available audio path.
|
||||
|
||||
### Sound suddenly stopped working on my device!
|
||||
* Log in over ssh, delete /storage/.config/asound*, and reboot the device.
|
||||
* Log in over ssh, and run the following steps.
|
||||
```
|
||||
systemctl stop pipewire-pulse pipewire-pulse.socket pipewire pipewire.socket wireplumber
|
||||
rm -rf /storage/.local/state /storage/.config/pulse
|
||||
reboot
|
||||
```
|
||||
|
||||
### EmuStation displays duplicate game titles. How can I disable a file extension to remove the duplicates? (e.g. display only ```.cue``` and don't display ```.bin``` files for PlayStation)
|
||||
|
||||
|
@ -64,7 +66,7 @@ JELOS branding is licensed for non-commercial use only. Even if approved to be
|
|||
|
||||
`systemctl start ${UI_SERVICE}`
|
||||
|
||||
> Note: once it's edited any changes made by system updates will be ignored
|
||||
> Note: System updates will overwrite it, custom settings will be preserved as last_es_systems.cfg.
|
||||
|
||||
### Where do I put bios files and files and Retroarch system files
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -73,7 +73,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>**primehack:** primehack<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -70,7 +70,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -71,7 +71,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -70,7 +70,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -71,7 +71,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -71,7 +71,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**retroarch:** dolphin (default)<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
|
@ -33,7 +33,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** vice_xvic<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|Infocom|Z-Machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|
@ -72,7 +72,7 @@ This document describes all available systems emulators and cores available for
|
|||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>|
|
||||
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus-sa:** m64p_gliden64<br>**mupen64plus-sa:** m64p_gl64mk2<br>**mupen64plus-sa:** m64p_rice<br>|
|
||||
|Nintendo|N64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|NES (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|
|
23
documentation/SETUP_BT_AUDIO.md
Normal file
23
documentation/SETUP_BT_AUDIO.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Bluetooth Audio Setup
|
||||
|
||||
## How to pair your headset
|
||||
Go to the "Controller & Bluetooth Settings" menu in Emulation Station and enable Bluetooth. Put your headset into pairing mode, then select "Pair a bluetooth device" - your audio device should be detected and paired automatically.
|
||||
Once your headset is paired go to "System Settings" -> "Audio Device" - your headset should appear in the list of devices. Select "Bluetooth Device" or your paired device from the list and let EmulationStation restart. All audio should now go through your bluetooth device.
|
||||
|
||||
## Known Working Devices
|
||||
Since bluetooth is infamously unreliable I'm putting together a few test results with various headphones. This list is very outdated at this point so please feel free to submit your own results - it would greatly help to identify issues and fix them.
|
||||
|
||||
| JELOS Device | JELOS Version | Bluetooth Device | Codec(s) | Test Results |
|
||||
|:-------------:|:-------------:|:----------------:|:-----:|:-------|
|
||||
| RG353V,<br>RG351V (+dongle) | 20221114 | Jaybird X3 | AAC | Connects but does not play any audio.<br>Worked with previous JELOS version. |
|
||||
| RG353V | 20221114 | Sennheiser PXC 550-II | AAC, aptX | No issues, connects and works fine. |
|
||||
| RG353V,<br>RG351V (+dongle) | 20221114 | Sennheiser Momentum TW3 | aptX | No issues, connects and works fine.<br>Required bluez update to v5.66 to prevent occasional crashes.
|
||||
| RG353V,<br>RG351V (+dongle) | 20221114 | Sony WH-1000XM3 | LDAC | **Very** minor audio stutters with "mobile" (330kbps) and "standard" (660kbps) quality profiles. Best results achieved with "standard" and adaptive bit rate.<br>"High" (990kbps) quality profile has significant impact on emulator performance and is not recommended.<br>No connectivity issues. |
|
||||
|
||||
## How to change codec settings
|
||||
If you run into issues playing audio from your headset you can try playing with the codec configuration options for BlueALSA. A list of command line parameters can be found here: https://github.com/Arkq/bluez-alsa/blob/master/doc/bluealsa.8.rst. On the device they are read from `/storage/.cache/services/bluealsa.conf` (restart required after change).
|
||||
|
||||
## Known Issues
|
||||
|
||||
* Disconnects are not handled gracefully by JELOS at this point. If you disconnect your headset without first switching back to the default audio device, you won't get any audio until you reboot.
|
||||
* Does not work with the PCSX ReARMed32 Retroarch core for unknown reasons (no sound will play from this core).<br>**Workaround**: Use a different PSX core (e.g. PCSX ReARMed, SwanStation) when you want to play with a bluetooth headset.
|
64
documentation/SETUP_SYNCTHING.md
Normal file
64
documentation/SETUP_SYNCTHING.md
Normal file
|
@ -0,0 +1,64 @@
|
|||
# Syncthing
|
||||
Syncthing is a tool that lets you synchronize the contents of folders across multiple devices. It is different from cloud storage in that devices are updated directly with the latest changes from their peer(s) whenever they are online at the same time.
|
||||
Some things you can use it for with JELOS:
|
||||
* Keep your game library synchronized between your computer and JELOS device(s),
|
||||
* Keep all your handhelds synchronized (including those that run Android),
|
||||
* Copy savegames as they are created and seamlessly continue playing on another device,
|
||||
* Keep a copy of your configuration files for easier editing.
|
||||
|
||||
## Setup
|
||||
|
||||
### Setup on JELOS
|
||||
* Make sure you are connected to a WiFi network before continuing.
|
||||
* Go to "Network Settings" and set "Enable Syncthing" to "on". Make a note of your device's IP address, as well as the root password in the System Settings menu.
|
||||
* On a computer or mobile device in the same network, open a browser and point it to "http://a.b.c.d:8384" where "a.b.c.d" is the IP address of your JELOS device.
|
||||
* When prompted for a user name and password, enter "root" as user and the password you noted earlier.
|
||||
* You should now be directed to a configuration page running on your JELOS device - we'll come back to this shortly.
|
||||
|
||||
### Setup on Peer(s)
|
||||
* Install Syncthing on the device or computer that you want to synchronize with your JELOS device. If your other device also runs JELOS, simply repeat the above steps. Otherwise go to https://syncthing.net to download Syncthing for your platform. You may also find it in your Linux distribution's package manager, the Android Play Store, etc. Generally it is not required to install the same version of Syncthing on all devices. You can synchronize a folder across any number of peers.
|
||||
|
||||
### Connecting Folders
|
||||
1. Go to the web interface of your JELOS device (see above). Don't worry about notices about upgrading or the file system being read-only, nothing you can do.
|
||||
(Note: You can also go to the web interface of any of the peers, it'll work the same - but for this documentation it is assumed that you're on a JELOS device.)
|
||||
2. Under "Remote Devices", click "Add Remote Device". Enter the Device ID of the peer you want to synchronize with. If the remote is in the same network as your JELOS device the ID will be shown automatically. Otherwise, you'll find it in the remote's web interface by clicking "Actions" at the top and then "Show ID". Give the device a name if you like.
|
||||
3. In the "Folders" section, click "Add Folder". In the popup window that opens, set a label and specify the path on the device (e.g. /storage/roms). This is the folder you will be sharing with other peers.
|
||||
4. In the same popup window, go to the "Sharing" tab and select the remote device you just set up. Optionally, go to the "Ignore Patterns" tab and configure those. Click "Save" to close the window.
|
||||
5. On the remote's interface you should receive a popup that a new device wants to connect. Click "Add Device" and then "Save" to accept. It should now show up under "Remote Devices".
|
||||
6. Still on the remote, you should receive a new popup saying that the JELOS device wants to share a folder. Click "Add", then in the popup window, specify the path to an empty local folder to store the synchronized contents. Click "Save".
|
||||
7. The folder should now be copied from the JELOS device to the remote.
|
||||
|
||||
### Adding more Peers
|
||||
* To share the folder with more peers, first follow step 2 on your JELOS device to add another remote.
|
||||
* Find the folder you want to add another peer to and click "Edit".
|
||||
* In the popup window, go to the "Sharing" tab. The new remote should appear as an option. Select it and then click "Save".
|
||||
* Follow steps 5 and 6 on the new remote to connect the folder.
|
||||
|
||||
## Things to Keep in Mind
|
||||
|
||||
### Syncthing is not a cloud storage
|
||||
In order for devices to synchronize, they need to be online at the same time. Unless you have one peer that is always on, this is different from an online storage like Dropbox or Nextcloud. However, this behaviour can be emulated (no pun intended) by installing Syncthing on a cloud server or an always-on Raspberry Pi.
|
||||
|
||||
### Syncthing is not a backup
|
||||
Folders are synchronized with other peers immediately as they come online at the same time - this includes changes and deletions! Be sure to make regular backups of your folders.
|
||||
|
||||
### Devices do not need to be on the same network
|
||||
Syncthing uses relay servers to ensure communication between peers. This means that there does not need to be a direct connection between your devices, no port forwarding, etc - as soon as they are both online they will find each other and synchronize. Although file transfers are end-to-end encrypted when they are sent through relays, be aware of this if you plan on using Syncthing for anything more sensitive than your save files.
|
||||
|
||||
### Using Syncthing for Saves/States
|
||||
Using Syncthing for savegames is great because it allows you to seamlessly play a game across multiple handhelds, or even other devices. For example, you can play a game of Super Mario 64 on your RG353 while on the go, then launch the game on a RetroPie or PC running RetroArch and your save game will be transferred automatically to be continued on the big screen. However, this comes with a few caveats.
|
||||
|
||||
RetroArch differentiates between *saves*, i.e. the battery or memory card storage featured in the original game, and *states*, i.e. the save state feature that is part of the emulator. While *saves* are often compatible across different versions of RetroArch cores, *states* tend to break more frequently. This means that if you create states with two incompatible versions of an emulator and they are synchronized, you may lose one of them.
|
||||
|
||||
* For maximum compatibility, make sure to use the same cores on all devices and update them at similar frequencies.
|
||||
* RetroArch uses two separate folders for *saves* and *states*. This makes it easy to choose whether you want to synchronize only saves, states, or both.
|
||||
* In the RetroArch settings under "Saving", you can tell RetroArch to sort saves and states into subfolders based on content directory or core name. It is highly recommended to make use of this to reduce the risk of accidentally overwriting an incompatible save or state.
|
||||
* Make regular backups of your save folders.
|
||||
|
||||
### Synchronizing with Android
|
||||
* For Android-based handhelds people seem to be recommending the [Syncthing-Fork from F-Droid](https://f-droid.org/en/packages/com.github.catfriend1.syncthingandroid).
|
||||
* Keeping Syncthing running in the background may severely impact your battery life and reduce standby time. Check out [these tips](https://github.com/Catfriend1/syncthing-android/wiki/Info-on-battery-optimization-and-settings-affecting-battery-usage) to help you balance battery life and synchronization times.
|
||||
* Using cross-platform versions of emulators is much more likely to introduce incompatibilities so be extra careful when syncing savegames.
|
||||
|
||||
## Further Documentation
|
||||
For any questions and advanced configuration, be sure to check out the full documentation at https://docs.syncthing.net/index.html.
|
|
@ -2,7 +2,8 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
# Minimal OS variable loading for performance
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
if [ ! -f "/storage/.config/moonlight/moonlight.conf" ]
|
||||
then
|
||||
|
|
|
@ -2,7 +2,11 @@
|
|||
# ALSA drivers load options #
|
||||
#############################
|
||||
|
||||
options snd cards_limit=3
|
||||
|
||||
# Prevent abnormal drivers from grabbing index 0
|
||||
options snd-hda-intel index=1
|
||||
|
||||
options snd-bt87x index=-2
|
||||
options cx88-alsa index=-2
|
||||
options saa7134-alsa index=-2
|
||||
|
@ -13,6 +17,9 @@ options snd-usb-usx2y index=-2
|
|||
options snd-usb-caiaq index=-2
|
||||
options snd-cmipci mpu_port=0x330 fm_port=0x388
|
||||
|
||||
options snd-hda-codec-realtek index=-2
|
||||
options snd-hda-codec-hdmi index=-2
|
||||
|
||||
# fix some Audio Problems with HDMI on ION based Hardware
|
||||
# see: http://xbmc.org/forum/showthread.php?t=69479
|
||||
alias snd-card-0 snd-hda-codec-nvhdmi
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
tocon "Configuring audio..."
|
||||
# Revert to stored setting when bluetooth was still selected at last shutdown.
|
||||
# This is a workaround - headsets that auto-connect at boot tend to be
|
||||
# unreliable, so for now it's better to force a manual reconnect.
|
||||
LAST_AUDIO_DEVICE=$(set-audio get)
|
||||
if [[ "${LAST_AUDIO_DEVICE}" =~ ^Device.* ]]
|
||||
then
|
||||
set-audio restore
|
||||
fi
|
||||
|
||||
if [ ! -e "/storage/.config/asound.conf" ]
|
||||
then
|
||||
set-audio set "DEFAULT (SYSTEM PROVIDED)"
|
||||
fi
|
||||
|
||||
if [ ! -e "/storage/.config/asound.state" ] && [ -e /usr/config/asound.state ]
|
||||
then
|
||||
cp /usr/config/asound.state /storage/.config
|
||||
fi
|
||||
|
||||
# Initialize sound using the state if available.
|
||||
if [ -e "/storage/.config/asound.state" ]
|
||||
then
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
fi
|
||||
|
||||
PREAMP=$(get_setting "audio.preamp" 2>/dev/null)
|
||||
if [ -z "${PREAMP}" ]
|
||||
then
|
||||
PREAMP=50
|
||||
set_setting audio.preamp ${PREAMP}
|
||||
fi
|
||||
amixer -M set Pre-Amp -- ${PREAMP}%
|
||||
|
||||
VOL=$(get_setting "audio.volume" 2>/dev/null)
|
||||
amixer -M set "${DEVICE_AUDIO_MIXER}" ${VOL}%
|
|
@ -20,14 +20,10 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-alsaconf \
|
|||
--disable-nls \
|
||||
--disable-rst2man \
|
||||
--disable-xmlto"
|
||||
case ${DEVICE} in
|
||||
RK356*)
|
||||
::
|
||||
;;
|
||||
*)
|
||||
if [[ ! "${DEVICE}" =~ RK356 ]]
|
||||
then
|
||||
PKG_DEPENDS_TARGET+=" alsa-ucm-conf"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf ${INSTALL}/lib ${INSTALL}/var
|
||||
|
|
|
@ -40,5 +40,5 @@ post_makeinstall_target() {
|
|||
|
||||
post_install() {
|
||||
#enable_service bluealsa.service
|
||||
enable_service bluealsa-defaults.service
|
||||
#enable_service bluealsa-defaults.service
|
||||
}
|
||||
|
|
|
@ -3,12 +3,11 @@
|
|||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="fluidsynth"
|
||||
PKG_VERSION="2.2.3"
|
||||
PKG_SHA256="b31807cb0f88e97f3096e2b378c9815a6acfdc20b0b14f97936d905b536965c4"
|
||||
PKG_VERSION="2.3.3"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://fluidsynth.org/"
|
||||
PKG_URL="https://github.com/FluidSynth/fluidsynth/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain glib libsndfile"
|
||||
PKG_DEPENDS_TARGET="toolchain glib libsndfile pulseaudio pipewire"
|
||||
PKG_LONGDESC="FluidSynth renders midi music files as raw audio data, for playing or conversion."
|
||||
PKG_BUILD_FLAGS="+pic"
|
||||
|
||||
|
@ -16,5 +15,7 @@ PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=0 \
|
|||
-DLIB_SUFFIX= \
|
||||
-Denable-libsndfile=1 \
|
||||
-Denable-pkgconfig=1 \
|
||||
-Denable-pulseaudio=0 \
|
||||
-Denable-pipewire=1 \
|
||||
-Denable-pulseaudio=1 \
|
||||
-Denable-systemd=1 \
|
||||
-Denable-readline=0"
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
--- a/CMakeLists.txt 2021-09-12 13:53:14.192948082 +1000
|
||||
+++ b/CMakeLists.txt 2021-09-12 13:54:27.389413149 +1000
|
||||
@@ -535,6 +535,7 @@
|
||||
LIBSNDFILE_STATIC_LDFLAGS MATCHES "vorbis" OR
|
||||
LIBSNDFILE_STATIC_LDFLAGS_OTHER MATCHES "vorbis" )
|
||||
set ( LIBSNDFILE_HASVORBIS 1 )
|
||||
+ set ( LIBSNDFILE_LIBRARIES ${LIBSNDFILE_STATIC_LIBRARIES} )
|
||||
else ()
|
||||
message ( NOTICE "Seems like libsndfile was compiled without OGG/Vorbis support." )
|
||||
endif ()
|
26
packages/audio/fluidsynth/system.d/fluidsynth.service
Normal file
26
packages/audio/fluidsynth/system.d/fluidsynth.service
Normal file
|
@ -0,0 +1,26 @@
|
|||
[Unit]
|
||||
Description=FluidSynth Daemon
|
||||
Documentation=man:fluidsynth(1)
|
||||
After=sound.target
|
||||
After=pipewire.service
|
||||
|
||||
[Service]
|
||||
# added automatically, for details please see
|
||||
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
||||
ProtectSystem=full
|
||||
ProtectHome=read-only
|
||||
ProtectHostname=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelLogs=true
|
||||
ProtectControlGroups=true
|
||||
# end of automatic additions
|
||||
# required in order for the above sandboxing options to work on a user unit
|
||||
PrivateUsers=yes
|
||||
Type=notify
|
||||
NotifyAccess=main
|
||||
EnvironmentFile=-%h/.config/fluidsynth
|
||||
ExecStart=/usr/bin/fluidsynth -is -a sdl2 /usr/share/soundfonts/GeneralUser.sf2
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
19
packages/audio/ldacBT/package.mk
Normal file
19
packages/audio/ldacBT/package.mk
Normal file
|
@ -0,0 +1,19 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="ldacBT"
|
||||
PKG_VERSION="2.0.2.3"
|
||||
PKG_SHA256="c02998718f9c4620437d7594b4d121b3ab4c5cfeba8d41fa31dd5c71db09edca"
|
||||
PKG_LICENSE="Apache"
|
||||
PKG_SITE="https://github.com/EHfive/ldacBT"
|
||||
PKG_URL="https://github.com/EHfive/ldacBT/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_DEPENDS_UNPACK="libldac"
|
||||
PKG_LONGDESC="LDAC Bluetooth encoder library (build tools)"
|
||||
|
||||
PKG_CMAKE_OPTS_TARGET="-DLDAC_SOFT_FLOAT=OFF"
|
||||
|
||||
post_unpack() {
|
||||
rm -rf ${PKG_BUILD}/libldac
|
||||
ln -sf $(get_build_dir libldac) ${PKG_BUILD}/libldac
|
||||
}
|
40
packages/audio/libfreeaptx/package.mk
Normal file
40
packages/audio/libfreeaptx/package.mk
Normal file
|
@ -0,0 +1,40 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="libfreeaptx"
|
||||
PKG_VERSION="0.1.1"
|
||||
PKG_SHA256="7acf514446cae59585d9bc21e4f98f4a3856f4741c3a7a09d06e8ac5bf2f7315"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="https://github.com/iamthehorker/libfreeaptx"
|
||||
PKG_URL="https://github.com/iamthehorker/libfreeaptx/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="Open Source aptX codec library"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
PKG_BUILD_FLAGS="+pic"
|
||||
|
||||
make_target() {
|
||||
${CC} ${CFLAGS} -I${PKG_BUILD} -c -o ${PKG_NAME##*lib}.o ${PKG_NAME##*lib}.c
|
||||
${AR} -rcs ${PKG_NAME}.a ${PKG_NAME##*lib}.o
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${SYSROOT_PREFIX}/usr/lib
|
||||
cp -a ${PKG_NAME}.a ${SYSROOT_PREFIX}/usr/lib/
|
||||
|
||||
mkdir -p ${SYSROOT_PREFIX}/usr/include
|
||||
cp -a ${PKG_NAME##*lib}.h ${SYSROOT_PREFIX}/usr/include/
|
||||
|
||||
mkdir -p ${SYSROOT_PREFIX}/usr/lib/pkgconfig
|
||||
cat > ${SYSROOT_PREFIX}/usr/lib/pkgconfig/${PKG_NAME}.pc << EOF
|
||||
prefix=/usr
|
||||
exec_prefix=\${prefix}
|
||||
libdir=\${exec_prefix}/lib
|
||||
includedir=\${prefix}/include
|
||||
|
||||
Name: ${PKG_NAME}
|
||||
Description: Open Source aptX codec library
|
||||
Version: ${PKG_VERSION}
|
||||
Libs: -Wl,-rpath=\${libdir} -L\${libdir} -l${PKG_NAME##*lib}
|
||||
Cflags: -I\${includedir}
|
||||
EOF
|
||||
}
|
|
@ -1,18 +1,11 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2022-present Marek Moeckel (wansti@discarded-ideas.org)
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="libldac"
|
||||
PKG_VERSION="af2dd23979453bcd1cad7c4086af5fb421a955c5"
|
||||
PKG_LICENSE="Apache2"
|
||||
PKG_SITE="https://github.com/EHfive/ldacBT"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="LDAC bluetooth audio codec"
|
||||
PKG_TOOLCHAIN="cmake-make"
|
||||
GET_HANDLER_SUPPORT="git"
|
||||
|
||||
post_makeinstall_target() {
|
||||
cp -P -r ${INSTALL}/usr/lib/* ${SYSROOT_PREFIX}/usr/lib/
|
||||
cp -P -r ${INSTALL}/usr/include/* ${SYSROOT_PREFIX}/usr/include/
|
||||
rm -rf ${INSTALL}/usr/lib/pkgconfig
|
||||
}
|
||||
PKG_VERSION="82b6a1abee84787b8fa167efe20290073f60db2d"
|
||||
PKG_SHA256="d61edcd3bfc4b71123136895fe71e7ba974f4a91f16a158f0ec8d5eb1913c51a"
|
||||
PKG_LICENSE="Apache"
|
||||
PKG_SITE="https://android.googlesource.com/platform/external/libldac"
|
||||
PKG_URL="https://github.com/brucehw/libldac/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_LONGDESC="LDAC Bluetooth encoder library"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
|
91
packages/audio/pipewire/package.mk
Normal file
91
packages/audio/pipewire/package.mk
Normal file
|
@ -0,0 +1,91 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="pipewire"
|
||||
PKG_VERSION="0.3.77"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="https://pipewire.org"
|
||||
PKG_URL="https://github.com/PipeWire/pipewire/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libpthread-stubs dbus ncurses alsa-lib pulseaudio systemd libsndfile libusb"
|
||||
PKG_LONGDESC="PipeWire is a server and user space API to deal with multimedia pipeline"
|
||||
|
||||
if [ "${BLUETOOTH_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" bluez sbc ldacBT libfreeaptx fdk-aac"
|
||||
PKG_PIPEWIRE_BLUETOOTH="-Dbluez5=enabled \
|
||||
-Dbluez5-backend-hsp-native=disabled \
|
||||
-Dbluez5-backend-hfp-native=disabled \
|
||||
-Dbluez5-backend-ofono=disabled \
|
||||
-Dbluez5-backend-hsphfpd=disabled \
|
||||
-Dbluez5-codec-aptx=enabled \
|
||||
-Dbluez5-codec-ldac=enabled \
|
||||
-Dbluez5-codec-aac=enabled"
|
||||
else
|
||||
PKG_PIPEWIRE_BLUETOOTH="-Dbluez5=disabled"
|
||||
fi
|
||||
|
||||
if [ "${VULKAN_SUPPORT}" = "yes" ]; then
|
||||
PKG_PIPEWIRE_VULKAN+="-Dvulkan=enabled \
|
||||
-Dx11=disabled \
|
||||
-Dx11-xfixes=disabled"
|
||||
fi
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Ddocs=disabled \
|
||||
-Dexamples=disabled \
|
||||
-Dman=disabled \
|
||||
-Dtests=disabled \
|
||||
-Dinstalled_tests=disabled \
|
||||
-Dgstreamer=disabled \
|
||||
-Dgstreamer-device-provider=disabled \
|
||||
-Dsystemd=enabled \
|
||||
-Dsystemd-system-service=enabled \
|
||||
-Dsystemd-user-service=disabled \
|
||||
-Dpipewire-alsa=enabled \
|
||||
-Dpipewire-jack=disabled \
|
||||
-Dpipewire-v4l2=disabled \
|
||||
-Djack-devel=false
|
||||
-Dspa-plugins=enabled \
|
||||
-Dalsa=enabled \
|
||||
-Daudiomixer=enabled \
|
||||
-Daudioconvert=enabled \
|
||||
${PKG_PIPEWIRE_BLUETOOTH} \
|
||||
-Dcontrol=enabled \
|
||||
-Daudiotestsrc=disabled \
|
||||
-Dffmpeg=disabled \
|
||||
-Djack=disabled \
|
||||
-Dsupport=enabled \
|
||||
-Devl=disabled \
|
||||
-Dtest=disabled \
|
||||
-Dv4l2=disabled \
|
||||
-Ddbus=enabled \
|
||||
-Dlibcamera=disabled \
|
||||
-Dvideoconvert=disabled \
|
||||
-Dvideotestsrc=disabled \
|
||||
-Dvolume=enabled \
|
||||
${PKG_PIPEWIRE_VULKAN} \
|
||||
-Dpw-cat=enabled \
|
||||
-Dudev=enabled \
|
||||
-Dudevrulesdir=/usr/lib/udev/rules.d \
|
||||
-Dsdl2=disabled \
|
||||
-Dsndfile=enabled \
|
||||
-Dlibpulse=enabled \
|
||||
-Droc=disabled \
|
||||
-Davahi=disabled \
|
||||
-Decho-cancel-webrtc=disabled \
|
||||
-Dlibusb=enabled \
|
||||
-Dsession-managers=[] \
|
||||
-Draop=disabled \
|
||||
-Dlv2=disabled \
|
||||
-Dlibcanberra=disabled \
|
||||
-Dlegacy-rtkit=false"
|
||||
|
||||
pre_configure_target() {
|
||||
export TARGET_LDFLAGS="${TARGET_LDFLAGS} -lncursesw -ltinfow"
|
||||
}
|
||||
|
||||
post_install() {
|
||||
|
||||
enable_service pipewire.socket
|
||||
enable_service pipewire.service
|
||||
enable_service pipewire-pulse.socket
|
||||
enable_service pipewire-pulse.service
|
||||
}
|
72
packages/audio/pipewire/patches/001-pipewire-pulse.patch
Normal file
72
packages/audio/pipewire/patches/001-pipewire-pulse.patch
Normal file
|
@ -0,0 +1,72 @@
|
|||
diff -rupN pipewire.orig/src/daemon/pipewire-pulse.conf.in pipewire/src/daemon/pipewire-pulse.conf.in
|
||||
--- pipewire.orig/src/daemon/pipewire-pulse.conf.in 2023-08-07 01:36:39.320782246 +0000
|
||||
+++ pipewire/src/daemon/pipewire-pulse.conf.in 2023-08-07 22:04:21.956983916 +0000
|
||||
@@ -89,11 +89,11 @@ pulse.properties = {
|
||||
#"tcp:[::]:9999" # IPv6 on all addresses
|
||||
#"tcp:127.0.0.1:8888" # IPv4 on a single address
|
||||
#
|
||||
- #{ address = "tcp:4713" # address
|
||||
- # max-clients = 64 # maximum number of clients
|
||||
- # listen-backlog = 32 # backlog in the server listen queue
|
||||
- # client.access = "restricted" # permissions for clients
|
||||
- #}
|
||||
+ { address = "tcp:127.0.0.1:4713" # address
|
||||
+ max-clients = 64 # maximum number of clients
|
||||
+ listen-backlog = 32 # backlog in the server listen queue
|
||||
+ client.access = "allowed" # permissions for clients
|
||||
+ }
|
||||
]
|
||||
#server.dbus-name = "org.pulseaudio.Server"
|
||||
#pulse.min.req = 128/48000 # 2.7ms
|
||||
diff -rupN pipewire.orig/src/daemon/systemd/system/pipewire.service.in pipewire/src/daemon/systemd/system/pipewire.service.in
|
||||
--- pipewire.orig/src/daemon/systemd/system/pipewire.service.in 2023-08-07 01:36:39.320782246 +0000
|
||||
+++ pipewire/src/daemon/systemd/system/pipewire.service.in 2023-08-07 22:19:22.589017591 +0000
|
||||
@@ -15,21 +15,24 @@ Description=PipeWire Multimedia Service
|
||||
Requires=pipewire.socket
|
||||
|
||||
[Service]
|
||||
-LockPersonality=yes
|
||||
-MemoryDenyWriteExecute=yes
|
||||
-NoNewPrivileges=yes
|
||||
-RestrictNamespaces=yes
|
||||
-SystemCallArchitectures=native
|
||||
-SystemCallFilter=@system-service
|
||||
+Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
|
||||
+User=root
|
||||
Type=simple
|
||||
-AmbientCapabilities=CAP_SYS_NICE
|
||||
-ExecStart=@PW_BINARY@
|
||||
+ExecStart=/usr/bin/pipewire
|
||||
Restart=on-failure
|
||||
RuntimeDirectory=pipewire
|
||||
RuntimeDirectoryPreserve=yes
|
||||
-User=pipewire
|
||||
Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire
|
||||
+# Add if you need debugging
|
||||
+# Environment=PIPEWIRE_DEBUG=4
|
||||
+
|
||||
+# These hardcoded runtime and dbus paths must stay this way for a system service
|
||||
+# as the User= is not resolved here 8(
|
||||
+## NOTE we do not change PIPEWIRE_RUNTIME_DIR as this is the system socket dir...
|
||||
+Environment=XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
+Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
|
||||
+Environment=HOME=/storage
|
||||
|
||||
[Install]
|
||||
-Also=pipewire.socket
|
||||
+Also=pipewire-pulse.socket
|
||||
WantedBy=default.target
|
||||
diff -rupN pipewire.orig/src/daemon/systemd/system/pipewire.socket pipewire/src/daemon/systemd/system/pipewire.socket
|
||||
--- pipewire.orig/src/daemon/systemd/system/pipewire.socket 2023-08-07 01:36:39.320782246 +0000
|
||||
+++ pipewire/src/daemon/systemd/system/pipewire.socket 2023-08-07 22:38:25.418008336 +0000
|
||||
@@ -4,8 +4,8 @@ Description=PipeWire Multimedia System S
|
||||
[Socket]
|
||||
Priority=6
|
||||
ListenStream=%t/pipewire/pipewire-0
|
||||
-SocketUser=pipewire
|
||||
-SocketGroup=pipewire
|
||||
+SocketUser=root
|
||||
+SocketGroup=root
|
||||
SocketMode=0660
|
||||
|
||||
[Install]
|
22
packages/audio/pipewire/system.d/pipewire-pulse.service
Normal file
22
packages/audio/pipewire/system.d/pipewire-pulse.service
Normal file
|
@ -0,0 +1,22 @@
|
|||
[Unit]
|
||||
Description=PipeWire PulseAudio Service
|
||||
Requires=pipewire-pulse.socket
|
||||
After=pipewire.service wireplumber.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/pipewire-pulse
|
||||
Restart=on-failure
|
||||
RuntimeDirectory=pipewire
|
||||
RuntimeDirectoryPreserve=yes
|
||||
ExecStartPre=/bin/mkdir -p /var/run/0-runtime-dir/pulse
|
||||
Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire
|
||||
Environment=XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
|
||||
Environment=HOME=/storage
|
||||
# Environment=PIPEWIRE_DEBUG=4
|
||||
|
||||
[Install]
|
||||
Also=pipewire-pulse.socket
|
||||
WantedBy=default.target
|
10
packages/audio/pipewire/system.d/pipewire-pulse.socket
Normal file
10
packages/audio/pipewire/system.d/pipewire-pulse.socket
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Unit]
|
||||
Description=PipeWire PulseAudio
|
||||
Conflicts=pulseaudio.socket
|
||||
|
||||
[Socket]
|
||||
Priority=6
|
||||
ListenStream=%t/pulse/native
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
|
@ -11,13 +11,6 @@ PKG_URL="http://www.freedesktop.org/software/pulseaudio/releases/${PKG_NAME}-${P
|
|||
PKG_DEPENDS_TARGET="toolchain alsa-lib dbus libcap libsndfile libtool openssl soxr speexdsp systemd glib:host glib"
|
||||
PKG_LONGDESC="PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications."
|
||||
|
||||
if [ "${BLUETOOTH_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" sbc bluez"
|
||||
PKG_PULSEAUDIO_BLUETOOTH="-Dbluez5=enabled"
|
||||
else
|
||||
PKG_PULSEAUDIO_BLUETOOTH="-Dbluez5=disabled"
|
||||
fi
|
||||
|
||||
if [ "${AVAHI_DAEMON}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" avahi"
|
||||
PKG_PULSEAUDIO_AVAHI="-Davahi=enabled"
|
||||
|
@ -44,10 +37,8 @@ PKG_MESON_OPTS_TARGET="-Ddaemon=true \
|
|||
-Dalsa=enabled \
|
||||
-Dasyncns=disabled \
|
||||
${PKG_PULSEAUDIO_AVAHI} \
|
||||
${PKG_PULSEAUDIO_BLUETOOTH} \
|
||||
-Dbluez5=disabled
|
||||
-Dbluez5-gstreamer=disabled \
|
||||
-Dbluez5-native-headset=true \
|
||||
-Dbluez5-ofono-headset=true \
|
||||
-Ddbus=enabled \
|
||||
-Delogind=disabled \
|
||||
-Dfftw=disabled \
|
||||
|
@ -99,6 +90,7 @@ post_makeinstall_target() {
|
|||
echo "/usr/lib/pulseaudio" >${INSTALL}/etc/ld.so.conf.d/${ARCH}-lib-pulseaudio.conf
|
||||
}
|
||||
|
||||
post_install() {
|
||||
enable_service pulseaudio.service
|
||||
}
|
||||
# Deprecated by pipewire
|
||||
#post_install() {
|
||||
# enable_service pulseaudio.service
|
||||
#}
|
||||
|
|
48
packages/audio/wireplumber/package.mk
Normal file
48
packages/audio/wireplumber/package.mk
Normal file
|
@ -0,0 +1,48 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="wireplumber"
|
||||
PKG_VERSION="0.4.14"
|
||||
PKG_SHA256="b160424ce7c3eeeccba388726f6a448f53501d25085e5fa1bf6c690c1bcd85ea"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://gitlab.freedesktop.org/pipewire/wireplumber"
|
||||
PKG_URL="https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="pipewire glib lua54 glib:host"
|
||||
PKG_LONGDESC="Session / policy manager implementation for PipeWire"
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dintrospection=disabled \
|
||||
-Ddoc=disabled \
|
||||
-Dsystem-lua=true \
|
||||
-Delogind=disabled \
|
||||
-Dsystemd=enabled \
|
||||
-Dsystemd-system-service=true \
|
||||
-Dsystemd-user-service=false \
|
||||
-Dsystemd-system-unit-dir=/usr/lib/systemd/system \
|
||||
-Dtests=false"
|
||||
|
||||
post_makeinstall_target() {
|
||||
# connect to the system bus
|
||||
sed '/^\[Service\]/a Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket' -i ${INSTALL}/usr/lib/systemd/system/wireplumber.service
|
||||
|
||||
# ref https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/0da29f38181e391160fa8702623050b8544ec775
|
||||
cat > ${INSTALL}/usr/share/wireplumber/main.lua.d/89-disable-session-dbus-dependent-features.lua << EOF
|
||||
alsa_monitor.properties["alsa.reserve"] = false
|
||||
default_access.properties["enable-flatpak-portal"] = false
|
||||
EOF
|
||||
|
||||
cat > ${INSTALL}/usr/share/wireplumber/main.lua.d/89-disable-v4l2.lua << EOF
|
||||
v4l2_monitor.enabled = false
|
||||
EOF
|
||||
|
||||
cat > ${INSTALL}/usr/share/wireplumber/bluetooth.lua.d/89-disable-session-dbus-dependent-features.lua << EOF
|
||||
bluez_monitor.properties["with-logind"] = false
|
||||
EOF
|
||||
|
||||
cat > ${INSTALL}/usr/share/wireplumber/bluetooth.lua.d/89-disable-bluez-hfphsp-backend.lua << EOF
|
||||
bluez_monitor.properties["bluez5.hfphsp-backend"] = "none"
|
||||
EOF
|
||||
}
|
||||
|
||||
post_install() {
|
||||
enable_service wireplumber.service
|
||||
}
|
39
packages/audio/wireplumber/patches/001-fix-service.patch
Normal file
39
packages/audio/wireplumber/patches/001-fix-service.patch
Normal file
|
@ -0,0 +1,39 @@
|
|||
diff -rupN wireplumber.orig/src/systemd/system/wireplumber.service.in wireplumber/src/systemd/system/wireplumber.service.in
|
||||
--- wireplumber.orig/src/systemd/system/wireplumber.service.in 2023-08-07 22:20:40.224986070 +0000
|
||||
+++ wireplumber/src/systemd/system/wireplumber.service.in 2023-08-07 22:37:50.340093097 +0000
|
||||
@@ -5,19 +5,16 @@ BindsTo=pipewire.service
|
||||
Conflicts=pipewire-media-session.service
|
||||
|
||||
[Service]
|
||||
-LockPersonality=yes
|
||||
-MemoryDenyWriteExecute=yes
|
||||
-NoNewPrivileges=yes
|
||||
-RestrictNamespaces=yes
|
||||
-SystemCallArchitectures=native
|
||||
-SystemCallFilter=@system-service
|
||||
Type=simple
|
||||
AmbientCapabilities=CAP_SYS_NICE
|
||||
ExecStart=@WP_BINARY@
|
||||
Restart=on-failure
|
||||
-User=pipewire
|
||||
+User=root
|
||||
Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire
|
||||
Environment=GIO_USE_VFS=local
|
||||
+Environment=XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
+Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
|
||||
+Environment=HOME=/storage
|
||||
|
||||
[Install]
|
||||
WantedBy=pipewire.service
|
||||
diff -rupN wireplumber.orig/src/systemd/system/wireplumber@.service.in wireplumber/src/systemd/system/wireplumber@.service.in
|
||||
--- wireplumber.orig/src/systemd/system/wireplumber@.service.in 2023-08-07 22:20:40.224986070 +0000
|
||||
+++ wireplumber/src/systemd/system/wireplumber@.service.in 2023-08-07 22:37:43.927743110 +0000
|
||||
@@ -20,7 +20,7 @@ Type=simple
|
||||
AmbientCapabilities=CAP_SYS_NICE
|
||||
ExecStart=@WP_BINARY@ -c %i.conf
|
||||
Restart=on-failure
|
||||
-User=pipewire
|
||||
+User=root
|
||||
Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire
|
||||
Environment=GIO_USE_VFS=local
|
||||
|
|
@ -162,8 +162,6 @@ fi
|
|||
export QT_QPA_PLATFORM=wayland
|
||||
|
||||
#Run Aethersx2 emulator
|
||||
set_audio pulseaudio
|
||||
export SDL_AUDIODRIVER=pulseaudio
|
||||
jslisten set "-9 aethersx2"
|
||||
${EMUPERF} /usr/bin/@APPIMAGE@ -fullscreen "${1}"
|
||||
set_audio alsa
|
||||
|
|
|
@ -39,9 +39,6 @@ find_gamepad() {
|
|||
echo "Gamepad used ${GAMEPAD}" >> "${AMIBERRY_LOG}"
|
||||
}
|
||||
|
||||
# Set SDL audio driver to alsa
|
||||
SDL_AUDIODRIVER=alsa
|
||||
|
||||
# Which file should amiberry load?
|
||||
echo "Trying to boot this game:" "$1" >> ${AMIBERRY_LOG}
|
||||
|
||||
|
|
|
@ -7,31 +7,9 @@
|
|||
. /etc/profile
|
||||
|
||||
# Ensure we're using pulseaudio
|
||||
rr_audio.sh pulseaudio
|
||||
export SDL_AUDIODRIVER=pulseaudio
|
||||
jslisten set "-9 cemu"
|
||||
|
||||
BTTIMEOUT=10
|
||||
BTTESTCOUNT=0
|
||||
BTTEST=$(amixer -D bluealsa controls >/dev/null 2>&1)
|
||||
if [ $? = 0 ]
|
||||
then
|
||||
while true
|
||||
do
|
||||
PASINK=$(pactl info | grep 'Default Sink:' | cut -d ' ' -f 3)
|
||||
if [[ "${PASINK}" =~ ^bluez ]]
|
||||
then
|
||||
break
|
||||
elif [ ${BTTESTCOUNT} = ${BTTIMEOUT} ]
|
||||
then
|
||||
unset PASINK
|
||||
break
|
||||
fi
|
||||
sleep .5
|
||||
BTTESTCOUNT=$(( ${BTTESTCOUNT} + 1 ))
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "${PASINK}" ]
|
||||
then
|
||||
PASINK=$(pactl info | grep 'Default Sink:' | cut -d ' ' -f 3)
|
||||
|
@ -126,4 +104,3 @@ xmlstarlet ed --inplace -u "//emulated_controller/controller/display_name" -v "$
|
|||
|
||||
# Run the emulator
|
||||
cemu -g "$@"
|
||||
rr_audio.sh alsa
|
||||
|
|
|
@ -135,7 +135,7 @@ ShowInputDisplay = False
|
|||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = ALSA
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
[Input]
|
||||
|
|
|
@ -135,7 +135,7 @@ ShowInputDisplay = False
|
|||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = ALSA
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
[Input]
|
||||
|
|
|
@ -135,7 +135,7 @@ ShowInputDisplay = False
|
|||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = ALSA
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
[Input]
|
||||
|
|
|
@ -135,7 +135,7 @@ ShowInputDisplay = False
|
|||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = ALSA
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
[Input]
|
||||
|
|
|
@ -135,7 +135,7 @@ ShowInputDisplay = False
|
|||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = ALSA
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
[Input]
|
||||
|
|
|
@ -135,7 +135,7 @@ ShowInputDisplay = False
|
|||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = ALSA
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
DSPThread = True
|
||||
|
|
|
@ -50,6 +50,8 @@ PKG_CMAKE_OPTS_TARGET+=" -DENABLE_HEADLESS=ON \
|
|||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DUSE_MGBA=OFF \
|
||||
-DLINUX_LOCAL_DEV=ON \
|
||||
-DENABLE_PULSEAUDIO=ON \
|
||||
-DENABLE_ALSA=ON \
|
||||
-DENABLE_TESTS=OFF \
|
||||
-DENABLE_LLVM=OFF \
|
||||
-DENABLE_ANALYTICS=OFF \
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[input]
|
||||
maple_sdl_joystick_0 = 0
|
||||
maple_sdl_joystick_1 = 1
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[input]
|
||||
maple_sdl_joystick_0 = 0
|
||||
maple_sdl_joystick_1 = 1
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[config]
|
||||
pvr.AutoSkipFrame = 2
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[input]
|
||||
maple_sdl_joystick_0 = 0
|
||||
maple_sdl_joystick_1 = 1
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[input]
|
||||
maple_sdl_joystick_0 = 0
|
||||
maple_sdl_joystick_1 = 1
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[input]
|
||||
maple_sdl_joystick_0 = 0
|
||||
maple_sdl_joystick_1 = 1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[audio]
|
||||
backend = auto
|
||||
backend = pulse
|
||||
|
||||
[config]
|
||||
BoxartDisplayMode = yes
|
||||
|
|
|
@ -14,8 +14,6 @@ HATARI_LOG="/var/log/hatari.log"
|
|||
MAX_DRIVES=2
|
||||
i=0
|
||||
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
|
||||
# create symlink to hatari config dir
|
||||
if [ ! -L $HATARI_DIR_HOME ]; then
|
||||
rm -rf $HATARI_DIR_HOME
|
||||
|
|
|
@ -5,6 +5,5 @@
|
|||
. /etc/profile
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
echo "[${ARG}]"
|
||||
minivmac
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
jslisten set "-9 mupen64plus"
|
||||
|
||||
#Emulation Station Features
|
||||
CORE="$1"
|
||||
GAME=$(echo "${2}"| sed "s#^/.*/##")
|
||||
GAME=$(echo "${1}"| sed "s#^/.*/##")
|
||||
ASPECT=$(get_setting game_aspect_ratio n64 "${GAME}")
|
||||
IRES=$(get_setting internal_resolution n64 "${GAME}")
|
||||
RSP=$(get_setting rsp_plugin n64 "${GAME}")
|
||||
|
@ -18,6 +17,7 @@ SIMPLECORE=$(get_setting core_plugin n64 "${GAME}")
|
|||
FPS=$(get_setting show_fps n64 "${GAME}")
|
||||
PAK=$(get_setting controller_pak n64 "${GAME}")
|
||||
CON=$(get_setting input_configuration n64 "${GAME}")
|
||||
VPLUGIN=$(get_setting video_plugin n64 "${GAME}")
|
||||
SHARE="/usr/local/share/mupen64plus"
|
||||
M64PCONF="/storage/.config/mupen64plus/mupen64plus.cfg"
|
||||
TMP="/tmp/mupen64plus"
|
||||
|
@ -40,12 +40,12 @@ rm -rf $TMP
|
|||
mkdir -p $TMP
|
||||
|
||||
# Unzip or copy the rom to the working directory
|
||||
if [ $(echo $2 | grep -i .zip | wc -l) -eq 1 ]; then
|
||||
if [ $(echo $1 | grep -i .zip | wc -l) -eq 1 ]; then
|
||||
#unpack the zip file
|
||||
unzip -q -o "$2" -d $TMP
|
||||
ROM=$(unzip -Zl -1 "$2")
|
||||
unzip -q -o "$1" -d $TMP
|
||||
ROM=$(unzip -Zl -1 "$1")
|
||||
else
|
||||
cp "$2" $TMP
|
||||
cp "$1" $TMP
|
||||
ROM="$GAME"
|
||||
fi
|
||||
|
||||
|
@ -71,7 +71,7 @@ fi
|
|||
SET_PARAMS="$SET_PARAMS --set Video-General[ScreenWidth]=${SCREENWIDTH} --set Video-General[ScreenHeight]=${SCREENHEIGHT} --set Video-Parallel[ScreenWidth]=${SCREENWIDTH} --set Video-Parallel[ScreenHeight]=${SCREENHEIGHT} --set Video-Glide64mk2[aspect]=2 --set Video-GLideN64[AspectRatio]=3 --set Video-Parallel[WidescreenStretch]=False"
|
||||
else
|
||||
# TODO: Set aspect ratio to 4:3
|
||||
if [ "{$CORE}" = "m64p_rice" ]; then
|
||||
if [ "${VPLUGIN}" = "rice" ]; then
|
||||
GAMEWIDTH=$(((SCREENHEIGHT * 4) / 3))
|
||||
SET_PARAMS="$SET_PARAMS --set Video-General[ScreenWidth]=${GAMEWIDTH} --set Video-General[ScreenHeight]=${SCREENHEIGHT}"
|
||||
else
|
||||
|
@ -80,9 +80,9 @@ fi
|
|||
fi
|
||||
|
||||
# Native Res Factor (Upscaling)
|
||||
if [ "{$CORE}" = "m64p_gliden64" ]; then
|
||||
if [ "${VPLUGIN}" = "gliden64" ]; then
|
||||
sed -i "/UseNativeResolutionFactor/c\UseNativeResolutionFactor = $IRES" $TMP/mupen64plus.cfg
|
||||
elif [ "{$CORE}" = "rmg_parallel" ]; then
|
||||
elif [ "${VPLUGIN}" = "rmg_parallel" ]; then
|
||||
sed -i "/Upscaling/c\Upscaling = $IRES" $TMP/mupen64plus.cfg
|
||||
fi
|
||||
|
||||
|
@ -125,18 +125,18 @@ else
|
|||
fi
|
||||
|
||||
# Set the video plugin
|
||||
case $1 in
|
||||
case ${VPLUGIN} in
|
||||
"rmg_parallel")
|
||||
SET_PARAMS="$SET_PARAMS --gfx mupen64plus-video-parallel${SIMPLESUFFIX}.so"
|
||||
RSP="parallel"
|
||||
;;
|
||||
"m64p_gliden64")
|
||||
"gliden64")
|
||||
SET_PARAMS="$SET_PARAMS --gfx mupen64plus-video-GLideN64${SIMPLESUFFIX}.so"
|
||||
;;
|
||||
"m64p_gl64mk2")
|
||||
"gl64mk2")
|
||||
SET_PARAMS="$SET_PARAMS --gfx mupen64plus-video-glide64mk2${SIMPLESUFFIX}.so"
|
||||
;;
|
||||
"m64p_rice")
|
||||
"rice")
|
||||
SET_PARAMS="$SET_PARAMS --gfx mupen64plus-video-rice${SIMPLESUFFIX}.so"
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -39,7 +39,7 @@ SAVES="${CONFIGDIR}/Saves"
|
|||
|
||||
# Run OpenBOR in the config folder
|
||||
cd "${CONFIGDIR}"
|
||||
SDL_AUDIODRIVER=alsa OpenBOR
|
||||
OpenBOR
|
||||
|
||||
# We stop the fake keyboard
|
||||
killall gptokeyb &
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
. /etc/profile
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
set_audio pulseaudio
|
||||
jslisten set "-9 pcsx2-qt"
|
||||
|
||||
if [ ! -d "/storage/.config/PCSX2" ]
|
||||
|
@ -13,4 +12,5 @@ then
|
|||
cp -rf /usr/config/PCSX2 /storage/.config
|
||||
fi
|
||||
@APPIMAGE@ -fastboot -- "${ARG}"
|
||||
set_audio alsa
|
||||
#Workaround until we can learn why it doesn't exit cleanly when asked.
|
||||
killall -9 pcsx2-qt
|
||||
|
|
|
@ -18,6 +18,5 @@ else
|
|||
fi
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
jslisten set "-9 ppsspp"
|
||||
${EMUPERF} ppsspp --pause-menu-exit "${ARG}"
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
# Minimal OS variable loading for performance
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
(
|
||||
### Set up our controller variables.
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
# Minimal OS variable loading for performance
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
tocon "Configuring logging..."
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ aspect_ratio_index = "22"
|
|||
assets_directory = "/tmp/assets"
|
||||
audio_block_frames = "0"
|
||||
audio_device = ""
|
||||
audio_driver = "alsathread"
|
||||
audio_driver = "pulse"
|
||||
audio_dsp_plugin = ""
|
||||
audio_enable = "true"
|
||||
audio_enable_menu = "false"
|
||||
|
|
|
@ -13,7 +13,7 @@ aspect_ratio_index = "22"
|
|||
assets_directory = "/tmp/assets"
|
||||
audio_block_frames = "0"
|
||||
audio_device = ""
|
||||
audio_driver = "alsathread"
|
||||
audio_driver = "pulse"
|
||||
audio_dsp_plugin = ""
|
||||
audio_enable_menu_bgm = "false"
|
||||
audio_enable_menu_cancel = "false"
|
||||
|
|
|
@ -13,7 +13,7 @@ aspect_ratio_index = "22"
|
|||
assets_directory = "/tmp/assets"
|
||||
audio_block_frames = "0"
|
||||
audio_device = ""
|
||||
audio_driver = "alsathread"
|
||||
audio_driver = "pulse"
|
||||
audio_dsp_plugin = ""
|
||||
audio_enable_menu_bgm = "false"
|
||||
audio_enable_menu_cancel = "false"
|
||||
|
|
|
@ -13,7 +13,7 @@ aspect_ratio_index = "22"
|
|||
assets_directory = "/tmp/assets"
|
||||
audio_block_frames = "0"
|
||||
audio_device = ""
|
||||
audio_driver = "alsathread"
|
||||
audio_driver = "pulse"
|
||||
audio_dsp_plugin = ""
|
||||
audio_enable_menu_bgm = "false"
|
||||
audio_enable_menu_cancel = "false"
|
||||
|
|
|
@ -13,7 +13,7 @@ aspect_ratio_index = "22"
|
|||
assets_directory = "/tmp/assets"
|
||||
audio_block_frames = "0"
|
||||
audio_device = ""
|
||||
audio_driver = "alsathread"
|
||||
audio_driver = "pulse"
|
||||
audio_dsp_plugin = ""
|
||||
audio_enable_menu_bgm = "false"
|
||||
audio_enable_menu_cancel = "false"
|
||||
|
|
|
@ -13,7 +13,7 @@ aspect_ratio_index = "22"
|
|||
assets_directory = "/tmp/assets"
|
||||
audio_block_frames = "0"
|
||||
audio_device = ""
|
||||
audio_driver = "alsathread"
|
||||
audio_driver = "pulse"
|
||||
audio_dsp_plugin = ""
|
||||
audio_enable_menu_bgm = "false"
|
||||
audio_enable_menu_cancel = "false"
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
|
|
@ -1,2 +0,0 @@
|
|||
# Needed for permissions set correctly for /dev/input/event* for keyboard input
|
||||
SUBSYSTEM=="input", ATTRS{name}=="input/%k", KERNEL=="event*", MODE="0666", ENV{ID_INPUT_KEYBOARD}="1"
|
|
@ -30,7 +30,6 @@ ln -sf /storage/roms/bios/rpcs3/dev_flash /storage/.config/rpcs3/dev_flash
|
|||
/usr/bin/rpcs3
|
||||
else
|
||||
export QT_QPA_PLATFORM=xcb
|
||||
rr_audio.sh pulseaudio
|
||||
export SDL_AUDIODRIVER=pulseaudio
|
||||
jslisten set "-9 rpcs3"
|
||||
/usr/bin/rpcs3 --no-gui "${1}"
|
||||
|
|
|
@ -4,7 +4,7 @@ fluidsynth_misc_interpolation=4th
|
|||
last_fullscreen_mode_width=1920
|
||||
multi_midi=false
|
||||
gui_browser_show_hidden=true
|
||||
soundfont=/storage/.config/fluidsynth/soundfonts/GeneralUser.sf2
|
||||
soundfont=/usr/share/soundfonts/GeneralUser.sf2/GeneralUser.sf2
|
||||
fluidsynth_chorus_nr=3
|
||||
fluidsynth_chorus_waveform=sine
|
||||
music_driver=auto
|
||||
|
|
|
@ -8,13 +8,13 @@ PKG_REV="1"
|
|||
PKG_LICENSE="GPL2"
|
||||
PKG_SITE="https://github.com/scummvm/scummvm"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_net freetype fluidsynth"
|
||||
PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_net freetype fluidsynth soundfont-generaluser pipewire"
|
||||
PKG_SHORTDESC="Script Creation Utility for Maniac Mansion Virtual Machine"
|
||||
PKG_LONGDESC="ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files."
|
||||
|
||||
pre_configure_target() {
|
||||
sed -i "s|sdl-config|sdl2-config|g" ${PKG_BUILD}/configure
|
||||
TARGET_CONFIGURE_OPTS="--host=${TARGET_NAME} --backend=sdl --with-sdl-prefix=${SYSROOT_PREFIX}/usr/bin --disable-debug --enable-release --enable-vkeybd --enable-sdl-ts-vmouse --opengl-mode=gles2"
|
||||
TARGET_CONFIGURE_OPTS="--host=${TARGET_NAME} --backend=sdl --disable-alsa --with-sdl-prefix=${SYSROOT_PREFIX}/usr/bin --disable-debug --enable-release --enable-vkeybd --enable-sdl-ts-vmouse --opengl-mode=gles2"
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
|
|
|
@ -63,6 +63,8 @@ case $1 in
|
|||
|
||||
*)
|
||||
GAME=$(cat "${GAME}")
|
||||
systemctl start fluidsynth
|
||||
eval /usr/bin/scummvm --fullscreen --joystick=0 --themepath=/usr/config/scummvm/themes "${GAME}"
|
||||
systemctl stop fluidsynth
|
||||
;;
|
||||
esac
|
||||
|
|
26
packages/emulators/standalone/vice-sa/configs/sdl-vicerc
Normal file
26
packages/emulators/standalone/vice-sa/configs/sdl-vicerc
Normal file
|
@ -0,0 +1,26 @@
|
|||
[Version]
|
||||
ConfigVersion=3.7.1
|
||||
|
||||
[C128]
|
||||
KeySetEnable=0
|
||||
JoyDevice1=4
|
||||
JoyDevice2=4
|
||||
JoyMenuControl=1
|
||||
|
||||
[C64SC]
|
||||
KeySetEnable=0
|
||||
JoyDevice1=4
|
||||
JoyDevice2=4
|
||||
JoyMenuControl=1
|
||||
|
||||
[PLUS4]
|
||||
KeySetEnable=0
|
||||
JoyDevice1=4
|
||||
JoyDevice2=4
|
||||
JoyMenuControl=1
|
||||
|
||||
[VIC-20]
|
||||
KeySetEnable=0
|
||||
JoyDevice1=4
|
||||
JoyDevice2=4
|
||||
JoyMenuControl=1
|
|
@ -13,7 +13,7 @@ PKG_PRIORITY="optional"
|
|||
PKG_SECTION="emulators"
|
||||
PKG_SHORTDESC="Commodore 8-bit Emulator"
|
||||
PKG_LONGDESC="Commodore 8-bit Emulator"
|
||||
PKG_CONFIGURE_OPTS_TARGET+=" --disable-pdf-docs --enable-gtk3ui=no"
|
||||
PKG_CONFIGURE_OPTS_TARGET+=" --disable-pdf-docs --enable-gtk3ui=no --without-alsa --with-pulse --enable-sdl2ui"
|
||||
|
||||
if [ ! "${OPENGL}" = "no" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd"
|
||||
|
@ -30,10 +30,15 @@ pre_configure_target() {
|
|||
|
||||
post_makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/usr/config/vice
|
||||
if [ -d "${PKG_DIR}/config/${DEVICE}" ]
|
||||
if [ -d "${PKG_DIR}/configs" ]
|
||||
then
|
||||
cp -f ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/vice
|
||||
cp -f ${PKG_DIR}/configs/* ${INSTALL}/usr/config/vice
|
||||
fi
|
||||
cp -f ${PKG_DIR}/sources/* ${INSTALL}/usr/bin
|
||||
|
||||
for sc in x128 x64sc xplus4 xvic
|
||||
do
|
||||
cp -f ${PKG_DIR}/sources/start_vice.sh ${INSTALL}/usr/bin/start_${sc}.sh
|
||||
sed -i "s~@EMU@~${sc}~g" ${INSTALL}/usr/bin/start_${sc}.sh
|
||||
done
|
||||
chmod 0755 ${INSTALL}/usr/bin/*
|
||||
}
|
||||
|
|
85
packages/emulators/standalone/vice-sa/sources/start_vice.sh
Normal file
85
packages/emulators/standalone/vice-sa/sources/start_vice.sh
Normal file
|
@ -0,0 +1,85 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present - Fewtarius
|
||||
|
||||
. /etc/profile
|
||||
|
||||
jslisten set "-9 @EMU@"
|
||||
|
||||
CONFIG_PATH="/storage/.config/vice"
|
||||
SOURCE_PATH="/usr/config/vice"
|
||||
|
||||
EMU="@EMU@"
|
||||
|
||||
### Get the game we want to start.
|
||||
GAME=${1//[\\]/}
|
||||
|
||||
if [ ! -d "/storage/.config/vice" ]
|
||||
then
|
||||
mkdir -p /storage/.config/vice
|
||||
fi
|
||||
|
||||
case ${EMU} in
|
||||
x128)
|
||||
EMU="C128"
|
||||
;;
|
||||
x64sc)
|
||||
EMU="C64SC"
|
||||
;;
|
||||
xplus4)
|
||||
EMU="PLUS4"
|
||||
;;
|
||||
xvic)
|
||||
EMU="VIC20"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -e "${CONFIG_PATH}/sdl-hotkeys-${EMU}.vhk" ]
|
||||
then
|
||||
cat <<EOF >${CONFIG_PATH}/sdl-hotkeys-${EMU}.vhk
|
||||
!CLEAR
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ ! -e "${CONFIG_PATH}/sdl-joymap-${EMU}.vjm" ]
|
||||
then
|
||||
cat <<EOF >${CONFIG_PATH}/sdl-joymap-${EMU}.vjm
|
||||
!CLEAR
|
||||
|
||||
0 0 0 0
|
||||
0 0 1 0
|
||||
0 0 2 0
|
||||
0 0 3 0
|
||||
0 0 4 0
|
||||
0 0 5 0
|
||||
0 0 6 0
|
||||
0 0 7 0
|
||||
|
||||
0 1 0 1 0 16
|
||||
0 1 1 1 0 32
|
||||
0 1 2 1 0 64
|
||||
0 1 3 0
|
||||
0 1 4 0
|
||||
0 1 ${DEVICE_BTN_SELECT} 5 Virtual keyboard
|
||||
0 1 ${DEVICE_BTN_START} 4
|
||||
EOF
|
||||
|
||||
if [[ ! "${DEVICE_BTN_DPAD_UP}" =~ [a-z] ]]
|
||||
then
|
||||
cat <<EOF >>${CONFIG_PATH}/sdl-joymap-${EMU}.vjm
|
||||
0 1 ${DEVICE_BTN_DPAD_UP} 1 0 1
|
||||
0 1 ${DEVICE_BTN_DPAD_DOWN} 1 0 2
|
||||
0 1 ${DEVICE_BTN_DPAD_LEFT} 1 0 4
|
||||
0 1 ${DEVICE_BTN_DPAD_RIGHT} 1 0 8
|
||||
EOF
|
||||
else
|
||||
cat <<EOF >>${CONFIG_PATH}/sdl-joymap-${EMU}.vjm
|
||||
0 2 0 1 0 1
|
||||
0 2 1 1 0 2
|
||||
0 2 2 1 0 4
|
||||
0 2 3 1 0 8
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
@EMU@ -joymenucontrol "${GAME}"
|
|
@ -1,14 +0,0 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present - Fewtarius
|
||||
|
||||
. /etc/profile
|
||||
|
||||
if [ ! -d "/storage/.config/vice" ]
|
||||
then
|
||||
rsync -a /usr/config/vice /storage/.config
|
||||
fi
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
x128 -sounddev alsa -sdl2renderer opengles2 "${ARG}"
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present - Fewtarius
|
||||
|
||||
. /etc/profile
|
||||
|
||||
if [ ! -d "/storage/.config/vice" ]
|
||||
then
|
||||
rsync -a /usr/config/vice /storage/.config
|
||||
fi
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
echo "[${ARG}]"
|
||||
x64sc -sounddev alsa -sdl2renderer opengles2 "${ARG}"
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present - Fewtarius
|
||||
|
||||
. /etc/profile
|
||||
|
||||
if [ ! -d "/storage/.config/vice" ]
|
||||
then
|
||||
rsync -a /usr/config/vice /storage/.config
|
||||
fi
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
echo "[${ARG}]"
|
||||
xplus4 -sounddev alsa -sdl2renderer opengles2 "${ARG}"
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present - Fewtarius
|
||||
|
||||
. /etc/profile
|
||||
|
||||
if [ ! -d "/storage/.config/vice" ]
|
||||
then
|
||||
rsync -a /usr/config/vice /storage/.config
|
||||
fi
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
echo "[${ARG}]"
|
||||
xvic -sounddev alsa -sdl2renderer opengles2 "${ARG}"
|
|
@ -206,6 +206,9 @@ ln -sf /storage/.config/yuzu /storage/.local/share/yuzu
|
|||
#Set QT Platform to Wayland-EGL
|
||||
export QT_QPA_PLATFORM=wayland-egl
|
||||
|
||||
#Yuzu won't work with the pipewire driver yet
|
||||
export SDL_AUDIODRIVER=pulseaudio
|
||||
|
||||
jslisten set "-9 yuzu"
|
||||
|
||||
#Run Yuzu emulator
|
||||
|
|
|
@ -108,6 +108,7 @@ pre_configure_target(){
|
|||
-DCLOCK_GETTIME=OFF \
|
||||
-DRPATH=OFF \
|
||||
-DRENDER_D3D=OFF \
|
||||
-DPIPEWIRE=ON \
|
||||
-DPULSEAUDIO=ON"
|
||||
}
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@ case ${DEVICE} in
|
|||
PKG_URL="https://mesa.freedesktop.org/archive/mesa-${PKG_VERSION}.tar.xz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="23.1.4"
|
||||
PKG_SHA256="7261a17fb94867e3dc5a90d8a1f100fa04b0cbbde51d25302c0872b5e9a10959"
|
||||
PKG_VERSION="23.1.5"
|
||||
PKG_SHA256="3cf88576fdebf24fc4047067936131c90cb6541c27365996b79b661dec1fb153"
|
||||
PKG_SITE="http://www.mesa3d.org/"
|
||||
PKG_URL="https://mesa.freedesktop.org/archive/mesa-${PKG_VERSION}.tar.xz"
|
||||
;;
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
# Minimal OS variable loading for performance
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
(
|
||||
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
|
||||
MYDEVICE=$(get_setting system.audiodevice)
|
||||
if [ -z "${MYDEVICE}" ] || \
|
||||
[ ! -e "/storage/.config/asound.conf" ]
|
||||
then
|
||||
### Set the audio device.
|
||||
set-audio set "ALC269VB (1:0)"
|
||||
set-audio esset "Master"
|
||||
fi
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
MYDEVICE=$(get_setting system.audiodevice)
|
||||
if [ -z "${MYDEVICE}" ] || \
|
||||
[ ! -e "/storage/.config/asound.conf" ]
|
||||
then
|
||||
### Set the audio device
|
||||
set-audio set "HDMI (0:3)"
|
||||
fi
|
|
@ -22,8 +22,8 @@ fi
|
|||
### Set the default device configuration
|
||||
cat <<EOF >/storage/.config/profile.d/001-deviceconfig
|
||||
DEVICE_BASE_TDP="15w"
|
||||
DEVICE_VOLUMECTL=true
|
||||
DEVICE_LED_CONTROL=false
|
||||
DEVICE_VOLUMECTL=false
|
||||
DEVICE_PLAYBACK_PATH_SPK="SPK"
|
||||
DEVICE_PLAYBACK_PATH_HP="HP"
|
||||
DEVICE_FUNC_KEYA_MODIFIER="KEY_LEFTCTRL"
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
|
||||
MYDEVICE=$(get_setting system.audiodevice)
|
||||
if [ -z "${MYDEVICE}" ] || \
|
||||
[ ! -e "/storage/.config/asound.conf" ]
|
||||
then
|
||||
### Set the audio device.
|
||||
set-audio set "ALC269VB (1:0)"
|
||||
set-audio esset "Master"
|
||||
fi
|
||||
|
||||
### Only enable on 6800U Plus devices.
|
||||
SUBSYSTEM=$(awk '/Subsystem Id:/ {print $3}' /proc/asound/card1/codec#0)
|
||||
if [ "${SUBSYSTEM}" = "0x02f3f000" ]
|
||||
then
|
||||
### Disables speaker output when headphones are connected.
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
/usr/bin/amixer -c 1 sset "Auto-Mute Mode" Enabled
|
||||
alsactl store -f /storage/.config/asound.state
|
||||
fi
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
|
||||
MYDEVICE=$(get_setting system.audiodevice)
|
||||
if [ -z "${MYDEVICE}" ] || \
|
||||
[ ! -e "/storage/.config/asound.conf" ]
|
||||
then
|
||||
### Set the audio device.
|
||||
set-audio set "ALC269VB (1:0)"
|
||||
set-audio esset "Master"
|
||||
fi
|
||||
|
||||
### Disables speaker output when headphones are connected.
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
/usr/bin/amixer -c 1 sset "Auto-Mute Mode" Enabled
|
||||
alsactl store -f /storage/.config/asound.state
|
|
@ -26,7 +26,7 @@ DEVICE_LED_CONTROL=true
|
|||
DEVICE_VOLUMECTL=true
|
||||
DEVICE_PLAYBACK_PATH_SPK="SPK"
|
||||
DEVICE_PLAYBACK_PATH_HP="HP"
|
||||
DEVICE_FUNC_KEYA_MODIFIER="KEY_LEFTCTRL"
|
||||
DEVICE_FUNC_KEYA_MODIFIER="KEY_RIGHTCTRL"
|
||||
DEVICE_FUNC_KEYB_MODIFIER="KEY_D"
|
||||
UI_SERVICE="weston.service"
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ DEVICE_PLAYBACK_PATH_HP="HP"
|
|||
DEVICE_FUNC_KEYA_MODIFIER="BTN_SELECT"
|
||||
DEVICE_FUNC_KEYB_MODIFIER="BTN_START"
|
||||
DEVICE_BRIGHTNESS="128"
|
||||
DEVICE_VOLUME="100"
|
||||
DEVICE_BATTERY_LED_STATUS=true
|
||||
DEVICE_PWR_LED_GPIO="77"
|
||||
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "Master"
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "dmixer"
|
||||
}
|
||||
|
||||
pcm.dmixer {
|
||||
type dmix
|
||||
ipc_key 1024
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 4096
|
||||
rate 44100
|
||||
}
|
||||
bindings {
|
||||
0 0
|
||||
1 1
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
#if [ ! -e "/storage/.config/asound.state" ]
|
||||
#then
|
||||
# cat <<EOF >/storage/.config/asound.state
|
||||
#EOF
|
||||
#fi
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
cat <<EOF >/storage/.config/profile.d/001-deviceconfig
|
||||
# Device Features
|
||||
DEVICE_VOLUMECTL=true
|
||||
DEVICE_POWER_LED=false
|
||||
DEVICE_PLAYBACK_PATH_SPK="SPK"
|
||||
DEVICE_PLAYBACK_PATH_HP="HP"
|
||||
DEVICE_FUNC_KEYA_MODIFIER="BTN_SELECT"
|
||||
DEVICE_FUNC_KEYB_MODIFIER="BTN_START"
|
||||
DEVICE_BRIGHTNESS="128"
|
||||
DEVICE_BATTERY_LED_STATUS=true
|
||||
DEVICE_PWR_LED_GPIO="77"
|
||||
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
|
||||
UI_SERVICE="weston.service"
|
||||
|
||||
# FREQ governors
|
||||
CPU_FREQ=("/sys/devices/system/cpu/cpufreq/policy0")
|
||||
GPU_FREQ=("/sys/devices/platform/ff400000.gpu/devfreq/ff400000.gpu")
|
||||
DMC_FREQ=("/sys/devices/platform/dmc/devfreq/dmc")
|
||||
EOF
|
11
packages/hardware/quirks/devices/Anbernic RG351V/001-hardwareinit
Executable file
11
packages/hardware/quirks/devices/Anbernic RG351V/001-hardwareinit
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
MYSLEEPMODE=$(get_setting system.suspendmode)
|
||||
if [ -z "${MYSLEEPMODE}" ]
|
||||
then
|
||||
/usr/bin/setsuspendmode freeze
|
||||
fi
|
|
@ -0,0 +1,46 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
#Set up gzdoom
|
||||
if [ ! -d "/storage/.config/gzdoom/" ]; then
|
||||
cp -rf /usr/config/gzdoom /storage/.config/
|
||||
sed -i '/Joy7=/c\Joy7=togglemap' /storage/.config/gzdoom/gzdoom.ini
|
||||
sed -i '/Joy8=/c\Joy8=menu_main' /storage/.config/gzdoom/gzdoom.ini
|
||||
sed -i '/Axis0scale=/c\Axis0scale=-0.8' /storage/.config/gzdoom/gzdoom.ini
|
||||
sed -i '/Axis1scale=/c\Axis1scale=-0.6' /storage/.config/gzdoom/gzdoom.ini
|
||||
sed -i '/vid_defheight=/c\vid_defheight=320' /storage/.config/gzdoom/gzdoom.ini
|
||||
sed -i '/vid_defwidth=/c\vid_defwidth=480' /storage/.config/gzdoom/gzdoom.ini
|
||||
fi
|
||||
|
||||
#Map ppsspp controls
|
||||
if grep RG351V -q "/stprage/.config/ppsspp/PSP/SYSTEM/controls.ini"
|
||||
then
|
||||
exit 1
|
||||
else
|
||||
cat <<EOF >/storage/.config/ppsspp/PSP/SYSTEM/controls.ini
|
||||
#RG351V
|
||||
[ControlMapping]
|
||||
Up = 10-19
|
||||
Down = 10-20
|
||||
Left = 10-21
|
||||
Right = 10-22
|
||||
Circle = 10-189
|
||||
Cross = 10-190
|
||||
Square = 10-188
|
||||
Triangle = 10-191
|
||||
Start = 10-197
|
||||
Select = 10-196
|
||||
L = 10-193
|
||||
R = 10-192
|
||||
An.Up = 10-4002
|
||||
An.Down = 10-4003
|
||||
An.Left = 10-4000
|
||||
An.Right = 10-4001
|
||||
Fast-forward = 1-61
|
||||
Pause = 10-106
|
||||
Save State = 10-4010
|
||||
Load State = 10-4008
|
||||
EOF
|
||||
fi
|
|
@ -13,10 +13,6 @@ DEVICE_PLAYBACK_PATH_HP="HP"
|
|||
DEVICE_BRIGHTNESS="128"
|
||||
UI_SERVICE="emustation.service"
|
||||
|
||||
# Kernel Modules
|
||||
DEVICE_INTERNAL_WIFI=true
|
||||
DEVICE_WIFI_MODULE="8821cs"
|
||||
|
||||
# GPIOS
|
||||
DEVICE_WIFI="0"
|
||||
#DEVICE_LED=""
|
||||
|
|
|
@ -1,146 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "Master"
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "softvol"
|
||||
}
|
||||
|
||||
ctl.!default {
|
||||
type hw
|
||||
card 0
|
||||
}
|
||||
|
||||
pcm.ddmix {
|
||||
ipc_key 1024
|
||||
type dmix
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 4096
|
||||
rate 44100
|
||||
}
|
||||
}
|
||||
|
||||
pcm.softvol {
|
||||
type softvol
|
||||
slave {
|
||||
pcm "ddmix"
|
||||
}
|
||||
control {
|
||||
name "Master"
|
||||
card 0
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
if [ ! -e "/storage/.config/asound.state" ]
|
||||
then
|
||||
cat <<EOF >/storage/.config/asound.state
|
||||
state.rockchiprk817co {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'Playback Path'
|
||||
value HP
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 OFF
|
||||
item.1 RCV
|
||||
item.2 SPK
|
||||
item.3 HP
|
||||
item.4 HP_NO_MIC
|
||||
item.5 BT
|
||||
item.6 SPK_HP
|
||||
item.7 RING_SPK
|
||||
item.8 RING_HP
|
||||
item.9 RING_HP_NO_MIC
|
||||
item.10 RING_SPK_HP
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Capture MIC Path'
|
||||
value 'MIC OFF'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'MIC OFF'
|
||||
item.1 'Main Mic'
|
||||
item.2 'Hands Free Mic'
|
||||
item.3 'BT Sco Mic'
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name Master
|
||||
value.0 109
|
||||
value.1 109
|
||||
comment {
|
||||
access 'read write user'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
tlv '0000000100000008ffffec1400000014'
|
||||
dbmin -5100
|
||||
dbmax 0
|
||||
dbvalue.0 -2920
|
||||
dbvalue.1 -2920
|
||||
}
|
||||
}
|
||||
}
|
||||
state.rockchiphdmi {
|
||||
control.1 {
|
||||
iface PCM
|
||||
name 'Playback Channel Map'
|
||||
value.0 0
|
||||
value.1 0
|
||||
value.2 0
|
||||
value.3 0
|
||||
value.4 0
|
||||
value.5 0
|
||||
value.6 0
|
||||
value.7 0
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 8
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface PCM
|
||||
name ELD
|
||||
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read volatile'
|
||||
type BYTES
|
||||
count 128
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface PCM
|
||||
name 'AUDIO MODE'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write volatile'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 2'
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
fi
|
|
@ -15,10 +15,6 @@ DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event"
|
|||
DEVICE_BRIGHTNESS="70"
|
||||
UI_SERVICE="emustation.service"
|
||||
|
||||
# Kernel Modules
|
||||
DEVICE_INTERNAL_WIFI=true
|
||||
DEVICE_WIFI_MODULE="MT7601U"
|
||||
|
||||
# GPIOS
|
||||
DEVICE_WIFI="5"
|
||||
DEVICE_LED="77"
|
||||
|
|
|
@ -1,155 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "Master"
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "softvol"
|
||||
}
|
||||
|
||||
ctl.!default {
|
||||
type hw
|
||||
card 0
|
||||
}
|
||||
|
||||
pcm.ddmix {
|
||||
ipc_key 1024
|
||||
type dmix
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 4096
|
||||
rate 44100
|
||||
}
|
||||
}
|
||||
|
||||
pcm.softvol {
|
||||
type softvol
|
||||
slave.pcm {
|
||||
type asym
|
||||
playback.pcm {
|
||||
type route
|
||||
slave.pcm "ddmix"
|
||||
ttable.0.0 0.96
|
||||
ttable.0.1 0.80
|
||||
ttable.1.0 0.80
|
||||
ttable.1.1 0.96
|
||||
}
|
||||
capture.pcm "hw:0"
|
||||
}
|
||||
control {
|
||||
name "Master"
|
||||
card 0
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
if [ ! -e "/storage/.config/asound.state" ]
|
||||
then
|
||||
cat <<EOF >/storage/.config/asound.state
|
||||
state.rockchiprk817co {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'Playback Path'
|
||||
value HP
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 OFF
|
||||
item.1 RCV
|
||||
item.2 SPK
|
||||
item.3 HP
|
||||
item.4 HP_NO_MIC
|
||||
item.5 BT
|
||||
item.6 SPK_HP
|
||||
item.7 RING_SPK
|
||||
item.8 RING_HP
|
||||
item.9 RING_HP_NO_MIC
|
||||
item.10 RING_SPK_HP
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Capture MIC Path'
|
||||
value 'MIC OFF'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'MIC OFF'
|
||||
item.1 'Main Mic'
|
||||
item.2 'Hands Free Mic'
|
||||
item.3 'BT Sco Mic'
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name Master
|
||||
value.0 109
|
||||
value.1 109
|
||||
comment {
|
||||
access 'read write user'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
tlv '0000000100000008ffffec1400000014'
|
||||
dbmin -5100
|
||||
dbmax 0
|
||||
dbvalue.0 -2920
|
||||
dbvalue.1 -2920
|
||||
}
|
||||
}
|
||||
}
|
||||
state.rockchiphdmi {
|
||||
control.1 {
|
||||
iface PCM
|
||||
name 'Playback Channel Map'
|
||||
value.0 0
|
||||
value.1 0
|
||||
value.2 0
|
||||
value.3 0
|
||||
value.4 0
|
||||
value.5 0
|
||||
value.6 0
|
||||
value.7 0
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 8
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface PCM
|
||||
name ELD
|
||||
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read volatile'
|
||||
type BYTES
|
||||
count 128
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface PCM
|
||||
name 'AUDIO MODE'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write volatile'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 2'
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
fi
|
|
@ -15,10 +15,6 @@ DEVICE_PLAYBACK_PATH_HP="HP"
|
|||
DEVICE_BRIGHTNESS="153"
|
||||
UI_SERVICE="emustation.service"
|
||||
|
||||
# Kernel Modules
|
||||
DEVICE_INTERNAL_WIFI=true
|
||||
DEVICE_WIFI_MODULE="8821cs"
|
||||
|
||||
# GPIOS
|
||||
DEVICE_WIFI="0"
|
||||
#DEVICE_LED=""
|
||||
|
|
|
@ -1,146 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "Master"
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "softvol"
|
||||
}
|
||||
|
||||
ctl.!default {
|
||||
type hw
|
||||
card 0
|
||||
}
|
||||
|
||||
pcm.ddmix {
|
||||
ipc_key 1024
|
||||
type dmix
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 4096
|
||||
rate 44100
|
||||
}
|
||||
}
|
||||
|
||||
pcm.softvol {
|
||||
type softvol
|
||||
slave {
|
||||
pcm "ddmix"
|
||||
}
|
||||
control {
|
||||
name "Master"
|
||||
card 0
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
if [ ! -e "/storage/.config/asound.state" ]
|
||||
then
|
||||
cat <<EOF >/storage/.config/asound.state
|
||||
state.rockchiprk817co {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'Playback Path'
|
||||
value HP
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 OFF
|
||||
item.1 RCV
|
||||
item.2 SPK
|
||||
item.3 HP
|
||||
item.4 HP_NO_MIC
|
||||
item.5 BT
|
||||
item.6 SPK_HP
|
||||
item.7 RING_SPK
|
||||
item.8 RING_HP
|
||||
item.9 RING_HP_NO_MIC
|
||||
item.10 RING_SPK_HP
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Capture MIC Path'
|
||||
value 'MIC OFF'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'MIC OFF'
|
||||
item.1 'Main Mic'
|
||||
item.2 'Hands Free Mic'
|
||||
item.3 'BT Sco Mic'
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name Master
|
||||
value.0 109
|
||||
value.1 109
|
||||
comment {
|
||||
access 'read write user'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
tlv '0000000100000008ffffec1400000014'
|
||||
dbmin -5100
|
||||
dbmax 0
|
||||
dbvalue.0 -2920
|
||||
dbvalue.1 -2920
|
||||
}
|
||||
}
|
||||
}
|
||||
state.rockchiphdmi {
|
||||
control.1 {
|
||||
iface PCM
|
||||
name 'Playback Channel Map'
|
||||
value.0 0
|
||||
value.1 0
|
||||
value.2 0
|
||||
value.3 0
|
||||
value.4 0
|
||||
value.5 0
|
||||
value.6 0
|
||||
value.7 0
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 8
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface PCM
|
||||
name ELD
|
||||
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read volatile'
|
||||
type BYTES
|
||||
count 128
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface PCM
|
||||
name 'AUDIO MODE'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write volatile'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 2'
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
fi
|
|
@ -1,530 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "DAC"
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "dmixer"
|
||||
}
|
||||
|
||||
pcm.dmixer {
|
||||
type dmix
|
||||
ipc_key 1024
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 4096
|
||||
rate 44100
|
||||
}
|
||||
bindings {
|
||||
0 0
|
||||
1 1
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
cat <<EOF >/storage/.config/asound.state
|
||||
state.rockchipes8316c {
|
||||
control.1 {
|
||||
iface CARD
|
||||
name 'Headphones Jack'
|
||||
value false
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback Volume'
|
||||
value.0 3
|
||||
value.1 3
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 3'
|
||||
dbmin -4800
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'Headphone Mixer Volume'
|
||||
value.0 11
|
||||
value.1 11
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 11'
|
||||
dbmin -1200
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'Playback Polarity'
|
||||
value 'R Invert'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Normal
|
||||
item.1 'R Invert'
|
||||
item.2 'L Invert'
|
||||
item.3 'L + R Invert'
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface MIXER
|
||||
name 'DAC Playback Volume'
|
||||
value.0 144
|
||||
value.1 144
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 192'
|
||||
dbmin -9999999
|
||||
dbmax 0
|
||||
dbvalue.0 -2400
|
||||
dbvalue.1 -2400
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface MIXER
|
||||
name 'DAC Soft Ramp Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.7 {
|
||||
iface MIXER
|
||||
name 'DAC Soft Ramp Rate'
|
||||
value 4
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 4'
|
||||
}
|
||||
}
|
||||
control.8 {
|
||||
iface MIXER
|
||||
name 'DAC Notch Filter Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.9 {
|
||||
iface MIXER
|
||||
name 'DAC Double Fs Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.10 {
|
||||
iface MIXER
|
||||
name 'DAC Stereo Enhancement'
|
||||
value 7
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
}
|
||||
}
|
||||
control.11 {
|
||||
iface MIXER
|
||||
name 'DAC Mono Mix Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.12 {
|
||||
iface MIXER
|
||||
name 'Capture Polarity'
|
||||
value Normal
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Normal
|
||||
item.1 Invert
|
||||
}
|
||||
}
|
||||
control.13 {
|
||||
iface MIXER
|
||||
name 'Mic Boost Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.14 {
|
||||
iface MIXER
|
||||
name 'ADC Capture Volume'
|
||||
value 192
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 192'
|
||||
dbmin -9999999
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
}
|
||||
}
|
||||
control.15 {
|
||||
iface MIXER
|
||||
name 'ADC PGA Gain Volume'
|
||||
value 7
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 10'
|
||||
dbmin -350
|
||||
dbmax 2400
|
||||
dbvalue.0 1600
|
||||
}
|
||||
}
|
||||
control.16 {
|
||||
iface MIXER
|
||||
name 'ADC Soft Ramp Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.17 {
|
||||
iface MIXER
|
||||
name 'ADC Double Fs Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.18 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.19 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Max Volume'
|
||||
value 28
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 28'
|
||||
dbmin -650
|
||||
dbmax 3550
|
||||
dbvalue.0 3550
|
||||
}
|
||||
}
|
||||
control.20 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Min Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 28'
|
||||
dbmin -1200
|
||||
dbmax 3000
|
||||
dbvalue.0 -1200
|
||||
}
|
||||
}
|
||||
control.21 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Target Volume'
|
||||
value 10
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 10'
|
||||
dbmin -1650
|
||||
dbmax -150
|
||||
dbvalue.0 -150
|
||||
}
|
||||
}
|
||||
control.22 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Hold Time'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 10'
|
||||
}
|
||||
}
|
||||
control.23 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Decay Time'
|
||||
value 3
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 10'
|
||||
}
|
||||
}
|
||||
control.24 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Attack Time'
|
||||
value 2
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 10'
|
||||
}
|
||||
}
|
||||
control.25 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Noise Gate Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.26 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Noise Gate Threshold'
|
||||
value 31
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 31'
|
||||
}
|
||||
}
|
||||
control.27 {
|
||||
iface MIXER
|
||||
name 'ALC Capture Noise Gate Type'
|
||||
value 'Constant PGA Gain'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'Constant PGA Gain'
|
||||
item.1 'Mute ADC Output'
|
||||
}
|
||||
}
|
||||
control.28 {
|
||||
iface MIXER
|
||||
name 'Speaker Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.29 {
|
||||
iface MIXER
|
||||
name 'Differential Mux'
|
||||
value lin1-rin1
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 lin1-rin1
|
||||
item.1 lin2-rin2
|
||||
item.2 'lin1-rin1 with 20db Boost'
|
||||
item.3 'lin2-rin2 with 20db Boost'
|
||||
}
|
||||
}
|
||||
control.30 {
|
||||
iface MIXER
|
||||
name 'Digital Mic Mux'
|
||||
value 'dmic disable'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'dmic disable'
|
||||
item.1 'dmic data at high level'
|
||||
item.2 'dmic data at low level'
|
||||
}
|
||||
}
|
||||
control.31 {
|
||||
iface MIXER
|
||||
name 'DAC Source Mux'
|
||||
value 'LDATA TO LDAC, RDATA TO RDAC'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'LDATA TO LDAC, RDATA TO RDAC'
|
||||
item.1 'LDATA TO LDAC, LDATA TO RDAC'
|
||||
item.2 'RDATA TO LDAC, RDATA TO RDAC'
|
||||
item.3 'RDATA TO LDAC, LDATA TO RDAC'
|
||||
}
|
||||
}
|
||||
control.32 {
|
||||
iface MIXER
|
||||
name 'Left Headphone Mux'
|
||||
value lin1-rin1
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 lin1-rin1
|
||||
item.1 lin2-rin2
|
||||
item.2 'lin-rin with Boost'
|
||||
item.3 'lin-rin with Boost and PGA'
|
||||
}
|
||||
}
|
||||
control.33 {
|
||||
iface MIXER
|
||||
name 'Right Headphone Mux'
|
||||
value lin1-rin1
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 lin1-rin1
|
||||
item.1 lin2-rin2
|
||||
item.2 'lin-rin with Boost'
|
||||
item.3 'lin-rin with Boost and PGA'
|
||||
}
|
||||
}
|
||||
control.34 {
|
||||
iface MIXER
|
||||
name 'Left Headphone Mixer LLIN Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.35 {
|
||||
iface MIXER
|
||||
name 'Left Headphone Mixer Left DAC Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.36 {
|
||||
iface MIXER
|
||||
name 'Right Headphone Mixer RLIN Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.37 {
|
||||
iface MIXER
|
||||
name 'Right Headphone Mixer Right DAC Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
}
|
||||
state.hdmisound {
|
||||
control.1 {
|
||||
iface PCM
|
||||
name 'Playback Channel Map'
|
||||
value.0 0
|
||||
value.1 0
|
||||
value.2 0
|
||||
value.3 0
|
||||
value.4 0
|
||||
value.5 0
|
||||
value.6 0
|
||||
value.7 0
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 8
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface PCM
|
||||
name 'IEC958 Playback Mask'
|
||||
value ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
comment {
|
||||
access read
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface PCM
|
||||
name 'IEC958 Playback Default'
|
||||
value '0400000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read write'
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface PCM
|
||||
name ELD
|
||||
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read volatile'
|
||||
type BYTES
|
||||
count 128
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
alsactl restore -f /storage/.config/asound.state
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
|
||||
MYDEVICE=$(get_setting system.audiodevice)
|
||||
if [ -z "${MYDEVICE}" ] || \
|
||||
[ ! -e "/storage/.config/asound.conf" ]
|
||||
then
|
||||
### Set the audio device.
|
||||
set-audio set "SN6140 (1:0)"
|
||||
set-audio esset "Internal"
|
||||
fi
|
||||
|
||||
### Disables speaker output when headphones are connected.
|
||||
alsactl restore -f /storage/.config/asound.state
|
||||
/usr/bin/amixer -c 1 sset "Auto-Mute Mode" Enabled
|
||||
alsactl store -f /storage/.config/asound.state
|
|
@ -1,260 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "Master"
|
||||
|
||||
amixer sset 'FRDDR_A SINK 1 SEL' 'OUT 1'
|
||||
amixer sset 'FRDDR_A SRC 1 EN' 'on'
|
||||
amixer sset 'TDMOUT_B SRC SEL' 'IN 0'
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "dmixer"
|
||||
}
|
||||
|
||||
pcm.dmixer {
|
||||
type dmix
|
||||
ipc_key 1024
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 4096
|
||||
buffer_size 131072
|
||||
rate 96000
|
||||
}
|
||||
bindings {
|
||||
0 0
|
||||
1 1
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
if [ ! -e "/storage/.config/asound.state" ]
|
||||
then
|
||||
cat <<EOF >/storage/.config/asound.state
|
||||
state.Ultra {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'Master Playback Volume'
|
||||
value.0 223
|
||||
value.1 223
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 252'
|
||||
dbmin -9500
|
||||
dbmax 0
|
||||
dbvalue.0 -1094
|
||||
dbvalue.1 -1094
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Master Capture Volume'
|
||||
value.0 226
|
||||
value.1 226
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
dbmin -9500
|
||||
dbmax 0
|
||||
dbvalue.0 -1081
|
||||
dbvalue.1 -1081
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'Mic Capture Gain'
|
||||
value.0 6
|
||||
value.1 6
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 15'
|
||||
dbmin -1800
|
||||
dbmax 2700
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'TDMOUT_B Lane 0 Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface MIXER
|
||||
name 'TDMOUT_B Lane 1 Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface MIXER
|
||||
name 'TDMOUT_B Lane 2 Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
}
|
||||
}
|
||||
control.7 {
|
||||
iface MIXER
|
||||
name 'TDMOUT_B Lane 3 Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
}
|
||||
}
|
||||
control.8 {
|
||||
iface MIXER
|
||||
name 'TDMOUT_B Gain Enable Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.9 {
|
||||
iface MIXER
|
||||
name 'FRDDR_A SRC 1 EN Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.10 {
|
||||
iface MIXER
|
||||
name 'FRDDR_A SRC 2 EN Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.11 {
|
||||
iface MIXER
|
||||
name 'FRDDR_A SRC 3 EN Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.12 {
|
||||
iface MIXER
|
||||
name 'FRDDR_A SINK 1 SEL'
|
||||
value 'OUT 1'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'OUT 0'
|
||||
item.1 'OUT 1'
|
||||
item.2 'OUT 2'
|
||||
item.3 'OUT 3'
|
||||
item.4 'OUT 4'
|
||||
item.5 'OUT 5'
|
||||
item.6 'OUT 6'
|
||||
item.7 'OUT 7'
|
||||
}
|
||||
}
|
||||
control.13 {
|
||||
iface MIXER
|
||||
name 'FRDDR_A SINK 2 SEL'
|
||||
value 'OUT 0'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'OUT 0'
|
||||
item.1 'OUT 1'
|
||||
item.2 'OUT 2'
|
||||
item.3 'OUT 3'
|
||||
item.4 'OUT 4'
|
||||
item.5 'OUT 5'
|
||||
item.6 'OUT 6'
|
||||
item.7 'OUT 7'
|
||||
}
|
||||
}
|
||||
control.14 {
|
||||
iface MIXER
|
||||
name 'FRDDR_A SINK 3 SEL'
|
||||
value 'OUT 0'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'OUT 0'
|
||||
item.1 'OUT 1'
|
||||
item.2 'OUT 2'
|
||||
item.3 'OUT 3'
|
||||
item.4 'OUT 4'
|
||||
item.5 'OUT 5'
|
||||
item.6 'OUT 6'
|
||||
item.7 'OUT 7'
|
||||
}
|
||||
}
|
||||
control.15 {
|
||||
iface MIXER
|
||||
name 'Playback Mux'
|
||||
value SPK
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 HP
|
||||
item.1 SPK
|
||||
}
|
||||
}
|
||||
control.16 {
|
||||
iface MIXER
|
||||
name 'TDMOUT_B SRC SEL'
|
||||
value 'IN 0'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'IN 0'
|
||||
item.1 'IN 1'
|
||||
item.2 'IN 2'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EOF
|
||||
fi
|
|
@ -1,111 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
### Set a custom device so we don't clobber it.
|
||||
set-audio set "CUSTOM (UNMANAGED)"
|
||||
set-audio esset "Master"
|
||||
|
||||
cat <<EOF >/storage/.config/asound.conf
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm "dmixer"
|
||||
}
|
||||
|
||||
pcm.dmixer {
|
||||
type dmix
|
||||
ipc_key 1024
|
||||
slave {
|
||||
pcm "hw:0,0"
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 4096
|
||||
rate 44100
|
||||
}
|
||||
bindings {
|
||||
0 0
|
||||
1 1
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
if [ ! -e "/storage/.config/asound.state" ]
|
||||
then
|
||||
cat <<EOF >/storage/.config/asound.state
|
||||
state.rk817int {
|
||||
control.1 {
|
||||
iface CARD
|
||||
name 'Headphones Jack'
|
||||
value false
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Master Playback Volume'
|
||||
value.0 220
|
||||
value.1 220
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
dbmin -9500
|
||||
dbmax 0
|
||||
dbvalue.0 -1304
|
||||
dbvalue.1 -1304
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'Master Capture Volume'
|
||||
value.0 220
|
||||
value.1 220
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
dbmin -9500
|
||||
dbmax 0
|
||||
dbvalue.0 -1304
|
||||
dbvalue.1 -1304
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'Mic Capture Gain'
|
||||
value.0 6
|
||||
value.1 6
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 15'
|
||||
dbmin -1800
|
||||
dbmax 2700
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface MIXER
|
||||
name 'Playback Mux'
|
||||
value SPK
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 HP
|
||||
item.1 SPK
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EOF
|
||||
fi
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue