this brings images suited to work OOB for RPi3/4/5 with CRT TV sets. it
comes with preconfigured shaders, core options, readable font, ...
see https://www.lakka.tv/articles/2024/05/02/rpi-composite/
- add new RPiX-Composite devices under RPi project
- RPi3/4-Composite use own kernel config
- RPi5-Composite uses kernel config of RPi5
- remove linux.arm.conf broken symlinks from some devices
- move VULKAN enable to device options
- add splash screens for 480/576 height
- glibc: match kernel version for RPi3/4 (using 5.10.y with "fake" 240p
patch)
- adjust DEVICE conditions to only match first 4 characters / first 4
characters + wildcard (various places)
- add specific assets, configs, shaders in retroarch package
- retroarch: adjust default configuration
- linux: add 5.10.y kernel (used by RPi3/4-Composite, see above)
- linux: add patches for 5.10.y kernel
- mkimage: add additional information into cmdline.txt and
retroarch-overrides.txt
- firstboot.sh: add output (logged in fs-resize.log)
- firstboot.sh: prepend processed overrides with hash
- firstboot.sh: copy core configurations to storage partition
- firstboot.sh: rework wifi autoconfig script
- retroarch: add full default config file and apply changes in the
package file directly to the config for individual systems (solves
some issues with core/game overrides when there is no value in the
config and user creates overrides in first run of retroarch, then
these overrides are also stored in default config)
- retroflag_picase_safeshutdown
- remove copy service (is copied automatically)
- enable the service
- start the service only when specific files exists
- RPi3/4/5: add RetroArch patch that adds menu item under Settings ->
Services to enable/disable the service
- retroarch: enable HAVE_RETROFLAG for RPi3/4/5
- all libretro cores updated to latest version
- RetroArch updated to 1.20.0
- assets, core-infos, joypad configs, shaders, overlays, databases
updated to latest version
- easyrpg: removed patch merged upstream, switched to latest commit
instead of tag
- liblcf: updated to latest version (dep of easyrpg)
- libinih: new dep of liblcf/easyrpg
- mame: updated patch for crosscompilation
- mupen64_plus_next: updated patch for gcc14 buildfix
- picodrive: dropped patch merged upstream
- retroarch: updated patch for saving to default config
- retroarch: drop libXv dep for x11 build (pkg was removed)
- ppsspp: drop old patch
- snes9x2002: dropped ARM_ASM=1 from make options for RPi0/1
- fbalpha2012: add buildfix patch
- yabasanshiro: dropped patch for RPi5 merged upstream
- yabasanshiro: added patch with function declaration
- yabasanshiro: re-enable for most targets
instead of relying on values in retroarch or parsing files to determine
the full URL to download updates, it is more flexibile to set these
values at build time to the current needs. much easier maintenance of
future changes (no need to change in retroarch code base), when e.g. URL
for devel or nightly builds will change (or even for releases). also
community members can set up their own update for their community builds
without the need to patch retroarch.
usage:
at build time add e.g. LAKKA_BUILD_TYPE=<type>, where type can be
release, nightly or devel (can be expanded in future) and based on the
build type matching URL will be set.
or add LAKKA_UPDATE_SERVER_URL=http://some.site/path/to/updates and this
URL will be used.
examples
make image LAKKA_BUILD_TYPE=nightly PROJECT=... DEVICE=... ARCH=...
make image LAKKA_UPDATE_SERVER_URL=... PROJECT=... ...
cheats are part of libretro database package, so after overlay for
/tmp/database is created, the cheats are in the cht subfolder. there is
no need for the tmp-cheats.mount units.
following cores were not updated and removed from build, as they fail to
build with old as well as updated:
- citra
- dolphin
- easyrpg
- mame
- mupen64plus_next
- pcsx2
- ppsspp
- same_cdi
build tested only for Generic.x86_64
* retroarch: fix assets mount source
* retroarch: change /usr/share/retroarch-system to /usr/share/retroarch/system to match other mounts
* retroarch: change /usr/share/retroarch-overlays to /usr/share/retroarch/overlays
* Initial fully buildable/bootable Odin Support
* Rework NX-Boot to FAT32 Boot for shared usage between switch and odin
* Move shared packages from switch/odin to main packages folder
another update, as RetroArch tag for 1.10.2 was updated
- update RetroArch to (newly tagged) 1.10.2
- update cores / database / asseets / ... to latest
- update RetroArch to 1.10.2 and drop patch merged upstream
- RetroArch: disable core system files downloader (included in image)
- update almost all cores to their latest version
- drop duckstation core
- modify libretro_update.sh script to allow for updates to latest tagged commit
- modify some packages to use latest tag during automated update
- update liblcf to 0.7.0 (EasyRPG dependency) and drop patches
- do not rename `genesis_plus_gx_wide_libretro.so` to `genesis_plus_gx_libretro.so` in the install path
we used lot of `sed` to replace stuff in the supplied config file. as it
is not predictable, how the config file may change in the future, it is
safer just to create default config file from scratch. the supplied
config file did not set any option anyway.
* Update L4T encoder/decoder to latest version which is 70% faster at 1080p
* Add vulkan support to ffmpeg
* Add vitaquake3 and boom3 cores for switch builds
These cores are considered broken, but starting, so maybe in the future they will be more reliable.
* Run dock-hotplug before starting retroarch.
This Will properly force DPI if booted on dock, and audio switching. It also has the added bonus of force fixing audio issues where speakers randomly dont work on boot."
* Update Kernel Repos
* update libglvnd
* update xf86-video-nouveau
* Build mesa properly in L4T LibreELEC builds.
* Update L4T build config for retroarch to fix building with support for EGL/openGLES.
While L4T supports EGL/OpenGLES, and the issue building for it is fixed,
we arent switching now though because moonlight core doesnt support it.
* Exclude moonlight core in Lakka builds that use openGLES over openGL, as openGLES is not supported
* Use openGLES in LibreELEC builds, as that is what upstream is targeting
* Update kernel Config/patches for CEC support
* Add base CEC support to dock-hotplug, and make so support can be disabled via uenv.txt
* Add working libcec package for L4T, and enable CEC support in packages.
* Fix pulseaudio-alsa routing
This fixes using other audio backends(Alsathread, Alsa, TinyAlsa) in retroarch via dock or bluetooth.
* Downgrade GCC in L4T builds
This fixes issues revolving around undefined symbol: __aarch64_ldadd4_acq_rel issue with gcc 10
* Fix updater for switch builds
Only tested working with tar archives.
* Edit retroarch default settings for the switch.
* Fix pulseaudio changing sink volume issues.