Merge pull request #1907 from JustEnoughLinuxOS/dev

PR for release
This commit is contained in:
Brooksytech 2023-08-10 19:19:01 -07:00 committed by GitHub
commit 7c6ab06f39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
194 changed files with 2889 additions and 3757 deletions

View file

@ -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)

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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>|

View file

@ -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>|

View file

@ -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>|

View file

@ -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>|

View file

@ -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>|

View file

@ -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>|

View file

@ -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>|

View 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.

View 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.

View file

@ -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

View file

@ -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

View file

@ -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}%

View file

@ -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

View file

@ -40,5 +40,5 @@ post_makeinstall_target() {
post_install() {
#enable_service bluealsa.service
enable_service bluealsa-defaults.service
#enable_service bluealsa-defaults.service
}

View file

@ -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"

View file

@ -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 ()

View 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

View 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
}

View 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
}

View file

@ -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"

View 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
}

View 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]

View 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

View file

@ -0,0 +1,10 @@
[Unit]
Description=PipeWire PulseAudio
Conflicts=pulseaudio.socket
[Socket]
Priority=6
ListenStream=%t/pulse/native
[Install]
WantedBy=sockets.target

View file

@ -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
#}

View 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
}

View 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

View file

@ -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

View file

@ -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}

View file

@ -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

View file

@ -135,7 +135,7 @@ ShowInputDisplay = False
EnableJIT = True
DumpAudio = False
DumpUCode = False
Backend = ALSA
Backend = Pulse
Volume = 100
CaptureLog = False
[Input]

View file

@ -135,7 +135,7 @@ ShowInputDisplay = False
EnableJIT = True
DumpAudio = False
DumpUCode = False
Backend = ALSA
Backend = Pulse
Volume = 100
CaptureLog = False
[Input]

View file

@ -135,7 +135,7 @@ ShowInputDisplay = False
EnableJIT = True
DumpAudio = False
DumpUCode = False
Backend = ALSA
Backend = Pulse
Volume = 100
CaptureLog = False
[Input]

View file

@ -135,7 +135,7 @@ ShowInputDisplay = False
EnableJIT = True
DumpAudio = False
DumpUCode = False
Backend = ALSA
Backend = Pulse
Volume = 100
CaptureLog = False
[Input]

View file

@ -135,7 +135,7 @@ ShowInputDisplay = False
EnableJIT = True
DumpAudio = False
DumpUCode = False
Backend = ALSA
Backend = Pulse
Volume = 100
CaptureLog = False
[Input]

View file

@ -135,7 +135,7 @@ ShowInputDisplay = False
EnableJIT = True
DumpAudio = False
DumpUCode = False
Backend = ALSA
Backend = Pulse
Volume = 100
CaptureLog = False
DSPThread = True

View file

@ -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 \

View file

@ -1,3 +1,6 @@
[audio]
backend = pulse
[input]
maple_sdl_joystick_0 = 0
maple_sdl_joystick_1 = 1

View file

@ -1,3 +1,6 @@
[audio]
backend = pulse
[input]
maple_sdl_joystick_0 = 0
maple_sdl_joystick_1 = 1

View file

@ -1,3 +1,6 @@
[audio]
backend = pulse
[config]
pvr.AutoSkipFrame = 2

View file

@ -1,3 +1,6 @@
[audio]
backend = pulse
[input]
maple_sdl_joystick_0 = 0
maple_sdl_joystick_1 = 1

View file

@ -1,3 +1,6 @@
[audio]
backend = pulse
[input]
maple_sdl_joystick_0 = 0
maple_sdl_joystick_1 = 1

View file

@ -1,3 +1,6 @@
[audio]
backend = pulse
[input]
maple_sdl_joystick_0 = 0
maple_sdl_joystick_1 = 1

View file

@ -1,5 +1,5 @@
[audio]
backend = auto
backend = pulse
[config]
BoxartDisplayMode = yes

View file

@ -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

View file

@ -5,6 +5,5 @@
. /etc/profile
ARG=${1//[\\]/}
export SDL_AUDIODRIVER=alsa
echo "[${ARG}]"
minivmac

View file

@ -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"
;;
*)

View file

@ -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 &

View file

@ -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

View file

@ -18,6 +18,5 @@ else
fi
ARG=${1//[\\]/}
export SDL_AUDIODRIVER=alsa
jslisten set "-9 ppsspp"
${EMUPERF} ppsspp --pause-menu-exit "${ARG}"

View file

@ -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.

View file

@ -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..."

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -1 +0,0 @@
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"

View file

@ -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"

View file

@ -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}"

View file

@ -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

View file

@ -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() {

View file

@ -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

View 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

View file

@ -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/*
}

View 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}"

View file

@ -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}"

View file

@ -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}"

View file

@ -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}"

View file

@ -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}"

View file

@ -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

View file

@ -108,6 +108,7 @@ pre_configure_target(){
-DCLOCK_GETTIME=OFF \
-DRPATH=OFF \
-DRENDER_D3D=OFF \
-DPIPEWIRE=ON \
-DPULSEAUDIO=ON"
}

View file

@ -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"
;;

View file

@ -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
(

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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

View file

@ -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

View 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

View file

@ -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

View file

@ -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=""

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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=""

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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