Commit graph

413 commits

Author SHA1 Message Date
OpenSauce04 5bc58c78ed OpenBSD build fixes
- Specify OpenBSD's X11 include directory
- Add OpenBSD-specific linker flag to allow W|X
2026-04-19 13:37:26 +01:00
Wunk 60f331b43b
cmake: Allow Catch test discovery (#1997)
Allows individual unit-tests to be discovered, tested, and debugged by IDEs without having to run _all_ of the unit-tests just to debug one specific test.
2026-04-05 23:01:05 +02:00
OpenSauce04 23393904e0 Fixed NetBSD build issues
- Added missing include
- Fixed X11 include directory not being included
2026-04-05 13:11:40 +01:00
Marcin Serwin 6201256e15
cmake: Add option to use system oaknut (#1947)
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
2026-03-28 12:21:42 +01:00
OpenSauce04 7220bd2edd externals: Updated to boost 1.90 + LLVM 22 workaround 2026-03-27 18:30:41 +00:00
OpenSauce 068d6598bc
Configuration backend improvements Pt. 1 (#1762)
* Convert all setting keys in settings.h into hana strings

* Derive libretro setting keys from common/settings.h hana strings

* settings.h: Reduce code repetition in key definitions via macro

* Implemented mechanism to pass our C++ setting keys to Android/Kotlin

None of the Android keys have been moved over as of this commit, this is just prep work

* jni_settings_keys.cpp.in: Removed redundant code

* Migrate (almost) all Android setting string keys over to SettingKeys

Also some slight cleanup

* Updated license headers

* Fixed top custom width erroneously being used in place of top custom height

* Migrate (probably) all setting string keys to Settings::QKeys

* Migrated several previously missed string keys to generated keys

* SettingKeys.kt: Visually seperate shared and Android-exclusive keys, similar to GenerateSettingKeys.cmake

* android: sdl2_config --> android_config

Not sure why these values are named this way. Hold-over from SDL2 frontend?

* android: Generate and validate default config.ini dynamically

* Settings: Assume C-style string keys by default

Relative to the previous commit, the following names have changed:
- Settings::Keys --> Settings::HKeys
- Settings::CKeys --> Settings::Keys

* default_ini.h: Fixed formatting warning

* Comment cleanup

* android: Fixed compilation failure due to incorrect namespace

* config.cpp: Use ASSERT_MSG instead of LOG_ERROR and ASSERT(false)
2026-03-02 23:26:43 +00:00
OpenSauce04 d721cbe29b cmake: Only add catch2 library if ENABLE_TESTS is enabled 2026-02-23 23:13:21 +00:00
Eric Warmenhoven d9b77cc21e
Implement libretro core (#1215)
* libretro core

* Bringing citra libretro implementation over
* libretro: hook up vulkan renderer
* libretro: github actions
* libretro: gyro
* libretro: core options v2
* libretro: on ios turn off shader jit if unavailable
* moltenvk 1.3.0 introduces 8-bit indexes but allocates 16-bit for metal; this ends up allocating stream buffer * 2 = 132MiB. Instead, just use 16-bit indexes. (This will be necessary for standalone when bumping moltenvk version.)

* libretro core: address review feedback

* libretro: microphone support

* cmake: Add ENABLE_ROOM_STANDALONE to list of incompatible libretro flags

* libretro: proper initial geometry

* libretro: fix software renderer

* libretro: address review feedback

* .github/libretro.yml: Pin macOS runners at macOS 26

* ci: Remove explicit selection of Xcode 16.0

* .github/libretro.yml: remove unnecessary windows builder apt commands

* .github/libretro.yml: bump min macos version to 11.0

* ci: Re-enable CI jobs for all libretro cores

This is under the condition that we don't introduce build cache for these builds

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
Co-authored-by: PabloMK7 <hackyglitch2@gmail.com>
2026-02-19 22:30:25 +00:00
OpenSauce04 7c4c77becf externals: Updated SDL to 2.32.10 2026-01-25 00:43:32 +00:00
PabloMK7 15e542778e
dynarmic: Update to latest version (#1569) 2026-01-10 12:02:14 +01:00
PabloMK7 7de2d7b846
video_core: Switch to xxHash and improve ShaderSetup behaviour (#1592) 2026-01-09 18:01:49 +01:00
OpenSauce e035bd3a21
android: Fix rename + move behaviour for Google Play build (#1545)
* android: Fix rename + move behaviour for Google Play build

* android_storage: Handle rename/move with same source and destination
2025-12-29 17:55:51 +00:00
PabloMK7 7a2f3fdda9 audio_core: Update teakra for new memory ownership 2025-12-22 11:51:22 +01:00
PabloMK7 9996a07e87
externals: Update to boost v1.89.0 (#1502) 2025-12-06 19:36:46 +01:00
Marcin Serwin 254ab96b63
cmake: Don't install zstd_seekable and use header from externals (#1305)
* Use zstd_seekable header from externals

Specifying the full path relies on the system installed header.

Signed-off-by: Marcin Serwin <marcin@serwin.dev>

* Don't install zstd_seekable

Signed-off-by: Marcin Serwin <marcin@serwin.dev>

---------

Signed-off-by: Marcin Serwin <marcin@serwin.dev>
2025-12-06 18:59:32 +01:00
OpenSauce04 80ba2058a9 externals: Updated fmt to 12.0.0
This fixes a build failure with Clang 21
2025-10-03 16:28:01 +01:00
OpenSauce04 eb1197a65c cmake: Remove SYSTEM from target_link_libraries 2025-09-16 16:05:38 +01:00
OpenSauce04 485db276e3 cmake: Corrected widespread incorrect usage of the SYSTEM property 2025-09-01 00:42:08 +01:00
OpenSauce04 1e9614fe4f cmake: Added SPIRV_HEADERS to LIB_VAR_LIST 2025-08-07 13:19:42 +01:00
OpenSauce04 a660d9c04a cmake: Always use bundled spirv-tools, regardless of USE_SYSTEM_GLSLANG 2025-08-06 16:14:48 +01:00
OpenSauce04 f02a25f15f cmake: Added USE_SYSTEM_SPIRV_HEADERS option 2025-08-06 16:14:12 +01:00
PabloMK7 8dafecd528 loader: Add compressed ROM (Z3DS) support 2025-07-27 17:13:32 +02:00
OpenSauce04 5937e0bf12 externals: Upgraded Vulkan dependencies to vulkan-sdk-1.4.313.0 2025-07-13 11:20:12 +01:00
OpenSauce04 9d4d6c5fdc externals: Update libyuv to latest commit
Fixes an Android build failure while using CMake >=4.0
2025-06-19 21:06:10 +00:00
OpenSauce04 9500859043 externals: Upgraded SDL2 to version 2.32.4
Closes #391
2025-04-03 11:30:27 +01:00
OpenSauce04 f298d7551c externals: Fixed CMake 4.0 compilation error when Discord RPC is enabled 2025-04-01 20:18:55 +01:00
Mae Dartmann 8cb3dde72f externals: Bump SDL2 to fix build with newer pipewire versions 2025-03-17 17:33:07 +00:00
OpenSauce04 eb3aa52391 externals: Updated externals to avoid CMake 4.0 deprecation errors 2025-03-17 17:13:05 +00:00
PabloMK7 dd9c743041 Add cmake option to enable microprofile 2025-03-10 11:41:05 +00:00
PabloMK7 43dbe42b29 Fix dynarmic on msys2 2025-03-08 22:29:48 +00:00
Reg Tiangha 00b4c11ecf externals/CMakeLists.txt: BUILD_TESTING=OFF 2025-03-03 19:31:44 +00:00
OpenSauce04 f68dd01a64 externals: Updated glslang, vulkan-headers and vma to latest version 2025-03-03 19:31:44 +00:00
OpenSauce04 03a81092fc externals: Updated xbyak to v7.23.1 2025-03-03 19:31:44 +00:00
OpenSauce04 cd76db881d externals: Initial submodule mass update
The following have not yet been updated due to issues:
- glslang
- teakra
- vma
- vulkan-headers
- xbyak

openal-soft has been updated, but only to 1.24.1 rather than the latest 1.24.2. This is due to an upstream issue which should be resolved in the next library update.
2025-03-03 19:31:44 +00:00
OpenSauce04 c1ca5d8776 Removed a couple of stray references to Lime3DS 2024-11-22 10:46:11 +00:00
OpenSauce04 1c5f7f5191 externals: Updated all submodule dependencies to latest release/commit
`cubeb` is a few commits behind latest because 877364f050 causes MSVC build failure
2024-11-19 16:35:51 +00:00
Reg Tiangha 37617cf31b Android: Support flexible page sizes in Android 15
Android 15 will allow OEMs to ship arm64-v8a devices with 16KiB page sizes. Devices that use this configuration will not be able to run existing apps that use native code. To be compatible with these devices, applications will need to rebuild all their native code to be 16KiB aligned, and rewrite any code which assumes a specific page size.

This commit sets `-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON` and updates `libadrenotools` to replace `PAGE_SIZE` with `getpagesize()` in order to dynamically determine a device's page size.
2024-11-10 19:01:21 +00:00
OpenSauce04 8ef2008b2a Use archive.org snapshots of remaining Citra links for now
Should be changed out for appropriate replacements when they are available

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2024-11-10 18:16:49 +00:00
Reg Tiangha c4c5c0fd49 externals: allow external SPIR-V Optimization 2024-11-10 18:16:49 +00:00
PabloMK7 2c349668f3 Update submodules and build environments (#232)
* Update Vulkan and QT submodules

* Undefine FORTIFY_SOURCE before defining again

* Update discord-rpc submodule
2024-11-07 14:47:28 +01:00
PabloMK7 9a6a2d879d Update dynarmic to the latest version. (#170) 2024-11-07 14:44:04 +01:00
kongfl888 K 8e1c0e3c13 Fix gcc 13+ compilation and update fmt. (#142)
* Soc and artic_bass: gcc 13+ compatibility fix.

* externals/fmt: update to HEAD fcd3e1e19.
It will fix error.
  integer_sequence<bool, (Is == Is)...>  [-Werror=tautological-compare]
The updating is helpful and needed.
Fmt has gone through two public versions since its last update
and has fixed many bugs, including new compiler optimizations.
But neither of these two public versions can fix the errors encountered above.
We need to switch to a working version.
It can be fixed after fmt/8e62172.There are still many optimizations,
Such as this one:
  Std. h c++23 build fix (# 3856)
And these:
  C++23 compatibility: basicstring_view cannot be constructed from nullptr (# 3846)
  Fix warning C4702 emitted from format.h (MSVC) (#3866)
Of course, there are other functional improvements as well.
Very helpful.
The selected version is the one that has been checked and works well.

And synchronously updating local code.

* citra_qt/ui: clean up duplicate naming warnings.
2024-11-07 14:44:03 +01:00
Reg Tiangha 6f3d11d1ad renderer_vulkan: Rewrite descriptor set management and various small fixes (#77)
* renderer_vulkan: Remove vulkan prefix in SetObjectName

* renderer_vulkan: Rename renderpass cache to render manager

* It is no longer just a cache

* renderer_vulkan: Rewrite descriptor management

* Switch to batched vkUpdateDescriptorSets from cached descriptor sets with templates

* vk_master_semaphore: Remove waitable atomic

* These are buggy on some platforms and regular condition_variables are faster most of the time

* vk_texture_runtime.cpp: remove outdated references

* vk_render_manager: Minor cleanups and rename to RenderManager

* It is no longer just a renderpass cache
* Revert variable name change from render_manager back to renderpass_cache

---------

Co-authored-by: GPUCode <geoster3d@gmail.com>
2024-11-07 14:43:54 +01:00
Castor215 749a721aa2
externals: disable system cpp-httplib if it is a shared object (#7446)
Co-authored-by: Castor216 <davidjamescastor215@proton.me>
2024-02-17 06:39:38 -08:00
Steveice10 19784355f9
build: Improve support for Windows cross-compilation. (#7389)
* build: Improve support for Windows cross-compilation.

* build: Move linuxdeploy download to bundle target execution time.
2024-02-05 10:09:50 -08:00
Steveice10 c978c074db
build: Update and re-enable cubeb on macOS. (#7405) 2024-02-01 15:29:14 -08:00
Steveice10 9f5d5c6ddd
externals: Remove broken android-ifaddrs. (#7410) 2024-02-01 06:39:13 -08:00
merry 63feac6bb3
externals: Update dynarmic to 6.6.1, Update oaknut to 2.0.1 (#7398) 2024-01-30 19:50:39 -08:00
Steveice10 82294425e3
build: Add flags to toggle specific renderer backends. (#7375) 2024-01-21 23:29:46 -08:00
Steveice10 2ce0a9e899
renderer_vulkan: Update to support MoltenVK 1.2.7 (#7335) 2024-01-09 11:33:47 -08:00