From 95e77ded63d38e64544b74ba19d624de80f129ba Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:51:14 +0200 Subject: [PATCH] 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. --- emulators/dosbox-x.yml | 91 ++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/emulators/dosbox-x.yml b/emulators/dosbox-x.yml index f873c926..56abe48d 100644 --- a/emulators/dosbox-x.yml +++ b/emulators/dosbox-x.yml @@ -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-.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 .itf.rom, .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 --