Herman S.
57c4051eca
[macOS] Build infrastructure and portability fixes
...
Build system:
- Enable ObjC++, macOS deployment target, framework linking
- Fix AppleClang detection
- macOS platform name for output directories
- Skip Vulkan on macOS, null graphics without Vulkan dependency
- macOS SDL2 framework detection and discord-rpc macOS sources
Portability fixes:
- mach_absolute_time for macOS tick counting
- _NSGetExecutablePath for macOS
- guard MAP_FIXED_NOREPLACE, ftruncate64->ftruncate
- guard Vulkan include/usage, fix data root for all POSIX
2026-03-27 02:44:00 +09:00
Herman S.
5f04b5420d
[Build/MacOS] Add SDL2 framework
2026-03-27 00:11:59 +09:00
Herman S.
46613f1126
[3PP] Update disruptorplus for libc++ std::min fix
2026-03-26 23:49:21 +09:00
Herman S.
78600212b2
[3PP/MacOS] Fix ffmpeg and sha256 build
...
ffmpeg: macOS uses "_" symbol prefix (Mach-O), has no <malloc.h>,
and doesn't support .data.rel.ro sections. Add __APPLE__ guards
in ffmpeg-xenia/config.h.
sha256: macOS provides endian macros in <machine/endian.h> instead
of <endian.h>.
2026-03-26 23:49:21 +09:00
Herman S.
6c20f64e0d
[Build] Guard Linux-specific CMake config behind platform check
...
GTK3, system SDL2 (pkg-config), Linux link libraries, linker groups,
and _GLIBCXX_DEBUG were in the generic non-MSVC branch, breaking
cmake configure on non-Linux POSIX platforms.
2026-03-26 23:10:47 +09:00
Herman S.
0bd565eade
[Build] Enable zstd ASM Huffman decoder on non-MSVC x86_64
...
zstd ships a hand-written huf_decompress_amd64.S that was being
disabled on all non-MSVC builds. New behavior matches zstd's own
CMakeLists which enables it on GCC/Clang x86_64 and disables it
on MSVC and non-x86 architectures.
2026-03-26 16:28:27 +09:00
Herman S.
86c7a8be79
[Build] Enable zlib-ng AVX2/AVX512 optimizations on all x86_64 platforms
...
PCLMULQDQ CRC folding is excluded for now due to a runtime hang on
Linux — needs further investigation. The library does runtime feature
detection so all other paths should be safe on CPUs without these extensions.
2026-03-26 16:28:27 +09:00
Herman S.
883c2030d0
[ARM64] Initial commit for arm64 backend
...
Based entirely off existing xbyak x86 implementation and available
tests. Still needs a lot of optimization and testing on non-Windows
platforms.
So far passes all tests and boots at least some games on Windows.
2026-03-22 15:57:37 +09:00
Herman S.
c6e112bcd8
[3PP/ARM64] Add xbyak_aarch64 submodule
2026-03-22 14:24:47 +09:00
Herman S.
207ea025f9
[3PP/Build/ARM64] Add missing asm/alignment macros to FFmpeg
2026-03-21 01:30:32 +09:00
Wunkolo
c50b036178
[Build] Fix discord-rpc multi-arch builds
...
RapidJson needs to be configured to use NEON rather than SSE4.2
2026-03-19 07:52:11 +01:00
Herman S.
a26bbaa674
[3PP] Update FFmpeg version to include latest updates
2026-03-07 20:08:00 +09:00
Gliniak
2de05ef1c1
[3PP] Removed reference to premake modules
2026-03-04 11:57:55 +01:00
Herman S.
71c5702ee8
[Build] Convert build system to raw cmake and remove premake layer
2026-03-04 17:37:36 +09:00
Herman S.
cd5df622a9
[3PP] Switch FFmpeg to latest release with port of xmaframes codec
...
And pull out all the xenia specific build junk into
third_party/ffmpeg-xenia rather than keeping it checked in the
submodule
2026-03-04 13:05:31 +09:00
Herman S.
434644c301
Merge commit 'f2fabfdf0' into canary_experimental
...
Sync changes from master up to before the recent GPU changes, those will be
merged later
2026-02-17 16:59:38 +09:00
Herman S.
20b226dbdf
[Vulkan] Update glslang to 16.0.0 and introduce compat layer
2026-02-17 15:34:23 +09:00
Herman S.
8d76331df5
[3PP] Update vulkan related submodules
2026-02-17 14:42:01 +09:00
Herman S.
b2ba98ade7
[Testing] Use the same binutils on windows and linux
2026-02-14 17:40:45 +09:00
Herman S.
92b341e50c
[Testing] Add support for building binutils with mingw64
2026-02-14 17:40:40 +09:00
Herman S.
2bb7c8dbf5
[Testing] Fix tests to use opcode mnemonics
2026-02-13 15:08:07 +09:00
Herman S.
24c671bf63
[Testing/binutils] Fix VMX128 instruction definitions
...
Add dcbz128 instruction with opcode X(31,1014) | (1<<21)
dcbz and dcbz128 share extended opcode 1014, distinguished by
bit 21 (RT field): dcbz has RT=0, dcbz128 has RT=1.
Fix vspltisw128 operand list to {VD128, SIMM}
Removed incorrect VB128 operand; instruction only takes
destination and immediate value.
Fix VPERM128 field definition from 8-bit to 0xff
The vperm128 permute control is an 8-bit value (0-255),
not a 3-bit value (0-7).
Fix VC128 field flags from PPC_OPERAND_VR to 0
VC128 is a 3-bit immediate field, not a vector register operand.
2026-02-13 15:05:23 +09:00
Herman S.
09a15fbedc
[Testing] Get tests running (dirty hack for linux)
2026-02-13 13:32:39 +09:00
Triang3l
c4e1242fa2
[D3D12] Include recent D3D12 headers from the Microsoft GitHub
2026-01-14 23:05:08 +03:00
Gliniak
c6be50165f
[3PP] Uplifted FMT to 12.1
2025-11-17 13:36:25 +01:00
Margen67
b56c56faee
[premake] Only define ZSTD_DISABLE_ASM on non-MSVC
...
MSVC doesn't compile with BMI(2) by default so there's no point.
DYNAMIC_BMI2 needs to be defined to enable it, but it's disabled since it bloats binary size.
2025-08-22 06:22:07 -07:00
Margen67
fa8c19edbd
[premake, xb] Moar cleanup
2025-08-22 06:22:07 -07:00
Margen67
cbde83b912
Update Premake to 5.0-beta7
2025-08-15 20:51:48 +02:00
Margen67
7d379952f1
[3PP] RAPIDJSON_SSE42
2025-08-12 12:41:31 -07:00
Margen67
8b6cb9c287
[Premake, 3PP] Formatting/cleanup
2025-08-11 21:03:31 -07:00
Margen67
81b972f329
[Base, premake] Cleanup
...
date has detected _MSVC_LANG for a while, so HAS_UNCAUGHT_EXCEPTIONS isn't needed.
2025-08-10 06:06:59 -07:00
Margen67
10f2b5ebfc
Imgui stuff
2025-08-03 19:51:32 -07:00
Margen67
833f938a64
[premake] Formatting, cleanup
2025-08-03 19:51:32 -07:00
Margen67
43d206d2e9
[premake] More cleanup
2025-07-29 12:02:49 -07:00
Margen67
03c0e70f8b
[premake] Remove unneeded defines
2025-07-28 17:26:06 -07:00
Margen67
f36dbd2b33
[3PP] Switch to zlib-ng
2025-07-27 02:46:43 -07:00
Margen67
4b9509391a
[3PP] Upgrade snappy to 1.2.2
2025-07-27 02:46:43 -07:00
Margen67
25d6f8269a
[premake] Cleanup
2025-07-27 02:46:43 -07:00
Margen67
108fa002f9
[xb] Cleanup, use maintained version of cpplint
...
https://github.com/google/styleguide/pull/837
2025-07-19 14:42:21 -07:00
Margen67
0aeac841b8
Fix building with Clang 20
...
date: 3.0.4
tomlplusplus: Latest master as of writing since there's no stable release with the build fixes.
2025-07-07 04:27:38 -07:00
Gliniak
50492a951e
[Misc] Moved pe_image to base from 3pp and cut unnecessary parts
2025-05-31 10:05:00 +02:00
Stefan Schmidt
9f8fad7551
[3PP] Update Vulkan-Headers to v1.4.313
2025-04-30 20:07:34 +02:00
Stefan Schmidt
8273e8928a
[3PP] Update VulkanMemoryAllocator to v3.2.1
2025-04-30 20:07:34 +02:00
Gliniak
7667958556
[3PP] Added Libusb
2025-04-14 21:44:49 +02:00
Gliniak
30dcc09714
[3PP] Uplifted Premake to 5.0-beta6 and cleaned up premake file
2025-04-01 00:00:03 +02:00
Gliniak
f61d52dc46
[3PP] Uplifted ImGui
2025-03-19 22:47:20 +01:00
Gliniak
523a2dc6e3
[3PP] Uplifted SDL2 to 2.32.2. Possibly next update to 3.0
2025-03-07 18:39:45 +01:00
Adrian
b7b707ddd2
[3PP] Uplift utfcpp
2025-02-01 23:43:49 +01:00
Gliniak
08537f0a80
[3PP] Uplifted FFMPEG
2025-01-20 18:38:50 +01:00
Marco Rodolfi
f58fab1d2c
[compiler] Misc changes to make this emulator properly compile under Linux with Clang
2025-01-19 21:37:29 +01:00