fix: re-profile dosbox-x soundfont search at HEAD

Find_SoundFont (src/gui/midi_synth.h:82-134) now searches the working, resource and program directories before the system ones and adds GeneralUser-GS.sf2. Pin moved to 029bd65c with the shifted refs.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 10:51:14 +02:00
1 parent eb04fb50cc
commit 95e77ded63
1 file changed
+47 -44
+47 -44
View File
@@ -3,7 +3,7 @@ type: standalone
core_classification: enhanced_fork
source: "https://github.com/joncampbell123/dosbox-x"
upstream: "https://github.com/joncampbell123/dosbox-x"
source_commit: "e013b8bf8e27ef878a646049bf5b2e732878d616"
source_commit: "029bd65c5dcc7cdc7f2e14e35278620d9707d969"
profiled_date: "2026-09-17"
core_version: "2026.08.31"
display_name: "DOS (DOSBox-X)"
@@ -39,14 +39,14 @@ notes: |
or ~/.config/dosbox-x, and the resource directory is $APPDIR/usr/share/dosbox-x
inside an AppImage, otherwise $XDG_DATA_HOME/dosbox-x, then
/usr/local/share/dosbox-x, then /usr/share/dosbox-x. Windows uses C:\DOSBox-X.
ref: src/ints/int10.cpp:1442-1485, src/misc/cross.cpp:129-190, 193-226
ref: src/ints/int10.cpp:1442-1485, src/misc/cross.cpp:129-194, 197-230
Configuration: -conf and -userconf name the files to read. Otherwise
dosbox-x.conf then dosbox.conf is tried in the working directory, then in the
program directory, then in the configuration directory, which is last tried
for dosbox-x-<version>.conf. That file is written with the defaults when it
does not exist.
ref: src/gui/sdlmain.cpp:8667-8743, src/misc/cross.cpp:229-245
ref: src/gui/sdlmain.cpp:8671-8747, src/misc/cross.cpp:233-249
MT-32: libmt32emu is built from src/libs/mt32. Only four file names are ever
opened, and each candidate is identified by exact file size then SHA1, so the
@@ -58,13 +58,18 @@ notes: |
the MT32 names. The directory is mt32.romdir, then the working directory, then
the resource directory, then the configuration directory. A missing pair logs
the accepted file names and disables the device.
ref: src/gui/midi_mt32.h:246-275, src/dosbox.cpp:3607-3617
ref: src/gui/midi_mt32.h:246-275, src/dosbox.cpp:3603-3613
FluidSynth reads fluid.soundfont, and fluid_synth_sfload is the only check. With
the setting empty it probes /usr/share/soundfonts/default.sf2,
/usr/share/sounds/sf2/FluidR3_GM.sf2 and GeneralUser_GS.sf2 on Linux, and
C:\soundfonts\default.sf2 then the two same names under C:\DOSBox-X on Windows.
ref: src/gui/midi_synth.h:342-384, 462-480
FluidSynth reads fluid.soundfont, and fluid_synth_sfload is the only check.
Find_SoundFont tries default.sf2, FluidR3_GM.sf2, GeneralUser_GS.sf2 and
GeneralUser-GS.sf2, after the name fluid.soundfont gives when it has no
directory, in the working directory, the resource directory, the program
directory, then C:\soundfonts and C:\DOSBox-X on Windows, /usr/share/soundfonts
and /usr/share/sounds/sf2 elsewhere, and /Library/Audio/Sounds/Banks and
~/Library/Audio/Sounds/Banks on macOS. The first name found in a directory
is kept, and a later directory holding one replaces it. The synth device
searches the same way.
ref: src/gui/midi_synth.h:82-134, 228-242, 383-399, 478-496
PC-98 character generator, tried in order: FONT.ROM as generated by T98Tools,
then the FONTX2 files named by pc-98 fontx sbcs and pc-98 fontx dbcs, then the
@@ -84,7 +89,7 @@ notes: |
identified by its size, which covers ASC16 and ASCFONT.15 from UCDOS and ETen
Chinese DOS, ASC24, HZK14, HZK16, HZK24 and STDFONT.15 and STDFONT.24.
Unset settings fall back to the built-in font data.
ref: src/ints/int_dosv.cpp:654-749, 1631-1710, src/dosbox.cpp:2550-2583
ref: src/ints/int_dosv.cpp:654-749, 1631-1710, src/dosbox.cpp:2556-2589
BOOT -bios loads a BIOS image at the top of the first megabyte, truncated to
128 KB, or 96 KB on PC-98 where it also looks for <image>.itf.rom, <image>.ITF.ROM,
@@ -96,15 +101,15 @@ notes: |
the reset vector. It is compiled only when the debugger is enabled. The
settings call binary on reset and call binary on boot load blobs of up to
128 KB into the ROM BIOS area for CPU testing.
ref: src/dos/dos_programs.cpp:3666-3719, src/ints/bios.cpp:13298-13374
ref: src/dos/dos_programs.cpp:3666-3719, src/ints/bios.cpp:13306-13382
A build configured with --enable-dosbox_agent reads the key=value file named
by -agent-config to start the RPC debugger agent. The file names the
transport and endpoint, nothing else is read from disk.
ref: configure.ac:1441-1448, src/gui/sdlmain.cpp:8490-8496, src/agent/protocol/agent_protocol.cpp:477-632
ref: configure.ac:1441-1448, src/gui/sdlmain.cpp:8494-8500, src/agent/protocol/agent_protocol.cpp:477-632
Glide passthrough loads glide2x.dll, libglide2x.so or libglide2x.dylib.
ref: src/hardware/glide.cpp:353-359, src/dosbox.cpp:3507-3509
ref: src/hardware/glide.cpp:353-359, src/dosbox.cpp:3503-3505
ttf.font, ttf.fontbold, ttf.fontital and ttf.fontboit name a TTF, OTF, FON or
TTC font resolved through the same search order plus the system font
@@ -121,9 +126,9 @@ notes: |
the customcodepage translation table, .kl layout files and the KEYBOARD.SYS
to KEYBRD4.SYS libraries read from a mounted drive, the glshaders directory
and the .lng translations.
ref: src/ints/bios.cpp:11466-11475, src/gui/sdlmain.cpp:968-970, 7012-7020,
src/gui/sdl_mapper.cpp:5731-5787, src/dos/dos.cpp:4402-4437,
src/dos/dos_keyboard_layout.cpp:300-340, src/gui/render.cpp:1547-1554,
ref: src/ints/bios.cpp:11474-11483, src/gui/sdlmain.cpp:972-974, 7016-7024,
src/gui/sdl_mapper.cpp:5731-5787, src/dos/dos.cpp:4414-4449,
src/dos/dos_keyboard_layout.cpp:300-340, src/gui/render.cpp:1556-1563,
src/misc/messages.cpp:300-326
files:
@@ -284,36 +289,34 @@ files:
system: dos
unsourceable: "a link the operating system creates to the SoundFont it installs as default, FluidR3_GM.sf2 on Fedora. No file of this name is distributed, and a same-named file of another program must not stand in"
note: >
first probe when fluid.soundfont is empty:
/usr/share/soundfonts/default.sf2, or C:\soundfonts\default.sf2 on
Windows. The source marks the first path as the Red Hat and Fedora
one, where the name links to FluidR3_GM.sf2, the file of the second
probe. Any SF2 or SF3 file loads: fluid.soundfont names it and
first name Find_SoundFont tries in each directory when fluid.soundfont
is empty. The source marks /usr/share/soundfonts as the Red Hat and
Fedora location, where the name links to FluidR3_GM.sf2, the second
name. Any SF2 or SF3 file loads: fluid.soundfont names it and
fluid_synth_sfload is the only check
source_ref: "src/gui/midi_synth.h:346-352, src/gui/midi_synth.h:364-368, src/gui/midi_synth.h:381-384, src/gui/midi_synth.h:462-473, src/dosbox.cpp:3746-3747"
source_ref: "src/gui/midi_synth.h:82-134, src/gui/midi_synth.h:383-399, src/gui/midi_synth.h:228-242, src/gui/midi_synth.h:478-489, src/dosbox.cpp:3742-3743"
- name: "FluidR3_GM.sf2"
description: "Fluid R3 GM SoundFont by Frank Wen"
required: false
system: dos
note: >
second probe when fluid.soundfont is empty:
/usr/share/sounds/sf2/FluidR3_GM.sf2, or C:\DOSBox-X\FluidR3_GM.sf2 on
Windows. Elsewhere the file loads when fluid.soundfont gives its path.
The synth device probes the same paths
source_ref: "src/gui/midi_synth.h:353-355, src/gui/midi_synth.h:370-372, src/gui/midi_synth.h:176-178, src/gui/midi_synth.h:193-195"
second name Find_SoundFont tries in each directory when fluid.soundfont
is empty. Elsewhere the file loads when fluid.soundfont gives its path.
The synth device searches the same way
source_ref: "src/gui/midi_synth.h:82-134, src/gui/midi_synth.h:383-399, src/gui/midi_synth.h:228-242, src/gui/midi_synth.h:478-489"
- name: "GeneralUser_GS.sf2"
aliases: ["GeneralUser-GS.sf2"]
description: "GeneralUser GS SoundFont by S. Christian Collins"
required: false
system: dos
note: >
third probe when fluid.soundfont is empty:
/usr/share/sounds/sf2/GeneralUser_GS.sf2, or
C:\DOSBox-X\GeneralUser_GS.sf2 on Windows. Elsewhere the file loads
when fluid.soundfont gives its path, and the setting's help text names this
file as its example. The synth device probes the same paths
source_ref: "src/gui/midi_synth.h:356-358, src/gui/midi_synth.h:373-375, src/gui/midi_synth.h:179-181, src/gui/midi_synth.h:196-198, src/dosbox.cpp:3747"
third name Find_SoundFont tries in each directory when fluid.soundfont
is empty, GeneralUser-GS.sf2 being the fourth. Elsewhere the file loads
when fluid.soundfont gives its path, and the setting's help text names
GeneralUser_GS.sf2 as its example. The synth device searches the same way
source_ref: "src/gui/midi_synth.h:82-134, src/gui/midi_synth.h:383-399, src/gui/midi_synth.h:228-242, src/gui/midi_synth.h:478-489, src/dosbox.cpp:3743"
# -- PC-98 character generator --
@@ -328,7 +331,7 @@ files:
256 8x8 cells at 0x0, 256 8x16 cells at 0x800, 96 by 92 16x16 cells at
0x1800. A file of any other length is rejected. Enabled by
pc-98 try font rom, on by default
source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2494-2495"
source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2500-2501"
- name: "ANEX86.BMP"
description: "PC-98 character generator, Anex86 bitmap"
@@ -340,7 +343,7 @@ files:
pixel, no compression, inverse colour scheme. The first row is the 8x16
single-width set and the rest is 16x16 full-width. Also reachable through
the pc-98 anex86 font setting, which is tried before FONT.ROM
source_ref: "src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2498-2501"
source_ref: "src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2504-2507"
- name: "FREECG98.BMP"
description: "PC-98 character generator, free generated bitmap"
@@ -424,28 +427,28 @@ files:
required: false
system: dos
note: "also the fallback typeface for any unmapped LQ selection"
source_ref: "src/hardware/parport/printer.cpp:320-321, src/hardware/parport/printer.cpp:336-337, src/dosbox.cpp:4691-4693"
source_ref: "src/hardware/parport/printer.cpp:320-321, src/hardware/parport/printer.cpp:336-337, src/dosbox.cpp:4687-4689"
- name: "sansserif.ttf"
path: "FONTS/sansserif.ttf"
description: "Printer Sans Serif typeface"
required: false
system: dos
source_ref: "src/hardware/parport/printer.cpp:323-324, src/dosbox.cpp:4691-4693"
source_ref: "src/hardware/parport/printer.cpp:323-324, src/dosbox.cpp:4687-4689"
- name: "courier.ttf"
path: "FONTS/courier.ttf"
description: "Printer Courier typeface"
required: false
system: dos
source_ref: "src/hardware/parport/printer.cpp:326-327, src/dosbox.cpp:4691-4693"
source_ref: "src/hardware/parport/printer.cpp:326-327, src/dosbox.cpp:4687-4689"
- name: "script.ttf"
path: "FONTS/script.ttf"
description: "Printer Script typeface"
required: false
system: dos
source_ref: "src/hardware/parport/printer.cpp:329-330, src/dosbox.cpp:4691-4693"
source_ref: "src/hardware/parport/printer.cpp:329-330, src/dosbox.cpp:4687-4689"
- name: "ocra.ttf"
path: "FONTS/ocra.ttf"
@@ -453,7 +456,7 @@ files:
required: false
system: dos
note: "serves both the OCR-A and OCR-B selections"
source_ref: "src/hardware/parport/printer.cpp:332-334, src/dosbox.cpp:4691-4693"
source_ref: "src/hardware/parport/printer.cpp:332-334, src/dosbox.cpp:4687-4689"
# -- PC-98 sound board BIOS --
@@ -467,7 +470,7 @@ files:
note: >
16 KB read into CC000h from the working directory only, when
pc-98 sound bios and pc-98 load sound bios rom file are both set
source_ref: "src/hardware/pc98_fm.cpp:367-385, src/dosbox.cpp:2395-2402"
source_ref: "src/hardware/pc98_fm.cpp:367-385, src/dosbox.cpp:2401-2408"
# -- Video BIOS ROM images --
# Loaded in place of the built-in INT 10h when vga bios use rom image is set.
@@ -482,7 +485,7 @@ files:
max_size: 65536
validation: [size]
note: "default file name for machine = svga_et4000"
source_ref: "src/dosbox.cpp:943-994, src/dosbox.cpp:2762-2773"
source_ref: "src/dosbox.cpp:943-994, src/dosbox.cpp:2768-2779"
- name: "TRIO64 (Ver. 1.5-07) [VGA] (S3 Incorporated).bin"
description: "S3 Trio64 video BIOS"
@@ -494,7 +497,7 @@ files:
max_size: 65536
validation: [size]
note: "default file name for machine = svga_s3"
source_ref: "src/dosbox.cpp:951-953, src/dosbox.cpp:2762-2773"
source_ref: "src/dosbox.cpp:951-953, src/dosbox.cpp:2768-2779"
- name: "ibm-vga.bin"
description: "IBM VGA option ROM of 10/27/86, laid out as mapped at C000:0"
@@ -526,7 +529,7 @@ files:
32 KB to 64 KB in 4 KB steps. LOADROM.COM maps the same image at F600:0
when it is exactly 32768 bytes, starts with E9 8F 7E and carries the
string IBM at offset 0x4CD4
source_ref: "src/ints/bios.cpp:13230-13250, src/dos/dos_programs.cpp:3633-3637, src/dosbox.cpp:1948-1950"
source_ref: "src/ints/bios.cpp:13238-13258, src/dos/dos_programs.cpp:3633-3637, src/dosbox.cpp:1948-1950"
# -- PCjr --