From: SASANO Takayoshi Subject: Re: update dosbox-x to latest release To: Thomas Frohwein Cc: SASANO Takayoshi , ports@openbsd.org Date: Sat, 28 Jun 2025 16:25:44 +0900 ok uaa@ old version cannot build on i386 (esfm.c has error), this version looks fixed. thanks for update. On Fri, 27 Jun 2025 02:28:39 +0900, Thomas Frohwein wrote: > > [1 ] > Hi, > > This diff updates dosbox-x to latest release. I tested it with a few > DOS games without issues. > > ok? > [2 dosbox-x-2025.05.03.diff ] > ? BUILD.log > ? obsolete > Index: Makefile > =================================================================== > RCS file: /cvs/ports/emulators/dosbox-x/Makefile,v > diff -u -p -r1.5 Makefile > --- Makefile 4 May 2025 08:37:48 -0000 1.5 > +++ Makefile 26 Jun 2025 17:26:31 -0000 > @@ -2,10 +2,9 @@ BROKEN-sparc64= error:union MMX_reg has > > COMMENT= x86 with DOS emulator targeted at playing games > > -VERSION= 2024.03.01 > -DISTNAME= dosbox-x-v${VERSION} > -PKGNAME= dosbox-x-${VERSION} > -REVISION= 0 > +VERSION= 2025.05.03 > +DISTNAME= dosbox-x-${VERSION} > + > CATEGORIES= games x11 emulators > > GH_ACCOUNT= joncampbell123 > @@ -61,9 +60,11 @@ post-install: > ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/dosbox > ${INSTALL_DATA} ${WRKSRC}/README.debugger ${PREFIX}/share/doc/dosbox > ${INSTALL_DATA} ${WRKSRC}/README.joystick ${PREFIX}/share/doc/dosbox > - ${INSTALL_DATA} ${WRKSRC}/README.keyboard-layout-handling ${PREFIX}/share/doc/dosbox > + ${INSTALL_DATA} ${WRKSRC}/README.keyboard-layout-handling \ > + ${PREFIX}/share/doc/dosbox > ${INSTALL_DATA} ${WRKSRC}/README.md ${PREFIX}/share/doc/dosbox > - ${INSTALL_DATA} ${WRKSRC}/README.source-code-description ${PREFIX}/share/doc/dosbox > + ${INSTALL_DATA} ${WRKSRC}/README.source-code-description \ > + ${PREFIX}/share/doc/dosbox > ${INSTALL_DATA} ${WRKSRC}/README.video ${PREFIX}/share/doc/dosbox > ${INSTALL_DATA} ${WRKSRC}/README.xbrz ${PREFIX}/share/doc/dosbox > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/emulators/dosbox-x/distinfo,v > diff -u -p -r1.2 distinfo > --- distinfo 9 Mar 2024 13:03:21 -0000 1.2 > +++ distinfo 26 Jun 2025 17:26:31 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (dosbox-x-v2024.03.01.tar.gz) = KonTGW3cFTYfbcfmqxQr/pWUXZPVJ8/Wusyh96QBpRM= > -SIZE (dosbox-x-v2024.03.01.tar.gz) = 119593920 > +SHA256 (dosbox-x-2025.05.03.tar.gz) = sposnDi/4dHB8kINVGuMJFauLdzkwfa00Z8liEHOFYE= > +SIZE (dosbox-x-2025.05.03.tar.gz) = 122834930 > Index: patches/patch-src_fpu_fpu_instructions_longdouble_h > =================================================================== > RCS file: patches/patch-src_fpu_fpu_instructions_longdouble_h > diff -N patches/patch-src_fpu_fpu_instructions_longdouble_h > --- patches/patch-src_fpu_fpu_instructions_longdouble_h 20 Apr 2024 19:21:56 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,123 +0,0 @@ > -- Disable FP exceptions in a portable way > - 8b362df1f26fceeccb6f3b37bd26880e72db79b2 > -- Update fpu_instructions_longdouble.h > - 53fe254c9ce25a48dbe11582416cbf3a49516dce > - > -Index: src/fpu/fpu_instructions_longdouble.h > ---- src/fpu/fpu_instructions_longdouble.h.orig > -+++ src/fpu/fpu_instructions_longdouble.h > -@@ -16,31 +16,18 @@ > - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. > - */ > - > -+#include /* for std::feholdexcept */ > - #include /* for isinf, etc */ > - #include "cpu/lazyflags.h" > - > --#ifdef __GNUC__ > --# if defined(__MINGW32__) || (defined(MACOSX) && !defined(__arm64__)) > --# include "fpu_control_x86.h" > --# elif defined(ANDROID) || defined(__ANDROID__) || (defined(MACOSX) && defined(__arm64__)) || defined(EMSCRIPTEN) || defined(__powerpc__) > --/* ? */ > --# define _FPU_SETCW(x) /* dummy */ > --# else > --# include > --# endif > --static inline void FPU_SyncCW(void) { > -- uint16_t tmp = fpu.cw | 0x80 | 0x3F; // HACK: Disable all FPU exceptions until DOSBox-X can catch and reflect FPU exceptions to the guest > -- _FPU_SETCW(tmp); > --} > --#else > --static inline void FPU_SyncCW(void) { > -- /* nothing */ > --} > --#endif > -- > - static void FPU_FINIT(void) { > -+ fenv_t buf; > -+ > - fpu.cw.init(); > -- FPU_SyncCW(); > -+ > -+ // HACK: Disable all FPU exceptions until DOSBox-X can catch and reflect FPU exceptions to the guest > -+ std::feholdexcept(&buf); > -+ > - fpu.sw.init(); > - fpu.tags[0] = TAG_Empty; > - fpu.tags[1] = TAG_Empty; > -@@ -290,7 +277,8 @@ static void FPU_FBST(PhysPt addr) { > - #endif > - > - static void FPU_FADD(Bitu op1, Bitu op2){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - // HACK: Set the denormal flag according to whether the source or final result is a denormalized number. > - // This is vital if we don't want certain DOS programs to mis-detect our FPU emulation as an IIT clone chip when cputype == 286 > - bool was_not_normal = isdenormal(fpu.regs_80[op1].v); > -@@ -324,7 +312,8 @@ static void FPU_FCOS(void){ > - } > - > - static void FPU_FSQRT(void){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - fpu.regs_80[TOP].v = sqrtl(fpu.regs_80[TOP].v); > - //flags and such :) > - return; > -@@ -343,35 +332,40 @@ static void FPU_FPTAN(void){ > - return; > - } > - static void FPU_FDIV(Bitu st, Bitu other){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - fpu.regs_80[st].v = fpu.regs_80[st].v/fpu.regs_80[other].v; > - //flags and such :) > - return; > - } > - > - static void FPU_FDIVR(Bitu st, Bitu other){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - fpu.regs_80[st].v = fpu.regs_80[other].v/fpu.regs_80[st].v; > - // flags and such :) > - return; > - } > - > - static void FPU_FMUL(Bitu st, Bitu other){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - fpu.regs_80[st].v *= fpu.regs_80[other].v; > - //flags and such :) > - return; > - } > - > - static void FPU_FSUB(Bitu st, Bitu other){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - fpu.regs_80[st].v = fpu.regs_80[st].v - fpu.regs_80[other].v; > - //flags and such :) > - return; > - } > - > - static void FPU_FSUBR(Bitu st, Bitu other){ > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - fpu.regs_80[st].v = fpu.regs_80[other].v - fpu.regs_80[st].v; > - //flags and such :) > - return; > -@@ -562,7 +556,8 @@ static void FPU_FLDENV(PhysPt addr, bool op16){ > - tag = static_cast(mem_readd(addr+8)); > - } > - FPU_SetTag(tag); > -- FPU_SyncCW(); > -+ fenv_t buf; > -+ std::feholdexcept(&buf); > - } > - > - static void FPU_FSAVE(PhysPt addr, bool op16){ > Index: patches/patch-src_gui_midi_cpp > =================================================================== > RCS file: /cvs/ports/emulators/dosbox-x/patches/patch-src_gui_midi_cpp,v > diff -u -p -r1.1.1.1 patch-src_gui_midi_cpp > --- patches/patch-src_gui_midi_cpp 21 Feb 2024 12:29:10 -0000 1.1.1.1 > +++ patches/patch-src_gui_midi_cpp 26 Jun 2025 17:26:31 -0000 > @@ -1,6 +1,7 @@ > ---- src/gui/midi.cpp.orig Thu Nov 2 18:58:55 2023 > -+++ src/gui/midi.cpp Fri Nov 3 05:13:47 2023 > -@@ -115,6 +115,10 @@ static struct { > +Index: src/gui/midi.cpp > +--- src/gui/midi.cpp.orig > ++++ src/gui/midi.cpp > +@@ -116,6 +116,10 @@ static struct { > > #include "midi_win32.h" > -- SASANO Takayoshi (JG1UAA)