Commit Graph

28726 Commits

Author SHA1 Message Date
Roman Vasilyev 563db3be9e Ignore device crash reports and vendored MoltenVK SDK drops. 2026-06-27 04:02:36 +00:00
cheezwiz7899 44fedcc470 Merge pull request #230 from cheezwiz7899/windows-debug-fix
fix: make windows RelWithDebInfo builds emit pdb files properly
2026-06-26 17:00:06 +10:00
cheezwiz7899 98a6fa15ca fix: make windows RelWithDebInfo builds emit pdb files properly 2026-06-26 10:27:14 +10:00
cheezwiz7899 540272b7e9 Merge pull request #228 from cheezwiz7899/revert-pr-207
Revert "fix: remove redundant TLS ld/st" (#207)
2026-06-25 12:28:53 +10:00
cheezwiz7899 44c1547442 Revert "fix: remove redundant TLS ld/st" (#207)
Reverts citron-neo/emulator#207

This reverts commits dbb03a02d, fe071c232, e74eaf1a0, and ff5d14a69.
2026-06-25 12:05:11 +10:00
lizzie ff5d14a69a st 2026-06-24 05:47:05 +00:00
lizzie e74eaf1a0b static ctor are static
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2026-06-24 05:47:05 +00:00
lizzie fe071c232f fuck
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2026-06-24 05:47:05 +00:00
lizzie dbb03a02da fix: remove redundant TLS ld/st 2026-06-24 05:47:05 +00:00
cheezwiz7899 02b55d9901 common: fix fmt 11 API breakage
fmt 11 split fmt/core.h and fmt/format.h more strictly. fmt::format,
fmt::print, and related output functions are no longer available through
fmt/core.h and require an explicit fmt/format.h include. Additionally,
the implicit conversion operator from fmt::format_string<Args...> to
fmt::string_view was deprecated, causing -Werror builds to fail.

- Replace #include <fmt/core.h> with <fmt/format.h> in:
  - src/common/settings_setting.h
  - src/common/settings.cpp
  - src/common/time_zone.cpp
  - src/citron/startup_checks.cpp
  - src/citron/configuration/shared_widget.cpp
- Use format.get() in FmtLogMessage to avoid the deprecated implicit
  string_view conversion (src/common/logging.h)
2026-06-24 05:46:14 +00:00
cheezwiz7899 01c26c4304 oops. put dependencies.cmake back where it's supposed to go. 2026-06-24 05:46:14 +00:00
cheezwiz7899 757ee321b1 build: fix Xbyak ODR violation and update related dependencies
- Fix a layout/ODR violation in Xbyak::CodeGenerator/LabelManager:
  In src/video_core/macro.cpp, replace the direct inclusion of
  <xbyak/xbyak.h> with "common/x64/xbyak_abi.h". This ensures the custom
  container macros (XBYAK_STD_UNORDERED_*) are defined before the Xbyak
  headers are parsed, preventing different translation units from
  instantiating mismatched template offsets (which led to vmovaps crashes).

- Update dynarmic submodule to c08207dd (latest master which updates
  its own external dependencies).

- Update matching dependency pins in dependencies.cmake and their
  corresponding submodules in externals/ to maintain ABI compatibility:
  - fmt: update to e8244777ee1c32df8233c215ac9ff626b2dd2c38
  - Catch2: update to 675f9eaeb191c51b9d2ffb2bb198009533895051
  - oaknut: update to 94c726ce0338b054eb8cb5ea91de8fe6c19f4392
  - xbyak: update to c506ecd5134122115a981fdd45c2a756f9ce20ac
2026-06-24 05:46:14 +00:00
cheezwiz7899 b44dad9a68 dynarmic: update to dynarmic commit bee46cb, fix aarch64 build... maybe 2026-06-24 05:46:14 +00:00
cheezwiz7899 351ec4410c dynarmic: bump to b484973 with x64/xbyak compatibility fixes
Update dynarmic to b484973 (ExclusiveMonitor refactor + FP/vector fixes)
and adjust x64/xbyak ABI/util headers for API compatibility.
2026-06-24 05:46:14 +00:00
Roman Vasilyev f87ee3cb9c Declare HaltTransitions and route Clear() through it.
The cpp implementation was cherry-picked without the header declaration,
and Clear() duplicated timer stop logic instead of using HaltTransitions().
2026-06-23 16:35:46 +00:00
Roman Vasilyev a27d915f21 Halt loading screen animations safely during teardown.
Call HaltTransitions from OnLoadComplete before starting fade-out and block
fade-out signals during stop so finished does not touch widgets mid-teardown.
2026-06-23 16:35:46 +00:00
Roman Vasilyev fed4f41734 Keep mirrored() in the Qt5 camera capture path.
The Qt5-only preprocessor block must not call flipped(), which is Qt 6.9+ only.
2026-06-23 16:34:28 +00:00
Roman Vasilyev f65c960e7e Fix Qt 6 deprecation warnings in citron UI code.
Use QImage::flipped and QVariant::typeId with QMetaType::QPixmap instead of
the removed mirrored/type APIs.
2026-06-23 16:34:28 +00:00
cheezwiz7899 7eac81ab4b Merge pull request #220 from cheezwiz7899/Crypto-upgrades
crypto: remove mbedtls, unify AES on OpenSSL + intrinsics
breaks android builds
2026-06-13 09:51:02 +10:00
cheezwiz7899 02b65bbde6 fix: keep non-x86 platforms out of the fast crypto cookie jar 2026-06-12 12:37:21 +10:00
cheezwiz7899 c3eb58143e Merge pull request #221 from cheezwiz7899/build-fixes 2026-06-11 22:12:34 +10:00
cheezwiz7899 3e00af78d8 fix: make sure any non-x86 platforms use OpenSSL instead of the fast intrinsics 2026-06-11 14:29:06 +10:00
cheezwiz7899 c2473a7a24 fix(windows): harden FFmpeg rebuild pipeline and fix Qt DLL deployment
- Add download_with_retry() helper with exponential back-off (5s→10s→20s)
  replacing bare wget calls throughout the script
- Convert three silent return-0 failure paths in rebuild_ffmpeg_pthread_free
  (download failure, extraction failure, zero libs installed) to hard errors;
  previously these allowed cmake to be invoked with a -DCITRON_FFMPEG_STATIC_DIR
  pointing to a directory that was never created, producing a fatal but
  misleading CMake error about a missing RELEASE file
- Gate -DCITRON_FFMPEG_STATIC_DIR in build_common_cmake_args on the
  .llvm_static_built sentinel rather than FFMPEG_VERSION being set
- Add .ffmpeg_src_ready sentinel written after clean extraction; Priority 1
  source cache reuse now requires this sentinel so partial extractions are
  detected and wiped rather than silently reused
- Verify tarball integrity with tar -tjf before extraction
- Tighten MSYS2 path filter in CopyMinGWDeps.cmake from ([/\])msys64([/\])
  to require a known system subdirectory (usr|clang64|ucrt64|mingw64|mingw32)
  after msys64; previously the broad match silently excluded all Qt DLLs when
  CPM_SOURCE_CACHE resided under the default MSYS2 home directory
- Replace sequential git ls-remote loop (up to 11 round-trips) for BOLT tag
  discovery with a single call filtered by sort -V
- Replace grep -oP lookbehind patterns for stage sentinel reads with awk -F=
  for portability across MSYS2 grep variants
2026-06-11 12:45:01 +10:00
cheezwiz7899 895aeba35d fix: one missed mbedtls to OpenSSL instance. What a tiny detail! :-| 2026-06-11 09:41:03 +10:00
cheezwiz7899 7acd3dd394 crypto: remove mbedtls, unify AES on OpenSSL + intrinsics
Replace mbedtls entirely with OpenSSL as the single crypto dependency.
All AES-128/256 operations now dispatch through aes_ni.h at runtime:
VAES-512 → VAES-256 → SSE4 → OpenSSL EVP fallback, selected by CPUID
at first call with no global ISA flags required.

The OpenSSL fallback path in Ctr128 fires only on hardware without
AES-NI; on any x86-64 built after 2011 the intrinsic paths are taken
exclusively. All paths produce byte-identical output, verified against
NIST SP 800-38A (CTR) and SP 800-38B (CMAC) test vectors.

Changes:
- aes_ni.h: new four-tier CTR dispatch with CPUID detection via <cpuid.h>;
  VAES-512/256 paths for Zen 4 / Sapphire Rapids (~19 GB/s) and
  Zen 3+ / Tiger Lake+ (~15 GB/s)
- aes_util.cpp: CipherContext stores raw_key[16] for the OpenSSL fallback
- key_manager.cpp: CMAC → intrinsics, SHA-256 → EVP_Digest, bignum → BN_*
- amiibo_crypto.cpp/h: AES-CTR → intrinsics, HMAC → EVP_MAC
- xts_archive.cpp, registered_cache.cpp, nca.cpp, ro.cpp,
  delivery_cache_directory_service.cpp: SHA-256/MD5 → EVP_Digest
- citron_room.cpp: base64 → EVP_EncodeBlock/EVP_DecodeBlock
- verify_user_jwt.cpp: RS256 verification → EVP_DigestVerify*
- web_service CMakeLists: drop cpp-jwt, link OpenSSL::Crypto
- dependencies.cmake: remove mbedtls and cpp-jwt CPM blocks
- externals CMakeLists: remove add_subdirectory(mbedtls)
- openssl_build.cmake: require NASM; remove no-asm
2026-06-11 05:37:48 +10:00