373 Commits
Author SHA1 Message Date
WizzardSK a563bb5e97 Base the dosbox core on dosbox-core, with ZIP support and more from DOSBox Pure
The core is replaced by dosbox-core as of libretro/dosbox-core d38fcb50 (its
history is in that repository), with the following on top:

- Frontend VFS for mounted drives (libretro/dosbox-core#11): Android content://
  and saf:// content works.
- Built as dosbox_libretro and called DOSBox, so it installs next to
  dosbox-core without sharing its options, saves directory or config file.
  Option keys keep their dosbox_core_ prefix.
- ZIP files as content, from DOSBox Pure (Bernhard Schelling): its zipDrive,
  unionDrive and memoryDrive, and the helpers they share (drive_dbp.cpp). The
  archive is mounted as C: without being extracted and the game's changes go
  to <name>.save.zip in the saves directory. DOS_Drive and DOS_File get the
  few members those drives need, with defaults.
- The game in a ZIP is started when there is nothing to choose: the single
  program in the root, or in the one folder the root holds, leaving setup and
  install programs aside.
- Disk images inside a ZIP: CD images (cue sheets with data and audio tracks,
  or ISOs) as D:, floppy images as A:, hard disk images as E: and on. Files on
  emulated drives can be named "$C:\PATH" as in DOSBox Pure; host_stat,
  fopen_wrap, the CD image reader and the audio track decoder open them
  through the drive, finding files by their long names. CDs and floppies go
  to RetroArch's disc control.
- A start menu after DOSBox Pure's when a ZIP leaves a choice: it lists the
  programs on C: and on the mounted images, starts the one picked, can make it
  start on its own next time (kept in C:\DOSBOX.RUN, in the save file), and
  comes back when the program exits. Keyboard and gamepad; it can be turned
  off in the core options.
- Automatic gamepad mapping from DOSBox Pure's Keyb2Joypad database (original
  data by Jemy Murphy and bigjim, used by DOSBox Pure with permission): a game
  the database knows, as a ZIP or from a directory, gets its keys, mouse and
  joystick actions on the first gamepad instead of the DOS joystick, with the
  action names shown in RetroArch. It can be turned off.
- The CPU speed from the game's year, from its name or the database, as in
  DOSBox Pure; it can be turned off.
- Roland SC-55 MIDI with Nuked-SC55 (nukeykt), from DOSBox Pure, as a new MIDI
  driver taking the module's ROMs from the system directory.
2026-09-28 01:41:33 +02:00
LibretroAdmin 0e3a122d16 Merge pull request #152 from cscd98/mingw-32
libretro: fix compilation on newer mingw
2026-09-20 17:17:07 +02:00
Craig Carnell e79d39210a libretro: fix spaces in Makefile.libretro, linking error with Open/Close on mingw 2026-09-20 14:45:19 +01:00
LibretroAdmin 988aa330d1 Merge pull request #150 from WizzardSK/fix-buildbot
Fix the buildbot Android and macOS jobs, and add the 32-bit Android ABIs and webOS
2026-09-05 23:47:49 +02:00
WizzardSK f4862c6ecf Build the 32-bit Android ABIs, and add webOS
The two 32-bit Android ABIs were commented out because the NDK's clang
rejects both of their dynarecs: the ARM one writes to r7 from inline asm,
which is reserved as the frame pointer, and the x86 one is not position
independent. That is a reason not to build those two dynarecs, not a reason
not to build the core - dosbox has an interpreter, and every other ABI-less
target here already uses it. jni/Android.mk now leaves WITH_DYNAREC empty
for everything except x86_64, and all four ABIs are built.

webOS is the same makefile as Linux with the SDK's toolchain, so it needs
nothing new - except that on platform=unix the makefile guesses the dynarec
from `uname -m`, which on a cross build is the host. The job names the
target's own instead, and the ARM dynarec does build with GCC; it is only
the NDK's clang that refuses it.

Both checked with the same commands the templates run: armeabi-v7a and x86
through ndk-build (failing with the dynarec, building without it), and an
arm-linux-gnueabihf cross build standing in for the webOS SDK's
arm-webos-linux-gnueabi toolchain, with and without WITH_DYNAREC=arm.
2026-09-05 09:28:04 +02:00
WizzardSK 23a3334544 Fix the buildbot's Android and macOS jobs
Both were failing on every pipeline since the CI landed.

The Android jobs never got as far as compiling. `.core-defs` set
`JNI_PATH: jni`, but the android-jni template appends `/jni` to that itself
(`ndk-build -C $JNI_PATH/jni`), so it went looking for `jni/jni`. The
default is `.`, which is what this repository wants.

macOS stopped on the first `noexcept` in include/setup.h:

  ./include/setup.h:94:27: error: expected ';' at end of declaration list
          Value& operator= (Hex in)                noexcept(false) { ... }
                                   ^

Nothing tells the compiler which C++ standard this is, and clang on macOS
answers gnu++98. The code needs at least C++11 for `noexcept`, and at most
C++14, because the dynarec headers still say `register`, which C++17
removed - which is why jni/Application.mk already pins gnu++14 for the NDK.
So the makefile now says gnu++14 too, unless the platform block above it has
already chosen a standard (libnx picks gnu++11).

Built on aarch64 Linux, and the macOS arm64 job reproduced on an Apple
Silicon runner before and after.
2026-09-05 09:19:06 +02:00
LibretroAdmin c5e8936dfa Merge pull request #149 from WizzardSK/gitlab-ci
Add GitLab CI (Linux, Windows, macOS, Android)
2026-09-04 22:35:39 +02:00
WizzardSK f9fae08eab Add GitLab CI
Build linux-x64/i686/aarch64, windows-x64, osx-arm64 and the four Android
ABIs. Two notes carried in the file: the makefile knows platform=win rather
than win64 and cannot guess a dynarec when cross compiled, and aarch64 has
no dynarec backend in this fork.

Application.mk pins gnu++14: dosbox still uses `register`, which the NDK's
default C++17 rejects.
2026-09-04 16:19:49 +02:00
LibretroAdmin 4024bf0048 Merge pull request #148 from cscd98/gcc-std-17
Fix compilation on > gnu++14 compilers
2026-04-20 19:27:11 +02:00
Craig Carnell 4cf18ddf91 Fix compilation on > gnu++14 compilers 2025-12-06 11:51:16 +00:00
LibretroAdmin b7b24262c2 Merge pull request #142 from hosterholz/macos-arm64
Build on macos arm64
2022-07-18 09:17:59 +01:00
Hendrik Osterholz 72619b151a Build on macos arm64 2022-07-18 07:25:21 +02:00
twinaphex 74cd17ed0f Update libco 2022-04-06 23:33:33 +02:00
Autechre 1aff406fae Merge pull request #140 from crystalct/master
PS3/PSL1GHT add build fix and gcc 4.x compatibility
2022-03-27 15:13:30 +01:00
unknown 6dbd87c7ea PS3/PSL1GHT add build fix and gcc 4.x compatibility 2022-02-06 17:35:27 +01:00
Autechre aa71b67d54 Merge pull request #134 from metallic77/master
fix Wii compilation
2020-12-29 03:34:05 +01:00
Autechre 665d16d4ed Merge pull request #135 from metallic77/patch-1
fix Wii compilation
2020-09-30 12:32:23 +02:00
metallic77 be6b2ee79b fix Wii compilation 2020-09-30 13:25:54 +03:00
metallic77 ecd86209e4 fix Wii compilation 2020-09-30 13:24:51 +03:00
metallic77 f54f01d9ac fix Wii compilation 2020-09-30 12:34:37 +03:00
Twinaphex e4ed503b14 Merge pull request #125 from webgeek1234/master
Add missing nintendo targets
2019-09-02 02:50:45 +02:00
Twinaphex da44601ad2 Merge pull request #127 from yoshisuga/tvos_support
(tvOS) Compile using tvOS SDK
2019-09-02 02:50:39 +02:00
Yoshi Sugawara 934ce2a54a (tvOS) Compile using tvOS SDK 2019-09-01 08:26:50 -10:00
Aaron Kling dcb478569f libretro: fix 3ds and wii-u compile 2019-07-16 12:28:21 -05:00
Aaron Kling 79783add64 libretro: add gamecube support to the makefiles 2019-07-16 12:04:45 -05:00
Twinaphex 410746e076 Merge pull request #124 from webgeek1234/master
Android updates
2019-06-27 00:52:06 +02:00
Aaron Kling f5ea0c06ae libretro: jni: Switch stl to c++ in preparation for ndk r20
Also add some explicit casts to silence errors from the newer
compiler
2019-05-23 11:52:40 -05:00
Twinaphex 2aa0bd13b3 Merge pull request #121 from rsn8887/master
add configurable deadzone for right-stick mouse
2019-03-20 13:52:33 +01:00
rsn8887 b417460837 add configurable deadzone for right-stick mouse
back-porting this commit by @fr500 :
https://github.com/fr500/dosbox-svn/commit/c4e39e3c1d7d91e9b95fcf0d36003461860720c0
2019-03-20 01:21:01 -05:00
Twinaphex a75f4055e2 Merge pull request #119 from rsn8887/master
reduce deadzone for gamepad mouse to increase precision
2019-03-20 05:59:12 +01:00
rsn8887 424c2ef42d reduce deadzone for gamepad mouse to increase precision 2019-03-19 23:36:32 -05:00
Twinaphex 7216efe331 Merge pull request #114 from ehmry/master
Build rules for Genode platform
2018-11-26 15:25:42 +01:00
Emery Hemingway 6f478d7f5d Build rules for Genode platform 2018-11-25 22:39:33 +01:00
Emery Hemingway 4d661124fa Libco update 2018-11-25 22:39:33 +01:00
Emery Hemingway 9421dd3487 Initialize all values for ENVIRONMENT_SET_GEOMETRY 2018-11-25 22:39:33 +01:00
Twinaphex 8f2d7318b6 Merge pull request #108 from fr500/master
arm64 doesn't exist in this version
2018-09-30 18:36:48 +02:00
radius 1ec9901713 arm64 doesn't exist in this version 2018-09-30 11:29:05 -05:00
Twinaphex bcdcce264b Merge pull request #106 from natinusala/master
libretro.h update + libnx port
2018-09-29 23:09:12 +02:00
natinusala 07dc36e046 libnx port 2018-09-29 23:05:05 +02:00
natinusala 4606a83e78 Update libretro.h 2018-09-29 23:04:46 +02:00
Twinaphex 2d6bfbfe9a Merge pull request #101 from hiddenasbestos/libretro_h
Updated to latest libretro.h from RetroArch
2018-09-07 02:33:45 +02:00
Twinaphex 4a1abd24ad Merge pull request #102 from SuperCatFooz/master
Fix struct "retro_midi_interface" being defined twice
2018-09-07 02:33:32 +02:00
Super 5cc57e67d2 Fix redefined struct retro_midi_interface
The core fails to compile due to the struct `retro_midi_interface` being defined twice in the file libretro.h.  Removing one of the structs allows the core to compile correctly.
2018-09-06 19:21:30 -05:00
David Walters d87d7cc43f Updated to latest libretro.h from RetroArch [a48cc2f9b5022d016c95273eaa685b99a703d2c8] 2018-09-04 09:48:15 +01:00
Twinaphex 0b5aa846a6 Merge pull request #100 from hiddenasbestos/oem102
Support for OEM102 key.
2018-09-02 20:43:20 +02:00
David Walters b79abd53e7 Add support for OEM102 key. backslash on UK layout, <> on FR layout, etc. 2018-09-02 19:01:34 +01:00
David Walters 757972574f Update to latest libretro.h 2018-09-02 19:01:04 +01:00
Twinaphex c35d4ccc0a Merge pull request #98 from RetroSven/master
add memory hooks for cheat/rumble
2018-08-12 10:16:49 +02:00
Sven 8598226b41 add memory hooks for cheat/rumble 2018-08-11 11:57:24 -04:00
Twinaphex 169d476437 Merge pull request #95 from fr500/master
add more granularity
2018-07-22 12:43:10 +02:00