Commit Graph

27866 Commits

Author SHA1 Message Date
Zephyron
855a38ee97 video_core: Add ETC2 texture compression format support
Adds comprehensive support for ETC2 compressed texture formats (ETC2_RGB,
ETC2_RGBA, ETC2_RGB_PTA) in both UNORM and SRGB variants. This addresses
rendering issues in games like Hogwarts Legacy that use these formats.

Changes:
- Add ETC2 texture format enums (TextureFormat::ETC2_RGB_SRGB,
  ETC2_RGBA_SRGB) and component types (SNORM_FORCE_FP16, UNORM_FORCE_FP16)
- Implement format lookup mappings for all ETC2 variants in
  format_lookup_table.cpp
- Add PixelFormat enum values and block size tables for ETC2 formats
- Integrate ETC2 support into Vulkan backend with proper VkFormat mappings
- Add IsOptimalEtc2Supported() device capability check
- Update texture cache to handle ETC2 format conversion when needed
- Add ETC2 format cases to PixelFormat formatter for logging
- Improve shader environment texture handle validation with graceful
  fallback for invalid handles

Fixes assertion failures for texture formats 90 and 99, enabling proper
rendering of ETC2 compressed textures using native Vulkan support.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-28 11:57:18 +10:00
Collecting
2028150ebf fix: Strict Clang Rule
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-26 22:47:40 +00:00
Collecting
8506c7c394 fix: Strict Clang Rule
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-26 22:46:50 +00:00
Collecting
499a82d3fd fix: Strict Clang Rule
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-26 22:45:59 +00:00
Collecting
273e9b18e7 fix: Clang PGO Linux Filepath Naming
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-26 18:29:48 +00:00
Zephyron
01c0420481 chore(version): bump to 0.12.25
Signed-off-by: Zephyron <zephyron@citron-emu.org>
0.12.25
2025-12-26 17:03:11 +10:00
Zephyron
cc60303b11 feat(core): Update HOS and NintendoSDK version constants
- Bumps HOS version from 20.1.5 to 21.0.0
- Updates the corresponding `VERSION_HASH`, `DISPLAY_VERSION`, and
  `DISPLAY_TITLE` strings.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 17:02:15 +10:00
Zephyron
ba7141c8ee Merge pull request 'fix/network-zstd-packet-handling' (#77) from fix/network-zstd-packet-handling into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/77
2025-12-26 06:55:01 +00:00
Zephyron
aad942cf25 fix(network): revert to legacy packet format for emulator compatibility
Remove the 'reliable' boolean field from LDNPacket and ProxyPacket
structs and all associated serialization/deserialization logic.
All packets now use reliable delivery by default via ENet layer,
matching the legacy format for full backward compatibility.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:54:31 +10:00
Zephyron
14c97aebb7 fix(ldn): improve packet validation and debug logging
- Add size validation before memcpy for Connect/Disconnect packets
- Allow empty data for Scan packets (Type 0) which have no payload
- Add debug logging for ScanResp packets including BSSID and results
- Fix MacAddress indexing to use .raw[] instead of [] operator

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:53:26 +10:00
Zephyron
499b3c1a59 fix(fatal): handle unknown error module 359 gracefully
Handle error 2359-2618 (module 359, description 2618) gracefully
by logging a warning instead of crashing, similar to module 56.
This allows games like SSBU to continue execution when encountering
this error code.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:52:33 +10:00
Zephyron
38d4152021 fix(network): improve ZSTD compression/decompression error handling
- Add error checking after decompression to drop corrupted packets
- Add error checking after compression to prevent sending empty packets
- Allow ZSTD_CONTENTSIZE_UNKNOWN and use streaming decompression
- Only reject ZSTD_CONTENTSIZE_ERROR as a fatal error

Fixes network connectivity issues where corrupted/empty packets were
being processed, breaking the network protocol.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:51:33 +10:00
Zephyron
ab4d2a7f32 Merge pull request 'feat(ui): RGB Mode' (#75) from feat/rgb-mode into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/75
2025-12-23 21:25:55 +00:00
Collecting
9bb2cf9c30 feat(ui): RGB Mode
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 19:38:46 +00:00
Collecting
36c915f2b7 feat(ui): RGB Mode
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 19:38:17 +00:00
Collecting
8aa2783c2f feat(ui): RGB Mode
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 19:37:39 +00:00
Collecting
55adf62c86 feat(ui): RGB Mode
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 19:37:13 +00:00
Collecting
64dbf5ad67 feat(ui): RGB Mode
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 19:36:32 +00:00
Collecting
2e0ab11551 edit: rainbow_style.cpp
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 19:35:19 +00:00
Zephyron
78f1b94743 Merge pull request 'fix(UI): Overhaul Rainbow Mode architecture' (#74) from fix/rainbow-mode into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/74
2025-12-23 03:20:48 +00:00
Collecting
8bc5173d72 remove: Accidental Re-additions
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:37:13 +00:00
Collecting
47d92204f0 fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:15:47 +00:00
Collecting
15ac1f1a91 fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:15:24 +00:00
Collecting
9cc226431b fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:14:53 +00:00
Collecting
3992ca0811 fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:14:27 +00:00
Collecting
5a1b0fc862 fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:13:54 +00:00
Collecting
21233f9312 fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:13:23 +00:00
Collecting
d49c6fff2d add: rainbow_style.cpp
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:12:31 +00:00
Collecting
825edf6ea4 add: rainbow_style.h
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:12:02 +00:00
Collecting
f156856d7e fix(UI): Overhaul Rainbow Mode architecture
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-23 01:10:59 +00:00
Zephyron
5d055cea07 Merge pull request 'fs(feat): Add Backup Saves for Custom Save Paths' (#73) from fs/custom-save-path-backup into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/73
2025-12-22 08:43:48 +00:00
Collecting
3dee7e3015 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:40:51 +00:00
Collecting
9407a5ba94 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:40:29 +00:00
Collecting
625e1d3229 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:39:59 +00:00
Collecting
42c237dc4a fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:39:20 +00:00
Collecting
7ad7d8ada6 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:38:42 +00:00
Collecting
16f928df79 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:37:57 +00:00
Collecting
67bf3b53b7 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:37:21 +00:00
Collecting
ddddb28c54 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:36:49 +00:00
Collecting
f4d712d497 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:35:57 +00:00
Collecting
ac354a6d28 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:34:53 +00:00
Collecting
d21d5cd0e0 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:34:26 +00:00
Collecting
693cb6dea0 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:33:58 +00:00
Collecting
cd3c5e1d88 fs(feat): Add Backup Saves for Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-22 08:32:57 +00:00
Zephyron
a672e86f8c Merge pull request 'fs: Fix directory scanning crashes and optimize library performance & Include a Progress Bar' (#72) from fs/linux-ntfs-fix into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/72
2025-12-21 02:57:33 +00:00
Collecting
2f16de1560 fix: NAND & SDMC scanning
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 02:50:43 +00:00
Collecting
e1a879489b feat: Add Accent Color to Gamelist Progress Bar
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 01:21:01 +00:00
Collecting
ac5cb98c82 feat: Add Accent Color for Game List Progress Bar
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 01:20:15 +00:00
Collecting
e6872aadb5 fix: Optimize JSON
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 01:10:15 +00:00
Collecting
fea9455ee7 fix: Show Gamelist Repopulation when Entering Main Citron Menu
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 00:38:09 +00:00