Lakka-LibreELEC/packages/lakka/retroarch_base/retroarch/package.mk
Tomáš Kelemen 198dd04be7
RPi-Composite: initial commit (#2037)
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)
2025-03-07 01:09:47 +01:00

393 lines
18 KiB
Makefile

PKG_NAME="retroarch"
PKG_VERSION="ab3b175848fa6cd8b2340809631e30bc0fe1d136"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/RetroArch"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain freetype zlib ffmpeg libass libvdpau libxkbcommon glsl_shaders slang_shaders systemd libpng fontconfig"
PKG_LONGDESC="Reference frontend for the libretro API."
PKG_LR_UPDATE_TAG="yes"
PKG_CONFIGURE_OPTS_TARGET="--disable-vg \
--disable-sdl \
--disable-sdl2 \
--disable-ssl \
--enable-zlib \
--enable-freetype \
--enable-translate \
--enable-cdrom \
--enable-command \
--enable-kms \
--enable-egl \
--enable-ssl \
--enable-builtinmbedtls \
--datarootdir=${SYSROOT_PREFIX}/usr/share" # don't use host /usr/share!
PKG_MAKE_OPTS_TARGET="V=1 \
HAVE_LAKKA=1 \
HAVE_LAKKA_PROJECT="${DEVICE:-${PROJECT}}.${ARCH}" \
HAVE_LAKKA_SERVER="${LAKKA_UPDATE_SERVER_URL}" \
HAVE_CHEEVOS=1 \
HAVE_HAVE_ZARCH=0 \
HAVE_WIFI=1 \
HAVE_BLUETOOTH=1 \
HAVE_CLOUDSYNC=1 \
HAVE_SSL=1 \
HAVE_BUILTINMBEDTLS=1 \
HAVE_FREETYPE=1"
if [ "${PROJECT}" = "RPi" ]; then
if [ "${DEVICE}" = "RPi3" -o "${DEVICE}" = "RPi4" -o "${DEVICE}" = "RPi5" -o "${DEVICE: -10}" = "-Composite" ]; then
PKG_MAKE_OPTS_TARGET+=" HAVE_RETROFLAG=1"
fi
fi
if [ "${OPENGLES_SUPPORT}" = yes ]; then
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengles"
if [ "${DEVICE:0:4}" = "RPi4" ] || [ "${DEVICE:0:4}" = "RPi5" ] || [ "${DEVICE}" = "RK3288" ] || [ "${DEVICE}" = "RK3399" ] || [ "${PROJECT}" = "Generic" ] || [ "${DEVICE}" = "Odin" ]; then
PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengles3 \
--enable-opengles3_1"
if [ "${PROJECT}" = "Generic" ]; then
PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengles3_2"
fi
fi
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-opengles"
fi
if [ "${OPENGL_SUPPORT}" = yes -a ! "${OPENGLES_SUPPORT}" = "yes" ]; then
PKG_DEPENDS_TARGET+=" ${OPENGL}"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengl"
PKG_MAKE_OPTS_TARGET+=" HAVE_OPENGL1=1"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-opengl"
fi
if [ "${VULKAN_SUPPORT}" = yes ]; then
PKG_DEPENDS_TARGET+=" ${VULKAN}"
PKG_MAKE_OPTS_TARGET+=" HAVE_VULKAN=1"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-vulkan"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-vulkan"
fi
if [ "${DISPLAYSERVER}" != "no" ]; then
PKG_DEPENDS_TARGET+=" ${DISPLAYSERVER}"
fi
if [ "${DISPLAYSERVER}" = "x11" ]; then
PKG_DEPENDS_TARGET+=" libXxf86vm"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-x11 --enable-xinerama"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-x11"
fi
if [ "${DISPLAYSERVER}" = "wl" ]; then
PKG_DEPENDS_TARGET+=" wayland wayland-protocols"
PKG_MAKE_OPTS_TARGET+=" HAVE_WAYLAND=1"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-wayland"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-wayland"
fi
if [ "${PULSEAUDIO_SUPPORT}" = yes ]; then
PKG_DEPENDS_TARGET+=" pulseaudio"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-pulse"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-pulse"
fi
if [ "${ALSA_SUPPORT}" = yes ]; then
PKG_DEPENDS_TARGET+=" alsa-lib"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-alsa"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-alsa"
fi
if [[ "${TARGET_FPU}" =~ "neon" ]]; then
if [ "${ARCH}" = "arm" ]; then
PKG_CONFIGURE_OPTS+=" --enable-neon"
fi
fi
if [ "${DEVICE}" = "OdroidGoAdvance" ]; then
PKG_DEPENDS_TARGET+=" librga"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-odroidgo2"
fi
if [ "${OPENGLES}" = "bcm2835-driver" ]; then
PKG_CONFIGURE_OPTS_TARGET+=" --enable-videocore --enable-dispmanx"
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-kms/--disable-kms}
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-videocore"
fi
if [ "${PROJECT}" = "L4T" ]; then
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-kms/--disable-kms}
#EGL break gl1 support so if opengl enabled, force disable egl/gles
if [ "${OPENGL_SUPPORT}" = yes ]; then
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-egl/--disable-egl}
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-opengles3_1/}
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-opengles3_2/}
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-opengles3/}
PKG_CONFIGURE_OPTS_TARGET=${PKG_CONFIGURE_OPTS_TARGET//--enable-opengles/}
fi
if [ "${DEVICE}" = "Switch" ]; then
PKG_MAKE_OPTS_TARGET+=" HAVE_LAKKA_SWITCH=1"
fi
fi
pre_configure_target() {
TARGET_CONFIGURE_OPTS=""
cd ${PKG_BUILD}
}
pre_make_target() {
if [ "${OPENGLES}" = "bcm2835-driver" ]; then
CFLAGS+=" -I${SYSROOT_PREFIX}/usr/include/interface/vcos/pthreads \
-I${SYSROOT_PREFIX}/usr/include/interface/vmcs_host/linux"
fi
CFLAGS=${CFLAGS/"-Os"/"-O2"}
CFLAGS=${CFLAGS/"-O3"/"-O2"}
}
make_target() {
make ${PKG_MAKE_OPTS_TARGET}
make -C gfx/video_filters compiler=${CC} extra_flags="${CFLAGS}"
make -C libretro-common/audio/dsp_filters compiler=${CC} extra_flags="${CFLAGS}"
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -v ${PKG_BUILD}/retroarch ${INSTALL}/usr/bin
cp -v ${PKG_DIR}/scripts/lakka-*.sh ${INSTALL}/usr/bin
mkdir -p ${INSTALL}/usr/share/video_filters
cp -v ${PKG_BUILD}/gfx/video_filters/*.so ${INSTALL}/usr/share/video_filters
cp -v ${PKG_BUILD}/gfx/video_filters/*.filt ${INSTALL}/usr/share/video_filters
mkdir -p ${INSTALL}/usr/share/audio_filters
cp -v ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.so ${INSTALL}/usr/share/audio_filters
cp -v ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.dsp ${INSTALL}/usr/share/audio_filters
mkdir -p ${INSTALL}/usr/lib/retroarch
cp -v ${PKG_DIR}/scripts/retroarch-config ${INSTALL}/usr/lib/retroarch
# System overlay
mkdir -p ${INSTALL}/usr/share/retroarch/system
touch ${INSTALL}/usr/share/retroarch/system/.placeholder
# General configuration
local ra_config=${INSTALL}/etc/retroarch.cfg
mkdir -p ${INSTALL}/etc
cp ${PKG_DIR}/config/retroarch.cfg ${ra_config}
# Power settings
# Use ondemand for all RPi devices (for backwards compatibility?)
# and any battery powered device (OGA and RPi case)
if [ "${PROJECT}" = "RPi" ] || [ "${DEVICE}" = "OdroidGoAdvance" ]; then
sed -i ${ra_config} -e 's|^cpu_main_gov = .*|cpu_main_gov = "ondemand"|'
sed -i ${ra_config} -e 's|^cpu_menu_gov = .*|cpu_menu_gov = "ondemand"|'
sed -i ${ra_config} -e 's|^cpu_scaling_mode = .*|cpu_scaling_mode = "1"|'
fi
if [ "${PROJECT}" = "Samsung" -a "${DEVICE}" = "Exynos" ]; then
# workaround the 55fps bug
sed -i ${ra_config} -e 's|^audio_out_rate = .*|audio_out_rate = "44100"|'
fi
# OdroidGoAdvance
if [ "${DEVICE}" = "OdroidGoAdvance" ]; then
sed -i ${ra_config} -e 's|^xmb_layout = .*|xmb_layout = "2"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_auto = .*|menu_widget_scale_auto = "false"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_factor = .*|menu_widget_scale_factor = "2.250000"|'
fi
# RPiZero/RPiZero2 + GPiCase (1st Gen Retroflag GPiCase)
if [ "${DEVICE}" = "RPiZero-GPiCase" -o "${DEVICE}" = "RPiZero2-GPiCase" ]; then
sed -i ${ra_config} -e 's|^input_menu_toggle_gamepad_combo = .*|input_menu_toggle_gamepad_combo = "4"|'
sed -i ${ra_config} -e 's|^menu_driver = .*|menu_driver = "rgui"|'
sed -i ${ra_config} -e 's|^aspect_ratio_index = .*|aspect_ratio_index = "21"|'
sed -i ${ra_config} -e 's|^audio_device = .*|audio_device = "default:CARD=Headphones"|'
sed -i ${ra_config} -e 's|^audio_out_rate = .*|audio_out_rate = "44100"|'
sed -i ${ra_config} -e 's|^menu_enable_widgets = .*|menu_enable_widgets = "false"|'
sed -i ${ra_config} -e 's|^menu_timedate_enable = .*|menu_timedate_enable = "false"|'
sed -i ${ra_config} -e 's|^video_font_size = .*|video_font_size = "16.000000"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_auto = .*|menu_widget_scale_auto = "false"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_factor = .*|menu_widget_scale_factor = "1.750000"|'
if [ "${DEVICE}" = "RPiZero-GPiCase" ]; then
sed -i ${ra_config} -e 's|^video_threaded = .*|video_threaded = "false"|'
sed -i ${ra_config} -e 's|^video_scale_integer = .*|video_scale_integer = "true"|'
fi
if [ "${DEVICE}" = "RPiZero2-GPiCase" ]; then
sed -i ${ra_config} -e 's|^input_player1_analog_dpad_mode = .*|input_player1_analog_dpad_mode = "3"|'
fi
fi
# RPi Compute Module 4 + GPiCase2 (2nd Gen Retroflag GPiCase)
if [ "${DEVICE}" = "RPi4-GPiCase2" ]; then
sed -i ${ra_config} -e 's|^audio_device = .*|audio_device = "default:CARD=Device"|'
sed -i ${ra_config} -e 's|^audio_out_rate = .*|audio_out_rate = "44100"|'
sed -i ${ra_config} -e 's|^xmb_layout = .*|xmb_layout = "2"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_auto = .*|menu_widget_scale_auto = "false"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_factor = .*|menu_widget_scale_factor = "1.750000"|'
fi
# RPiZero2 + GPiCase2W (3rd Gen Retroflag GPiCase)
if [ "${DEVICE}" = "RPiZero2-GPiCase2W" ]; then
sed -i ${ra_config} -e 's|^audio_device = .*|audio_device = "default:CARD=Headphone"|'
sed -i ${ra_config} -e 's|^audio_out_rate = .*|audio_out_rate = "44100"|'
sed -i ${ra_config} -e 's|^xmb_layout = .*|xmb_layout = "2"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_auto = .*|menu_widget_scale_auto = "false"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_factor = .*|menu_widget_scale_factor = "1.750000"|'
fi
# PiBoy DMG / RetroDreamer
if [ "${DEVICE}" = "RPi4-PiBoyDmg" -o "${DEVICE}" = "RPi4-RetroDreamer" ]; then
sed -i ${ra_config} -e 's|^menu_timedate_enable = .*|menu_timedate_enable = "false"|'
sed -i ${ra_config} -e 's|^menu_scale_factor = .*|menu_scale_factor = "1.440000"|'
sed -i ${ra_config} -e 's|^input_menu_toggle_gamepad_combo = .*|input_menu_toggle_gamepad_combo = "4"|'
sed -i ${ra_config} -e 's|^menu_driver = .*|menu_driver = "ozone"|'
fi
# RPi-Composite
if [ "${PROJECT}" = "RPi" -a "${DEVICE: -10}" = "-Composite" ]; then
# copy font
mkdir -p ${INSTALL}/usr/share/retroarch/assets
cp -rv ${PKG_DIR}/files-composite/assets/* ${INSTALL}/usr/share/retroarch/assets
# copy shaders
mkdir -p ${INSTALL}/usr/share/retroarch/shaders
cp -rv ${PKG_DIR}/files-composite/shaders/* ${INSTALL}/usr/share/retroarch/shaders
# keep only relevant shader presets and shaders
if [ "${DEVICE:0:4}" = "RPi5" ]; then
rm -v ${INSTALL}/usr/share/retroarch/shaders/RPi-Composite/rpi3-4.{glslp,slangp}
rm -v ${INSTALL}/usr/share/retroarch/shaders/RPi-Composite/shaders/rpi3-4-composite-mmgb-vudiq.{glsl,slang}
else
rm -v ${INSTALL}/usr/share/retroarch/shaders/RPi-Composite/rpi5.{glslp,slangp}
rm -v ${INSTALL}/usr/share/retroarch/shaders/RPi-Composite/shaders/rpi5-composite-mmgb-vudiq.{glsl,slang}
fi
# copy global shader presets
mkdir -p ${INSTALL}/etc/retroarch/config
if [ "${DEVICE:0:4}" = "RPi5" ]; then
cp -v ${PKG_DIR}/files-composite/global-rpi5.glslp ${INSTALL}/etc/retroarch/config/global.glslp
cp -v ${PKG_DIR}/files-composite/global-rpi5.slangp ${INSTALL}/etc/retroarch/config/global.slangp
else
cp -v ${PKG_DIR}/files-composite/global-rpi34.glslp ${INSTALL}/etc/retroarch/config/global.glslp
cp -v ${PKG_DIR}/files-composite/global-rpi34.slangp ${INSTALL}/etc/retroarch/config/global.slangp
fi
# extract core configs
unzip ${PKG_DIR}/files-composite/config/core_configs.zip -d ${INSTALL}/etc/retroarch/config
# set dynamic recompiler on RPi3/4 for Mupen64plus-next
if [ "${DEVICE:0:4}" != "RPi5" ]; then
sed -i ${INSTALL}/etc/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.opt \
-e 's|^mupen64plus-cpucore = .*|mupen64plus-cpucore = "dynamic_recompiler"|'
fi
# use specific font for composite
sed -i ${ra_config} -e 's|^xmb_font = .*|xmb_font = "/tmp/assets/xmb/xmb_pixel_mmgb.ttf"|'
sed -i ${ra_config} -e 's|^video_font_path = .*|video_font_path = "/tmp/assets/xmb/xmb_pixel_mmgb.ttf"|'
# offset the xmb title to be within visible screen area
sed -i ${ra_config} -e 's|^menu_xmb_title_margin = .*|menu_xmb_title_margin = "8"|'
sed -i ${ra_config} -e 's|^menu_xmb_title_margin_horizontal_offset = .*|menu_xmb_title_margin_horizontal_offset = "3"|'
# show advanced settings
sed -i ${ra_config} -e 's|^menu_show_advanced_settings = .*|menu_show_advanced_settings = "true"|'
# show save core/game overrides menu
sed -i ${ra_config} -e 's|^quick_menu_show_save_core_overrides = .*|quick_menu_show_save_core_overrides = "true"|'
sed -i ${ra_config} -e 's|^quick_menu_show_save_game_overrides = .*|quick_menu_show_save_game_overrides = "true"|'
# hide menu sublabels - they are not legible anyway
sed -i ${ra_config} -e 's|^menu_show_sublabels = .*|menu_show_sublabels = "false"|'
# enable shaders
sed -i ${ra_config} -e 's|^video_shader_enable = .*|video_shader_enable = "true"|'
# turn on integer scaling
sed -i ${ra_config} -e 's|^video_scale_integer = .*|video_scale_integer = "true"|'
# rgui options
sed -i ${ra_config} -e 's|^rgui_aspect_ratio_lock = .*|rgui_aspect_ratio_lock = "2"|'
sed -i ${ra_config} -e 's|^menu_linear_filter = .*|menu_linear_filter = "true"|'
# hide RetroArch version - core name in bottom right corner
sed -i ${ra_config} -e 's|^menu_core_enable = .*|menu_core_enable = "false"|'
# set widget scale / disable auto scaling
sed -i ${ra_config} -e 's|^menu_widget_scale_auto = .*|menu_widget_scale_auto = "false"|'
sed -i ${ra_config} -e 's|^menu_widget_scale_factor = .*|menu_widget_scale_factor = "1.150000"|'
# turn off some distracting notifications
sed -i ${ra_config} -e 's|^notification_show_cheats_applied = .*|notification_show_cheats_applied = "false"|'
sed -i ${ra_config} -e 's|^notification_show_config_override_load = .*|notification_show_config_override_load = "false"|'
sed -i ${ra_config} -e 's|^notification_show_disk_control = .*|notification_show_disk_control = "false"|'
sed -i ${ra_config} -e 's|^notification_show_patch_applied = .*|notification_show_patch_applied = "false"|'
sed -i ${ra_config} -e 's|^notification_show_refresh_rate = .*|notification_show_refresh_rate = "false"|'
sed -i ${ra_config} -e 's|^notification_show_remap_load = .*|notification_show_remap_load = "false"|'
# Set audio to headphone jack for Pi3/4, Pi 5 must use USB soundcard for analog audio out
if listcontains "${DEVICE:0:4}" "(RPi3|RPi4)"; then
sed -i ${ra_config} -e 's|^audio_device = .*|audio_device = "default:CARD=Headphones"|'
fi
# Force this resolution for RPi5 to start in the right one
if [ "${DEVICE:0:4}" = "RPi5" ]; then
sed -i ${ra_config} -e 's|^video_fullscreen_x = .*|video_fullscreen_x = "721"|'
sed -i ${ra_config} -e 's|^video_fullscreen_y = .*|video_fullscreen_y = 480""|'
fi
# disable threaded video on RPi4 and RPi5
if [ "${DEVICE:0:4}" = "RPi4" -o "${DEVICE:0:4}" = "RPi5" ]; then
sed -i ${ra_config} -e 's|^video_threaded = .*|video_threaded = "false"|'
fi
# set video driver to glcore on RPi4/5
if listcontains "${DEVICE:0:4}" "(RPi4|RPi5)"; then
sed -i ${ra_config} -e 's|^video_driver = .*|video_driver = "glcore"|'
fi
fi
# iMX6
if [ "${PROJECT}" = "NXP" -a "${DEVICE}" = "iMX6" ]; then
sed -i ${ra_config} -e 's|^audio_device = .*|audio_device = "default:CARD=DWHDMI"|'
sed -i ${ra_config} -e 's|^audio_enable_menu = .*|audio_enable_menu = "true"|'
sed -i ${ra_config} -e 's|^audio_enable_menu_ok = .*|audio_enable_menu_ok = "true"|'
sed -i ${ra_config} -e 's|^audio_enable_menu_cancel = .*|audio_enable_menu_cancel = "true"|'
sed -i ${ra_config} -e 's|^audio_enable_menu_notice = .*|audio_enable_menu_notice = "true"|'
fi
# Switch
if [ "${PROJECT}" = "L4T" -a "${DEVICE}" = "Switch" ] || [ "${PROJECT}" = "Ayn" -a "${DEVICE}" = "Odin" ]; then
sed -i ${ra_config} -e 's|^menu_pointer_enable = .*|menu_pointer_enable = "true"|'
sed -i ${ra_config} -e 's|^video_crop_overscan = .*|video_crop_overscan = "false"|'
if [ ! "${PROJECT}" = "Ayn" -a ! "${DEVICE}" = "Odin" ]; then
sed -i ${ra_config} -e 's|^video_hard_sync = .*|video_hard_sync = "true"|'
fi
sed -i ${ra_config} -e 's|^input_driver = .*|input_driver = "x"|'
sed -i ${ra_config} -e 's|^video_smooth = .*|video_smooth = "true"|'
sed -i ${ra_config} -e 's|^menu_driver = .*|menu_driver = "ozone"|'
if [ ! "${PROJECT}" = "Ayn" -a ! "${DEVICE}" = "Odin" ]; then
#Set Joypad as joypad with analog
sed -i ${ra_config} -e 's|^input_device_p1 = .*|input_device_p1 = "5"|'
else
sed -i ${ra_config} -e 's|^video_river = .*|video_driver = "glcore"|'
sed -i ${ra_config} -e 's|^audio_driver = .*|audio_driver = "pulse"|'
sed -i ${ra_config} -e 's|^video_vsync = .*|video_vsync = "false"|'
fi
#HACK: Temporary hack for touchscreen
sed -i ${ra_config} -e 's|^video_windowed_fullscreen = .*|video_windowed_fullscreen = "true"|'
fi
# create default environment file
echo "HOME=/storage" >> ${INSTALL}/usr/lib/retroarch/retroarch-env.conf
if [ "${DISPLAYSERVER}" = "x11" ]; then
echo "DISPLAY=:0.0" >> ${INSTALL}/usr/lib/retroarch/retroarch-env.conf
elif [ "${DISPLAYSERVER}" = "wl" ]; then
echo "WAYLAND_DISPLAY='wayland-1'" >> ${INSTALL}/usr/lib/retroarch/retroarch-env.conf
echo "SWAYSOCK='/var/run/0-runtime-dir/sway-ipc.0.sock'" >> ${INSTALL}/usr/lib/retroarch/retroarch-env.conf
echo "XDG_RUNTIME_DIR='/var/run/0-runtime-dir'" >> ${INSTALL}/usr/lib/retroarch/retroarch-env.conf
fi
}
post_install() {
enable_service retroarch.target
enable_service tmp-cores.mount
enable_service tmp-joypads.mount
enable_service tmp-database.mount
enable_service tmp-assets.mount
enable_service tmp-shaders.mount
enable_service tmp-overlays.mount
enable_service tmp-system.mount
enable_service retroarch-autostart.service
enable_service retroarch.service
}