Commit Graph

281 Commits

Author SHA1 Message Date
lucinda lovebuny
ff8d142873
3rdparty.lua: fix LZMA PPMD support (#13981) 2025-07-21 05:33:57 -04:00
Julian Sikorski
59e34c7a1a
Removed wayland-egl-backend requirement at compile-time (#13903)
Since ba6f5853e9 wayland is dynamically
loaded at run-time.
2025-07-19 08:58:54 -04:00
Patrick Mackinlay
da468a4f50
build: update vs/msbuild settings to reflect current clangcl (#13633) 2025-05-13 11:38:55 +07:00
holub
745e040e16
3rdparty/expat: Updated expat to version 2.7.1. (#13643) 2025-05-03 00:18:06 +10:00
Patrick Mackinlay
458d529007 build: fix msvc build 2025-04-23 14:49:14 +07:00
Vas Crabb
fd2ff42459 3rdparty/portmidi: Disable another warning to help clang on Windows. 2025-04-20 10:20:13 +10:00
Vas Crabb
435f04a4c5 3rdparty/portmidi: Fixes for Linux and clang builds. 2025-04-20 09:12:55 +10:00
Vas Crabb
844af3a173 3rdparty/portmidi: Updated to PortMidi 2.0.4. 2025-04-20 08:16:03 +10:00
Vas Crabb
8c28d3ff7e Cleaned up build scripts and compiling documentation:
* Made it a bit easier to cross-compile for x86-64 or i686 on an AArch64
  Windows system.
* Choose the default native recompiler back-end based on predefined
  macros rather than requiring the build scripts to set it.
* Don't require every target without a native recompiler to declare
  this.
* Got rid of the code that was supposed to set -m32 or -m64 when
  building GENie (it didn't work - it tried to use ARCHITECTURE before
  setting it).
* Avoid relying on the unreliable PROCESSOR_ARCHITECTURE environment
  variable.
* Got rid of stuff for versions of Xcode that are definitely no longer
  supported.
* Got rid of workarounds for very old Linux distros.
* Use newer makefile syntax for if/else/if structures, comment some else
  and endif statements for clarity.
2025-04-20 02:36:58 +10:00
Vas Crabb
c2a22eb5e2 3rdparty/bimg: Re-added hack to work around GitHub CI issues.
Attempt to enable SSE features explicitly specified in ARCHOPTS.  It
will still fall back to SSE 2 if you just use -march= to enable later
SSE features.
2025-04-19 04:17:08 +10:00
Vas Crabb
5bd60d58c0 -cpu/e132xs: Cleaned up disassembler a bit, disassemble most invalid instructions as D.HU.
-bimg: There should be no need to force SSE2 for 64-bit builds.
2025-04-19 02:28:03 +10:00
Vas Crabb
288839a395 3rdparty/expat: Updated to expat 2.6.4. 2025-03-12 17:23:33 +11:00
Vas Crabb
26d8e47c00 DRC cleanup and minor optimisation: [Windy Fairy, Vas Crabb]
* Build all native back-ends if any native back-end is enabled so errors
  caused by changing interfaces can be found faster.
* cpu/drcbeut.cpp: Moved resolved member function stuff to a place where
  it can be shared by back-ends.
* cpu/drcbearm64.cpp: Use ubfx instruction to extract unordered flag.
* cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Bypass trampolines when calling
  get map variable value and debugger instruction hook functions.
* cpu/drcbearm64.cpp: Moved some internal helpers that don't need to be
  members to anonymous namespace.
* cpu/drcbearm64.cpp: Added a comment with some info to help when
  debugging generated code.
* cpu/drcbec.cpp: Put code in the drc namespace.
2025-01-16 06:30:13 +11:00
987123879113
aa5cd150b3
cpu/drcbearm64.cpp: Added a 64-bit ARMv8 (AArch64) DRC back-end. (#13162)
* cpu/uml.cpp: Removed unused vector type.
* 3rdparty/asmjit: Update asmjit to latest upstream.
* cpu/drcbex64.cpp: Fixed crash with LOG_HASHJMPS enabled (stack needs to be 16-byte aligned before calling debug_log_hashjmp_fail).
2025-01-14 02:44:16 +11:00
Patrick Mackinlay
924b205539 build: adjust msvc warning settings 2025-01-03 16:03:35 +07:00
FlykeSpice
a8ad791c76
3rdparty/lzma: Don't treat K&R function definitions as an error. (#13080)
Some AArch64-specific code in C/CpuArch.c uses () when it should be using (void).
2025-01-01 03:35:05 +11:00
FlykeSpice
59afe5fdf0
Fixed cross-compiling bgfx for MinGW under Linux. (#13073) 2024-12-14 04:04:10 +11:00
Patrick Mackinlay
ae4e4482c6 fix windows build
* use MPARAM for GENie build architecture
* avoid escaping issue in 3rdparty/expat
2024-11-28 08:49:59 +07:00
arbee
f89e137c57 scripts/3rdparty.lua: Enabled -Wno-tautological-compare for BGFX in order to evaluate turning it off for MAME. [R. Belmont]
cpu/es5510: Removed hack that never could possibly have worked, comparing a uint8_t to a 24-bit constant. [R. Belmont]
2024-10-26 15:17:31 -04:00
arbee
6957c46998 cpu/m68000: Updated 680x0 FPU to Softfloat 3 from 2. (MT5411 and MT8793). [R. Belmont]
- Update to Softloat 3 from 2
- FREM and FMOD now generate the quotient bits in FPSR, required by Apple's SANE to do sin/cos/tan properly.
- FMOVE of a float to a Dx integer register generates the exception status bits, fixing square roots in SANE
- Rewrote how FMOVEM instructions are decoded and executed, fixing issues including skipping too few or too many
  opcode bytes and causing serious weird behavior.
- FPU instructions all now have more realistic cycle timings for a 68881.
- All FPU instructions now generate exception bits in FPSR.

3rdparty/softfloat3: Updates [R. Belmont]
- Softfloat3 was always being built for a big-endian host, causing incorrect math on LE x64 and AArch64 machines.
- Fixed up Softfloat3 to build properly as part of MAME and up-ported the Bochs extensions.  In latest Bochs, they
  were only partially up-ported and Softfloat3 had been hacked up to be more like 2; here they're fixed to work
  with stock Softfloat3.
2024-05-27 20:40:42 -04:00
Patrick Mackinlay
2c566627a1
3rdparty/asmjit: Updated to upstream version 1.13.0. (#12228)
From revision asmjit/asmjit@e5d7c0bd5d
2024-04-11 03:16:51 +10:00
Julian Sikorski
2752ad052d
Add C compiler flags for Wayland EGL backend to bgfx build options (#12216) 2024-04-07 16:45:17 -04:00
Vas Crabb
05e69b43e9
Added Zstandard support for zip archives and CHDs. (#11827)
* 3rdparty/zstd: Added Zstandard compression library version 1.5.5.
* util/unzip.cpp: Added support for Zstandard compression (method 93).
* util/chdcodec.cpp: Added support for Zstandard compression.
* 3rdparty/flac: Always define NDEBUG to avoid log spam.
2023-12-11 10:48:02 +11:00
Vas Crabb
e5186344e5 Tied up loose ends:
* Updated copyright for FLAC.
* Enabled some more warnings for LZMA now that upstream is cleaner.
* Removed Subversion attributes from .gitattributes.
2023-12-06 17:31:13 +11:00
Vas Crabb
414c5ce5a5 3rdparty: Renamed libflac to flac - it's a full FLAC distribution, libFLAC is just a small part of it. 2023-12-06 17:12:45 +11:00
Vas Crabb
faf991a563 3rdparty/libflac: Updated to version 1.4.3.
Also removed FLAC documentation - it's a lot of bloat.
2023-12-06 17:12:45 +11:00
Vas Crabb
79bef1e230 3rdparty/lzma: Updated to version 23.01. 2023-12-06 07:58:49 +11:00
Vas Crabb
466c450cb3 3rdparty/utf8proc: Updated to 2.9.0. 2023-12-06 07:05:45 +11:00
Vas Crabb
12590d6ad8 3rdparty/zlib: Updated to 1.3.0. 2023-12-06 06:42:53 +11:00
Vas Crabb
418d093e54 Revert "3rdparty/portaudio: Enabled PulseAudio backend for Linux. [invertego]"
This reverts commit c5927d37e7.

PortAudio's PulseAudio backend currently has issues.  We'll sit this out
until that's sorted out upstream.
2023-11-20 02:32:34 +11:00
Vas Crabb
ea3a55c607
3rdparty/portaudio: Suppress clang unused label warning. 2023-10-24 06:31:22 +11:00
Vas Crabb
c5927d37e7 3rdparty/portaudio: Enabled PulseAudio backend for Linux. [invertego] 2023-10-24 02:27:07 +11:00
invertego
963561c7cb
3rdparty/portaudio: Updated to latest upstream version. (#11604)
Up-to-date with revision 24c8d575e588d557d28f4011becb753421346860.  Resolves issues building with Visual Studio.

Enabled PortAudio when building with Visual Studio and clang-cl.

docs: Removed note about duplicate GUID symbols in PortAudio when built with MSVC.
2023-10-09 01:50:30 +11:00
Julian Sikorski
117c384d4a
render/drawbgfx.cpp: Added initial support for Wayland on Linux. (#11451) 2023-09-29 01:24:59 +10:00
Julian Sikorski
80155dfa8c
3rdparty/bgfx: Cherry-picked upstream commits needed to support Wayland on Linux. (#11539) 2023-09-29 01:14:29 +10:00
Vas Crabb
44eb5ea3c6 Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)"
This reverts commit 1c61ccfe84.
2023-09-08 05:14:35 +10:00
Julian Sikorski
1c61ccfe84
Updated bgfx, bx and bimg to current upstream versions. (#11493)
* Reverted "macOS, iOS: Removed OpenGL/OpenGLES support. (commit 4693983242a698eaafed87faf4ffef1789adc8f9).
* Reverted "Fix macOS build" (commit ce2c2c13eda7d699051f75f598e740a447343a88).
* Reverted "macOS: Fixed deprecated warnings." (commit 10a8cb61f882ebc9bb376ee2341d003880b7037f).
* Added bgfx/README.mame explaining deviations from upstream.
2023-09-06 01:10:24 +10:00
invertego
20a8b896ab
Fixed MinGW AArch64 issues: (#11521)
* 3rdparty/bimg: Don't enable SSE on MinGW arm64 targets.
* diagnostics/diagnostics_win32.cpp: Added Windows arm64 support.
2023-09-02 02:06:21 +10:00
holub
c2a516abd4
js_sound.js: fix sound level default for underrunning case (#11317) 2023-07-24 20:38:18 -04:00
Vas Crabb
a504bde3a7 3rdparty/lzma: Updated to LZMA SDK version 22.01 2023-05-04 02:41:16 +10:00
arbee
c708e0ebac 3rdparty: Another attempt to satisfy Windows Clang. [R. Belmont] 2023-04-01 22:27:22 -04:00
arbee
bd3ea17108 3rdparty.lua: Windows Clang needs another warning suppression for PortAudio. [R. Belmont] 2023-04-01 21:07:16 -04:00
AJR
8081f94107 3rdparty.lua: Fix clang build after portaudio update 2023-04-01 19:41:40 -04:00
arbee
645bbe989b PortAudio: sync to upstream GitHub revision 0e9b386a1053261340bc8bb32335484ef77b258b [R. Belmont, PortAudio team]
* Tested and works on Windows, macOS, and Linux.
* Fixes compatibility with macOS Ventura and bugfixes WASAPI and WDM-KS on Windows.
2023-04-01 19:03:31 -04:00
Vas Crabb
31c0d2a4a8 Reduce warnings that need to be suppressed to build linenoise. 2023-03-07 05:46:28 +11:00
Vas Crabb
8384223ac8 Updated forked linenoise to latest upstream.
This removes the need to force it to build as C++, and adds proper UTF-8
support for Windows.

Since this is a fork of linenoise, there's no hope for getting
lua-linenoise to sync with it upstream.  I made the bare minimum changes
to keep it working, but didn't add bindings for new functionality (e.g.
multi-line editing).
2023-03-07 05:33:37 +11:00
Vas Crabb
dc87571a43 3rdparty: Avoid the need for -fpermissive since clang doesn't like it.
I'll try to get some of this upstreamed.
2023-03-07 04:19:36 +11:00
Vas Crabb
b5475eb38b Various updates, mostly around Lua:
Compile Lua as C++.  When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames.  Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone.  In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.

Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance.  The main thing removed is the
deprecated bitlib.

Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.

Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.

Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.

Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.

Added warning level print function to Lua.

Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
2023-03-07 01:39:42 +11:00
Miodrag Milanović
bd59a0d447
Removed local copy of SDL source and update Android build support. (#10899)
* Removed SDL2 source.
* Updated gradle.
* Updated SDL2 Java support glue code.
* Increased minimum supported Android API version to 24.
* Updated required asset files for Android app.
* Added proper tag for Android logging.
* Added SDL2 hint to make BGFX work on Android.
2023-02-27 05:40:37 +11:00
Vas Crabb
63ea393695 3rdpary/bimg: Just disable SSE on all 32-bit builds to be safe. 2023-02-20 03:08:50 +11:00