Merge pull request #1559 from fewtarius/dev

Dev
This commit is contained in:
fewtarius 2023-06-12 17:23:40 -04:00 committed by GitHub
commit fd4f8c6aa4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 67 additions and 3378 deletions

View file

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

View file

@ -163,5 +163,7 @@ fi
#Run Aethersx2 emulator
set_audio pulseaudio
export SDL_AUDIODRIVER=pulseaudio
jslisten set "-9 aethersx2"
${EMUPERF} /usr/bin/@APPIMAGE@ -fullscreen "${1}"
set_audio alsa

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -26,10 +26,12 @@ ln -sf /storage/roms/bios/rpcs3/dev_flash /storage/.config/rpcs3/dev_flash
if [ "$SUI" = "1" ]
then
export QT_QPA_PLATFORM=wayland
jslisten set "-9 rpcs3"
/usr/bin/rpcs3
else
export QT_QPA_PLATFORM=xcb
rr_audio.sh pulseaudio
export SDL_AUDIODRIVER=pulseaudio
jslisten set "-9 rpcs3"
/usr/bin/rpcs3 --no-gui "${1}"
fi

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,27 @@
#!/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
}
case ${SDL_AUDIODRIVER} in
alsa)
PLAYCMD="aplay -q"
;;
pulseaudio)
PLAYCMD="paplay"
;;
esac
case $1 in
-b)
espeak --stdout "$(battery_percent)%" | ${PLAYCMD}
;;
*)
espeak --stdout "$*" | ${PLAYCMD}
;;
esac

View file

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

View file

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

View file

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

View file

@ -764,10 +764,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

View file

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