Commit Graph

448 Commits

Author SHA1 Message Date
collecting
a163d063ef fix: Discord Rich Presence Patch 2025-10-02 07:18:01 +00:00
collecting
ac902aa7c9 fix: boost_process optional component 2025-10-01 16:50:08 +00:00
Zephyron
9e6956a93f Fix Android build by conditionally excluding boost_process component
- Add Android check to only request boost context component on Android

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 11:53:04 +10:00
Zephyron
4e377dde5a feat: Implement Qt6 migration with aqtinstall 3.3.0
- Migrate from Qt5 to Qt6.7.3 using aqtinstall v3.3.0
- Add comprehensive Qt6 API compatibility updates
- Implement responsive UI with High DPI scaling support
- Add MSVC runtime library configuration for consistency
- Update touch/mouse event handling for Qt6 APIs
- Fix locale handling (countryToString → territoryToString)
- Update string size methods (count() → size())
- Remove deprecated Qt5 high DPI attributes
- Add new CopyCitronQt6Deps.cmake for Qt6 dependency management
- Update CMake configuration for Qt6-only approach
- Add aqt_config.ini with mirror configuration for reliable downloads

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-26 19:42:30 +10:00
Zephyron
e05296c798 fix: make updater functionality conditional with CITRON_USE_AUTO_UPDATER option
- Add CITRON_USE_AUTO_UPDATER CMake option (default: OFF)
- Move updater source files to conditional target_sources block
- Add _WIN32 definition for proper moc processing on Windows
- Fixes C2664 compilation error with UpdaterDialog::OnUpdateCompleted

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-23 15:36:39 +10:00
collecting
60be225750 Add "process" @ 301, "Network" @ 375, remove 309 2025-09-23 01:04:57 +00:00
Zephyron
3c70fd52bd fix: update Android build config and dependencies
Update NDK/CMake versions, switch default build variant, re-enable x86_64
support, add ConstraintLayout dependency, and enable LTCG optimization.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 16:09:04 +10:00
Zephyron
117c467ff3 feat: Add frame generation and enhance UE4 game compatibility
- Add frame generation settings (enabled/disabled, interpolation/extrapolation modes)
- Add frame skipping settings (enabled/disabled, adaptive/fixed modes)
- Implement frame skipping logic with adaptive and fixed modes
- Enhance UE4 crash handling with recovery mechanisms
- Add support for signed and float 32-bit image formats across shader backends
- Update Vulkan Validation Layers to v1.4.321.0
- Fix duplicate frame skipping options in Qt UI
- Improve memory handling for UE4 games (Hogwarts Legacy compatibility)
- Add enhanced bindless texture handling with fallback approach
- Update Android build configuration and dependencies

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-08-05 19:32:28 +10:00
Boss.sfc
fc480dcb69 fix: CachyOS LTO Compilation
Fix LTO linking issues on CachyOS with GCC 15.x

- Add LTO support to all core library targets (input_common, frontend_common,
  network, shader_recompiler, web_service) that were missing LTO configuration
- Create citron_configure_lto() helper function for consistent LTO handling
- Implement CachyOS-specific detection via /etc/os-release and kernel version
- Apply conservative LTO flags (-flto=auto -ffat-lto-objects) only for
  CachyOS + GCC 15+ to resolve linking errors with newer toolchains
- Other distributions continue using aggressive LTO settings for maximum performance
- Disable LTO on executable targets to prevent main function optimization issues

This resolves "undefined symbol" errors when building with -DCITRON_ENABLE_LTO=ON
on CachyOS while maintaining optimal LTO performance on other distributions.

Fixes linking errors including:
- Core::Frontend::EmuWindow symbols
- Core::System methods
- Settings::values
- Common logging functions

Tested on CachyOS with GCC 15.1.1 + LLD 20.1.8

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-07-22 21:37:37 +07:00
Zephyron
abf5f6730b audio_core: Add OpenAL audio backend support
- Add complete OpenAL sink implementation with robust error handling
- Support for device enumeration using ALC extensions
- Implement dummy streams for graceful degradation when OpenAL fails
- Add proper audio threading and buffer management
- Include comprehensive logging and diagnostic information
- Add stream limits and retry mechanisms for stability

Additional changes:
- Add ENABLE_OPENAL CMake option and OpenAL dependency management
- Include openal-soft in vcpkg dependencies
- Add OpenAL to audio engine settings enum

The OpenAL backend provides an alternative audio solution alongside
existing Cubeb and SDL2 backends, with enhanced device compatibility
and improved error recovery mechanisms.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-06-01 15:26:55 +10:00
Zephyron
110ffa1521 cmake(android): Optimize Vulkan Validation Layer handling
- Check if libVkLayer_khronos_validation.so exists before downloading
- Skip extraction if android-binaries directory already exists
- Reduces redundant downloads and extractions during CMake reconfiguration
- Maintains backward compatibility with existing build process

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-25 19:32:42 +10:00
Zephyron
7541a9a2d8 chore: update external tool dependencies and URLs
1. Update NASM from 2.16.01 to 2.16.03 and use the official nasm.us download URL
2. Update clang-format from version 15 to version 20
3. Change all repository URLs from yuzu-mirror GitHub to Citron's self-hosted Git server

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-15 17:05:19 +10:00
Zephyron
19abd659e1 fix: correct MSVC version conditional syntax in CMakeLists.txt
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 20:20:15 +10:00
Zephyron
e63387260c build: Widen MSVC version support for bundled Qt and SDL2
- Updated CMake to allow MSVC versions newer than 2022 (MSVC_VERSION >= 1940) to use the bundled Qt 5.15.2 (msvc2019_64) and SDL2 2.28.2 (x86_64).
2025-05-06 19:08:36 +10:00
Zephyron
48e823c0d3 build: Update external download URLs and copyright
- In `CMakeModules/DownloadExternals.cmake`:
    - The `package_base_url` for bundled externals is changed from `citron-emu` to `yuzu-mirror`.
- In `CMakeLists.txt`:
    - The `NASM_DOWNLOAD_URL` is updated to `yuzu-mirror`.
    - The download URL for the compatibility list is changed from `api.citron-emu.org` to `api.yuzu-citron-emu.org`.
    - The download URL for `clang-format` on Windows is updated to `yuzu-mirror`.
- Copyright years and project names are updated in both files.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:37:53 +10:00
Zephyron
b2d9cf4a01 chore: update project branding to CITRON
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:11:33 +10:00
Zephyron
bfb82e577c chore: update project branding to citron
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:06:48 +10:00
Alexandre Bouvier
c74b5f9ee6 cmake: use vulkan-headers config file 2024-02-02 04:38:56 +01:00
Alexandre Bouvier
73e7a259fd cmake: prefer system oaknut library 2024-01-30 02:57:50 +01:00
Mike Lothian
f854ffd015 Add Vulkan-Utility-Libraries dependency 2024-01-22 01:30:44 +00:00
Jan Beich
ecfba79d98 externals: update Vulkan-Headers to v1.3.274 2023-12-20 01:13:09 +01:00
Liam
7239547ead android: add oboe audio sink 2023-12-17 01:42:59 -05:00
Alexandre Bouvier
d2bb9e9729 cmake: prefer system gamemode library 2023-11-30 16:54:00 +01:00
liamwhite
57a391e71d Merge pull request #12074 from GPUCode/yuwu-on-the-metal
Implement Native Code Execution (NCE)
2023-11-30 09:20:55 -05:00
amazingfate
a76a8fb5fe qt: add cpu_backend configuration 2023-11-26 20:44:07 -05:00
Alexandre Bouvier
fe3702223f cmake: prefer system simpleini library 2023-11-26 03:45:10 +01:00
t895
da14c7b8e4 config: Unify config handling under frontend_common
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.

As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
2023-11-21 01:58:13 -05:00
liamwhite
eec3d356b6 Merge pull request #11689 from liamwhite/breakpad
qt: implement automatic crash dump support
2023-10-29 23:41:13 -04:00
Alexandre Bouvier
79ba5d9c26 cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
Nguyen Marc
b1a7bbd458 qt: add network components when using discord 2023-10-14 01:01:02 +02:00
Charles Lombardo
3aa6d4d8ce android: Allow ANDROID_STL 2023-10-13 12:55:41 -04:00
Charles Lombardo
2c3281c66b externals: Update LLVM to 17.0.2
Matches android ndk
2023-10-13 12:55:41 -04:00
Charles Lombardo
1591923f91 android: Update ndk to 26.1.10909125
The new ndk uses LLVM 17.0.2 so we can remove the LLVM download and libc++ options for the android builds
2023-10-13 12:55:41 -04:00
Liam
d3997bad9b qt: implement automatic crash dump support 2023-10-08 11:35:53 -04:00
Alexandre Bouvier
f93f31f4ae cmake: prefer system renderdoc header 2023-09-18 18:35:20 +02:00
liamwhite
ce5320c49f Merge pull request #11447 from xcfrg/portable-compile-out
common: add a compile time option to allow disabling portable mode
2023-09-12 09:17:50 -04:00
GPUCode
254b2bd9df cmake: Add option to fetch validation layer binary on android 2023-09-08 23:13:52 +03:00
xcfrg
a02d641042 add a compile time option to allow disabling portable mode 2023-09-06 18:53:39 -04:00
german77
4077ff6851 externals: Update SDL to 2.28.2 2023-08-27 21:08:28 -06:00
Feng Chen
87022a4833 Add macos moltenvk bundle, Add copy moltevk dylib script 2023-08-22 10:22:28 +08:00
lat9nq
43920aa1a0 cmake: Download nasm from our external repo
This package download has intermittent failures due to host Internet
issues (presumably), so download it ourselves from our own hosting.
2023-07-25 15:47:44 -04:00
lat9nq
c1e57ad358 CMake: Require LLVM 17 or later
API changes necessitate an update here.
2023-07-18 22:39:13 -04:00
liamwhite
5593bed08a Merge pull request #10934 from abouvier/cmake-vma
cmake: allow using system VMA library
2023-07-17 10:42:41 -04:00
liamwhite
2461c78e3f Merge pull request #10912 from comex/ssl
Implement SSL service
2023-07-16 16:56:47 -04:00
Alexandre Bouvier
c3050c1b48 cmake: allow using system VMA library 2023-07-12 04:51:45 +02:00
Morph
e3937fe8ad general: Update VulkanSDK and Vulkan-Headers
Latest as of this commit
2023-07-07 02:04:13 -04:00
ChaseKnowlden
0792139a5f externals: Update sdl2 to 2.28.1 2023-07-04 16:10:49 -04:00
comex
0e191c2711 Updates:
- Address PR feedback.
- Add SecureTransport backend for macOS.
2023-07-01 17:27:35 -07:00
comex
98685d48e3 Merge remote-tracking branch 'origin/master' into ssl 2023-07-01 15:01:11 -07:00
comex
8b9c077826 Disable OpenSSL on Android.
Apparently Android uses BoringSSL, but doesn't actually expose headers
for it in the NDK.
2023-06-25 17:36:51 -07:00