Merge remote-tracking branch 'upstream/dev' into parallelPlusSimpleHack
This commit is contained in:
commit
68edba2fdb
99 changed files with 8621 additions and 7113 deletions
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
|
@ -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
10
packages/apps/moonlight/autostart/010-moonlight
Normal file → Executable 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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
28
packages/devel/cups/package.mk
Normal file
28
packages/devel/cups/package.mk
Normal 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
|
||||
}
|
|
@ -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
|
||||
|
|
86
packages/devel/libtracefs/patches/001-fix-headers.patch
Normal file
86
packages/devel/libtracefs/patches/001-fix-headers.patch
Normal 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>
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="beetle-lynx-lr"
|
||||
PKG_VERSION="f88769ec9fdf02e7cd7bfa2e9b81627bbc537eb2"
|
||||
PKG_VERSION="2ce6244d04e45718df16f1fd05a4d7613ed54db0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="glsl-shaders"
|
||||
PKG_VERSION="85ba4c2387dec84a9d3d82747c3ec905e29cf820"
|
||||
PKG_VERSION="6c6e074730f3e5f16edad7e91bee2e9bd84953d1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="aarch64"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="libretro-database"
|
||||
PKG_VERSION="b04261407401df7b8edb4c11df76ecdce58341e9"
|
||||
PKG_VERSION="90a33aa566022437ae08b139efa5ef9a1eb6eb91"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="mame2003-plus-lr"
|
||||
PKG_VERSION="13e588ec3b53e76d46200016b6c0e4599a0019be"
|
||||
PKG_VERSION="56be1182df7333513538dcb7cf6a0cac15d732f3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MAME"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="puae-lr"
|
||||
PKG_VERSION="7d46c164a1e2a98133de376af65b9116b6cf27a8"
|
||||
PKG_VERSION="605264f15d31c42b1fe546fd47a6ffb1301c03c8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="slang-shaders"
|
||||
PKG_VERSION="24dc90eb1aa848a675e1073a64a8d34c10259f1b"
|
||||
PKG_VERSION="9a632e837030503fee15007980455834866a4812"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="vice-lr"
|
||||
PKG_VERSION="a7d434fb7a6eadefccaffe57f60ced543945b4f3"
|
||||
PKG_VERSION="83c501343f1976628c2647ac203700643a55351a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
||||
|
||||
|
|
@ -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
|
|
@ -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/
|
||||
}
|
|
@ -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");
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
||||
|
||||
|
|
@ -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.
|
|
@ -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/
|
||||
}
|
|
@ -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)
|
|
@ -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)
|
|
@ -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
|
|
@ -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
|
|
@ -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/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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/"
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
. /etc/profile
|
||||
|
||||
jslisten set "-9 mupen64plus"
|
||||
|
||||
#Emulation Station Features
|
||||
CORE="$1"
|
||||
GAME=$(echo "${2}"| sed "s#^/.*/##")
|
||||
|
|
|
@ -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=""
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=""
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -19,4 +19,5 @@ fi
|
|||
|
||||
ARG=${1//[\\]/}
|
||||
export SDL_AUDIODRIVER=alsa
|
||||
jslisten set "-9 ppsspp"
|
||||
${EMUPERF} ppsspp --pause-menu-exit "${ARG}"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
26
packages/jelos/sources/scripts/say
Executable file
26
packages/jelos/sources/scripts/say
Executable 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
|
|
@ -1,4 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
jslisten set "mpv"jslisten set "mpv"
|
||||
/usr/bin/mpv --input-ipc-server=/tmp/mpvsocket "${1}"
|
||||
exit 0
|
|
@ -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"
|
||||
|
|
|
@ -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
7875
packages/kernel/linux/patches/AMD64/001-patch-6.3.3-rt15.patch
Normal file
7875
packages/kernel/linux/patches/AMD64/001-patch-6.3.3-rt15.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
42
packages/kernel/linux/patches/AMD64/006-build-fix.patch
Normal file
42
packages/kernel/linux/patches/AMD64/006-build-fix.patch
Normal 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 */
|
|
@ -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;
|
||||
}
|
||||
+
|
|
@ -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
0
packages/sysutils/autostart/package.mk
Normal file → Executable 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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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" ]
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 - -
|
||||
|
|
|
@ -27,7 +27,7 @@ PKG_MULTIMEDIA="ffmpeg vlc mpv"
|
|||
|
||||
PKG_BLUETOOTH="bluez pygobject"
|
||||
|
||||
PKG_SOUND="libao"
|
||||
PKG_SOUND="espeak libao"
|
||||
|
||||
PKG_SYNC="synctools"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue