403 Commits

Author SHA1 Message Date
Jonathan Campbell
e5c782875a Prepare for release 2025-05-03 09:43:37 -07:00
josch1710
73a4931b5e
configure.ac
Fixed AM_CONDITIONAL
2025-04-19 17:42:34 +02:00
Jochen Sch„fer
eb88986e20 Work on tinyfiledialogs. Done are open and save dialogs as well as message boxes. 2025-04-18 19:02:36 +02:00
Jochen Sch„fer
e6c3eacd5b OS/2: Made SDL2 version running 2025-04-14 09:43:41 +02:00
Jochen Sch„fer
57fc5831d3 Some OS/2 specific changes. Patches are not complete yet 2025-03-29 10:35:37 +01:00
Jonathan Campbell
8c654af413 Update version 2025-01-31 23:11:20 -08:00
Jonathan Campbell
f9de143db1 Detect Linux kvm.h. If anyone wants any hope of using Windows XP inside this emulator, we are going to need to support Linux KVM virtualization on x86 2025-01-17 12:13:27 -08:00
Jonathan Campbell
9391034d4f Prepare for release 2024-12-31 21:09:03 -08:00
maron2000
2de242c1e2
Fix configure.ac (disable-screenshot option) 2024-12-10 14:07:57 +09:00
Jonathan Campbell
ff350a308a Update version date 2024-12-04 17:00:19 -08:00
Jonathan Campbell
d93a20fef1 Prepare for release 2024-10-01 23:16:36 -07:00
Jonathan Campbell
214c048267 Prepare for release 2024-07-01 20:45:26 -07:00
maron2000
cdc6182bdf Restore libslirp support (MinGW x64) 2024-06-05 20:50:45 +09:00
Jonathan Campbell
681aff263c Move C++14 from optional to recommended, C++11 to deprecated 2024-03-22 15:47:38 -07:00
Jaak Ristioja
8f58674c5b
Use -Wnon-virtual-dtor when available, fixed respective warnings 2024-03-21 22:20:50 +02:00
Jaak Ristioja
39906a9399
Add override keyword, clean up virtual keyword
Also removed virtual and override keywords from destructors which already
override.
2024-03-21 21:45:16 +02:00
donmor
4fc85e79cf
Update configure.ac 2024-03-11 13:44:13 +08:00
donmor
a4a27c08f5
Update configure.ac
Add proper loongarch64 support
2024-03-10 14:17:01 +08:00
maron2000
572961f8ea Fix compile error of speexdsp/fftwrap.c on gcc-14 2024-03-05 17:47:17 +09:00
Jonathan Campbell
8a159a59cd Prepare for release 2024-03-01 00:04:45 -08:00
RainRat
902ce67fad fix typos 2024-02-28 19:08:20 -08:00
crazii
db65b54e78 fix CRLF for configure.ac 2023-12-03 10:51:29 +08:00
crazii
35ea4ec567 add configure option for sdlnet (IPHLPAPI.DLL dependency removed for win95), in case that the build env has its own sdlnet installed and detected. 2023-11-29 18:49:46 +08:00
crazii
be16811529 adaption for MinGW legacy toolchain. 2023-11-29 18:49:46 +08:00
crazii
352d542177 First working version of Win9x build. 2023-11-18 17:05:23 +08:00
Jonathan Campbell
a93566b5a4 Prepare for release 2023-10-06 15:39:47 -07:00
Jonathan Campbell
bab8b7ee6c Make sure GCC understands we do not consider format-security warnings something to error out on. Later GCC versions (or perhaps distros) make the error condition default. [https://github.com/joncampbell123/dosbox-x/issues/4436] 2023-09-07 21:09:09 -07:00
Jonathan Campbell
33c5415305 Prepare for release 2023-09-01 14:49:48 -07:00
Jonathan Campbell
bcfde8a0c7 Prepare for release 2023-08-15 10:56:46 -07:00
Jonathan Campbell
611fd86414 Prepare for release 2023-08-11 13:21:45 -07:00
troydm
c0bc2851e6
mt32 disabled for aarch64 by default fix 2023-07-23 12:27:49 +03:00
Jonathan Campbell
d2d9d6b397 Update version, prepare for release 2023-05-01 07:33:27 -07:00
dbjh
f6b8a0fe31 Fixed issue with built-in command "parallel". 2023-04-05 05:16:42 +09:00
Jonathan Campbell
10add4401b Prepare for release 2023-03-31 19:30:40 -07:00
dbjh
0e564c9c74
Merge branch 'master' into directio 2023-03-26 01:03:06 +09:00
dbjh
757d9597b7 - Merged Windows and Linux implementation of CDirectLPT. So, code is shared code between Windows, Linux and other OSes.
- Added support for FreeBSD, OpenBSD, NetBSD and DragonFly BSD.
 + It is quite unlikely that the original Win32 implementation worked with the HX DOS extender on DOS as it required loading inpout32.dll which depends on a Windows kernel driver. This implementation is expected to work, because it supports direct I/O too. I am unable to verify that though.
- Made direct I/O available on all platforms, because it is desirable everywhere, including on Windows. On the BSDs it is the only interface available.
 + Least amount of latency. I/O through inpout32.dll/inpoutx64.dll or Linux's ppdev adds a significant amount of overhead. Measurements with inpout32.dll show that practical, real-world overhead can be as large as 400%, i.e. I/O taking 4 times longer than direct I/O.
 + For some devices, direct (read) access to the parallel port control register is needed which ppdev does not allow.
 + Not all parallel port PCI(e) cards are supported by ppdev. Perhaps most are not. Direct I/O works everywhere, because no host OS support is needed.
 + Made possible on 64-bit Windows by giveio64 and on 32-bit Windows by AllowIO (part of the PortTalk package). On Linux, FreeBSD, OpenBSD, NetBSD and DragonFly BSD on x86(_64), direct I/O will be enabled after opening a special device (/dev/io on FreeBSD & DragonFly BSD) or making a special system call (*iopl()).
- Visual Studio allows inline assembly only for x86 builds. However, the intrinsics __in{byte, word, dword}() and __out{byte, word, dword}() work for both x86 and AMD64 builds. Visual Studio versions older than 2015 have _inp{w, d}() and _outp{w, d}(). Those intrinsics also work on both x86 and AMD64 platforms. Visual Studio 2022 still has them too, but only for C (not for C++).
- Put inpout32.dll/inpoutx64.dll loading code in the new passthroughio library so that the functionality can be shared between parallel port and other pass-through code. For example, the original OPL pass-through functionality by Ralf Grillenberger ("h-a-l-9000", author of DOSBox Megabuild 6 where virtually all pass-through code in DOSBox-X originated from) could be enabled, although it looks there has not been any demand for that in DOSBox-X (the Windows-only implementation in DOSBox-X has been disabled a long time ago). Regardless, it is cleaner to separate the low-level I/O code from the parallel port pass-through code.
- Since the PortTalk interface (src/libs/porttalk) is no longer being used I removed it.
 + AllowIO can still be used on systems where the PortTalk device driver could be used.
- Direct I/O will be used if possible. Only on Linux one can actively avoid that by specifying realport instead of realbase in the configuration file.
 + On Linux and the BSDs the code will use direct I/O only if the effective user ID is 0 (root), because only then direct I/O is possible.
 + On Windows the code installs an exception handler and it will load inpout32.dll/inpoutx64.dll only if direct I/O causes an exception. Be aware that if reallpt is specified in the configuration file, when debugging with Visual Studio, that exception will be caught by the Visual Studio debugger instead (unless you start giveio64 beforehand).
- Solved issues with writing to the control register (changing I/O direction with ppdev was not implemented).
- Applied a better solution to a former issue in src/hardware/parport/parport.cpp that caused PARALLEL_Read() and PARALLEL_Write() to silently fail. See https://github.com/joncampbell123/dosbox-x/issues/2214.
- Corrected write to potentially invalid ECR address in CDirectLPT::~CDirectLPT() (ecpbase was ignored when restoring the value of the extended control register).
- Corrected code that enabled parallel port IRQ (could have caused trouble for some people as the code does not and cannot install an IRQ handler on most host OSes).
- Re-enabled code that sets the parallel port to bidirectional mode when using direct I/O and added code that does the same for Linux's ppdev.
 + Bidirectional mode is the most compatible mode.
 + Setting *a* mode is better than just relying on whatever is set in the BIOS or UEFI or whatever the state of a PCI(e) parallel port card is in after booting.
- Added code to reset the EPP Time-out state.
- Made log messages explicit about whether pass-through has been enabled, identifying the parallel port, thereby clarifying the situation to the user.
- passthroughio.cpp compiles cleanly with MinGW (GCC 9), MinGW-w64 (GCC 12 and Clang 15), Cygwin 32-bit (GCC 11), Cygwin 64-bit (GCC 11), Visual Studio 2015 (x86 & amd64), Visual Studio 2019 (x86 & amd64), Visual Studio 2022 (x86 & amd64), GCC 12 on Linux/x86_64 and GCC 8 on Linux/armv7.
 + The resulting code has been successfully tested on Windows 10 Pro, Linux/x86_64 and Linux/armv7.
- All changes compile cleanly as part of DOSBox-X v2022.12.26 with MinGW (build-mingw, build-mingw-lowend (after manual intervention because of broken build scripts), build-mingw-lowend-sdl2 (after adding "-lz -liconv" to LIBS in src/Makefile)), Visual Studio 2019 (amd64), GCC 12 on Linux/x86_64 (build-debug-sdl2) and GCC 8 on Linux/armv7 (build-sdl2).
- The resulting DOSBox-X executables (MinGW (build-mingw, build-mingw-lowend) & ones built with native GCC) have been successfully tested with actual (non-printing) hardware attached to a parallel port on:
 + Linux (Raspberry Pi OS) on Raspberry Pi 2B (with pi-parport, using ppdev)
 + Windows 2000 and Windows XP on laptops using inpout32.dll and AllowIO (tested on Windows 2000 only) (thanks to Mystic_Merlin)
 + Linux (Debian) on HP Thin Client T510 using ppdev (thanks to NorQue).
 The executable produced with build-mingw-lowend-sdl2 failed on a DirectSound issue during start up (on Windows XP and Windows 10).
2023-03-21 01:34:57 +09:00
Jonathan Campbell
67690cfeaa Fix --enable-universal 2023-03-16 20:37:36 -07:00
Dani Llewellyn
da6ce37153
Attempt fix for macOS CI fail following PR#4054
PR #4054 broke the macOS CI for pull requests and the nightly builds.
As a follow-up requested in the PR this is an attempt to fix it.

* Add a parameter to `configure.am` to define a build-time variable for
  use in `Makefile.am` to specify the executables we will be depending
  upon for the `dosbox-x.app` rule.
* Fix an issue in the first library scan section of the `dosbox-x.app`
  rule in the `Makefile` causing a failure to build on an Apple Silicon
  mac when there is no `x86_64` binary present.
* Fix failure to build SDL1 variant after a previous SDL2 build attempt
  by deleting `vs/sdl2/linux-host` before attempting the SDL1 build.
* Use `make clean` instead of `make distclean` in the build scripts'
  `do_cleanup` function to not clean absolutely everything.
* Make sure we remove the achitecture-specific copies we create of the
  `dosbox-x` executable before building, as these are meant to be
  used for the universal binary creation with `lipo` and the presence
  of an old copy will cause the `dosbox-x.app` bundle to potentially
  contain mismatched copies for each architecture, or contain an
  architecture that is not intended to be included.
* Add a `distclean-local` rule to `src/Makefile.am` to remove the
  architecture-specific temporary copies of the `dosbox-x` executable
  when running `distclean` as these shouldn't remain in the tree.

Signed-off-by: Dani Llewellyn <dani@bowlhat.net>
2023-03-14 00:31:56 +00:00
Alessandro Molina
ccc058e782 Fix Haiku and MinGW 2023-02-11 22:39:13 +00:00
Alessandro Molina
dc5515533b Fixes for Haiku OS 2023-02-04 16:27:33 +00:00
Jonathan Campbell
da59770c52 Prepare for release 2022-12-26 16:59:12 -08:00
Jonathan Campbell
d87c11fd35 Update version, timestamp 2022-12-25 13:17:10 -08:00
Jonathan Campbell
bcbb3e9640 Try again 2022-12-17 21:46:35 -08:00
Jonathan Campbell
2b8816b6a5 gamelink: shm_* functions in Linux require librt 2022-12-17 21:32:59 -08:00
Jonathan Campbell
4948bcdc70
Merge pull request #3884 from jwalt/feature/gamelink
Feature/gamelink
2022-12-17 20:55:33 -08:00
jwalt
2a212382ae Fix compilation without SDL2 2022-12-15 01:44:55 +01:00
jwalt
edbbe60217 Game Link base code (without integration) 2022-12-13 18:13:41 +01:00
宋文武
acf8aeebe1 openbsd: Link with "wxneeded" when dynrec core enabled. 2022-12-13 19:02:53 +08:00
宋文武
ae79f47fa8 configure.ac: Add /usr/local/include to CFLAGS/CPPFLAGS for OpenBSD.
OpenBSD has "/usr/local/include/iconv.h".
2022-12-12 18:23:41 +08:00
Jookia
67d61bb9f8 configure: Link with pthread on FreeBSD 2022-12-12 18:03:15 +08:00