Merge remote-tracking branch 'upstream/dev' into parallelPlusSimpleHack

This commit is contained in:
Nicholas Ricciuti 2023-06-14 11:52:23 -04:00
commit 68edba2fdb
No known key found for this signature in database
GPG key ID: 079A5AB9E5CAFE2D
99 changed files with 8621 additions and 7113 deletions

View file

@ -3,7 +3,7 @@ SYSTEM_FULLNAME="Screenshots"
SYSTEM_MANUFACTURER="Various"
SYSTEM_RELEASE="2021"
SYSTEM_HARDWARE="system"
SYSTEM_PATH="/roms/screenshots"
SYSTEM_PATH="/storage/roms/screenshots"
SYSTEM_EXTENSION=".jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi"
SYSTEM_COMMAND="/usr/bin/true"
SYSTEM_PLATFORM="imageviewer"

View file

@ -5,6 +5,6 @@ SYSTEM_RELEASE="2021"
SYSTEM_HARDWARE="system"
SYSTEM_PATH="/storage/roms/moonlight/"
SYSTEM_EXTENSION=".sh .SH"
SYSTEM_COMMAND="%ROM%"
SYSTEM_COMMAND="/bin/sh %ROM%"
SYSTEM_PLATFORM="moonlight"
SYSTEM_THEME="moonlight"

View file

@ -1,10 +0,0 @@
SYSTEM_NAME="solarus"
SYSTEM_FULLNAME="Solarus"
SYSTEM_MANUFACTURER="Solarus"
SYSTEM_RELEASE="2020"
SYSTEM_HARDWARE="game engine"
SYSTEM_PATH="/storage/roms/solarus"
SYSTEM_EXTENSION=".solarus"
SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\""
SYSTEM_PLATFORM="solarus"
SYSTEM_THEME="solarus"

View file

@ -1798,6 +1798,16 @@ EOF
xmlstarlet fo -t ${ESTMP}/.es_systems.cfg >${ESTMP}/es_systems.cfg 2>/dev/null
}
add_system_dir() {
if [ ! -d "${ESTMP}" ]
then
mkdir "${ESTMP}"
fi
cat <<EOF >>${ESTMP}/${DISTRO}-system-dirs.conf
d ${1} 0777 root root - -
EOF
}
add_es_system() {
if [ -e "${ROOT}/config/emulators/${1}.conf" ]
then
@ -1827,6 +1837,8 @@ add_es_system() {
EOF
fi
add_system_dir "${SYSTEM_PATH}"
if [ -e "${ESTMP}/${SYSTEM_NAME}-emulators.tmp" ]
then
while read -r line

10
packages/apps/moonlight/autostart/010-moonlight Normal file → Executable file
View file

@ -2,8 +2,14 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
FBWIDTH=$(fbset | awk '/geometry/ {print $2}')
FBHEIGHT=$(fbset | awk '/geometry/ {print $2}')
FBWIDTH=$(fbset | awk '/geometry/ {print $3}')
if [ ! -f "/storage/.config/moonlight/moonlight.conf" ]
then
mkdir -p /storage/.config/moonlight
cp /usr/config/moonlight/moonlight.conf /storage/.config/moonlight/moonlight.conf
fi
sed -i "s#@MWIDTH@#${FBWIDTH}#g" /storage/.config/moonlight/moonlight.conf
sed -i "s#@MHEIGHT@#${FBHEIGHT}#g" /usr/config/moonlight/moonlight.conf
sed -i "s#@MHEIGHT@#${FBHEIGHT}#g" /storage/.config/moonlight/moonlight.conf

View file

@ -2,7 +2,7 @@
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
PKG_NAME="portmaster"
PKG_VERSION="e0dcefc4fc2df80821b167b1bb8f50dedac2f3c5"
PKG_VERSION="7a4cddfdfc2fbbe631b53c8e4c418186fadc939f"
PKG_SITE="https://github.com/christianhaitian/PortMaster"
PKG_LICENSE="MIT"
PKG_ARCH="arm aarch64"

View file

@ -76,6 +76,10 @@ fi
$WGET -t 3 -T 60 --no-check-certificate "$website"ports.md -O /dev/shm/portmaster/pports.md
$WGET -t 3 -T 60 --no-check-certificate "$jwebsite"jports.md -O /dev/shm/portmaster/jports.md
#JELOS has moonlight built in, dont use PortMaster's version.
sed -i '/Title="Moonlight ."/d' /dev/shm/portmaster/pports.md
#Combine PortMaster with JelosAddOns
cat /dev/shm/portmaster/pports.md /dev/shm/portmaster/jports.md > /dev/shm/portmaster/ports.md
PortInfoInstall() {

View file

@ -2,7 +2,7 @@
# Copyright (C) 2023-present Fewtarius
PKG_NAME="box64"
PKG_VERSION="f4c8c295107e0c1af7c3ef033d5880daca61992c"
PKG_VERSION="4110956ddaf3c58a1e8e50aa7adba2ed43e3a6b7"
PKG_ARCH="aarch64"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/ptitSeb/box64"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2023-present Fewtarius
PKG_NAME="box86"
PKG_VERSION="1988eb0366d34d4dbb4bcbc7ba32ac3b579ba2ea"
PKG_VERSION="5cdc1b9fa2238938e49176fcd937a1294c55a03d"
PKG_ARCH="arm aarch64"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/ptitSeb/box86"

View file

@ -0,0 +1,28 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2017 Escalade
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="cups"
PKG_VERSION="2.4.2"
PKG_SHA256="7095b2977bb728ded5566a5c802866062840d6541fd027836865949a407c3682"
PKG_LICENSE="GPL"
PKG_SITE="http://www.cups.org"
PKG_URL="https://github.com/openprinting/cups/archive/v${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain gnutls zlib"
PKG_LONGDESC="CUPS printing system."
PKG_BUILD_FLAGS="+pic -sysroot"
PKG_CONFIGURE_OPTS_TARGET="--libdir=/usr/lib \
--disable-gssapi \
--with-dnssd=no \
--with-tls=gnutls
--disable-unit-tests"
pre_configure_target() {
cd ..
rm -rf .${TARGET_NAME}
}
makeinstall_target() {
make BUILDROOT="${INSTALL}" install
}

View file

@ -7,27 +7,31 @@ PKG_LICENSE="GPL"
PKG_SITE="https://git.kernel.org/pub/scm/libs/libtrace/${PKG_NAME}.git/log/"
PKG_URL="https://git.kernel.org/pub/scm/libs/libtrace/${PKG_NAME}.git/snapshot/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_HOST="ccache:host"
PKG_DEPENDS_TARGET="toolchain linux"
PKG_DEPENDS_TARGET="toolchain libtraceevent:host linux:host"
PKG_LONGDESC="Provides APIs to access kernel tracepoint events."
PKG_BUILD_FLAGS="+pic"
#PKG_BUILD_FLAGS="+pic"
makeinstall_host() {
mkdir -p ${TOOLCHAIN}/lib
cp lib/${PKG_NAME}.a ${TOOLCHAIN}/lib
mkdir -p ${TOOLCHAIN}/include
cp include/traceevent/* ${TOOLCHAIN}/include
mkdir -p ${TOOLCHAIN}/include/traceevent
cp include/traceevent/* ${TOOLCHAIN}/include/traceevent
mkdir -p ${TOOLCHAIN}/lib/pkgconfig
cp ${PKG_NAME}.pc ${TOOLCHAIN}/lib/pkgconfig
}
pre_make_target() {
make clean
}
makeinstall_target() {
mkdir -p ${SYSROOT_PREFIX}/usr/lib
cp lib/${PKG_NAME}.a ${SYSROOT_PREFIX}/usr/lib
mkdir -p ${SYSROOT_PREFIX}/usr/include
cp include/traceevent/* ${SYSROOT_PREFIX}/usr/include
mkdir -p ${SYSROOT_PREFIX}/usr/include/traceevent
cp include/traceevent/* ${SYSROOT_PREFIX}/usr/include/traceevent
mkdir -p ${SYSROOT_PREFIX}/usr/lib/pkgconfig
cp ${PKG_NAME}.pc ${SYSROOT_PREFIX}/usr/lib/pkgconfig

View file

@ -0,0 +1,86 @@
diff -rupN libtracefs-1.6.4.orig/include/tracefs.h libtracefs-1.6.4/include/tracefs.h
--- libtracefs-1.6.4.orig/include/tracefs.h 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/include/tracefs.h 2023-06-13 12:09:43.902967775 +0000
@@ -8,7 +8,7 @@
#include <fcntl.h>
#include <sched.h>
-#include <event-parse.h>
+#include <traceevent/event-parse.h>
char *tracefs_get_tracing_file(const char *name);
void tracefs_put_tracing_file(char *name);
diff -rupN libtracefs-1.6.4.orig/src/tracefs-events.c libtracefs-1.6.4/src/tracefs-events.c
--- libtracefs-1.6.4.orig/src/tracefs-events.c 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/src/tracefs-events.c 2023-06-13 12:10:21.580262836 +0000
@@ -15,7 +15,7 @@
#include <fcntl.h>
#include <limits.h>
-#include <kbuffer.h>
+#include <traceevent/kbuffer.h>
#include "tracefs.h"
#include "tracefs-local.h"
diff -rupN libtracefs-1.6.4.orig/src/tracefs-filter.c libtracefs-1.6.4/src/tracefs-filter.c
--- libtracefs-1.6.4.orig/src/tracefs-filter.c 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/src/tracefs-filter.c 2023-06-13 12:11:35.919870363 +0000
@@ -6,7 +6,7 @@
* Copyright (C) 2021, VMware, Tzvetomir Stoyanov <tz.stoyanov@gmail.com>
*
*/
-#include <trace-seq.h>
+#include <traceevent/trace-seq.h>
#include <stdlib.h>
#include <ctype.h>
#include <errno.h>
diff -rupN libtracefs-1.6.4.orig/src/tracefs-record.c libtracefs-1.6.4/src/tracefs-record.c
--- libtracefs-1.6.4.orig/src/tracefs-record.c 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/src/tracefs-record.c 2023-06-13 12:10:28.989358796 +0000
@@ -13,7 +13,7 @@
#include <sys/ioctl.h>
#include <sys/select.h>
-#include <kbuffer.h>
+#include <traceevent/kbuffer.h>
#include "tracefs.h"
#include "tracefs-local.h"
diff -rupN libtracefs-1.6.4.orig/src/tracefs-sqlhist.c libtracefs-1.6.4/src/tracefs-sqlhist.c
--- libtracefs-1.6.4.orig/src/tracefs-sqlhist.c 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/src/tracefs-sqlhist.c 2023-06-13 12:11:26.398318407 +0000
@@ -6,7 +6,7 @@
* Copyright (C) 2021, VMware, Tzvetomir Stoyanov <tz.stoyanov@gmail.com>
*
*/
-#include <trace-seq.h>
+#include <traceevent/trace-seq.h>
#include <stdlib.h>
#include <stdarg.h>
#include <ctype.h>
diff -rupN libtracefs-1.6.4.orig/src/tracefs-utils.c libtracefs-1.6.4/src/tracefs-utils.c
--- libtracefs-1.6.4.orig/src/tracefs-utils.c 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/src/tracefs-utils.c 2023-06-13 12:09:51.235958151 +0000
@@ -15,8 +15,8 @@
#include <unistd.h>
#include <errno.h>
-#include <event-parse.h>
-#include <event-utils.h>
+#include <traceevent/event-parse.h>
+#include <traceevent/event-utils.h>
#include "tracefs.h"
#include "tracefs-local.h"
diff -rupN libtracefs-1.6.4.orig/utest/tracefs-utest.c libtracefs-1.6.4/utest/tracefs-utest.c
--- libtracefs-1.6.4.orig/utest/tracefs-utest.c 2023-06-13 12:06:07.781799063 +0000
+++ libtracefs-1.6.4/utest/tracefs-utest.c 2023-06-13 12:10:13.095028045 +0000
@@ -12,7 +12,7 @@
#include <dirent.h>
#include <ftw.h>
#include <libgen.h>
-#include <kbuffer.h>
+#include <traceevent/kbuffer.h>
#include <pthread.h>
#include <sys/mount.h>

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-lynx-lr"
PKG_VERSION="f88769ec9fdf02e7cd7bfa2e9b81627bbc537eb2"
PKG_VERSION="2ce6244d04e45718df16f1fd05a4d7613ed54db0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="core-info"
PKG_VERSION="53cf9b264a8d04e491cef2d6f61b3cfd0803bd70"
PKG_VERSION="c2863bcad30809d603fed8708dc759af3c539488"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/libretro-core-info"
PKG_URL="https://github.com/libretro/libretro-core-info/archive/${PKG_VERSION}.tar.gz"

View file

@ -4,7 +4,7 @@
# Copyright (C) 2023-present Fewtarius
PKG_NAME="fbneo-lr"
PKG_VERSION="f07d37f1daaa964527413e4c74b303bb64ef5ca8"
PKG_VERSION="ba56e6e74558b00391628a6988c4d4e4c88858ce"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -21,7 +21,7 @@
################################################################################
PKG_NAME="genesis-plus-gx-lr"
PKG_VERSION="c19f4fe495e9deb66d7a2cf6027a2fb43226ed7d"
PKG_VERSION="e50eaa6d698b401f381c46f90b922cc6b1ae1970"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="genesis-plus-gx-wide-lr"
PKG_VERSION="e7878ba7a343b90cd42b79722f63622643293682"
PKG_VERSION="08bc39b8bb1fb8b3c541c4b99119458c6294df11"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -21,7 +21,7 @@
################################################################################
PKG_NAME="glsl-shaders"
PKG_VERSION="85ba4c2387dec84a9d3d82747c3ec905e29cf820"
PKG_VERSION="6c6e074730f3e5f16edad7e91bee2e9bd84953d1"
PKG_REV="1"
PKG_ARCH="aarch64"
PKG_LICENSE="GPL"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="libretro-database"
PKG_VERSION="b04261407401df7b8edb4c11df76ecdce58341e9"
PKG_VERSION="90a33aa566022437ae08b139efa5ef9a1eb6eb91"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -21,7 +21,7 @@
################################################################################
PKG_NAME="mame2003-plus-lr"
PKG_VERSION="13e588ec3b53e76d46200016b6c0e4599a0019be"
PKG_VERSION="56be1182df7333513538dcb7cf6a0cac15d732f3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="MAME"

View file

@ -1,5 +1,5 @@
PKG_NAME="picodrive-lr"
PKG_VERSION="71191676ad118f029f7b8f5fa53ce646d7a08120"
PKG_VERSION="8ee2ca91bc26a2e173989e13f639b2f9bcd9c84b"
PKG_LICENSE="MAME"
PKG_SITE="https://github.com/libretro/picodrive"
PKG_URL="${PKG_SITE}.git"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="ppsspp-lr"
PKG_VERSION="7bb1c9e3c44615ffa54c3cab384a93c7fb3b2dfe"
PKG_VERSION="5ae9c9c64e5605881a3e3f5bc43ec39271dc9b2f"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/hrydgard/ppsspp"
PKG_URL="https://github.com/hrydgard/ppsspp.git"

View file

@ -21,7 +21,7 @@
################################################################################
PKG_NAME="puae-lr"
PKG_VERSION="7d46c164a1e2a98133de376af65b9116b6cf27a8"
PKG_VERSION="605264f15d31c42b1fe546fd47a6ffb1301c03c8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="slang-shaders"
PKG_VERSION="24dc90eb1aa848a675e1073a64a8d34c10259f1b"
PKG_VERSION="9a632e837030503fee15007980455834866a4812"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="stella-lr"
PKG_VERSION="2c661184c7e18ba4b73dfe6dca1878c3a8ca32ab"
PKG_VERSION="ee13c16930e2f43bf68dd86425356d4081c81eb0"
PKG_REV="1"
PKG_LICENSE="GPL2"
PKG_SITE="https://github.com/stella-emu/stella"

View file

@ -21,7 +21,7 @@
################################################################################
PKG_NAME="vice-lr"
PKG_VERSION="a7d434fb7a6eadefccaffe57f60ced543945b4f3"
PKG_VERSION="83c501343f1976628c2647ac203700643a55351a"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -163,5 +163,7 @@ fi
#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

@ -9,6 +9,7 @@
# Ensure we're using pulseaudio
rr_audio.sh pulseaudio
export SDL_AUDIODRIVER=pulseaudio
jslisten set "-9 cemu"
BTTIMEOUT=10
BTTESTCOUNT=0

View file

@ -4,6 +4,7 @@
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 citra"
if [ ! -d "/storage/.config/citra-emu" ]; then
mkdir -p "/storage/.config/citra-emu"

View file

@ -4,6 +4,7 @@
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 dolphin-emu-nogui"
#Check if dolphin-emu exists in .config
if [ ! -d "/storage/.config/dolphin-emu" ]; then
@ -11,6 +12,11 @@ if [ ! -d "/storage/.config/dolphin-emu" ]; then
cp -r "/usr/config/dolphin-emu" "/storage/.config/"
fi
#Check if GC controller profile exists in .config/dolphin-emu
if [ ! -f "/storage/.config/dolphin-emu/GCPadNew.ini" ]; then
cp -r /usr/config/dolphin-emu/GCPadNew.ini.south /storage/.config/dolphin-emu/GCPadNew.ini
fi
#Check if GC custom controller profile exists in .config/dolphin-emu
if [ ! -f "/storage/.config/dolphin-emu/Custom_GCPadNew.ini" ]; then
cp -r "/usr/config/dolphin-emu/GCPadNew.ini.south" "/storage/.config/dolphin-emu/Custom_GCPadNew.ini"

View file

@ -4,6 +4,7 @@
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 dolphin-emu-nogui"
#Check if dolphin-emu exists in .config
if [ ! -d "/storage/.config/dolphin-emu" ]; then
@ -11,13 +12,18 @@ if [ ! -d "/storage/.config/dolphin-emu" ]; then
cp -r "/usr/config/dolphin-emu" "/storage/.config/"
fi
#Check if Wii controller profile exists in .config/dolphin-emu
if [ ! -f "/storage/.config/dolphin-emu/WiimoteNew.ini" ]; then
cp -r "/usr/config/dolphin-emu/WiiControllerProfiles/vremote.ini" "/storage/.config/dolphin-emu/WiimoteNew.ini"
fi
#Check if Wii custom controller profile exists in .config/dolphin-emu
if [ ! -f "/storage/.config/dolphin-emu/Custom_WiimoteNew.ini" ]; then
cp -r "/usr/config/dolphin-emu/WiiControllerProfiles/remote.ini" "/storage/.config/dolphin-emu/Custom_WiimoteNew.ini"
fi
#Gamecube controller profile needed for hotkeys to work
cp -r "/usr/config/dolphin-emu/GCPadNew.ini" "/storage/.config/dolphin-emu/GCPadNew.ini"
cp -r "/usr/config/dolphin-emu/GCPadNew.ini.south" "/storage/.config/dolphin-emu/GCPadNew.ini"
#Link Save States to /roms/savestates/wii
if [ ! -d "/storage/roms/savestates/wii/" ]; then

View file

@ -1,344 +0,0 @@
# This is the configuration file for DOSBox SDL2. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb, opengl, openglnb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen=true
# Note that VSYNC is be very demanding
vsync=false
fullresolution=0x0
windowresolution=original
output=texture
# Place shaders in /storage/.config/dosbox/shaders
gl.shader=crt-easymode
texture.renderer=auto
autolock=true
sensitivity=100
waitonerror=true
priority=highest,highest
# Input mapper file is looked for in the same directory as the specified conf
mapperfile=example.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language=
machine=svga_s3
captures=capture
memsize=16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=true
scaler=none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=44100
blocksize=1024
prebuffer=20
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401=intelligent
mididevice=mt32
midiconfig=
# Place MT-32 roms here
mt32.romdir=/storage/roms/bios
mt32.reverse.stereo=false
mt32.verbose=false
mt32.thread=false
mt32.chunk=16
mt32.prebuffer=32
mt32.partials=32
mt32.dac=0
mt32.analog=2
mt32.reverb.mode=auto
mt32.reverb.time=5
mt32.reverb.level=3
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=true
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
# Place GUS files in /storage/roms/dos/ULTRASND
ultradir=C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
joysticktype=fcs
timed=true
autofire=false
swap34=false
buttonwrap=false
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.
mount c /storage/roms/dos
c:
cd example
example.exe
#exit

View file

@ -1,327 +0,0 @@
# This is the configuration file for DOSBox SDL2. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb, opengl, openglnb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen=true
# Note that VSYNC is be very demanding
vsync=false
fullresolution=0x0
windowresolution=original
output=texture
# Place shaders in /storage/.config/dosbox/shaders
gl.shader=crt-easymode
texture.renderer=auto
autolock=true
sensitivity=100
waitonerror=true
priority=highest,highest
# Input mapper file is looked for in the same directory as the specified conf
mapperfile=example.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language=
machine=svga_s3
captures=capture
memsize=16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=true
scaler=none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=44100
blocksize=1024
prebuffer=20
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401=intelligent
# FluidSynth Software Synthesizer
mididevice=fluidsynth
fluid.driver=pulseaudio
fluid.soundfont=/usr/share/soundfonts/GeneralUser.sf2
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=true
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
# Place GUS files in /storage/roms/dos/ULTRASND
ultradir=C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
joysticktype=fcs
timed=true
autofire=false
swap34=false
buttonwrap=false
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.

View file

@ -1,357 +0,0 @@
# This is the configuration file for DOSBox SVN. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.On Windows 10 with display scaling (Scale and layout) set to a value above 100%, it is recommended
# to use a lower full/windowresolution, in order to avoid window size problems.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity. The optional second parameter specifies vertical sensitivity (e.g. 100,-50).
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen = true
vsync = false
fullresolution = 0x0
windowresolution = original
output = texturenb
gl.shader =
texture.renderer = auto
autolock = true
sensitivity = 100
waitonerror = true
priority = higher,normal
mapperfile = mapper-sdl2-SVN.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language =
machine = svga_s3
captures = capture
memsize = 16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# To fit a scaler in the resolution used at full screen may require a border or side bars,
# to fill the screen entirely, depending on your hardware, a different scaler/fullresolution might work.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip = 0
aspect = true
scaler = none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core = auto
cputype = auto
cycles = auto
cycleup = 10
cycledown = 20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound = false
rate = 44100
blocksize = 1024
prebuffer = 25
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, fluidsynth, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id or part of the name of the device you want to use (find the id/name with mixer/listmidi).
# Or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# fluid.driver: Driver to use with Fluidsynth, not needed under Windows. Available drivers depend on what Fluidsynth was compiled with
# Possible values: pulseaudio, alsa, oss, coreaudio, dsound, portaudio, sndman, jack, file, default.
# fluid.soundfont: Soundfont to use with Fluidsynth. One must be specified.
# fluid.samplerate: Sample rate to use with Fluidsynth.
# fluid.gain: Fluidsynth gain.
# fluid.polyphony: Fluidsynth polyphony.
# fluid.cores: Fluidsynth CPU cores to use, default.
# fluid.periods: Fluidsynth periods.
# fluid.periodsize: Fluidsynth period size.
# fluid.reverb: Fluidsynth use reverb.
# Possible values: no, yes.
# fluid.chorus: Fluidsynth use chorus.
# Possible values: no, yes.
# fluid.reverb,roomsize: Fluidsynth reverb room size.
# fluid.reverb.damping: Fluidsynth reverb damping.
# fluid.reverb.width: Fluidsynth reverb width.
# fluid.reverb.level: Fluidsynth reverb level.
# fluid.chorus.number: Fluidsynth chorus voices
# fluid.chorus.level: Fluidsynth chorus level.
# fluid.chorus.speed: Fluidsynth chorus speed.
# fluid.chorus.depth: Fluidsynth chorus depth.
# fluid.chorus.type: Fluidsynth chorus type. 0 is sine wave, 1 is triangle wave.
# Possible values: 0, 1.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401 = intelligent
# FluidSynth Software Synthesizer
mididevice = fluidsynth
fluid.driver = pulseaudio
fluid.soundfont = /usr/share/soundfonts/GeneralUser.sf2
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast, mame.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype = sb16
sbbase = 220
irq = 7
dma = 1
hdma = 5
sbmixer = true
oplmode = auto
oplemu = default
oplrate = 44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus = false
gusrate = 44100
gusbase = 240
gusirq = 5
gusdma = 3
ultradir = C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker = true
pcrate = 44100
tandy = auto
tandyrate = 44100
disney = true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. Can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
# circularinput: enable translation of circular input to square output.
# Try enabling this if your left analog stick can only move in a circle.
# deadzone: the percentage of motion to ignore. 100 turns the stick into a digital one.
joysticktype = auto
timed = true
autofire = false
swap34 = false
buttonwrap = false
circularinput = false
deadzone = 10
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1 = dummy
serial2 = dummy
serial3 = disabled
serial4 = disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms = true
ems = true
umb = true
keyboardlayout = auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx = false
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

View file

@ -1,69 +0,0 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
# Copyright (C) 2020-present Sylvia van Os (https://github.com/TheLastProject)
# Copyright (C) 2020-present Fewtarius
echo -e $(date -u)" - Script started.\n" >> /tmp/logs/dosbox_scan.log
EE_DEVICE=$(cat /ee_arch)
source /etc/profile
rp_registerAllModules
clear
#rm "/storage/.config/dosbox/games/*.conf"
function create_launcher() {
echo "\nAdding $2..."
launcher_name="$1 ($2)"
cp /storage/.config/dosbox/dosbox-SDL2.conf "/storage/.config/dosbox/games/$launcher_name.conf"
cat <<EOF >> "/storage/.config/dosbox/games/$launcher_name.conf"
mount c /storage/roms/pc/$(basename $data_dir)
c:
$2
exit
EOF
}
echo "Scanning for games...\n"
OIFS="$IFS"
IFS=$'\n'
for data_dir in $(find /storage/roms/pc/ -type d -name "*")
do
echo "Testing (dir) $data_dir"
if [ -d "$data_dir" ]; then
for executable in $(find "$data_dir" -iname "*.exe")
do
echo "Testing (exe) $executable"
executable_case="$(basename "$executable" | tr '[:lower:]' '[:upper:]')"
echo "Case $executable" >> /tmp/logs/dosbox_scan.log
case "$executable_case" in
"SETUP.EXE" | "INSTALL.EXE" | "INSTALLER.EXE" | \
"APOGEE.BAT" | "CATALOG.EXE" | "DEALERS.EXE" | \
"SWCBBS.EXE" | "FILE0001.EXE" | "FILE0001.EXE" | \
"HELPME.EXE" | "DOS4GW.EXE" | "NETARENA.EXE" | \
"NETIPX.EXE" | "NETMODEM.EXE" | "NETTERM.EXE" | \
"ORDER.EXE" | "DOSINST.EXE" | "PM2WINST.EXE" | \
"README.EXE" | "MMD.EXE" | "PMDL.EXE" | "RAP-HELP.EXE" | \
"XRFILE01.EXE" | "XRFILE02.EXE" | "XRFILE03.EXE" | \
"XRFILE04.EXE" | "FADER.EXE" | "SETSOUND.EXE" | \
"DRIVER.EXE" | "EMUSET.EXE" | "GRAVUTIL.EXE" | "GUSEMU.EXE" | \
"INSTGRPS.EXE" | "LOADER.EXE" | "LOADBOS.EXE" | "MEGAEM.EXE" | \
"MIDIFIER.EXE" | "PLAYFILE.EXE" | "PLAYMIDI.EXE" | \
"ULTRAJOY.EXE" | "ULTRAMID.EXE" | "ULTRAMIX.EXE" | \
"ULTRINIT.EXE" | "OMF21.EXE" | "LOADSBOS.EXE" )
;;
*)
create_launcher "$(basename "$data_dir")" "$(basename "$executable")"
;;
esac
done
fi
done
echo "Restarting EmulationStation...\n"
echo "Restarting EmulationStation..." >> /tmp/logs/dosbox_scan.log
clear

View file

@ -1,47 +0,0 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Frank Hartung (supervisedthinking (@) gmail.com)
PKG_NAME="dosbox-sdl2"
PKG_VERSION="0dd982477bff268c10558004dd1671e183b1a10f"
PKG_SHA256="2737817cd45889b21a4cef1e5fbd0782ffb5972f29bd3eaf7c3b8cc99cd9bac0"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/moralrecordings/dosbox"
PKG_URL="https://github.com/moralrecordings/dosbox/archive/${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain linux glibc glib systemd dbus alsa-lib SDL2 SDL2_net SDL_sound libpng zlib libvorbis flac libogg fluidsynth munt"
PKG_LONGDESC="This is an enhanced fork of DOSBox. It is currently in sync with revision 4156."
PKG_TOOLCHAIN="autotools"
PKG_BUILD_FLAGS="+lto"
pre_configure_target() {
if [ ${ARCH} == "arm" ]; then
EE_ARCH="armv7l"
else
EE_ARCH=${ARCH}
fi
# Clean up build directory
cd ${PKG_BUILD}
rm -rf .${TARGET_NAME}
PKG_CONFIGURE_OPTS_TARGET="--prefix=/usr \
--enable-core-inline \
--enable-dynrec \
--enable-unaligned_memory \
--with-sdl-prefix=${SYSROOT_PREFIX}/usr"
PKG_CONFIGURE_OPTS_TARGET+=" --host=$EE_ARCH"
}
pre_make_target() {
# Define DOSBox version
sed -e "s/SVN/SDL2/" -i ${PKG_BUILD}/config.h
}
post_makeinstall_target() {
# Create config directory & install config
mkdir -p ${INSTALL}/usr/config/dosbox
cp -a ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin/
cp -a ${PKG_DIR}/config/* ${INSTALL}/usr/config/dosbox/
}

View file

@ -1,530 +0,0 @@
diff --git b/configure.ac a/configure.ac
index f393457e41..b14d3e9ad3 100644
--- b/configure.ac
+++ a/configure.ac
@@ -421,6 +421,16 @@ if test x$have_wordexp_h = xyes ; then
AC_DEFINE(C_WORDEXP,1)
fi
+AH_TEMPLATE(C_MUNT,[define to 1 if you have munt lib])
+AC_CHECK_LIB(mt32emu, main, have_mt32emu_lib=yes, have_mt32emu_lib=no, )
+if test x$have_mt32emu_lib = xyes ; then
+ LIBS="$LIBS -lmt32emu"
+ AC_DEFINE(C_MUNT,1)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_WARN([Can't find munt, Roland MIDI device emulation disabled.])
+fi
+
AH_TEMPLATE(C_OPENGL,[Define to 1 to use opengl display output support])
AC_CHECK_LIB(GL, main, have_gl_lib=yes, have_gl_lib=no , )
AC_CHECK_LIB(opengl32, main, have_opengl32_lib=yes,have_opengl32_lib=no , )
diff --git b/src/dosbox.cpp a/src/dosbox.cpp
index 485f6a7958..18688a8e00 100644
--- b/src/dosbox.cpp
+++ a/src/dosbox.cpp
@@ -500,6 +500,9 @@ void DOSBOX_Init(void) {
"coremidi",
#ifdef C_FLUIDSYNTH
"fluidsynth",
+#endif
+#ifdef C_MUNT
+ "mt32",
#endif
"none",
0
@@ -587,6 +590,10 @@ void DOSBOX_Init(void) {
Pint->Set_help("Fluidsynth chorus type. 0 is sine wave, 1 is triangle wave.");
#endif
+#ifdef C_MUNT
+#include "mt32options.h"
+#endif
+
#if C_DEBUG
secprop=control->AddSection_prop("debug",&DEBUG_Init);
#endif
diff --git b/src/gui/Makefile.am a/src/gui/Makefile.am
index 3fed5e68ae..eb994d86b8 100644
--- b/src/gui/Makefile.am
+++ a/src/gui/Makefile.am
@@ -7,5 +7,6 @@ libgui_a_SOURCES = sdlmain.cpp sdl_mapper.cpp dosbox_logo.h \
render_templates_sai.h render_templates_hq.h \
render_templates_hq2x.h render_templates_hq3x.h \
midi.cpp midi_win32.h midi_oss.h midi_coreaudio.h midi_alsa.h \
- midi_coremidi.h sdl_gui.cpp dosbox_splash.h
+ midi_coremidi.h midi_mt32.h midi_mt32.cpp sdl_gui.cpp \
+ dosbox_splash.h
diff --git b/src/gui/midi.cpp a/src/gui/midi.cpp
index 16cdae2cb5..bed8b7f6bd 100644
--- b/src/gui/midi.cpp
+++ a/src/gui/midi.cpp
@@ -95,6 +95,11 @@ MidiHandler Midi_none;
#endif
+#ifdef C_MUNT
+#include "midi_mt32.h"
+static MidiHandler_mt32 &Midi_mt32 = MidiHandler_mt32::GetInstance();
+#endif
+
DB_Midi midi;
void MIDI_RawOutByte(Bit8u data) {
diff --git b/src/gui/midi_mt32.cpp a/src/gui/midi_mt32.cpp
new file mode 100644
index 0000000000..d7beafba0b
--- /dev/null
+++ a/src/gui/midi_mt32.cpp
@@ -0,0 +1,283 @@
+#include "config.h"
+#ifdef C_MUNT
+
+#include "SDL_thread.h"
+#include "SDL_endian.h"
+#include "control.h"
+
+#ifndef DOSBOX_MIDI_H
+#include "midi.h"
+#endif
+
+#ifdef C_WORDEXP
+#include <wordexp.h>
+#endif
+
+#include "midi_mt32.h"
+
+static const Bitu MILLIS_PER_SECOND = 1000;
+
+MidiHandler_mt32 &MidiHandler_mt32::GetInstance() {
+ static MidiHandler_mt32 midiHandler_mt32;
+ return midiHandler_mt32;
+}
+
+const char *MidiHandler_mt32::GetName(void) {
+ return "mt32";
+}
+
+bool MidiHandler_mt32::Open(const char *conf) {
+ Section_prop *section = static_cast<Section_prop *>(control->GetSection("midi"));
+ const char *romDir = section->Get_string("mt32.romdir");
+ if (romDir == NULL) romDir = "./"; // Paranoid NULL-check, should never happen
+ size_t romDirLen = strlen(romDir);
+ bool addPathSeparator = false;
+ if (romDirLen < 1) {
+ romDir = "./";
+ } else if (4080 < romDirLen) {
+ LOG_MSG("MT32: mt32.romdir is too long, using the current dir.");
+ romDir = "./";
+ } else {
+ char lastChar = romDir[strlen(romDir) - 1];
+ addPathSeparator = lastChar != '/' && lastChar != '\\';
+ }
+
+ char pathName[4096];
+ MT32Emu::FileStream controlROMFile;
+ MT32Emu::FileStream pcmROMFile;
+
+ makeROMPathName(pathName, romDir, "CM32L_CONTROL.ROM", addPathSeparator);
+ if (!controlROMFile.open(pathName)) {
+ makeROMPathName(pathName, romDir, "MT32_CONTROL.ROM", addPathSeparator);
+ if (!controlROMFile.open(pathName)) {
+ LOG_MSG("MT32: Control ROM file not found");
+ return false;
+ }
+ }
+ makeROMPathName(pathName, romDir, "CM32L_PCM.ROM", addPathSeparator);
+ if (!pcmROMFile.open(pathName)) {
+ makeROMPathName(pathName, romDir, "MT32_PCM.ROM", addPathSeparator);
+ if (!pcmROMFile.open(pathName)) {
+ LOG_MSG("MT32: PCM ROM file not found");
+ return false;
+ }
+ }
+ const MT32Emu::ROMImage *controlROMImage = MT32Emu::ROMImage::makeROMImage(&controlROMFile);
+ const MT32Emu::ROMImage *pcmROMImage = MT32Emu::ROMImage::makeROMImage(&pcmROMFile);
+
+ MT32Emu::AnalogOutputMode analogOutputMode = (MT32Emu::AnalogOutputMode)section->Get_int("mt32.analog");
+
+ synth = new MT32Emu::Synth(&reportHandler);
+ if (!synth->open(*controlROMImage, *pcmROMImage, section->Get_int("mt32.partials"), analogOutputMode)) {
+ delete synth;
+ synth = NULL;
+ LOG_MSG("MT32: Error initialising emulation");
+ return false;
+ }
+ MT32Emu::ROMImage::freeROMImage(controlROMImage);
+ MT32Emu::ROMImage::freeROMImage(pcmROMImage);
+
+ if (strcmp(section->Get_string("mt32.reverb.mode"), "auto") != 0) {
+ Bit8u reverbsysex[] = {0x10, 0x00, 0x01, 0x00, 0x05, 0x03};
+ reverbsysex[3] = (Bit8u)atoi(section->Get_string("mt32.reverb.mode"));
+ reverbsysex[4] = (Bit8u)section->Get_int("mt32.reverb.time");
+ reverbsysex[5] = (Bit8u)section->Get_int("mt32.reverb.level");
+ synth->writeSysex(16, reverbsysex, 6);
+ synth->setReverbOverridden(true);
+ }
+
+ synth->setDACInputMode((MT32Emu::DACInputMode)section->Get_int("mt32.dac"));
+
+ synth->setReversedStereoEnabled(section->Get_bool("mt32.reverse.stereo"));
+ noise = section->Get_bool("mt32.verbose");
+ renderInThread = section->Get_bool("mt32.thread");
+
+ if (noise) LOG_MSG("MT32: Set maximum number of partials %d", synth->getPartialCount());
+ if (noise) LOG_MSG("MT32: Adding mixer channel at sample rate %d", synth->getStereoOutputSampleRate());
+ chan = MIXER_AddChannel(mixerCallBack, synth->getStereoOutputSampleRate(), "MT32");
+ if (renderInThread) {
+ stopProcessing = false;
+ playPos = 0;
+ sampleRateRatio = MT32Emu::SAMPLE_RATE / (double)synth->getStereoOutputSampleRate();
+ int chunkSize = section->Get_int("mt32.chunk");
+ minimumRenderFrames = (chunkSize * synth->getStereoOutputSampleRate()) / MILLIS_PER_SECOND;
+ int latency = section->Get_int("mt32.prebuffer");
+ if (latency <= chunkSize) {
+ latency = 2 * chunkSize;
+ LOG_MSG("MT32: chunk length must be less than prebuffer length, prebuffer length reset to %i ms.", latency);
+ }
+ framesPerAudioBuffer = (latency * synth->getStereoOutputSampleRate()) / MILLIS_PER_SECOND;
+ audioBufferSize = framesPerAudioBuffer << 1;
+ audioBuffer = new Bit16s[audioBufferSize];
+ synth->render(audioBuffer, framesPerAudioBuffer - 1);
+ renderPos = (framesPerAudioBuffer - 1) << 1;
+ playedBuffers = 1;
+ lock = SDL_CreateMutex();
+ framesInBufferChanged = SDL_CreateCond();
+ thread = SDL_CreateThread(processingThread, NULL, NULL);
+ }
+ chan->Enable(true);
+
+ open = true;
+ return true;
+}
+
+void MidiHandler_mt32::Close(void) {
+ if (!open) return;
+ chan->Enable(false);
+ if (renderInThread) {
+ stopProcessing = true;
+ SDL_LockMutex(lock);
+ SDL_CondSignal(framesInBufferChanged);
+ SDL_UnlockMutex(lock);
+ SDL_WaitThread(thread, NULL);
+ thread = NULL;
+ SDL_DestroyMutex(lock);
+ lock = NULL;
+ SDL_DestroyCond(framesInBufferChanged);
+ framesInBufferChanged = NULL;
+ delete[] audioBuffer;
+ audioBuffer = NULL;
+ }
+ MIXER_DelChannel(chan);
+ chan = NULL;
+ synth->close();
+ delete synth;
+ synth = NULL;
+ open = false;
+}
+
+void MidiHandler_mt32::PlayMsg(Bit8u *msg) {
+ if (renderInThread) {
+ synth->playMsg(SDL_SwapLE32(*(Bit32u *)msg), getMidiEventTimestamp());
+ } else {
+ synth->playMsg(SDL_SwapLE32(*(Bit32u *)msg));
+ }
+}
+
+void MidiHandler_mt32::PlaySysex(Bit8u *sysex, Bitu len) {
+ if (renderInThread) {
+ synth->playSysex(sysex, len, getMidiEventTimestamp());
+ } else {
+ synth->playSysex(sysex, len);
+ }
+}
+
+void MidiHandler_mt32::mixerCallBack(Bitu len) {
+ MidiHandler_mt32::GetInstance().handleMixerCallBack(len);
+}
+
+int MidiHandler_mt32::processingThread(void *) {
+ MidiHandler_mt32::GetInstance().renderingLoop();
+ return 0;
+}
+
+void MidiHandler_mt32::makeROMPathName(char pathName[], const char romDir[], const char fileName[], bool addPathSeparator) {
+
+#ifdef C_WORDEXP
+ wordexp_t p;
+ wordexp(romDir, &p, 0);
+ strcpy(pathName, p.we_wordv[0]);
+ wordfree(&p);
+#else
+ strcpy(pathName, romDir);
+#endif
+
+ if (addPathSeparator) {
+ strcat(pathName, "/");
+ }
+ strcat(pathName, fileName);
+}
+
+MidiHandler_mt32::MidiHandler_mt32() : open(false), chan(NULL), synth(NULL), thread(NULL) {
+}
+
+MidiHandler_mt32::~MidiHandler_mt32() {
+ Close();
+}
+
+void MidiHandler_mt32::handleMixerCallBack(Bitu len) {
+ if (renderInThread) {
+ while (renderPos == playPos) {
+ SDL_LockMutex(lock);
+ SDL_CondWait(framesInBufferChanged, lock);
+ SDL_UnlockMutex(lock);
+ if (stopProcessing) return;
+ }
+ Bitu renderPosSnap = renderPos;
+ Bitu playPosSnap = playPos;
+ Bitu samplesReady = (renderPosSnap < playPosSnap) ? audioBufferSize - playPosSnap : renderPosSnap - playPosSnap;
+ if (len > (samplesReady >> 1)) {
+ len = samplesReady >> 1;
+ }
+ chan->AddSamples_s16(len, audioBuffer + playPosSnap);
+ playPosSnap += (len << 1);
+ while (audioBufferSize <= playPosSnap) {
+ playPosSnap -= audioBufferSize;
+ playedBuffers++;
+ }
+ playPos = playPosSnap;
+ renderPosSnap = renderPos;
+ const Bitu samplesFree = (renderPosSnap < playPosSnap) ? playPosSnap - renderPosSnap : audioBufferSize + playPosSnap - renderPosSnap;
+ if (minimumRenderFrames <= (samplesFree >> 1)) {
+ SDL_LockMutex(lock);
+ SDL_CondSignal(framesInBufferChanged);
+ SDL_UnlockMutex(lock);
+ }
+ } else {
+ synth->render((Bit16s *)MixTemp, len);
+ chan->AddSamples_s16(len, (Bit16s *)MixTemp);
+ }
+}
+
+void MidiHandler_mt32::renderingLoop() {
+ while (!stopProcessing) {
+ const Bitu renderPosSnap = renderPos;
+ const Bitu playPosSnap = playPos;
+ Bitu samplesToRender;
+ if (renderPosSnap < playPosSnap) {
+ samplesToRender = playPosSnap - renderPosSnap - 2;
+ } else {
+ samplesToRender = audioBufferSize - renderPosSnap;
+ if (playPosSnap == 0) samplesToRender -= 2;
+ }
+ Bitu framesToRender = samplesToRender >> 1;
+ if ((framesToRender == 0) || ((framesToRender < minimumRenderFrames) && (renderPosSnap < playPosSnap))) {
+ SDL_LockMutex(lock);
+ SDL_CondWait(framesInBufferChanged, lock);
+ SDL_UnlockMutex(lock);
+ } else {
+ synth->render(audioBuffer + renderPosSnap, framesToRender);
+ renderPos = (renderPosSnap + samplesToRender) % audioBufferSize;
+ if (renderPosSnap == playPos) {
+ SDL_LockMutex(lock);
+ SDL_CondSignal(framesInBufferChanged);
+ SDL_UnlockMutex(lock);
+ }
+ }
+ }
+}
+
+void MidiHandler_mt32::MT32ReportHandler::onErrorControlROM() {
+ LOG_MSG("MT32: Couldn't open Control ROM file");
+}
+
+void MidiHandler_mt32::MT32ReportHandler::onErrorPCMROM() {
+ LOG_MSG("MT32: Couldn't open PCM ROM file");
+}
+
+void MidiHandler_mt32::MT32ReportHandler::showLCDMessage(const char *message) {
+ LOG_MSG("MT32: LCD-Message: %s", message);
+}
+
+void MidiHandler_mt32::MT32ReportHandler::printDebug(const char *fmt, va_list list) {
+ MidiHandler_mt32 &midiHandler_mt32 = MidiHandler_mt32::GetInstance();
+ if (midiHandler_mt32.noise) {
+ char s[1024];
+ strcpy(s, "MT32: ");
+ vsnprintf(s + 6, 1017, fmt, list);
+ LOG_MSG(s);
+ }
+}
+
+#endif // C_MUNT
diff --git b/src/gui/midi_mt32.h a/src/gui/midi_mt32.h
new file mode 100644
index 0000000000..5ceabe7400
--- /dev/null
+++ a/src/gui/midi_mt32.h
@@ -0,0 +1,57 @@
+#ifndef DOSBOX_MIDI_MT32_H
+#define DOSBOX_MIDI_MT32_H
+
+#include "mixer.h"
+#include <mt32emu/mt32emu.h>
+
+struct SDL_Thread;
+
+class MidiHandler_mt32 : public MidiHandler {
+public:
+ static MidiHandler_mt32 &GetInstance(void);
+
+ const char *GetName(void);
+ bool Open(const char *conf);
+ void Close(void);
+ void PlayMsg(Bit8u *msg);
+ void PlaySysex(Bit8u *sysex, Bitu len);
+
+private:
+ MixerChannel *chan;
+ MT32Emu::Synth *synth;
+ SDL_Thread *thread;
+ SDL_mutex *lock;
+ SDL_cond *framesInBufferChanged;
+ Bit16s *audioBuffer;
+ Bitu audioBufferSize;
+ Bitu framesPerAudioBuffer;
+ Bitu minimumRenderFrames;
+ double sampleRateRatio;
+ volatile Bitu renderPos, playPos, playedBuffers;
+ volatile bool stopProcessing;
+ bool open, noise, renderInThread;
+
+ class MT32ReportHandler : public MT32Emu::ReportHandler {
+ protected:
+ virtual void onErrorControlROM();
+ virtual void onErrorPCMROM();
+ virtual void showLCDMessage(const char *message);
+ virtual void printDebug(const char *fmt, va_list list);
+ } reportHandler;
+
+ static void mixerCallBack(Bitu len);
+ static int processingThread(void *);
+ static void makeROMPathName(char pathName[], const char romDir[], const char fileName[], bool addPathSeparator);
+
+ MidiHandler_mt32();
+ ~MidiHandler_mt32();
+
+ Bit32u inline getMidiEventTimestamp() {
+ return Bit32u((playedBuffers * framesPerAudioBuffer + (playPos >> 1)) * sampleRateRatio);
+ }
+
+ void handleMixerCallBack(Bitu len);
+ void renderingLoop();
+};
+
+#endif /* DOSBOX_MIDI_MT32_H */
diff --git b/src/mt32options.h a/src/mt32options.h
new file mode 100644
index 0000000000..85082157a8
--- /dev/null
+++ a/src/mt32options.h
@@ -0,0 +1,98 @@
+Pstring = secprop->Add_string("mt32.romdir",Property::Changeable::WhenIdle,"");
+Pstring->Set_help("Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.\n"
+ " Accepted file names are as follows:\n"
+ " MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.\n"
+ " MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.");
+
+Pbool = secprop->Add_bool("mt32.reverse.stereo",Property::Changeable::WhenIdle,false);
+Pbool->Set_help("Reverse stereo channels for MT-32 output");
+
+Pbool = secprop->Add_bool("mt32.verbose",Property::Changeable::WhenIdle,false);
+Pbool->Set_help("MT-32 debug logging");
+
+Pbool = secprop->Add_bool("mt32.thread",Property::Changeable::WhenIdle,false);
+Pbool->Set_help("MT-32 rendering in separate thread");
+
+const char *mt32chunk[] = {"2", "3", "16", "99", "100",0};
+Pint = secprop->Add_int("mt32.chunk",Property::Changeable::WhenIdle,16);
+Pint->Set_values(mt32chunk);
+Pint->SetMinMax(2,100);
+Pint->Set_help("Minimum milliseconds of data to render at once.\n"
+ "Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.\n"
+ "Valid for rendering in separate thread only.");
+
+const char *mt32prebuffer[] = {"3", "4", "32", "199", "200",0};
+Pint = secprop->Add_int("mt32.prebuffer",Property::Changeable::WhenIdle,32);
+Pint->Set_values(mt32prebuffer);
+Pint->SetMinMax(3,200);
+Pint->Set_help("How many milliseconds of data to render ahead.\n"
+ "Increasing this value may help to avoid underruns but also increases audio lag.\n"
+ "Cannot be set less than or equal to mt32.chunk value.\n"
+ "Valid for rendering in separate thread only.");
+
+const char *mt32partials[] = {"8", "9", "32", "255", "256",0};
+Pint = secprop->Add_int("mt32.partials",Property::Changeable::WhenIdle,32);
+Pint->Set_values(mt32partials);
+Pint->SetMinMax(8,256);
+Pint->Set_help("The maximum number of partials playing simultaneously.");
+
+const char *mt32DACModes[] = {"0", "1", "2", "3",0};
+Pint = secprop->Add_int("mt32.dac",Property::Changeable::WhenIdle,0);
+Pint->Set_values(mt32DACModes);
+Pint->Set_help("MT-32 DAC input emulation mode\n"
+ "Nice = 0 - default\n"
+ "Produces samples at double the volume, without tricks.\n"
+ "Higher quality than the real devices\n\n"
+
+ "Pure = 1\n"
+ "Produces samples that exactly match the bits output from the emulated LA32.\n"
+ "Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)\n"
+ "Much less likely to overdrive than any other mode.\n"
+ "Half the volume of any of the other modes.\n"
+ "Perfect for developers while debugging :)\n\n"
+
+ "GENERATION1 = 2\n"
+ "Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).\n"
+ "Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):\n"
+ "15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX\n\n"
+
+ "GENERATION2 = 3\n"
+ "Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).\n"
+ "Bit order at DAC (where each number represents the original LA32 output bit number):\n"
+ "15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14");
+
+const char *mt32analogModes[] = {"0", "1", "2", "3",0};
+Pint = secprop->Add_int("mt32.analog",Property::Changeable::WhenIdle,2);
+Pint->Set_values(mt32analogModes);
+Pint->Set_help("MT-32 analogue output emulation mode\n"
+ "Digital = 0\n"
+ "Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.\n"
+ "Fastest mode.\n\n"
+
+ "Coarse = 1\n"
+ "Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.\n"
+ "A bit better sounding but also a bit slower.\n\n"
+
+ "Accurate = 2 - default\n"
+ "Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,\n"
+ "which is passed through the LPF circuit without significant attenuation.\n"
+ "Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.\n\n"
+
+ "Oversampled = 3\n"
+ "Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.\n"
+ "Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.");
+
+const char *mt32reverbModes[] = {"0", "1", "2", "3", "auto",0};
+Pstring = secprop->Add_string("mt32.reverb.mode",Property::Changeable::WhenIdle,"auto");
+Pstring->Set_values(mt32reverbModes);
+Pstring->Set_help("MT-32 reverb mode");
+
+const char *mt32reverbTimes[] = {"0", "1", "2", "3", "4", "5", "6", "7",0};
+Pint = secprop->Add_int("mt32.reverb.time",Property::Changeable::WhenIdle,5);
+Pint->Set_values(mt32reverbTimes);
+Pint->Set_help("MT-32 reverb decaying time");
+
+const char *mt32reverbLevels[] = {"0", "1", "2", "3", "4", "5", "6", "7",0};
+Pint = secprop->Add_int("mt32.reverb.level",Property::Changeable::WhenIdle,3);
+Pint->Set_values(mt32reverbLevels);
+Pint->Set_help("MT-32 reverb level");

View file

@ -1,26 +0,0 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Frank Hartung (supervisedthinking (@) gmail.com)
# Source predefined functions and variables
. /etc/profile
set_audio pulseaudio
# Set common variables
RR_DOSBOX_HOME=/storage/.dosbox
RR_DOSBOX_HOME_CONFIG=/storage/.config/dosbox
# Create symlink to config dir
if [ ! -L ${RR_DOSBOX_HOME} ]; then
if [ -d ${RR_DOSBOX_HOME} ]; then
cp -rf ${RR_DOSBOX_HOME} ${RR_DOSBOX_HOME_CONFIG}
rm -rf ${RR_DOSBOX_HOME}
fi
ln -sf ${RR_DOSBOX_HOME_CONFIG} ${RR_DOSBOX_HOME}
fi
# Run the emulator
dosbox "$@" > /var/log/dosbox.log 2>&1
set_audio default

View file

@ -1,344 +0,0 @@
# This is the configuration file for DOSBox SDL2. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb, opengl, openglnb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen=true
# Note that VSYNC is be very demanding
vsync=false
fullresolution=0x0
windowresolution=original
output=texture
# Place shaders in /storage/.config/dosbox/shaders
gl.shader=crt-easymode
texture.renderer=auto
autolock=true
sensitivity=100
waitonerror=true
priority=highest,highest
# Input mapper file is looked for in the same directory as the specified conf
mapperfile=example.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language=
machine=svga_s3
captures=capture
memsize=16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=true
scaler=none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=44100
blocksize=1024
prebuffer=20
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401=intelligent
mididevice=mt32
midiconfig=
# Place MT-32 roms here
mt32.romdir=/storage/roms/bios
mt32.reverse.stereo=false
mt32.verbose=false
mt32.thread=false
mt32.chunk=16
mt32.prebuffer=32
mt32.partials=32
mt32.dac=0
mt32.analog=2
mt32.reverb.mode=auto
mt32.reverb.time=5
mt32.reverb.level=3
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=true
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
# Place GUS files in /storage/roms/dos/ULTRASND
ultradir=C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
joysticktype=fcs
timed=true
autofire=false
swap34=false
buttonwrap=false
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.
mount c /storage/roms/dos
c:
cd example
example.exe
#exit

View file

@ -1,335 +0,0 @@
# This is the configuration file for DOSBox SDL2. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb, opengl, openglnb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen=true
# Note that VSYNC is be very demanding
vsync=false
fullresolution=0x0
windowresolution=original
output=texture
# Place shaders in /storage/.config/dosbox/shaders
gl.shader=crt-easymode
texture.renderer=auto
autolock=true
sensitivity=100
waitonerror=true
priority=highest,highest
# Input mapper file is looked for in the same directory as the specified conf
mapperfile=example.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language=
machine=svga_s3
captures=capture
memsize=16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=true
scaler=none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=44100
blocksize=1024
prebuffer=20
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401=intelligent
# FluidSynth Software Synthesizer
mididevice=fluidsynth
fluid.driver=pulseaudio
fluid.soundfont=/usr/share/soundfonts/GeneralUser.sf2
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=true
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
# Place GUS files in /storage/roms/dos/ULTRASND
ultradir=C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
joysticktype=fcs
timed=true
autofire=false
swap34=false
buttonwrap=false
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.
mount c /storage/roms/pc
c:
@echo off
echo ########################################################
echo # DOSBox SDL2 default config #
echo ########################################################
echo.

View file

@ -1,357 +0,0 @@
# This is the configuration file for DOSBox SVN. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.On Windows 10 with display scaling (Scale and layout) set to a value above 100%, it is recommended
# to use a lower full/windowresolution, in order to avoid window size problems.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity. The optional second parameter specifies vertical sensitivity (e.g. 100,-50).
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen = true
vsync = false
fullresolution = 0x0
windowresolution = original
output = texturenb
gl.shader =
texture.renderer = auto
autolock = true
sensitivity = 100
waitonerror = true
priority = higher,normal
mapperfile = mapper-sdl2-SVN.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language =
machine = svga_s3
captures = capture
memsize = 16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# To fit a scaler in the resolution used at full screen may require a border or side bars,
# to fill the screen entirely, depending on your hardware, a different scaler/fullresolution might work.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip = 0
aspect = true
scaler = none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core = auto
cputype = auto
cycles = auto
cycleup = 10
cycledown = 20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound = false
rate = 44100
blocksize = 1024
prebuffer = 25
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, fluidsynth, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id or part of the name of the device you want to use (find the id/name with mixer/listmidi).
# Or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# fluid.driver: Driver to use with Fluidsynth, not needed under Windows. Available drivers depend on what Fluidsynth was compiled with
# Possible values: pulseaudio, alsa, oss, coreaudio, dsound, portaudio, sndman, jack, file, default.
# fluid.soundfont: Soundfont to use with Fluidsynth. One must be specified.
# fluid.samplerate: Sample rate to use with Fluidsynth.
# fluid.gain: Fluidsynth gain.
# fluid.polyphony: Fluidsynth polyphony.
# fluid.cores: Fluidsynth CPU cores to use, default.
# fluid.periods: Fluidsynth periods.
# fluid.periodsize: Fluidsynth period size.
# fluid.reverb: Fluidsynth use reverb.
# Possible values: no, yes.
# fluid.chorus: Fluidsynth use chorus.
# Possible values: no, yes.
# fluid.reverb,roomsize: Fluidsynth reverb room size.
# fluid.reverb.damping: Fluidsynth reverb damping.
# fluid.reverb.width: Fluidsynth reverb width.
# fluid.reverb.level: Fluidsynth reverb level.
# fluid.chorus.number: Fluidsynth chorus voices
# fluid.chorus.level: Fluidsynth chorus level.
# fluid.chorus.speed: Fluidsynth chorus speed.
# fluid.chorus.depth: Fluidsynth chorus depth.
# fluid.chorus.type: Fluidsynth chorus type. 0 is sine wave, 1 is triangle wave.
# Possible values: 0, 1.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401 = intelligent
# FluidSynth Software Synthesizer
mididevice = fluidsynth
fluid.driver = pulseaudio
fluid.soundfont = /usr/share/soundfonts/GeneralUser.sf2
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast, mame.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype = sb16
sbbase = 220
irq = 7
dma = 1
hdma = 5
sbmixer = true
oplmode = auto
oplemu = default
oplrate = 44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus = false
gusrate = 44100
gusbase = 240
gusirq = 5
gusdma = 3
ultradir = C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker = true
pcrate = 44100
tandy = auto
tandyrate = 44100
disney = true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. Can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
# circularinput: enable translation of circular input to square output.
# Try enabling this if your left analog stick can only move in a circle.
# deadzone: the percentage of motion to ignore. 100 turns the stick into a digital one.
joysticktype = auto
timed = true
autofire = false
swap34 = false
buttonwrap = false
circularinput = false
deadzone = 10
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1 = dummy
serial2 = dummy
serial3 = disabled
serial4 = disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms = true
ems = true
umb = true
keyboardlayout = auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx = false
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

View file

@ -1,335 +0,0 @@
# This is the configuration file for DOSBox SDL2. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# vsync: Sync to Vblank IF supported by the output device and renderer (if relevant).
# It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, texture, texturenb, opengl, openglnb.
# gl.shader: What set of GLSL shaders to use with an OpenGL output. Keep empty if this is not desired.
# Note that in case it is used, the respective shader files must be found in the "shaders" subdirectory
# relatively to where the default DOSBox configuration fiel is stored. For shader file naming convention,
# suppose that you have a pair of shader files ready: mysample.vert and mysample.frag.
# Then shader=mysample should be set.
#
# texture.renderer: Choose a renderer driver if output=texture or output=texturenb. Use output=auto for an automatic choice.
# Possible values: auto, opengl, software.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
fullscreen=true
# Note that VSYNC is be very demanding
vsync=false
fullresolution=0x0
windowresolution=original
output=texture
# Place shaders in /storage/.config/dosbox/shaders
gl.shader=crt-easymode
texture.renderer=auto
autolock=true
sensitivity=100
waitonerror=true
priority=highest,highest
# Input mapper file is looked for in the same directory as the specified conf
mapperfile=example.map
[dosbox]
# language: Select another language file.
# machine: The type of machine DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language=
machine=svga_s3
captures=capture
memsize=16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=true
scaler=none
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and
# appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually
# need if 'auto' fails (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to
# handle.
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=44100
blocksize=1024
prebuffer=20
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# or in the case of coreaudio, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.reverse.stereo: Reverse stereo channels for MT-32 output
# mt32.verbose: MT-32 debug logging
# mt32.thread: MT-32 rendering in separate thread
# mt32.chunk: Minimum milliseconds of data to render at once.
# Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
# Valid for rendering in separate thread only.
# Possible values: 2, 3, 16, 99, 100.
# mt32.prebuffer: How many milliseconds of data to render ahead.
# Increasing this value may help to avoid underruns but also increases audio lag.
# Cannot be set less than or equal to mt32.chunk value.
# Valid for rendering in separate thread only.
# Possible values: 3, 4, 32, 199, 200.
# mt32.partials: The maximum number of partials playing simultaneously.
# Possible values: 8, 9, 32, 255, 256.
# mt32.dac: MT-32 DAC input emulation mode
# Nice = 0 - default
# Produces samples at double the volume, without tricks.
# Higher quality than the real devices
#
# Pure = 1
# Produces samples that exactly match the bits output from the emulated LA32.
# Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
# Much less likely to overdrive than any other mode.
# Half the volume of any of the other modes.
# Perfect for developers while debugging :)
#
# GENERATION1 = 2
# Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
# Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#
# GENERATION2 = 3
# Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
# Bit order at DAC (where each number represents the original LA32 output bit number):
# 15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
# Possible values: 0, 1, 2, 3.
# mt32.analog: MT-32 analogue output emulation mode
# Digital = 0
# Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
# Fastest mode.
#
# Coarse = 1
# Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
# A bit better sounding but also a bit slower.
#
# Accurate = 2 - default
# Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
# which is passed through the LPF circuit without significant attenuation.
# Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#
# Oversampled = 3
# Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
# Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
# Possible values: 0, 1, 2, 3.
# mt32.reverb.mode: MT-32 reverb mode
# Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.time: MT-32 reverb decaying time
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
# mt32.reverb.level: MT-32 reverb level
# Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
mpu401=intelligent
# FluidSynth Software Synthesizer
mididevice=fluidsynth
fluid.driver=pulseaudio
fluid.soundfont=/usr/share/soundfonts/GeneralUser.sf2
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=true
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
# Place GUS files in /storage/roms/dos/ULTRASND
ultradir=C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
joysticktype=fcs
timed=true
autofire=false
swap34=false
buttonwrap=false
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support. The default (=true) provides the best
# compatibility but certain applications may run better with
# other choices, or require EMS support to be disabled (=false)
# to work at all.
# Possible values: true, emsboard, emm386, false.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.
mount c /storage/roms/pc
c:
@echo off
echo ########################################################
echo # DOSBox SDL2 default config #
echo ########################################################
echo.

View file

@ -1,39 +0,0 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)
PKG_NAME="dosbox-x"
PKG_VERSION="684836fab51b9b4fc9d6616de126fc9a5bf21d59"
PKG_SHA256="c5caa65b39621907c417dc50633320f8a407206e46a1527b2e37c10a7baafa52"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/joncampbell123/dosbox-x"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain linux glibc glib systemd dbus alsa-lib SDL2 SDL2_net SDL_sound libpng zlib libvorbis flac libogg fluidsynth munt"
PKG_LONGDESC="DOSBox-X fork of the DOSBox project."
PKG_TOOLCHAIN="autotools"
PKG_BUILD_FLAGS="+lto"
pre_configure_target() {
cd ${PKG_BUILD}
rm -rf .${TARGET_NAME}
PKG_CONFIGURE_OPTS_TARGET="--prefix=/usr \
--enable-core-inline \
--enable-dynrec \
--enable-unaligned_memory \
--disable-sdl \
--enable-sdl2 \
--enable-mt32 \
--with-sdl2-prefix=${SYSROOT_PREFIX}/usr"
}
pre_make_target() {
# Define DOSBox version
sed -e "s/SVN/SDL2/" -i ${PKG_BUILD}/config.h
}
post_makeinstall_target() {
# Create config directory & install config
mkdir -p ${INSTALL}/usr/config/game/configs/dosbox/
cp -a ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin/
cp -a ${PKG_DIR}/config/* ${INSTALL}/usr/config/game/configs/dosbox/
}

View file

@ -1,17 +0,0 @@
diff --git a/configure.ac b/configure.ac
index 407d553..e15473b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -249,6 +249,12 @@ dnl The target cpu checks for dynamic cores
AH_TEMPLATE(C_TARGETCPU,[The type of cpu this target has])
AC_MSG_CHECKING(for target cpu type)
case "$host_cpu" in
+ arm)
+ AC_DEFINE(C_TARGETCPU,ARMV7LE)
+ AC_MSG_RESULT(ARMv7 Little Endian)
+ c_targetcpu="arm"
+ c_unalignedmemory=yes
+ ;;
x86_64 | amd64)
AC_DEFINE(C_TARGETCPU,X86_64)
AC_MSG_RESULT(x86-64 bit compatible)

View file

@ -1,46 +0,0 @@
diff --git a/acinclude.m4 b/acinclude.m4
index 9b85f7f..a2c7117 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -14,35 +14,13 @@ AC_ARG_ENABLE(sdl2, [ --enable-sdl2 Enable SDL 2.x],
SDL2_CONFIG=no
if test x$enable_sdl2enable = xyes ; then
- if test x$sdl2_exec_prefix != x ; then
- sdl2_args="$sdl2_args --exec-prefix=$sdl2_exec_prefix"
- if test x${SDL2_CONFIG+set} != xset ; then
- SDL2_CONFIG=$sdl2_exec_prefix/bin/sdl2-config
- fi
- fi
- if test x$sdl2_prefix != x ; then
- sdl2_args="$sdl2_args --prefix=$sdl2_prefix"
- if test x${SDL2_CONFIG+set} != xset ; then
- SDL2_CONFIG=$sdl2_prefix/bin/sdl2-config
- fi
- fi
-
- if test -x vs2015/sdl2/linux-host/bin/sdl2-config ; then
- SDL2_CONFIG=vs2015/sdl2/linux-host/bin/sdl2-config
- PATH=vs2015/sdl2/linux-host/bin:$PATH
- fi
-
+
+ SDL2_CONFIG=$sdl2_prefix/bin/sdl2-config
AC_PATH_PROG(SDL2_CONFIG, sdl2-config, no)
- min_sdl2_version=ifelse([$1], ,0.11.0,$1)
- AC_MSG_CHECKING(for SDL2 - version >= $min_sdl2_version)
- no_sdl2=""
- if test "$SDL2_CONFIG" = "no" ; then
- no_sdl2=yes
- else
- SDL2_CFLAGS=`$SDL2_CONFIG $sdl2conf_args --cflags`
- SDL2_LIBS=`$SDL2_CONFIG $sdl2conf_args --libs`
- AC_DEFINE(C_SDL2,1)
- fi
+ SDL2_CFLAGS=`$SDL2_CONFIG $sdl2conf_args --cflags`
+ SDL2_LIBS=`$SDL2_CONFIG $sdl2conf_args --libs`
+ AC_DEFINE(C_SDL2,1)
+
fi
AC_SUBST(SDL2_CFLAGS)

View file

@ -1,49 +0,0 @@
diff --git a/src/gui/sdlmain.cpp b/src/gui/sdlmain.cpp
index ec6ba7b..f689b3c 100644
--- a/src/gui/sdlmain.cpp
+++ b/src/gui/sdlmain.cpp
@@ -947,7 +947,7 @@
#elif defined(HAIKU)
#define DEFAULT_CONFIG_FILE "~/config/settings/dosbox-x/dosbox-x.conf"
#else /*linux freebsd*/
-# define DEFAULT_CONFIG_FILE "/.dosboxrc"
+# define DEFAULT_CONFIG_FILE "/dosbox-x.conf"
#endif
#if C_SET_PRIORITY
diff --git a/src/misc/cross.cpp b/src/misc/cross.cpp
index 05a5893..74daf41 100644
--- a/src/misc/cross.cpp
+++ b/src/misc/cross.cpp
@@ -89,7 +89,7 @@
#elif defined(RISCOS)
in = "/<Choices$Write>/DosBox-X";
#elif !defined(HX_DOS)
- in = "~/.config/dosbox-x";
+ in = "/storage/.config/game/configs/dosbox-x";
ResolveHomedir(in);
#endif
in += CROSS_FILESPLIT;
@@ -97,11 +97,11 @@
void Cross::GetPlatformConfigName(std::string& in) {
#ifdef WIN32
-#define DEFAULT_CONFIG_FILE "dosbox-x-" VERSION ".conf"
+#define DEFAULT_CONFIG_FILE "dosbox-x.conf"
#elif defined(MACOSX)
#define DEFAULT_CONFIG_FILE "DOSBox-X " VERSION " Preferences"
#else /*linux freebsd*/
-#define DEFAULT_CONFIG_FILE "dosbox-x-" VERSION ".conf"
+#define DEFAULT_CONFIG_FILE "dosbox-x.conf"
#endif
in = DEFAULT_CONFIG_FILE;
}
@@ -123,7 +123,7 @@
in = "/<Choices$Write>/DosBox-X";
mkdir(in.c_str(),0700);
#elif !defined(HX_DOS)
- in = "~/.config/dosbox-x";
+ in = "/storage/.config/game/configs/dosbox-x";
ResolveHomedir(in);
mkdir(in.c_str(),0700);
#endif

View file

@ -1,28 +0,0 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Frank Hartung (supervisedthinking (@) gmail.com)
# Source predefined functions and variables
. /etc/profile
set_audio pulseaudio
# Set common variables
RR_DOSBOX_HOME=/storage/.dosbox
RR_DOSBOX_HOME_CONFIG=/storage/.config/game/configs/dosbox-x
# Create symlink to config dir
if [ ! -L ${RR_DOSBOX_HOME} ]; then
if [ -d ${RR_DOSBOX_HOME} ]; then
cp -rf ${RR_DOSBOX_HOME} ${RR_DOSBOX_HOME_CONFIG}
rm -rf ${RR_DOSBOX_HOME}
fi
ln -sf ${RR_DOSBOX_HOME_CONFIG} ${RR_DOSBOX_HOME}
fi
# Run the emulator
ARG="$(echo $1 | sed 's=.*/==;s/\.[^.]*$//')"
dosbox-x -c "${ARG}" > /var/log/dosbox-x.log 2>&1
set_audio default

View file

@ -5,6 +5,8 @@
. /etc/profile
jslisten set "-9 drastic"
#Copy drastic files to .config
if [ ! -d "/storage/.config/drastic" ]; then
mkdir -p /storage/.config/drastic/

View file

@ -5,12 +5,27 @@
. /etc/profile
jslisten set "-9 drastic"
#Copy drastic files to .config
if [ ! -d "/storage/.config/drastic" ]; then
mkdir -p /storage/.config/drastic/
cp -r /usr/config/drastic/* /storage/.config/drastic/
fi
if [ ! -d "/storage/.config/drastic/system" ]; then
mkdir -p mkdir -p /storage/.config/drastic/system
fi
for bios in nds_bios_arm9.bin nds_bios_arm7.bin
do
if [ ! -e "/storage/.config/drastic/system/${bios}" ]; then
if [ -e "/storage/roms/bios/${bios}" ]; then
ln -sf /storage/roms/bios/${bios} /storage/.config/drastic/system
fi
fi
done
#Make drastic savestate folder
if [ ! -d "/storage/roms/savestates/nds" ]; then
mkdir -p /storage/roms/savestates/nds

View file

@ -4,6 +4,7 @@
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 duckstation-nogui"
#Copy config folder to .config/duckstation
if [ ! -d "/storage/.config/duckstation" ]; then

View file

@ -4,6 +4,7 @@
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 flycast"
#Check if flycast exists in .config
if [ ! -d "/storage/.config/flycast" ]; then

View file

@ -3,7 +3,7 @@
# Copyright (C) 2022-present Fewtarius
PKG_NAME="hypseus-singe"
PKG_VERSION="88e27c57927f0549419b653404d410fb62112c2c"
PKG_VERSION="a11c2b48f7ef0644ab1731d22325bf3b764f06db"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL3"

View file

@ -5,6 +5,8 @@
. /etc/profile
jslisten set "-9 melonDS"
if [ ! -d "/storage/.config/melonDS" ]; then
mkdir -p "/storage/.config/melonDS"
cp -r "/usr/config/melonDS" "/storage/.config/"

View file

@ -6,6 +6,8 @@
. /etc/profile
jslisten set "-9 mupen64plus"
#Emulation Station Features
CORE="$1"
GAME=$(echo "${2}"| sed "s#^/.*/##")

View file

@ -4,7 +4,7 @@
# Copyright (C) 2023-present Fewtarius
PKG_NAME="mupen64plus-sa"
PKG_VERSION="e0dcefc4fc2df80821b167b1bb8f50dedac2f3c5"
PKG_VERSION="7a4cddfdfc2fbbe631b53c8e4c418186fadc939f"
PKG_LICENSE="GPL"
PKG_SITE="https://mupen64plus.org/"
PKG_URL=""

View file

@ -6,6 +6,8 @@
ARG=${1//[\\]/}
set_audio pulseaudio
jslisten set "-9 pcsx2-qt"
if [ ! -d "/storage/.config/PCSX2" ]
then
cp -rf /usr/config/PCSX2 /storage/.config

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present Fewtarius
PKG_NAME="pico-8"
PKG_VERSION="e0dcefc4fc2df80821b167b1bb8f50dedac2f3c5"
PKG_VERSION="7a4cddfdfc2fbbe631b53c8e4c418186fadc939f"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE=""

View file

@ -7,7 +7,7 @@ PKG_REV="1"
PKG_ARCH="any"
PKG_SITE="https://github.com/hrydgard/ppsspp"
PKG_URL="${PKG_SITE}.git"
PKG_VERSION="7bb1c9e3c44615ffa54c3cab384a93c7fb3b2dfe"
PKG_VERSION="5ae9c9c64e5605881a3e3f5bc43ec39271dc9b2f"
PKG_LICENSE="GPLv2"
PKG_DEPENDS_TARGET="toolchain ffmpeg libzip SDL2 zlib zip"
PKG_SHORTDESC="PPSSPPDL"

View file

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

View file

@ -3,7 +3,7 @@
# Copyright (C) 2023-present Fewtarius
PKG_NAME="retroarch"
PKG_VERSION="35b445c3ed7a6a4934e080775ae71fef313569de"
PKG_VERSION="6b9727911b5d71ff276e9dddafc9f065b8550090"
PKG_SITE="https://github.com/libretro/RetroArch"
PKG_URL="${PKG_SITE}.git"
PKG_LICENSE="GPLv3"

View file

@ -26,10 +26,12 @@ ln -sf /storage/roms/bios/rpcs3/dev_flash /storage/.config/rpcs3/dev_flash
if [ "$SUI" = "1" ]
then
export QT_QPA_PLATFORM=wayland
jslisten set "-9 rpcs3"
/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}"
fi

View file

@ -4,6 +4,7 @@
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 Ryujinx"`
if [ ! -d "/storage/.config/Ryujinx" ]; then
mkdir -p "/storage/.config/Ryujinx"

View file

@ -3,7 +3,7 @@
# Copyright (C) 2020-present Fewtarius
PKG_NAME="scummvmsa"
PKG_VERSION="b9664ba4b4a066770c362bff883235fc5f31fcc7"
PKG_VERSION="aeb56e562344bacc52ecf9afe785350347c80265"
PKG_REV="1"
PKG_LICENSE="GPL2"
PKG_SITE="https://github.com/scummvm/scummvm"

View file

@ -2,6 +2,7 @@
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
. /etc/profile
jslisten set "-9 xemu"
#Check if xemu exists in .config
if [ ! -d "/storage/.config/xemu" ]; then

View file

@ -6,6 +6,7 @@
# Source predefined functions and variables
. /etc/profile
jslisten set "-9 yabasanshiro"
ROM_DIR="/storage/roms/saturn/yabasanshiro"
CONFIG_DIR="/storage/.config/yabasanshiro"

View file

@ -206,6 +206,8 @@ ln -sf /storage/.config/yuzu /storage/.local/share/yuzu
#Set QT Platform to Wayland-EGL
export QT_QPA_PLATFORM=wayland-egl
jslisten set "-9 yuzu"
#Run Yuzu emulator
if [ "$SUI" = "1" ]
then

View file

@ -52,15 +52,13 @@ then
-DVIDEO_WAYLAND_QT_TOUCH=OFF \
-DWAYLAND_SHARED=ON \
-DVIDEO_X11=OFF \
-DSDL_X11=OFF \
-DSDL_HIDAPI_JOYSTICK=ON"
-DSDL_X11=OFF"
else
PKG_CMAKE_OPTS_TARGET+=" -DVIDEO_WAYLAND=OFF \
-DVIDEO_WAYLAND_QT_TOUCH=ON \
-DWAYLAND_SHARED=OFF \
-DVIDEO_X11=OFF \
-DSDL_X11=OFF \
-DSDL_HIDAPI_JOYSTICK=OFF"
-DSDL_X11=OFF"
fi
case ${DEVICE} in
@ -109,7 +107,8 @@ pre_configure_target(){
-DFUSIONSOUND=OFF \
-DFUSIONSOUND_SHARED=OFF \
-DVIDEO_DUMMY=OFF \
-DINPUT_TSLIB=OFF \
-DINPUT_TSLIB=ON \
-DSDL_HIDAPI_JOYSTICK=ON \
-DPTHREADS=ON \
-DPTHREADS_SEM=ON \
-DDIRECTX=OFF \

View file

@ -0,0 +1,75 @@
diff --git a/src/events/SDL_touch.c b/src/events/SDL_touch.c
index d8210d5fa..4e932f9c7 100644
--- a/src/events/SDL_touch.c
+++ b/src/events/SDL_touch.c
@@ -35,6 +35,7 @@ static SDL_Touch **SDL_touchDevices = NULL;
#define SYNTHESIZE_TOUCH_TO_MOUSE 1
#if SYNTHESIZE_TOUCH_TO_MOUSE
+static SDL_bool cursor_init = SDL_FALSE;
static SDL_bool finger_touching = SDL_FALSE;
static SDL_FingerID track_fingerid;
static SDL_TouchID track_touchid;
@@ -261,6 +262,11 @@ SDL_SendTouch(SDL_TouchID id, SDL_FingerID fingerid, SDL_Window * window,
return -1;
}
+ if (!window) {
+ // Fallback to the main application window.
+ window = SDL_GetWindowFromID(1);
+ }
+
mouse = SDL_GetMouse();
#if SYNTHESIZE_TOUCH_TO_MOUSE
@@ -275,6 +281,13 @@ SDL_SendTouch(SDL_TouchID id, SDL_FingerID fingerid, SDL_Window * window,
/* FIXME: maybe we should only restrict to a few SDL_TouchDeviceType */
if (id != SDL_MOUSE_TOUCHID) {
if (window) {
+ if (cursor_init == SDL_FALSE) {
+ // TODO - Initialization hack to reset cursor position to <0, 0>
+ SDL_SendMouseMotion(window, 0, SDL_TRUE, -window->w, -window->h);
+ mouse->x = 0; mouse->y = 0;
+ x = 0.0f; y = 0.0f;
+ cursor_init = SDL_TRUE;
+ }
if (down) {
if (finger_touching == SDL_FALSE) {
int pos_x = (int)(x * (float)window->w);
@@ -283,12 +296,12 @@ SDL_SendTouch(SDL_TouchID id, SDL_FingerID fingerid, SDL_Window * window,
if (pos_x > window->w - 1) pos_x = window->w - 1;
if (pos_y < 0) pos_y = 0;
if (pos_y > window->h - 1) pos_y = window->h - 1;
- SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, pos_x, pos_y);
- SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);
+ SDL_SendMouseMotion(window, 0, 0, pos_x, pos_y);
+ SDL_SendMouseButton(window, 0, SDL_PRESSED, SDL_BUTTON_LEFT);
}
} else {
if (finger_touching == SDL_TRUE && track_touchid == id && track_fingerid == fingerid) {
- SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT);
+ SDL_SendMouseButton(window, 0, SDL_RELEASED, SDL_BUTTON_LEFT);
}
}
}
@@ -383,6 +396,11 @@ SDL_SendTouchMotion(SDL_TouchID id, SDL_FingerID fingerid, SDL_Window * window,
return -1;
}
+ if (!window) {
+ // Fallback to the main application window.
+ window = SDL_GetWindowFromID(1);
+ }
+
mouse = SDL_GetMouse();
#if SYNTHESIZE_TOUCH_TO_MOUSE
@@ -398,7 +416,7 @@ SDL_SendTouchMotion(SDL_TouchID id, SDL_FingerID fingerid, SDL_Window * window,
if (pos_x > window->w - 1) pos_x = window->w - 1;
if (pos_y < 0) pos_y = 0;
if (pos_y > window->h - 1) pos_y = window->h - 1;
- SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, pos_x, pos_y);
+ SDL_SendMouseMotion(window, 0, 0, pos_x, pos_y);
}
}
}

View file

@ -9,3 +9,6 @@ if [ -z "${MYSLEEPMODE}" ]
then
/usr/bin/setsuspendmode mem
fi
# AYANEO Air Plus does not yet support deep sleep.
echo s2idle >/sys/power/mem_sleep

View file

@ -252,140 +252,33 @@ then
$VERBOSE && log $0 "Configuring for a non-libretro emulator"
case ${PLATFORM} in
"setup")
RUNTHIS='${TBASH} "${ROMNAME}"'
;;
"nds")
if [ "$EMU" = "melonds-sa" ]; then
jslisten set "-9 melonDS"
RUNTHIS='${TBASH} /usr/bin/start_melonds.sh "${ROMNAME}"'
elif [ "$EMU" = "drastic-sa" ]; then
jslisten set "-9 drastic"
RUNTHIS='${TBASH} /usr/bin/start_drastic.sh "${ROMNAME}"'
fi
;;
"solarus")
if [ "$EMU" = "solarus" ]
then
jslisten set "solarus-run"
RUNTHIS='${TBASH} /usr/bin/solarus.sh "${ROMNAME}"'
fi
RUNTHIS='${TBASH} "${ROMNAME}"'
;;
"n64")
jslisten set "-9 mupen64plus"
if [[ "$EMU" =~ "m64p" ]]; then
RUNTHIS='${TBASH} /usr/bin/start_mupen64plus.sh "${CORE}" "${ROMNAME}"'
fi
;;
"pc")
jslisten set "dosbox dosbox-x"
if [ "$EMU" = "DOSBOXSDL2" ]
then
RUNTHIS='${TBASH} /usr/bin/dosbox.start -conf "${GAMEFOLDER}dosbox-SDL2.conf"'
elif [ "$EMU" = "DOSBOX-X" ]
then
RUNTHIS='${TBASH} /usr/bin/dosbox-x.start -conf "${GAMEFOLDER}dosbox-SDL2.conf"'
fi
;;
"neocd")
jslisten set "retroarch"
if [ "$EMU" = "fbneo" ]
then
RUNTHIS='/usr/bin/retroarch -L /tmp/cores/fbneo_libretro.so --subsystem neocd --config ${RATMPCONF} --appendconfig ${RAAPPENDCONF} "${ROMNAME}"'
fi
;;
"atomiswave"|"dreamcast"|"naomi")
jslisten set "-9 flycast"
if [ "$EMU" = "flycast-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_flycastsa.sh "${ROMNAME}"'
fi
;;
"psx")
jslisten set "-9 duckstation-nogui"
if [ "$EMU" = "duckstation-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_duckstation.sh "${ROMNAME}"'
fi
;;
"ps2")
if [ "$EMU" = "pcsx2-sa" ]; then
jslisten set "-9 pcsx2-qt"
RUNTHIS='${TBASH} /usr/bin/start_pcsx2.sh "${ROMNAME}"'
elif [ "$EMU" = "aethersx2-sa" ]; then
jslisten set "-9 aethersx2"
RUNTHIS='${TBASH} /usr/bin/start_aethersx2.sh "${ROMNAME}"'
fi
;;
"ps3")
jslisten set "-9 rpcs3"
if [ "$EMU" = "rpcs3-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_rpcs3sa.sh "${ROMNAME}"'
fi
;;
"psp"|"pspminis")
jslisten set "-9 ppsspp"
if [ "$EMU" = "ppsspp-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_ppsspp.sh "${ROMNAME}"'
fi
;;
"gamecube")
jslisten set "-9 dolphin-emu-nogui"
if [ "$EMU" = "dolphin-sa-gc" ]; then
RUNTHIS='${TBASH} /usr/bin/start_dolphin_gc.sh "${ROMNAME}"'
elif [ "$EMU" = "primehack" ]; then
RUNTHIS='${TBASH} /usr/bin/start_primehack.sh "${ROMNAME}"'
RUNTHIS='${TBASH} /usr/bin/start_${EMU%-*}.sh "${ROMNAME}"'
fi
;;
"wii")
jslisten set "-9 dolphin-emu-nogui"
if [ "$EMU" = "dolphin-sa-wii" ]; then
RUNTHIS='${TBASH} /usr/bin/start_dolphin_wii.sh "${ROMNAME}"'
elif [ "$EMU" = "primehack" ]; then
RUNTHIS='${TBASH} /usr/bin/start_primehack.sh "${ROMNAME}"'
RUNTHIS='${TBASH} /usr/bin/start_${EMU%-*}.sh "${ROMNAME}"'
fi
;;
"wiiu")
jslisten set "-9 cemu"
if [ "$EMU" = "cemu-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_cemu.sh "${ROMNAME}"'
fi
;;
"switch")
if [ "$EMU" = "yuzu-sa" ]; then
jslisten set "-9 yuzu"
RUNTHIS='${TBASH} /usr/bin/start_yuzu.sh "${ROMNAME}"'
elif [ "$EMU" = "ryujinx-sa" ]; then
jslisten set "-9 Ryujinx"
RUNTHIS='${TBASH} /usr/bin/start_ryujinx.sh "${ROMNAME}"'
fi
;;
"xbox")
jslisten set "-9 xemu"
if [ "$EMU" = "xemu-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_xemu.sh "${ROMNAME}"'
fi
;;
"3ds")
jslisten set "-9 citra"
if [ "$EMU" = "citra-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_citra.sh "${ROMNAME}"'
fi
;;
"saturn")
jslisten set "-9 yabasanshiro"
if [ "$EMU" = "yabasanshiro-sa" ]; then
RUNTHIS='${TBASH} /usr/bin/start_yabasanshiro.sh "${ROMNAME}"'
fi
;;
"mplayer")
jslisten set "mpv"
RUNTHIS='${TBASH} /usr/bin/mpv_video.sh "${ROMNAME}"'
;;
"shell")
RUNTHIS='${TBASH} "${ROMNAME}"'
;;
*)
jslisten set "${CORE}"
RUNTHIS='${TBASH} "start_${CORE}.sh" "${ROMNAME}"'
RUNTHIS='${TBASH} "start_${EMU%-*}.sh" "${ROMNAME}"'
esac
else
$VERBOSE && log $0 "Configuring for a libretro core"

View file

@ -0,0 +1,26 @@
#!/bin/bash
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
. /etc/profile
battery_percent() {
cat /sys/class/power_supply/{BAT,bat}*/uevent 2>/dev/null | grep -E "^POWER_SUPPLY_CAPACITY=" | sed -e s+'^POWER_SUPPLY_CAPACITY='++ | sort -rn | head -1
}
AUDIOTEST=$(ps -ef | grep [p]ulseaudio)
if [ ! $? = 0 ]
then
PLAYCMD="aplay -q"
else
PLAYCMD="paplay"
fi
case $1 in
-b)
espeak --stdout "$(battery_percent)%" | ${PLAYCMD}
;;
*)
espeak --stdout "$*" | ${PLAYCMD}
;;
esac

View file

@ -1,4 +1,5 @@
#!/bin/bash
jslisten set "mpv"jslisten set "mpv"
/usr/bin/mpv --input-ipc-server=/tmp/mpvsocket "${1}"
exit 0

View file

@ -2,7 +2,7 @@
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="kernel-firmware"
PKG_VERSION="20230117"
PKG_VERSION="20230515"
PKG_LICENSE="other"
PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/"
PKG_URL="https://cdn.kernel.org/pub/linux/kernel/firmware/linux-firmware-${PKG_VERSION}.tar.xz"

View file

@ -4,7 +4,7 @@
PKG_NAME="linux"
PKG_LICENSE="GPL"
PKG_VERSION="6.1.32"
PKG_VERSION="6.3.7"
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_SITE="http://www.kernel.org"
PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host"
@ -26,7 +26,7 @@ fi
if [ "${PKG_BUILD_PERF}" != "no" ] && grep -q ^CONFIG_PERF_EVENTS= ${PKG_KERNEL_CFG_FILE}; then
PKG_BUILD_PERF="yes"
PKG_DEPENDS_TARGET+=" binutils elfutils libunwind zlib openssl"
PKG_DEPENDS_TARGET+=" binutils elfutils libunwind zlib openssl libtraceevent libtracefs"
fi
if [[ "${TARGET_ARCH}" =~ i*86|x86_64 ]]; then

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,172 +0,0 @@
diff -rupN linux-6.1.27.orig/Documentation/hwmon/oxp-sensors.rst linux-6.1.27/Documentation/hwmon/oxp-sensors.rst
--- linux-6.1.27.orig/Documentation/hwmon/oxp-sensors.rst 2023-05-02 01:46:52.201812789 +0000
+++ linux-6.1.27/Documentation/hwmon/oxp-sensors.rst 2023-05-02 01:46:58.725674940 +0000
@@ -3,18 +3,21 @@
Kernel driver oxp-sensors
=========================
-Author:
+Authors:
+ - Derek John Clark <derekjohn.clark@gmail.com>
- Joaquín Ignacio Aramendía <samsagax@gmail.com>
-Description:
+Description
------------
-One X Player devices from One Netbook provide fan readings and fan control
-through its Embedded Controller.
+Handheld devices from One Netbook and Aya Neo provide fan readings and fan
+control through their embedded controllers.
-Currently only supports AMD boards from the One X Player and AOK ZOE lineup.
-Intel boards could be supported if we could figure out the EC registers and
-values to write to since the EC layout and model is different.
+Currently only supports AMD boards from One X Player, AOK ZOE, and some Aya
+Neo devices. One X PLayer Intel boards could be supported if we could figure
+out the EC registers and values to write to since the EC layout and model is
+different. Aya Neo devices preceding the AIR may not be usable as the EC model
+is different and do not appear to have manual control capabiltities.
Supported devices
-----------------
@@ -22,6 +25,8 @@ Supported devices
Currently the driver supports the following handhelds:
- AOK ZOE A1
+ - Aya Neo AIR
+ - Aya Neo AIR Pro
- OneXPlayer AMD
- OneXPlayer mini AMD
- OneXPlayer mini AMD PRO
diff -rupN linux-6.1.27.orig/drivers/hwmon/oxp-sensors.c linux-6.1.27/drivers/hwmon/oxp-sensors.c
--- linux-6.1.27.orig/drivers/hwmon/oxp-sensors.c 2023-05-02 01:46:52.213812535 +0000
+++ linux-6.1.27/drivers/hwmon/oxp-sensors.c 2023-05-02 12:03:27.665299741 +0000
@@ -1,12 +1,12 @@
// SPDX-License-Identifier: GPL-2.0+
/*
- * Platform driver for OXP Handhelds that expose fan reading and control
- * via hwmon sysfs.
+ * Platform driver for Handhelds that expose fan reading and control via
+ * hwmon sysfs.
*
- * Old boards have the same DMI strings and they are told appart by the
- * boot cpu vendor (Intel/AMD). Currently only AMD boards are supported
- * but the code is made to be simple to add other handheld boards in the
- * future.
+ * Old OXP boards have the same DMI strings and they are told appart by
+ * the boot cpu vendor (Intel/AMD). Currently only AMD boards are
+ * supported but the code is made to be simple to add other handheld
+ * boards in the future.
* Fan control is provided via pwm interface in the range [0-255].
* Old AMD boards use [0-100] as range in the EC, the written value is
* scaled to accommodate for that. Newer boards like the mini PRO and
@@ -42,6 +42,9 @@ static bool unlock_global_acpi_lock(void
enum oxp_board {
aok_zoe_a1 = 1,
+ aya_neo_air,
+ aya_neo_air_pro,
+ aya_neo_air_plus,
oxp_mini_amd,
oxp_mini_amd_pro,
};
@@ -62,6 +65,27 @@ static const struct dmi_system_id dmi_ta
},
{
.matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AIR"),
+ },
+ .driver_data = (void *) &(enum oxp_board) {aya_neo_air},
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AIR Pro"),
+ },
+ .driver_data = (void *) &(enum oxp_board) {aya_neo_air_pro},
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AIR Plus"),
+ },
+ .driver_data = (void *) &(enum oxp_board) {aya_neo_air_plus},
+ },
+ {
+ .matches = {
DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"),
DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONE XPLAYER"),
},
@@ -161,8 +185,20 @@ static int oxp_platform_read(struct devi
ret = read_from_ec(OXP_SENSOR_PWM_REG, 1, val);
if (ret)
return ret;
- if (board == oxp_mini_amd)
+ switch (board) {
+ case aok_zoe_a1:
+ break;
+ case aya_neo_air:
+ case aya_neo_air_pro:
+ case aya_neo_air_plus:
+ case oxp_mini_amd:
*val = (*val * 255) / 100;
+ break;
+ case oxp_mini_amd_pro:
+ break;
+ default:
+ break;
+ }
return 0;
case hwmon_pwm_enable:
return read_from_ec(OXP_SENSOR_PWM_ENABLE_REG, 1, val);
@@ -191,8 +227,20 @@ static int oxp_platform_write(struct dev
case hwmon_pwm_input:
if (val < 0 || val > 255)
return -EINVAL;
- if (board == oxp_mini_amd)
+ switch (board) {
+ case aok_zoe_a1:
+ break;
+ case aya_neo_air:
+ case aya_neo_air_pro:
+ case aya_neo_air_plus:
+ case oxp_mini_amd:
val = (val * 100) / 255;
+ break;
+ case oxp_mini_amd_pro:
+ break;
+ default:
+ break;
+ }
return write_to_ec(dev, OXP_SENSOR_PWM_REG, val);
default:
break;
diff -rupN linux-6.1.27.orig/MAINTAINERS linux-6.1.27/MAINTAINERS
--- linux-6.1.27.orig/MAINTAINERS 2023-05-02 01:46:52.217812450 +0000
+++ linux-6.1.27/MAINTAINERS 2023-05-02 01:46:58.729674855 +0000
@@ -15348,6 +15348,7 @@ F: drivers/mtd/nand/onenand/
F: include/linux/mtd/onenand*.h
ONEXPLAYER FAN DRIVER
+M: Derek John Clark <derekjohn.clark@gmail.com>
M: Joaquín Ignacio Aramendía <samsagax@gmail.com>
L: linux-hwmon@vger.kernel.org
S: Maintained
diff -rupN linux-6.1.27.orig/MAINTAINERS.orig linux-6.1.27/MAINTAINERS.orig
--- linux-6.1.27.orig/MAINTAINERS.orig 2023-05-01 20:39:26.912428456 +0000
+++ linux-6.1.27/MAINTAINERS.orig 2023-05-02 01:46:41.170045608 +0000
@@ -15347,6 +15347,12 @@ S: Maintained
F: drivers/mtd/nand/onenand/
F: include/linux/mtd/onenand*.h
+ONEXPLAYER FAN DRIVER
+M: Joaquín Ignacio Aramendía <samsagax@gmail.com>
+L: linux-hwmon@vger.kernel.org
+S: Maintained
+F: drivers/hwmon/oxp-sensors.c
+
ONION OMEGA2+ BOARD
M: Harvey Hunt <harveyhuntnexus@gmail.com>
L: linux-mips@vger.kernel.org

View file

@ -0,0 +1,150 @@
From: Mario Limonciello @ 2023-06-01 22:11 UTC (permalink / raw)
To: linux-acpi, rafael
Cc: linux-kernel, Mario Limonciello, ofenfisch, wse, adam.niederer,
adrian, jirislaby, Renjith.Pananchikkal, anson.tsao,
Richard.Gong, Chuanhong Guo, evilsnoo, ruinairas1992, nmschulte
commit 9946e39fe8d0 ("ACPI: resource: skip IRQ override on
AMD Zen platforms") attempted to overhaul the override logic so it
didn't apply on X86 AMD Zen systems. This was intentional so that
systems would prefer DSDT values instead of default MADT value for
IRQ 1 on Ryzen 6000 systems which typically uses ActiveLow for IRQ1.
This turned out to be a bad assumption because several vendors
add Interrupt Source Override but don't fix the DSDT. A pile of
quirks was collecting that proved this wasn't sustaintable.
Furthermore some vendors have used ActiveHigh for IRQ1.
To solve this problem revert the following commits:
* commit 17bb7046e7ce ("ACPI: resource: Do IRQ override on all TongFang
GMxRGxx")
* commit f3cb9b740869 ("ACPI: resource: do IRQ override on Lenovo 14ALC7")
* commit bfcdf58380b1 ("ACPI: resource: do IRQ override on LENOVO IdeaPad")
* commit 7592b79ba4a9 ("ACPI: resource: do IRQ override on XMG Core 15")
* commit 9946e39fe8d0 ("ACPI: resource: skip IRQ override on AMD Zen
platforms")
Cc: ofenfisch@googlemail.com
Cc: wse@tuxedocomputers.com
Cc: adam.niederer@gmail.com
Cc: adrian@freund.io
Cc: jirislaby@kernel.org
Cc: Renjith.Pananchikkal@amd.com
Cc: anson.tsao@amd.com
Cc: Richard.Gong@amd.com
Cc: Chuanhong Guo <gch981213@gmail.com>
Reported-by: evilsnoo@proton.me
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217394
Reported-by: ruinairas1992@gmail.com
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217406
Reported-by: nmschulte@gmail.com
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217336
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
v2->v3:
* Adjust to drop heuristics entirely
* Drop tested tags
* Add more links and people to Cc
* Drop Fixes tag as this got a lot more risky
v1->v2:
* Rebase on 71a485624c4c ("ACPI: resource: Add IRQ override quirk for LG UltraPC 17U70P")
* Pick up tag
Rafael,
Please hold off on picking this up until the majority of those on CC
have tested it on hardware they have and reported results.
Everyone else,
Please test. If you have problems with this applied, please share
an acpidump and dmesg either on a bug or to me privately.
---
drivers/acpi/resource.c | 60 -----------------------------------------
1 file changed, 60 deletions(-)
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 0800a9d77558..1dd8d5aebf67 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -470,52 +470,6 @@ static const struct dmi_system_id asus_laptop[] = {
{ }
};
-static const struct dmi_system_id lenovo_laptop[] = {
- {
- .ident = "LENOVO IdeaPad Flex 5 14ALC7",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
- DMI_MATCH(DMI_PRODUCT_NAME, "82R9"),
- },
- },
- {
- .ident = "LENOVO IdeaPad Flex 5 16ALC7",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
- DMI_MATCH(DMI_PRODUCT_NAME, "82RA"),
- },
- },
- { }
-};
-
-static const struct dmi_system_id tongfang_gm_rg[] = {
- {
- .ident = "TongFang GMxRGxx/XMG CORE 15 (M22)/TUXEDO Stellaris 15 Gen4 AMD",
- .matches = {
- DMI_MATCH(DMI_BOARD_NAME, "GMxRGxx"),
- },
- },
- { }
-};
-
-static const struct dmi_system_id maingear_laptop[] = {
- {
- .ident = "MAINGEAR Vector Pro 2 15",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Micro Electronics Inc"),
- DMI_MATCH(DMI_PRODUCT_NAME, "MG-VCP2-15A3070T"),
- }
- },
- {
- .ident = "MAINGEAR Vector Pro 2 17",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Micro Electronics Inc"),
- DMI_MATCH(DMI_PRODUCT_NAME, "MG-VCP2-17A3070T"),
- },
- },
- { }
-};
-
static const struct dmi_system_id lg_laptop[] = {
{
.ident = "LG Electronics 17U70P",
@@ -539,10 +493,6 @@ struct irq_override_cmp {
static const struct irq_override_cmp override_table[] = {
{ medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
{ asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
- { lenovo_laptop, 6, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, true },
- { lenovo_laptop, 10, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, true },
- { tongfang_gm_rg, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
- { maingear_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
{ lg_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
};
@@ -562,16 +512,6 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
return entry->override;
}
-#ifdef CONFIG_X86
- /*
- * IRQ override isn't needed on modern AMD Zen systems and
- * this override breaks active low IRQs on AMD Ryzen 6000 and
- * newer systems. Skip it.
- */
- if (boot_cpu_has(X86_FEATURE_ZEN))
- return false;
-#endif
-
return true;
}
--
2.34.1

View file

@ -1,516 +0,0 @@
From 72ce570d0b3ae23aaf74ae604d58a2c819d1b4a8 Mon Sep 17 00:00:00 2001
From: Vicki Pfau <vi@endrift.com>
Date: Thu, 7 Apr 2022 16:17:42 -0700
Subject: [PATCH] HID: hid-steam: Add Steam Deck support
Signed-off-by: Vicki Pfau <vi@endrift.com>
---
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-steam.c | 336 ++++++++++++++++++++++++++++++++++++----
2 files changed, 307 insertions(+), 30 deletions(-)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index b84a0a11e05b..219a9ea0b186 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1130,6 +1130,7 @@
#define USB_VENDOR_ID_VALVE 0x28de
#define USB_DEVICE_ID_STEAM_CONTROLLER 0x1102
#define USB_DEVICE_ID_STEAM_CONTROLLER_WIRELESS 0x1142
+#define USB_DEVICE_ID_STEAM_DECK 0x1205
#define USB_VENDOR_ID_STEELSERIES 0x1038
#define USB_DEVICE_ID_STEELSERIES_SRWS1 0x1410
diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c
index a3b151b29bd7..42c7c75d3005 100644
--- a/drivers/hid/hid-steam.c
+++ b/drivers/hid/hid-steam.c
@@ -3,6 +3,7 @@
* HID driver for Valve Steam Controller
*
* Copyright (c) 2018 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
+ * Copyright (c) 2022 Valve Software
*
* Supports both the wired and wireless interfaces.
*
@@ -53,6 +54,7 @@ static DEFINE_MUTEX(steam_devices_lock);
static LIST_HEAD(steam_devices);
#define STEAM_QUIRK_WIRELESS BIT(0)
+#define STEAM_QUIRK_DECK BIT(1)
/* Touch pads are 40 mm in diameter and 65535 units */
#define STEAM_PAD_RESOLUTION 1638
@@ -60,6 +62,10 @@ static LIST_HEAD(steam_devices);
#define STEAM_TRIGGER_RESOLUTION 51
/* Joystick runs are about 5 mm and 256 units */
#define STEAM_JOYSTICK_RESOLUTION 51
+/* Trigger runs are about 6 mm and 32768 units */
+#define STEAM_DECK_TRIGGER_RESOLUTION 5461
+/* Joystick runs are about 5 mm and 32768 units */
+#define STEAM_DECK_JOYSTICK_RESOLUTION 6553
#define STEAM_PAD_FUZZ 256
@@ -92,11 +98,14 @@ static LIST_HEAD(steam_devices);
#define STEAM_REG_RPAD_MARGIN 0x18
#define STEAM_REG_LED 0x2d
#define STEAM_REG_GYRO_MODE 0x30
+#define STEAM_REG_LPAD_CLICK_PRESSURE 0x34
+#define STEAM_REG_RPAD_CLICK_PRESSURE 0x35
/* Raw event identifiers */
#define STEAM_EV_INPUT_DATA 0x01
#define STEAM_EV_CONNECT 0x03
#define STEAM_EV_BATTERY 0x04
+#define STEAM_EV_DECK_INPUT_DATA 0x09
/* Values for GYRO_MODE (bitmask) */
#define STEAM_GYRO_MODE_OFF 0x0000
@@ -124,6 +133,7 @@ struct steam_device {
struct power_supply __rcu *battery;
u8 battery_charge;
u16 voltage;
+ struct delayed_work heartbeat;
};
static int steam_recv_report(struct steam_device *steam,
@@ -183,7 +193,7 @@ static int steam_send_report(struct steam_device *steam,
*/
do {
ret = hid_hw_raw_request(steam->hdev, 0,
- buf, size + 1,
+ buf, max(size, 64) + 1,
HID_FEATURE_REPORT, HID_REQ_SET_REPORT);
if (ret != -EPIPE)
break;
@@ -209,6 +219,7 @@ static int steam_write_registers(struct steam_device *steam,
u8 reg;
u16 val;
u8 cmd[64] = {STEAM_CMD_WRITE_REGISTER, 0x00};
+ int ret;
va_list args;
va_start(args, steam);
@@ -224,7 +235,16 @@ static int steam_write_registers(struct steam_device *steam,
}
va_end(args);
- return steam_send_report(steam, cmd, 2 + cmd[1]);
+ ret = steam_send_report(steam, cmd, 2 + cmd[1]);
+ if (ret < 0)
+ return ret;
+
+ /*
+ * Sometimes a lingering report for this command can
+ * get read back instead of the last set report if
+ * this isn't explicitly queried
+ */
+ return steam_recv_report(steam, cmd, 2 + cmd[1]);
}
static int steam_get_serial(struct steam_device *steam)
@@ -270,13 +290,32 @@ static void steam_set_lizard_mode(struct steam_device *steam, bool enable)
steam_write_registers(steam,
STEAM_REG_RPAD_MARGIN, 0x01, /* enable margin */
0);
+
+ cancel_delayed_work_sync(&steam->heartbeat);
} else {
/* disable esc, enter, cursor */
steam_send_report_byte(steam, STEAM_CMD_CLEAR_MAPPINGS);
- steam_write_registers(steam,
- STEAM_REG_RPAD_MODE, 0x07, /* disable mouse */
- STEAM_REG_RPAD_MARGIN, 0x00, /* disable margin */
- 0);
+
+ if (steam->quirks & STEAM_QUIRK_DECK) {
+ steam_write_registers(steam,
+ STEAM_REG_RPAD_MARGIN, 0x00, /* disable margin */
+ STEAM_REG_LPAD_MODE, 0x07, /* disable mouse */
+ STEAM_REG_RPAD_MODE, 0x07, /* disable mouse */
+ STEAM_REG_LPAD_CLICK_PRESSURE, 0xFFFF, /* disable clicky pad */
+ STEAM_REG_RPAD_CLICK_PRESSURE, 0xFFFF, /* disable clicky pad */
+ 0);
+ /*
+ * The Steam Deck has a watchdog that automatically enables
+ * lizard mode if it doesn't see any traffic for too long
+ */
+ schedule_delayed_work(&steam->heartbeat, 5 * HZ);
+ } else {
+ steam_write_registers(steam,
+ STEAM_REG_RPAD_MARGIN, 0x00, /* disable margin */
+ STEAM_REG_LPAD_MODE, 0x07, /* disable mouse */
+ STEAM_REG_RPAD_MODE, 0x07, /* disable mouse */
+ 0);
+ }
}
}
@@ -403,8 +442,8 @@ static int steam_input_register(struct steam_device *steam)
input->open = steam_input_open;
input->close = steam_input_close;
- input->name = (steam->quirks & STEAM_QUIRK_WIRELESS) ?
- "Wireless Steam Controller" :
+ input->name = (steam->quirks & STEAM_QUIRK_WIRELESS) ? "Wireless Steam Controller" :
+ (steam->quirks & STEAM_QUIRK_DECK) ? "Steam Deck" :
"Steam Controller";
input->phys = hdev->phys;
input->uniq = steam->serial_no;
@@ -428,33 +467,69 @@ static int steam_input_register(struct steam_device *steam)
input_set_capability(input, EV_KEY, BTN_SELECT);
input_set_capability(input, EV_KEY, BTN_MODE);
input_set_capability(input, EV_KEY, BTN_START);
- input_set_capability(input, EV_KEY, BTN_GEAR_DOWN);
- input_set_capability(input, EV_KEY, BTN_GEAR_UP);
input_set_capability(input, EV_KEY, BTN_THUMBR);
input_set_capability(input, EV_KEY, BTN_THUMBL);
input_set_capability(input, EV_KEY, BTN_THUMB);
input_set_capability(input, EV_KEY, BTN_THUMB2);
+ if (steam->quirks & STEAM_QUIRK_DECK) {
+ input_set_capability(input, EV_KEY, BTN_BASE);
+ input_set_capability(input, EV_KEY, BTN_TRIGGER_HAPPY1);
+ input_set_capability(input, EV_KEY, BTN_TRIGGER_HAPPY2);
+ input_set_capability(input, EV_KEY, BTN_TRIGGER_HAPPY3);
+ input_set_capability(input, EV_KEY, BTN_TRIGGER_HAPPY4);
+ } else {
+ input_set_capability(input, EV_KEY, BTN_GEAR_DOWN);
+ input_set_capability(input, EV_KEY, BTN_GEAR_UP);
+ }
- input_set_abs_params(input, ABS_HAT2Y, 0, 255, 0, 0);
- input_set_abs_params(input, ABS_HAT2X, 0, 255, 0, 0);
input_set_abs_params(input, ABS_X, -32767, 32767, 0, 0);
input_set_abs_params(input, ABS_Y, -32767, 32767, 0, 0);
- input_set_abs_params(input, ABS_RX, -32767, 32767,
- STEAM_PAD_FUZZ, 0);
- input_set_abs_params(input, ABS_RY, -32767, 32767,
- STEAM_PAD_FUZZ, 0);
- input_set_abs_params(input, ABS_HAT0X, -32767, 32767,
- STEAM_PAD_FUZZ, 0);
- input_set_abs_params(input, ABS_HAT0Y, -32767, 32767,
- STEAM_PAD_FUZZ, 0);
- input_abs_set_res(input, ABS_X, STEAM_JOYSTICK_RESOLUTION);
- input_abs_set_res(input, ABS_Y, STEAM_JOYSTICK_RESOLUTION);
- input_abs_set_res(input, ABS_RX, STEAM_PAD_RESOLUTION);
- input_abs_set_res(input, ABS_RY, STEAM_PAD_RESOLUTION);
+ if (steam->quirks & STEAM_QUIRK_DECK) {
+ input_set_abs_params(input, ABS_HAT2Y, 0, 32767, 0, 0);
+ input_set_abs_params(input, ABS_HAT2X, 0, 32767, 0, 0);
+
+ input_set_abs_params(input, ABS_RX, -32767, 32767, 0, 0);
+ input_set_abs_params(input, ABS_RY, -32767, 32767, 0, 0);
+
+ input_set_abs_params(input, ABS_HAT0X, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+ input_set_abs_params(input, ABS_HAT0Y, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+ input_set_abs_params(input, ABS_HAT1X, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+ input_set_abs_params(input, ABS_HAT1Y, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+
+ input_abs_set_res(input, ABS_X, STEAM_DECK_JOYSTICK_RESOLUTION);
+ input_abs_set_res(input, ABS_Y, STEAM_DECK_JOYSTICK_RESOLUTION);
+ input_abs_set_res(input, ABS_RX, STEAM_DECK_JOYSTICK_RESOLUTION);
+ input_abs_set_res(input, ABS_RY, STEAM_DECK_JOYSTICK_RESOLUTION);
+ input_abs_set_res(input, ABS_HAT1X, STEAM_PAD_RESOLUTION);
+ input_abs_set_res(input, ABS_HAT1Y, STEAM_PAD_RESOLUTION);
+ input_abs_set_res(input, ABS_HAT2Y, STEAM_DECK_TRIGGER_RESOLUTION);
+ input_abs_set_res(input, ABS_HAT2X, STEAM_DECK_TRIGGER_RESOLUTION);
+ } else {
+ input_set_abs_params(input, ABS_HAT2Y, 0, 255, 0, 0);
+ input_set_abs_params(input, ABS_HAT2X, 0, 255, 0, 0);
+
+ input_set_abs_params(input, ABS_RX, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+ input_set_abs_params(input, ABS_RY, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+ input_set_abs_params(input, ABS_HAT0X, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+ input_set_abs_params(input, ABS_HAT0Y, -32767, 32767,
+ STEAM_PAD_FUZZ, 0);
+
+ input_abs_set_res(input, ABS_X, STEAM_JOYSTICK_RESOLUTION);
+ input_abs_set_res(input, ABS_Y, STEAM_JOYSTICK_RESOLUTION);
+ input_abs_set_res(input, ABS_RX, STEAM_PAD_RESOLUTION);
+ input_abs_set_res(input, ABS_RY, STEAM_PAD_RESOLUTION);
+ input_abs_set_res(input, ABS_HAT2Y, STEAM_TRIGGER_RESOLUTION);
+ input_abs_set_res(input, ABS_HAT2X, STEAM_TRIGGER_RESOLUTION);
+ }
input_abs_set_res(input, ABS_HAT0X, STEAM_PAD_RESOLUTION);
input_abs_set_res(input, ABS_HAT0Y, STEAM_PAD_RESOLUTION);
- input_abs_set_res(input, ABS_HAT2Y, STEAM_TRIGGER_RESOLUTION);
- input_abs_set_res(input, ABS_HAT2X, STEAM_TRIGGER_RESOLUTION);
ret = input_register_device(input);
if (ret)
@@ -602,6 +677,24 @@ static bool steam_is_valve_interface(struct hid_device *hdev)
return !list_empty(&rep_enum->report_list);
}
+static void steam_lizard_mode_heartbeat(struct work_struct *work)
+{
+ struct steam_device *steam = container_of(work, struct steam_device,
+ heartbeat.work);
+ if (lizard_mode)
+ return;
+
+ mutex_lock(&steam->mutex);
+ if (!steam->client_opened) {
+ steam_send_report_byte(steam, STEAM_CMD_CLEAR_MAPPINGS);
+ steam_write_registers(steam,
+ STEAM_REG_RPAD_MODE, 0x07, /* disable mouse */
+ 0);
+ schedule_delayed_work(&steam->heartbeat, 5 * HZ);
+ }
+ mutex_unlock(&steam->mutex);
+}
+
static int steam_client_ll_parse(struct hid_device *hdev)
{
struct steam_device *steam = hdev->driver_data;
@@ -740,6 +833,7 @@ static int steam_probe(struct hid_device *hdev,
steam->quirks = id->driver_data;
INIT_WORK(&steam->work_connect, steam_work_connect_cb);
INIT_LIST_HEAD(&steam->list);
+ INIT_DEFERRABLE_WORK(&steam->heartbeat, steam_lizard_mode_heartbeat);
steam->client_hdev = steam_create_client_hid(hdev);
if (IS_ERR(steam->client_hdev)) {
@@ -813,6 +907,7 @@ static void steam_remove(struct hid_device *hdev)
hid_destroy_device(steam->client_hdev);
steam->client_opened = false;
cancel_work_sync(&steam->work_connect);
+ cancel_delayed_work_sync(&steam->heartbeat);
if (steam->quirks & STEAM_QUIRK_WIRELESS) {
hid_info(hdev, "Steam wireless receiver disconnected");
}
@@ -896,10 +991,10 @@ static inline s16 steam_le16(u8 *data)
* 8.5 | BTN_B | button B
* 8.6 | BTN_X | button X
* 8.7 | BTN_A | button A
- * 9.0 | BTN_DPAD_UP | lef-pad up
- * 9.1 | BTN_DPAD_RIGHT | lef-pad right
- * 9.2 | BTN_DPAD_LEFT | lef-pad left
- * 9.3 | BTN_DPAD_DOWN | lef-pad down
+ * 9.0 | BTN_DPAD_UP | left-pad up
+ * 9.1 | BTN_DPAD_RIGHT | left-pad right
+ * 9.2 | BTN_DPAD_LEFT | left-pad left
+ * 9.3 | BTN_DPAD_DOWN | left-pad down
* 9.4 | BTN_SELECT | menu left
* 9.5 | BTN_MODE | steam logo
* 9.6 | BTN_START | menu right
@@ -983,6 +1078,172 @@ static void steam_do_input_event(struct steam_device *steam,
input_sync(input);
}
+/*
+ * The size for this message payload is 56.
+ * The known values are:
+ * Offset| Type | Mapped to |Meaning
+ * -------+-------+-----------+--------------------------
+ * 4-7 | u32 | -- | sequence number
+ * 8-15 | u64 | see below | buttons
+ * 16-17 | s16 | ABS_HAT0X | left-pad X value
+ * 18-19 | s16 | ABS_HAT0Y | left-pad Y value
+ * 20-21 | s16 | ABS_HAT1X | right-pad X value
+ * 22-23 | s16 | ABS_HAT1Y | right-pad Y value
+ * 24-25 | s16 | -- | accelerometer X value
+ * 26-27 | s16 | -- | accelerometer Y value
+ * 28-29 | s16 | -- | accelerometer Z value
+ * 30-31 | s16 | -- | gyro X value
+ * 32-33 | s16 | -- | gyro Y value
+ * 34-35 | s16 | -- | gyro Z value
+ * 36-37 | s16 | -- | quaternion W value
+ * 38-39 | s16 | -- | quaternion X value
+ * 40-41 | s16 | -- | quaternion Y value
+ * 42-43 | s16 | -- | quaternion Z value
+ * 44-45 | u16 | ABS_HAT2Y | left trigger (uncalibrated)
+ * 46-47 | u16 | ABS_HAT2X | right trigger (uncalibrated)
+ * 48-49 | s16 | ABS_X | left joystick X
+ * 50-51 | s16 | ABS_Y | left joystick Y
+ * 52-53 | s16 | ABS_RX | right joystick X
+ * 54-55 | s16 | ABS_RY | right joystick Y
+ * 56-57 | u16 | -- | left pad pressure
+ * 58-59 | u16 | -- | right pad pressure
+ *
+ * The buttons are:
+ * Bit | Mapped to | Description
+ * ------+------------+--------------------------------
+ * 8.0 | BTN_TR2 | right trigger fully pressed
+ * 8.1 | BTN_TL2 | left trigger fully pressed
+ * 8.2 | BTN_TR | right shoulder
+ * 8.3 | BTN_TL | left shoulder
+ * 8.4 | BTN_Y | button Y
+ * 8.5 | BTN_B | button B
+ * 8.6 | BTN_X | button X
+ * 8.7 | BTN_A | button A
+ * 9.0 | BTN_DPAD_UP | left-pad up
+ * 9.1 | BTN_DPAD_RIGHT | left-pad right
+ * 9.2 | BTN_DPAD_LEFT | left-pad left
+ * 9.3 | BTN_DPAD_DOWN | left-pad down
+ * 9.4 | BTN_SELECT | menu left
+ * 9.5 | BTN_MODE | steam logo
+ * 9.6 | BTN_START | menu right
+ * 9.7 | BTN_TRIGGER_HAPPY3 | left bottom grip button
+ * 10.0 | BTN_TRIGGER_HAPPY4 | right bottom grip button
+ * 10.1 | BTN_THUMB | left pad pressed
+ * 10.2 | BTN_THUMB2 | right pad pressed
+ * 10.3 | -- | left pad touched
+ * 10.4 | -- | right pad touched
+ * 10.5 | -- | unknown
+ * 10.6 | BTN_THUMBL | left joystick clicked
+ * 10.7 | -- | unknown
+ * 11.0 | -- | unknown
+ * 11.1 | -- | unknown
+ * 11.2 | BTN_THUMBR | right joystick clicked
+ * 11.3 | -- | unknown
+ * 11.4 | -- | unknown
+ * 11.5 | -- | unknown
+ * 11.6 | -- | unknown
+ * 11.7 | -- | unknown
+ * 12.0 | -- | unknown
+ * 12.1 | -- | unknown
+ * 12.2 | -- | unknown
+ * 12.3 | -- | unknown
+ * 12.4 | -- | unknown
+ * 12.5 | -- | unknown
+ * 12.6 | -- | unknown
+ * 12.7 | -- | unknown
+ * 13.0 | -- | unknown
+ * 13.1 | BTN_TRIGGER_HAPPY1 | left top grip button
+ * 13.2 | BTN_TRIGGER_HAPPY2 | right top grip button
+ * 13.3 | -- | unknown
+ * 13.4 | -- | unknown
+ * 13.5 | -- | unknown
+ * 13.6 | -- | left joystick touched
+ * 13.7 | -- | right joystick touched
+ * 14.0 | -- | unknown
+ * 14.1 | -- | unknown
+ * 14.2 | BTN_BASE | quick access button
+ * 14.3 | -- | unknown
+ * 14.4 | -- | unknown
+ * 14.5 | -- | unknown
+ * 14.6 | -- | unknown
+ * 14.7 | -- | unknown
+ * 15.0 | -- | unknown
+ * 15.1 | -- | unknown
+ * 15.2 | -- | unknown
+ * 15.3 | -- | unknown
+ * 15.4 | -- | unknown
+ * 15.5 | -- | unknown
+ * 15.6 | -- | unknown
+ * 15.7 | -- | unknown
+ */
+static void steam_do_deck_input_event(struct steam_device *steam,
+ struct input_dev *input, u8 *data)
+{
+ u8 b8, b9, b10, b11, b13, b14;
+ bool lpad_touched, rpad_touched;
+
+ b8 = data[8];
+ b9 = data[9];
+ b10 = data[10];
+ b11 = data[11];
+ b13 = data[13];
+ b14 = data[14];
+
+ lpad_touched = b10 & BIT(3);
+ rpad_touched = b10 & BIT(4);
+
+ if (lpad_touched) {
+ input_report_abs(input, ABS_HAT0X, steam_le16(data + 16));
+ input_report_abs(input, ABS_HAT0Y, steam_le16(data + 18));
+ } else {
+ input_report_abs(input, ABS_HAT0X, 0);
+ input_report_abs(input, ABS_HAT0Y, 0);
+ }
+
+ if (rpad_touched) {
+ input_report_abs(input, ABS_HAT1X, steam_le16(data + 20));
+ input_report_abs(input, ABS_HAT1Y, steam_le16(data + 22));
+ } else {
+ input_report_abs(input, ABS_HAT1X, 0);
+ input_report_abs(input, ABS_HAT1Y, 0);
+ }
+
+ input_report_abs(input, ABS_X, steam_le16(data + 48));
+ input_report_abs(input, ABS_Y, -steam_le16(data + 50));
+ input_report_abs(input, ABS_RX, steam_le16(data + 52));
+ input_report_abs(input, ABS_RY, -steam_le16(data + 54));
+
+ input_report_abs(input, ABS_HAT2Y, steam_le16(data + 44));
+ input_report_abs(input, ABS_HAT2X, steam_le16(data + 46));
+
+ input_event(input, EV_KEY, BTN_TR2, !!(b8 & BIT(0)));
+ input_event(input, EV_KEY, BTN_TL2, !!(b8 & BIT(1)));
+ input_event(input, EV_KEY, BTN_TR, !!(b8 & BIT(2)));
+ input_event(input, EV_KEY, BTN_TL, !!(b8 & BIT(3)));
+ input_event(input, EV_KEY, BTN_Y, !!(b8 & BIT(4)));
+ input_event(input, EV_KEY, BTN_B, !!(b8 & BIT(5)));
+ input_event(input, EV_KEY, BTN_X, !!(b8 & BIT(6)));
+ input_event(input, EV_KEY, BTN_A, !!(b8 & BIT(7)));
+ input_event(input, EV_KEY, BTN_SELECT, !!(b9 & BIT(4)));
+ input_event(input, EV_KEY, BTN_MODE, !!(b9 & BIT(5)));
+ input_event(input, EV_KEY, BTN_START, !!(b9 & BIT(6)));
+ input_event(input, EV_KEY, BTN_TRIGGER_HAPPY3, !!(b9 & BIT(7)));
+ input_event(input, EV_KEY, BTN_TRIGGER_HAPPY4, !!(b10 & BIT(0)));
+ input_event(input, EV_KEY, BTN_THUMBL, !!(b10 & BIT(6)));
+ input_event(input, EV_KEY, BTN_THUMBR, !!(b11 & BIT(2)));
+ input_event(input, EV_KEY, BTN_DPAD_UP, !!(b9 & BIT(0)));
+ input_event(input, EV_KEY, BTN_DPAD_RIGHT, !!(b9 & BIT(1)));
+ input_event(input, EV_KEY, BTN_DPAD_LEFT, !!(b9 & BIT(2)));
+ input_event(input, EV_KEY, BTN_DPAD_DOWN, !!(b9 & BIT(3)));
+ input_event(input, EV_KEY, BTN_THUMB, !!(b10 & BIT(1)));
+ input_event(input, EV_KEY, BTN_THUMB2, !!(b10 & BIT(2)));
+ input_event(input, EV_KEY, BTN_TRIGGER_HAPPY1, !!(b13 & BIT(1)));
+ input_event(input, EV_KEY, BTN_TRIGGER_HAPPY2, !!(b13 & BIT(2)));
+ input_event(input, EV_KEY, BTN_BASE, !!(b14 & BIT(2)));
+
+ input_sync(input);
+}
+
/*
* The size for this message payload is 11.
* The known values are:
@@ -1042,6 +1303,7 @@ static int steam_raw_event(struct hid_device *hdev,
* 0x01: input data (60 bytes)
* 0x03: wireless connect/disconnect (1 byte)
* 0x04: battery status (11 bytes)
+ * 0x09: Steam Deck input data (56 bytes)
*/
if (size != 64 || data[0] != 1 || data[1] != 0)
@@ -1057,6 +1319,15 @@ static int steam_raw_event(struct hid_device *hdev,
steam_do_input_event(steam, input, data);
rcu_read_unlock();
break;
+ case STEAM_EV_DECK_INPUT_DATA:
+ if (steam->client_opened)
+ return 0;
+ rcu_read_lock();
+ input = rcu_dereference(steam->input);
+ if (likely(input))
+ steam_do_deck_input_event(steam, input, data);
+ rcu_read_unlock();
+ break;
case STEAM_EV_CONNECT:
/*
* The payload of this event is a single byte:
@@ -1131,6 +1402,11 @@ static const struct hid_device_id steam_controllers[] = {
USB_DEVICE_ID_STEAM_CONTROLLER_WIRELESS),
.driver_data = STEAM_QUIRK_WIRELESS
},
+ { /* Steam Deck */
+ HID_USB_DEVICE(USB_VENDOR_ID_VALVE,
+ USB_DEVICE_ID_STEAM_DECK),
+ .driver_data = STEAM_QUIRK_DECK
+ },
{}
};
--
GitLab

View file

@ -0,0 +1,42 @@
diff -rupN linux-6.3.7.orig/tools/perf/util/debug.c linux-6.3.7/tools/perf/util/debug.c
--- linux-6.3.7.orig/tools/perf/util/debug.c 2023-06-13 10:58:18.894087434 +0000
+++ linux-6.3.7/tools/perf/util/debug.c 2023-06-13 11:17:05.344846060 +0000
@@ -235,14 +235,12 @@ int perf_debug_option(const char *str)
/* Allow only verbose value in range (0, 10), otherwise set 0. */
verbose = (verbose < 0) || (verbose > 10) ? 0 : verbose;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 3, 0)
if (verbose == 1)
tep_set_loglevel(TEP_LOG_INFO);
else if (verbose == 2)
tep_set_loglevel(TEP_LOG_DEBUG);
else if (verbose >= 3)
tep_set_loglevel(TEP_LOG_ALL);
-#endif
return 0;
}
diff -rupN linux-6.3.7.orig/tools/perf/util/trace-event.h linux-6.3.7/tools/perf/util/trace-event.h
--- linux-6.3.7.orig/tools/perf/util/trace-event.h 2023-06-13 10:58:18.898087572 +0000
+++ linux-6.3.7/tools/perf/util/trace-event.h 2023-06-13 11:26:19.431910684 +0000
@@ -140,20 +140,11 @@ int common_lock_depth(struct scripting_c
#define SAMPLE_FLAGS_BUF_SIZE 64
int perf_sample__sprintf_flags(u32 flags, char *str, size_t sz);
-#if defined(LIBTRACEEVENT_VERSION) && LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
#include <traceevent/event-parse.h>
static inline bool tep_field_is_relative(unsigned long flags)
{
return (flags & TEP_FIELD_IS_RELATIVE) != 0;
}
-#else
-#include <linux/compiler.h>
-
-static inline bool tep_field_is_relative(unsigned long flags __maybe_unused)
-{
- return false;
-}
-#endif
#endif /* _PERF_UTIL_TRACE_EVENT_H */

View file

@ -1,55 +0,0 @@
diff --color -rupN linux.orig/drivers/acpi/resource.c linux/drivers/acpi/resource.c
--- linux.orig/drivers/acpi/resource.c 2023-05-14 11:15:56.883145312 -0400
+++ linux/drivers/acpi/resource.c 2023-05-14 11:22:05.436042175 -0400
@@ -36,6 +36,35 @@ static inline bool
acpi_iospace_resource_valid(struct resource *res) { return true; }
#endif
+#ifdef CONFIG_X86
+/* Enable a quirk to allow override on some AMD 6800 series devices */
+static bool needs_irq_override = false;
+
+static int __init irq_override_fixup(const struct dmi_system_id *id)
+{
+ needs_irq_override = true;
+ return 1;
+}
+
+static const struct dmi_system_id resource_quirk_table[] __initconst = {
+ {
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AIR Plus"),
+ },
+ .callback = irq_override_fixup,
+ },
+ {
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1619-04"),
+ },
+ .callback = irq_override_fixup,
+ },
+ { }
+};
+#endif
+
#if IS_ENABLED(CONFIG_ACPI_GENERIC_GSI)
static inline bool is_gsi(struct acpi_resource_extended_irq *ext_irq)
{
@@ -542,7 +571,9 @@ static bool acpi_dev_irq_override(u32 gs
* this override breaks active low IRQs on AMD Ryzen 6000 and
* newer systems. Skip it.
*/
- if (boot_cpu_has(X86_FEATURE_ZEN))
+ dmi_check_system(resource_quirk_table);
+ if (boot_cpu_has(X86_FEATURE_ZEN) &&
+ needs_irq_override == false)
return false;
#endif
@@ -963,3 +994,4 @@ struct acpi_device *acpi_resource_consum
acpi_get_devices(NULL, acpi_res_consumer_cb, res, (void **) &consumer);
return consumer;
}
+

View file

@ -29,7 +29,6 @@ post_makeinstall_target() {
x86_64)
rm -f ${INSTALL}/usr/config/modules/*32bit*
rm -f ${INSTALL}/usr/config/modules/*Master*
rm -f ${INSTALL}/usr/config/modules/*351Files*
;;
*)
rm -f ${INSTALL}/usr/config/modules/Install*
@ -38,6 +37,7 @@ post_makeinstall_target() {
case ${DEVICE} in
S922X*)
rm -f ${INSTALL}/usr/config/modules/*ScummVM*
rm -f ${INSTALL}/usr/config/modules/*32bit*
;;
esac
}

0
packages/sysutils/autostart/package.mk Normal file → Executable file
View file

View file

@ -58,4 +58,11 @@ if [ -e /storage/.please_resize_me ] ; then
StartProgress countdown "Rebooting in 5s... " 5 "NOW"
fi
fi
# Remove all of the modules that may be loaded to see if /flash will cleanly unmount.
for module in $(lsmod | awk '{print $1}')
do
rmmod ${module} 2>/dev/null
done
shutdown -r now &>/dev/null

View file

@ -151,6 +151,9 @@ post_makeinstall_target() {
safe_remove ${INSTALL}/usr/lib/systemd/system/systemd-update-done.service
safe_remove ${INSTALL}/usr/lib/systemd/system/*.target.wants/systemd-update-done.service
safe_remove ${INSTALL}/usr/lib/systemd/system/dev-hugepages.mount
safe_remove ${INSTALL}/usr/lib/systemd/system/*.target.wants/dev-hugepages.mount
# adjust systemd-hwdb-update (we have read-only /etc).
sed '/^ConditionNeedsUpdate=.*$/d' -i ${INSTALL}/usr/lib/systemd/system/systemd-hwdb-update.service

View file

@ -19,4 +19,5 @@ BTN_BACK60S=${DEVICE_BTN_TL2}
BTN_KILL_HOTKEY=${DEVICE_BTN_TL}
BTN_KILL_SELECTA=${DEVICE_BTN_SELECT}
BTN_KILL_SELECTB=${DEVICE_BTN_START}
BTN_BAT_HOTKEY=${DEVICE_BTN_TR}
BTN_BAT_SELECT=${DEVICE_BTN_SELECT}

View file

@ -58,6 +58,11 @@ program="/usr/bin/killall ${2}"
button1=${BTN_KILL_HOTKEY}
button2=${BTN_KILL_SELECTA}
button3=${BTN_KILL_SELECTB}
[BatteryPercent]
program="/usr/bin/say -b"
button1=${BTN_BAT_HOTKEY}
button2=${BTN_BAT_SELECT}
EOF
systemctl start jslisten
elif [ "$1" == "stop" ]

View file

@ -3,7 +3,7 @@
# Copyright (C) 2020-present Fewtarius
PKG_NAME="emulationstation"
PKG_VERSION="2670f58"
PKG_VERSION="ebdd2ff"
PKG_GIT_CLONE_BRANCH="main"
PKG_REV="1"
PKG_ARCH="any"

View file

@ -610,7 +610,11 @@ makeinstall_target() {
### Sony Playstation Portable
add_emu_core psp ppsspp ppsspp-sa true
add_emu_core psp retroarch ppsspp false
case ${DEVICE} in
AMD64)
add_emu_core psp retroarch ppsspp false
;;
esac
add_es_system psp
### Sony Playstation Portable Minis
@ -765,10 +769,6 @@ makeinstall_target() {
add_emu_core sufami retroarch snes9x true
add_es_system sufami
### Solarus
add_emu_core solarus solarus solarus true
add_es_system solarus
### Watara Supervision
add_emu_core supervision retroarch potator true
add_es_system supervision
@ -838,4 +838,7 @@ makeinstall_target() {
mkdir -p ${INSTALL}/usr/config/emulationstation
cp -f ${ESTMP}/es_systems.cfg ${INSTALL}/usr/config/emulationstation
mkdir -p ${INSTALL}/usr/lib/tmpfiles.d
cp -f ${ESTMP}/${DISTRO}-system-dirs.conf ${INSTALL}/usr/lib/tmpfiles.d
}

View file

@ -1,118 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present 351ELEC (https://github.com/351ELEC)
# Copyright (C) 2023-present Fewtarius
d /storage/roms 0777 root root - -
d /tmp/cache
d /storage/roms/3do 0777 root root - -
d /storage/roms/3ds 0777 root root - -
d /storage/roms/amiga 0777 root root - -
d /storage/roms/amigacd32 0777 root root - -
d /storage/roms/amstradcpc 0777 root root - -
d /storage/roms/arcade 0777 root root - -
d /storage/roms/atari800 0777 root root - -
d /storage/roms/atari2600 0777 root root - -
d /storage/roms/atari5200 0777 root root - -
d /storage/roms/atari7800 0777 root root - -
d /storage/roms/atarijaguar 0777 root root - -
d /storage/roms/atarilynx 0777 root root - -
d /storage/roms/atarist 0777 root root - -
d /storage/roms/atomiswave 0777 root root - -
d /storage/roms/BGM 0777 root root - -
d /storage/roms/bezels 0777 root root - -
d /storage/roms/bios 0777 root root - -
d /storage/roms/build 0777 root root - -
d /storage/roms/c16 0777 root root - -
d /storage/roms/c64 0777 root root - -
d /storage/roms/c128 0777 root root - -
d /storage/roms/cps1 0777 root root - -
d /storage/roms/cps2 0777 root root - -
d /storage/roms/cps3 0777 root root - -
d /storage/roms/channelf 0777 root root - -
d /storage/roms/coleco 0777 root root - -
d /storage/roms/daphne 0777 root root - -
d /storage/roms/daphne/roms 0777 root root - -
d /storage/roms/daphne/sound 0777 root root - -
d /storage/roms/dreamcast 0777 root root - -
d /storage/roms/easyrpg 0777 root root - -
d /storage/roms/eduke 0777 root root - -
d /storage/roms/famicom 0777 root root - -
d /storage/roms/fbneo 0777 root root - -
d /storage/roms/fds 0777 root root - -
d /storage/roms/gamecube 0777 root root - -
d /storage/roms/gameandwatch 0777 root root - -
d /storage/roms/gamegear 0777 root root - -
d /storage/roms/gb 0777 root root - -
d /storage/roms/gba 0777 root root - -
d /storage/roms/gbc 0777 root root - -
d /storage/roms/genesis 0777 root root - -
d /storage/roms/intellivision 0777 root root - -
d /storage/roms/j2me 0777 root root - -
d /storage/roms/mame 0777 root root - -
d /storage/roms/mastersystem 0777 root root - -
d /storage/roms/megacd 0777 root root - -
d /storage/roms/megaduck 0777 root root - -
d /storage/roms/megadrive 0777 root root - -
d /storage/roms/megadrive-japan 0777 root root - -
d /storage/roms/mplayer 0777 root root - -
d /storage/roms/msx 0777 root root - -
d /storage/roms/msx2 0777 root root - -
d /storage/roms/n64 0777 root root - -
d /storage/roms/naomi 0777 root root - -
d /storage/roms/nds 0777 root root - -
d /storage/roms/neocd 0777 root root - -
d /storage/roms/neogeo 0777 root root - -
d /storage/roms/nes 0777 root root - -
d /storage/roms/ngp 0777 root root - -
d /storage/roms/ngpc 0777 root root - -
d /storage/roms/odyssey 0777 root root - -
d /storage/roms/openbor 0777 root root - -
d /storage/roms/pc 0777 root root - -
d /storage/roms/pc88 0777 root root - -
d /storage/roms/pc98 0777 root root - -
d /storage/roms/pcengine 0777 root root - -
d /storage/roms/pcenginecd 0777 root root - -
d /storage/roms/pcfx 0777 root root - -
d /storage/roms/pet 0777 root root - -
d /storage/roms/pico-8 0777 root root - -
d /storage/roms/pokemini 0777 root root - -
d /storage/roms/ps2 0777 root root - -
d /storage/roms/ps3 0777 root root - -
d /storage/roms/psp 0777 root root - -
d /storage/roms/pspminis 0777 root root - -
d /storage/roms/psx 0777 root root - -
d /storage/roms/satellaview 0777 root root - -
d /storage/roms/saturn 0777 root root - -
d /storage/roms/sc-3000 0777 root root - -
d /storage/roms/screenshots 0777 root root - -
d /storage/roms/scummvm 0777 root root - -
d /storage/roms/scummvm/games 0777 root root - -
d /storage/roms/sega32x 0777 root root - -
d /storage/roms/segacd 0777 root root - -
d /storage/roms/sfc 0777 root root - -
d /storage/roms/sg-1000 0777 root root - -
d /storage/roms/sgfx 0777 root root - -
d /storage/roms/savestates 0777 root root - -
d /storage/roms/snes 0777 root root - -
d /storage/roms/snesmsu1 0777 root root - -
d /storage/roms/solarus 0777 root root - -
d /storage/roms/sufami 0777 root root - -
d /storage/roms/supervision 0777 root root - -
d /storage/roms/switch 0777 root root - -
d /storage/roms/tg16 0777 root root - -
d /storage/roms/tg16cd 0777 root root - -
d /storage/roms/tic-80 0777 root root - -
d /storage/roms/uzebox 0777 root root - -
d /storage/roms/vectrex 0777 root root - -
d /storage/roms/vic20 0777 root root - -
d /storage/roms/videopac 0777 root root - -
d /storage/roms/virtualboy 0777 root root - -
d /storage/roms/wii 0777 root root - -
d /storage/roms/wiiu 0777 root root - -
d /storage/roms/wonderswan 0777 root root - -
d /storage/roms/wonderswancolor 0777 root root - -
d /storage/roms/x1 0777 root root - -
d /storage/roms/x68000 0777 root root - -
d /storage/roms/xbox 0777 root root - -
d /storage/roms/zx81 0777 root root - -
d /storage/roms/zxspectrum 0777 root root - -
d /storage/roms/ports 0777 root root - -
d /tmp/cache 0777 root root - -

View file

@ -27,7 +27,7 @@ PKG_MULTIMEDIA="ffmpeg vlc mpv"
PKG_BLUETOOTH="bluez pygobject"
PKG_SOUND="libao"
PKG_SOUND="espeak libao"
PKG_SYNC="synctools"

View file

@ -12,7 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libXfixes libXext libX11"
PKG_LONGDESC="X Composite Library"
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
PKG_CONFIGURE_OPTS_TARGET="--enable-shared --disable-static"
post_configure_target() {
libtool_remove_rpath libtool

View file

@ -12,7 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libX11 libXfixes"
PKG_LONGDESC="LibXdamage provides an X Window System client interface to the DAMAGE extension to the X protocol."
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
PKG_CONFIGURE_OPTS_TARGET="--enable-shared --disable-static"
post_configure_target() {
libtool_remove_rpath libtool

View file

@ -12,7 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libX11"
PKG_LONGDESC="X Fixes Library"
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
PKG_CONFIGURE_OPTS_TARGET="--enable-shared --disable-static"
post_configure_target() {
libtool_remove_rpath libtool

File diff suppressed because it is too large Load diff