From f9f5f835032a346fae512e50c7045c4641e8770b Mon Sep 17 00:00:00 2001 From: Jonathan Campbell Date: Fri, 31 Jan 2025 23:12:10 -0800 Subject: [PATCH] update dosbox.conf --- .../installer/dosbox-x.reference.setup.conf | 16 +++++++++++++--- dosbox-x.reference.conf | 6 +++--- dosbox-x.reference.full.conf | 10 ++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/contrib/windows/installer/dosbox-x.reference.setup.conf b/contrib/windows/installer/dosbox-x.reference.setup.conf index ec3829f30b..a1d888db55 100644 --- a/contrib/windows/installer/dosbox-x.reference.setup.conf +++ b/contrib/windows/installer/dosbox-x.reference.setup.conf @@ -1428,6 +1428,9 @@ blocksize = 1024 prebuffer = 25 [midi] +#DOSBOX-X-ADV:# roland gs sysex: Listen for and handle some Roland GS System Exclusive messages, such as GS Reset and Master Volume. +#DOSBOX-X-ADV:# This is needed for PC-98 games that have hanging/stuck MIDI note problems because they rely on these +#DOSBOX-X-ADV:# messages to reset the synth rather than using standard MIDI commands. # mpu401: Type of MPU-401 to emulate. # Possible values: intelligent, uart, none. # mpubase: The IO address of the MPU-401. @@ -1557,8 +1560,9 @@ prebuffer = 25 #DOSBOX-X-ADV:# Possible values: 0, 1. #DOSBOX-X-ADV-SEE:# #DOSBOX-X-ADV-SEE:# Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details): -#DOSBOX-X-ADV-SEE:# -> mt32.reverse.stereo; mt32.verbose; mt32.thread; mt32.chunk; mt32.prebuffer; mt32.partials; mt32.dac; mt32.analog; mt32.output.gain; mt32.reverb.mode; mt32.reverb.output.gain; mt32.reverb.time; mt32.reverb.level; mt32.rate; mt32.src.quality; mt32.niceampramp; mt32.engage.channel1; fluid.samplerate; fluid.gain; fluid.polyphony; fluid.cores; fluid.periods; fluid.periodsize; fluid.reverb; fluid.chorus; fluid.reverb.roomsize; fluid.reverb.damping; fluid.reverb.width; fluid.reverb.level; fluid.chorus.number; fluid.chorus.level; fluid.chorus.speed; fluid.chorus.depth; fluid.chorus.type +#DOSBOX-X-ADV-SEE:# -> roland gs sysex; mt32.reverse.stereo; mt32.verbose; mt32.thread; mt32.chunk; mt32.prebuffer; mt32.partials; mt32.dac; mt32.analog; mt32.output.gain; mt32.reverb.mode; mt32.reverb.output.gain; mt32.reverb.time; mt32.reverb.level; mt32.rate; mt32.src.quality; mt32.niceampramp; mt32.engage.channel1; fluid.samplerate; fluid.gain; fluid.polyphony; fluid.cores; fluid.periods; fluid.periodsize; fluid.reverb; fluid.chorus; fluid.reverb.roomsize; fluid.reverb.damping; fluid.reverb.width; fluid.reverb.level; fluid.chorus.number; fluid.chorus.level; fluid.chorus.speed; fluid.chorus.depth; fluid.chorus.type #DOSBOX-X-ADV-SEE:# +#DOSBOX-X-ADV:roland gs sysex = true mpu401 = intelligent mpubase = 0 mididevice = default @@ -1778,6 +1782,7 @@ blaster environment variable = true # If auto, automatically choose based on other settings such as GUS type. # This setting may be needed for DOS demoscene entries that assume aliasing behavior such as Out of Control by Contract. # Possible values: true, false, 1, 0, auto. +#DOSBOX-X-ADV:# warn on out of bounds dram access: Controls whether attempts to access GUS DRAM beyond the 1MB maximum supported by the card are logged to the log file as a warning. #DOSBOX-X-ADV:# autoamp: If set, GF1 output will reduce in volume automatically if the sum of all channels exceeds full volume. #DOSBOX-X-ADV:# If not set, then loud music will clip to full volume just as it would on real hardware. #DOSBOX-X-ADV:# Enable this option for loud music if you want a more pleasing rendition without saturation and distortion. @@ -1833,10 +1838,11 @@ blaster environment variable = true # with Timidity should work fine. #DOSBOX-X-ADV-SEE:# #DOSBOX-X-ADV-SEE:# Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details): -#DOSBOX-X-ADV-SEE:# -> autoamp; unmask dma; ignore channel count while active; pic unmask irq; startup initialized; dma enable on dma control polling; clear dma tc irq if excess polling; force master irq enable; gus panning table; gus fixed render rate; irq hack +#DOSBOX-X-ADV-SEE:# -> warn on out of bounds dram access; autoamp; unmask dma; ignore channel count while active; pic unmask irq; startup initialized; dma enable on dma control polling; clear dma tc irq if excess polling; force master irq enable; gus panning table; gus fixed render rate; irq hack #DOSBOX-X-ADV-SEE:# gus = false global register read alias = auto +#DOSBOX-X-ADV:warn on out of bounds dram access = false #DOSBOX-X-ADV:autoamp = false #DOSBOX-X-ADV:unmask dma = false #DOSBOX-X-ADV:ignore channel count while active = false @@ -2209,6 +2215,9 @@ timeout = 0 [dos] # xms: Enable XMS support. +#DOSBOX-X-ADV:# turn off a20 gate on load if loadfix needed: If enabled, and loading a program below the 64kb boundary, turn off the A20 gate. +#DOSBOX-X-ADV:# This can help with any program with startup code that assumes the segment wraparound of the 8086. +#DOSBOX-X-ADV:# Depending on DOS configuration the A20 gate may be re-enabled later such as calling INT 21h. #DOSBOX-X-ADV:# xms memmove causes flat real mode: If set, any call to XMS to move/copy memory sets up flat real mode for segment registers DS and ES. #DOSBOX-X-ADV:# xms init causes flat real mode: If set, when the DOS kernel initializes XMS it will switch on flat real mode for segment registers DS and ES if appropriate. #DOSBOX-X-ADV:# resized free memory block becomes allocated: If set, and the DOS application resizes a freed memory block, that block will be marked as allocated to that program. @@ -2447,9 +2456,10 @@ timeout = 0 # dos idle api: If set, DOSBox-X can lower the host system's CPU load when a supported guest program is idle. #DOSBOX-X-ADV-SEE:# #DOSBOX-X-ADV-SEE:# Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details): -#DOSBOX-X-ADV-SEE:# -> xms memmove causes flat real mode; xms init causes flat real mode; resized free memory block becomes allocated; badcommandhandler; mscdex device name; hma allow reservation; command shell flush keyboard buffer; special operation file prefix; drive z is remote; drive z convert fat; drive z expand path; drive z hide files; automount drive directories; hidenonrepresentable; hma minimum allocation; dos sda size; hma free space; cpm compatibility mode; minimum dos initial private segment; minimum mcb segment; enable dummy device mcb; maximum environment block size on exec; additional environment block size on exec; enable a20 on windows init; zero memory on xms memory allocation; vcpi; unmask timer on disk io; zero int 67h if no ems; zero unused int 68h; emm386 startup active; zero memory on ems memory allocation; ems system handle memory size; ems system handle on even megabyte; ems frame; umb start; umb end; kernel allocation in umb; keep umb on boot; keep private area on boot; private area in umb; private area write protect; autoa20fix; autoloadfix; startincon; int33 max x; int33 max y; int33 xy adjust; int33 mickey threshold; int33 hide host cursor if interrupt subroutine; int33 hide host cursor when polling; int33 disable cell granularity; int 13 disk change detect; int 13 extensions; biosps2; int15 wait force unmask irq; int15 mouse callback does not preserve registers; filenamechar; collating and uppercase; con device use int 16h to detect keyboard input; zero memory on int 21h memory allocation; pipe temporary device +#DOSBOX-X-ADV-SEE:# -> turn off a20 gate on load if loadfix needed; xms memmove causes flat real mode; xms init causes flat real mode; resized free memory block becomes allocated; badcommandhandler; mscdex device name; hma allow reservation; command shell flush keyboard buffer; special operation file prefix; drive z is remote; drive z convert fat; drive z expand path; drive z hide files; automount drive directories; hidenonrepresentable; hma minimum allocation; dos sda size; hma free space; cpm compatibility mode; minimum dos initial private segment; minimum mcb segment; enable dummy device mcb; maximum environment block size on exec; additional environment block size on exec; enable a20 on windows init; zero memory on xms memory allocation; vcpi; unmask timer on disk io; zero int 67h if no ems; zero unused int 68h; emm386 startup active; zero memory on ems memory allocation; ems system handle memory size; ems system handle on even megabyte; ems frame; umb start; umb end; kernel allocation in umb; keep umb on boot; keep private area on boot; private area in umb; private area write protect; autoa20fix; autoloadfix; startincon; int33 max x; int33 max y; int33 xy adjust; int33 mickey threshold; int33 hide host cursor if interrupt subroutine; int33 hide host cursor when polling; int33 disable cell granularity; int 13 disk change detect; int 13 extensions; biosps2; int15 wait force unmask irq; int15 mouse callback does not preserve registers; filenamechar; collating and uppercase; con device use int 16h to detect keyboard input; zero memory on int 21h memory allocation; pipe temporary device #DOSBOX-X-ADV-SEE:# xms = true +#DOSBOX-X-ADV:turn off a20 gate on load if loadfix needed = false #DOSBOX-X-ADV:xms memmove causes flat real mode = true #DOSBOX-X-ADV:xms init causes flat real mode = false #DOSBOX-X-ADV:resized free memory block becomes allocated = true diff --git a/dosbox-x.reference.conf b/dosbox-x.reference.conf index 035144fb84..d2d2059c77 100644 --- a/dosbox-x.reference.conf +++ b/dosbox-x.reference.conf @@ -672,7 +672,7 @@ prebuffer = 25 # fluid.soundfont: Soundfont (.SF2 or .SF3) to use with Fluidsynth. One must be specified (e.g. GeneralUser_GS.sf2). # # Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details): -# -> mt32.reverse.stereo; mt32.verbose; mt32.thread; mt32.chunk; mt32.prebuffer; mt32.partials; mt32.dac; mt32.analog; mt32.output.gain; mt32.reverb.mode; mt32.reverb.output.gain; mt32.reverb.time; mt32.reverb.level; mt32.rate; mt32.src.quality; mt32.niceampramp; mt32.engage.channel1; fluid.samplerate; fluid.gain; fluid.polyphony; fluid.cores; fluid.periods; fluid.periodsize; fluid.reverb; fluid.chorus; fluid.reverb.roomsize; fluid.reverb.damping; fluid.reverb.width; fluid.reverb.level; fluid.chorus.number; fluid.chorus.level; fluid.chorus.speed; fluid.chorus.depth; fluid.chorus.type +# -> roland gs sysex; mt32.reverse.stereo; mt32.verbose; mt32.thread; mt32.chunk; mt32.prebuffer; mt32.partials; mt32.dac; mt32.analog; mt32.output.gain; mt32.reverb.mode; mt32.reverb.output.gain; mt32.reverb.time; mt32.reverb.level; mt32.rate; mt32.src.quality; mt32.niceampramp; mt32.engage.channel1; fluid.samplerate; fluid.gain; fluid.polyphony; fluid.cores; fluid.periods; fluid.periodsize; fluid.reverb; fluid.chorus; fluid.reverb.roomsize; fluid.reverb.damping; fluid.reverb.width; fluid.reverb.level; fluid.chorus.number; fluid.chorus.level; fluid.chorus.speed; fluid.chorus.depth; fluid.chorus.type # mpu401 = intelligent mpubase = 0 @@ -775,7 +775,7 @@ blaster environment variable = true # with Timidity should work fine. # # Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details): -# -> autoamp; unmask dma; ignore channel count while active; pic unmask irq; startup initialized; dma enable on dma control polling; clear dma tc irq if excess polling; force master irq enable; gus panning table; gus fixed render rate; irq hack +# -> warn on out of bounds dram access; autoamp; unmask dma; ignore channel count while active; pic unmask irq; startup initialized; dma enable on dma control polling; clear dma tc irq if excess polling; force master irq enable; gus panning table; gus fixed render rate; irq hack # gus = false global register read alias = auto @@ -1164,7 +1164,7 @@ timeout = 0 # dos idle api: If set, DOSBox-X can lower the host system's CPU load when a supported guest program is idle. # # Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details): -# -> xms memmove causes flat real mode; xms init causes flat real mode; resized free memory block becomes allocated; badcommandhandler; mscdex device name; hma allow reservation; command shell flush keyboard buffer; special operation file prefix; drive z is remote; drive z convert fat; drive z expand path; drive z hide files; automount drive directories; hidenonrepresentable; hma minimum allocation; dos sda size; hma free space; cpm compatibility mode; minimum dos initial private segment; minimum mcb segment; enable dummy device mcb; maximum environment block size on exec; additional environment block size on exec; enable a20 on windows init; zero memory on xms memory allocation; vcpi; unmask timer on disk io; zero int 67h if no ems; zero unused int 68h; emm386 startup active; zero memory on ems memory allocation; ems system handle memory size; ems system handle on even megabyte; ems frame; umb start; umb end; kernel allocation in umb; keep umb on boot; keep private area on boot; private area in umb; private area write protect; autoa20fix; autoloadfix; startincon; int33 max x; int33 max y; int33 xy adjust; int33 mickey threshold; int33 hide host cursor if interrupt subroutine; int33 hide host cursor when polling; int33 disable cell granularity; int 13 disk change detect; int 13 extensions; biosps2; int15 wait force unmask irq; int15 mouse callback does not preserve registers; filenamechar; collating and uppercase; con device use int 16h to detect keyboard input; zero memory on int 21h memory allocation; pipe temporary device +# -> turn off a20 gate on load if loadfix needed; xms memmove causes flat real mode; xms init causes flat real mode; resized free memory block becomes allocated; badcommandhandler; mscdex device name; hma allow reservation; command shell flush keyboard buffer; special operation file prefix; drive z is remote; drive z convert fat; drive z expand path; drive z hide files; automount drive directories; hidenonrepresentable; hma minimum allocation; dos sda size; hma free space; cpm compatibility mode; minimum dos initial private segment; minimum mcb segment; enable dummy device mcb; maximum environment block size on exec; additional environment block size on exec; enable a20 on windows init; zero memory on xms memory allocation; vcpi; unmask timer on disk io; zero int 67h if no ems; zero unused int 68h; emm386 startup active; zero memory on ems memory allocation; ems system handle memory size; ems system handle on even megabyte; ems frame; umb start; umb end; kernel allocation in umb; keep umb on boot; keep private area on boot; private area in umb; private area write protect; autoa20fix; autoloadfix; startincon; int33 max x; int33 max y; int33 xy adjust; int33 mickey threshold; int33 hide host cursor if interrupt subroutine; int33 hide host cursor when polling; int33 disable cell granularity; int 13 disk change detect; int 13 extensions; biosps2; int15 wait force unmask irq; int15 mouse callback does not preserve registers; filenamechar; collating and uppercase; con device use int 16h to detect keyboard input; zero memory on int 21h memory allocation; pipe temporary device # xms = true xms handles = 0 diff --git a/dosbox-x.reference.full.conf b/dosbox-x.reference.full.conf index 13c0adac28..a2943164a3 100644 --- a/dosbox-x.reference.full.conf +++ b/dosbox-x.reference.full.conf @@ -1392,6 +1392,9 @@ blocksize = 1024 prebuffer = 25 [midi] +# roland gs sysex: Listen for and handle some Roland GS System Exclusive messages, such as GS Reset and Master Volume. +# This is needed for PC-98 games that have hanging/stuck MIDI note problems because they rely on these +# messages to reset the synth rather than using standard MIDI commands. # mpu401: Type of MPU-401 to emulate. # Possible values: intelligent, uart, none. # mpubase: The IO address of the MPU-401. @@ -1519,6 +1522,7 @@ prebuffer = 25 # fluid.chorus.depth: Fluidsynth chorus depth. # fluid.chorus.type: Fluidsynth chorus type. 0 is sine wave, 1 is triangle wave. # Possible values: 0, 1. +roland gs sysex = true mpu401 = intelligent mpubase = 0 mididevice = default @@ -1734,6 +1738,7 @@ io port aliasing = true # If auto, automatically choose based on other settings such as GUS type. # This setting may be needed for DOS demoscene entries that assume aliasing behavior such as Out of Control by Contract. # Possible values: true, false, 1, 0, auto. +# warn on out of bounds dram access: Controls whether attempts to access GUS DRAM beyond the 1MB maximum supported by the card are logged to the log file as a warning. # autoamp: If set, GF1 output will reduce in volume automatically if the sum of all channels exceeds full volume. # If not set, then loud music will clip to full volume just as it would on real hardware. # Enable this option for loud music if you want a more pleasing rendition without saturation and distortion. @@ -1789,6 +1794,7 @@ io port aliasing = true # with Timidity should work fine. gus = false global register read alias = auto +warn on out of bounds dram access = false autoamp = false unmask dma = false ignore channel count while active = false @@ -2149,6 +2155,9 @@ timeout = 0 [dos] # xms: Enable XMS support. +# turn off a20 gate on load if loadfix needed: If enabled, and loading a program below the 64kb boundary, turn off the A20 gate. +# This can help with any program with startup code that assumes the segment wraparound of the 8086. +# Depending on DOS configuration the A20 gate may be re-enabled later such as calling INT 21h. # xms memmove causes flat real mode: If set, any call to XMS to move/copy memory sets up flat real mode for segment registers DS and ES. # xms init causes flat real mode: If set, when the DOS kernel initializes XMS it will switch on flat real mode for segment registers DS and ES if appropriate. # resized free memory block becomes allocated: If set, and the DOS application resizes a freed memory block, that block will be marked as allocated to that program. @@ -2386,6 +2395,7 @@ timeout = 0 # Caution: Enabling this API may cause some programs to think they are running under Windows # dos idle api: If set, DOSBox-X can lower the host system's CPU load when a supported guest program is idle. xms = true +turn off a20 gate on load if loadfix needed = false xms memmove causes flat real mode = true xms init causes flat real mode = false resized free memory block becomes allocated = true