-
Citron Release 0.10.0 Pre-release
released this
2025-11-02 04:26:39 +00:00 | 47 commits to main since this releaseCitron Emulator v0.10.0 Changelog
This release focuses on mobile enhancements, input improvements, and critical bug fixes while expanding game compatibility and platform stability.
Acknowledgments & Credits
Cross-Emulator Collaboration
- TSRBerry (Ryujinx Developer): Initial Implementation for Skyline dependent mod support
- JPikachu (Eden Developer): CTGP-DX compatibility implementation - mip level clamping support that enables the No. 1 Mario Kart 8 DX mod to run perfectly
- Maufeat (Eden Developer): CTGP-DX compatibility
Testing & Quality Assurance
- The Citron Discord Community: Continued invaluable testing, feedback, and support
The Citron Team
- A massive thank you to all Citron contributors who made this release possible through development, testing, and refinement!
A Note on Attribution
We continue our commitment to transparent development and proper attribution. This release includes contributions adapted from the Eden emulator project, properly credited above. We believe the entire emulation ecosystem thrives when teams collaborate and acknowledge each other's work.
Major Features
Network & Multiplayer Services
Enhanced online functionality based on official SwitchBrew documentation:
- Complete Account service implementation - Proper user account handling
- LDN (Local Network) services - Local multiplayer support for compatible games
- Newer firmware stubs - Better compatibility with latest games
- Improved network stability - More reliable online connections
Windows Auto-Updater Overhaul
Completely redesigned update system for Windows:
- Fixed file locking issues - Updates no longer fail due to locked files
- Deferred update helper - Updates apply after Citron closes
- TLS support - Secure update downloads
- Enhanced logging - Better diagnostics for troubleshooting
- Qt6 TLS plugin integration - Proper HTTPS support
Major Improvements
Game Compatibility
CTGP-DX Support (Thanks to JPikachu/Maufeat from Eden & TSRBerry from Ryujinx)
- CTGP-DX mod now runs! - Added mip level clamping support
- Popular Mario Kart 8 DX custom track pack is fully playable
- Proper texture handling for modded content
Skyline Compatibility
- 32-bit code offset support - Enables Skyline-compatible homebrew and mods
- Improved homebrew ecosystem compatibility
- Better support for community-developed content
User Interface
Theme System Overhaul
- System theme integration - Automatically respects Windows/Linux light/dark theme
- In-app theme choice - Override system theme if desired
- Configuration dialog theming - All dialogs now properly adapt to selected theme
- Properties window fixes - Corrected display issues in light and dark modes
- Consistent experience across all UI elements
Input & Controls
Hotkey System Improvements
- Fixed hotkey persistence - Your hotkey configurations now save correctly
- Controller overlay toggle hotkey - Added dedicated hotkey for overlay
- Memory leak fixes - Resolved crashes related to hotkey handling
Bug Fixes
Critical Fixes
- std::bad_alloc crash: Fixed memory allocation error causing crashes with controller overlay
- Windows updater file locking: Completely resolved update failures on Windows
- Hotkey saving bug: Settings now persist correctly between sessions
- Properties window display: Fixed rendering issues in various themes
Platform-Specific Fixes
Windows
- Auto-updater file locking completely resolved
- Qt6 TLS plugin properly integrated for secure downloads
Android
- Storage configuration and migration working flawlessly
- Better support for diverse GPU hardware
UI Fixes
- Configuration dialogs now respect both system and in-app themes
- Properties window displays correctly in all theme modes
- Improved dialog consistency across platforms
Build System Fixes
- FFmpeg issues resolved - Proper compilation on all platforms
- title_ids.h fixes - Corrected compilation errors
- CMake improvements - Better external binary handling
- DownloadExternals - Platform-specific branch selection (Android ABI)
Technical Details
Architecture Changes
Code Organization
- TitleID utility class - Refactored game title ID handling into dedicated utility
- main.cpp refactoring - Improved maintainability and structure
- Cleaner codebase - Better separation of concerns
Build System Improvements
- External binaries as submodules - Better version control (implemented, tested, reverted for alternative approach)
- Qt6 TLS plugin copying - Added to CopyCitronQt6Deps function
- Platform-specific downloads - Android ABI-specific binary selection
- CMake modernization - Improved build configuration
New Files Added
src/citron/updater/ ├── Enhanced updater_service.cpp with deferred updates └── Improved error handling and logging Android storage configuration implementation Controller overlay system files Theme adaptation logic Hotkey persistence fixes
Known Issues
- Controller overlay is optimized but may need refinement for edge cases
- Some Android devices with very old GPU drivers may still experience compatibility issues
- Auto-updater on Linux/macOS remains basic (Windows significantly improved)
Game Compatibility Highlights
Now Playable
- CTGP-DX - Custom track pack for Mario Kart 8 DX now fully functional
Improved Compatibility
- Better support for Skyline-compatible homebrew
- Games requiring newer firmware network services
- Titles using 32-bit code offsets
Community Notes
This release demonstrates continued cross-emulator collaboration. We're proud to acknowledge JPikachu's work from Eden that enabled CTGP-DX compatibility based on TSRBerry's work from Ryujinx.
Citron remains committed to:
- Proper attribution for all contributions, regardless of source
- Community collaboration over territorial behavior
- Professional development practices
- Stability and accuracy as our core values
We're the emulator that does things the right way, every time.
Statistics
- Commits: 70+ commits since v0.9.0
- Files Changed: 100+ files modified/added
- Bug Fixes: 20+ critical and minor fixes
- New Features: 4 major user-facing features
- Platform Support: Desktop (Windows/Linux/macOS) and Android
- Cross-Project Credits: 1 (Eden - JPikachu)
Building Citron
For build instructions with optional PGO (Profile-Guided Optimization), see our documentation.
PGO can provide 10-30% performance improvements based on your usage patterns!
Full Changelog: v0.9.0...v0.10.0
Download: Latest Release
Enjoy better mobile support, controller overlay, and game compatibility!
Special thanks to JPikachu/Maufeat from Eden & TSRBerry from Ryujinx, our community, testers, and all contributors who continue to help Citron
Downloads
-
Source code (ZIP)
1,147 downloads
-
Source code (TAR.GZ)
267 downloads
-
Citron-windows-0.10.0.zip
101,715 downloads ·
2025-11-02 04:26:35 +00:00 · 31 MiB -
Citron-windows-PGO-0.10.0.zip
4,944 downloads ·
2025-11-04 09:00:57 +00:00 · 22 MiB -
app-mainline-release.apk
113,927 downloads ·
2025-11-02 04:12:11 +00:00 · 24 MiB -
citron-0.10.0-linux-x86_64.AppImage
11,550 downloads ·
2025-11-02 04:12:39 +00:00 · 153 MiB -
citron_0.10.0-linux-x86_64_v3.AppImage
5,445 downloads ·
2025-11-02 04:12:38 +00:00 · 153 MiB
-
Citron Release 0.9.0 Pre-release
released this
2025-10-28 09:22:04 +00:00 | 122 commits to main since this releaseCitron Emulator v0.9.0 Changelog
This release brings substantial improvements to stability, accuracy, and user experience while maintaining our commitment to excellence and community collaboration.
Acknowledgments & Credits
Research & Development
- LotP (Ryubing/Ryujinx): HID implementation, SDK20 support, and REV15 audio architecture - the reverse engineering genius behind these breakthroughs
- GreemDev (Ryubing/Ryujinx): Continued development and maintenance work on Ryubing & GLI ;) <3
- MaxLastBreath: Extensive testing, invaluable insights, and creator of NX Optimizer - the best performance mods for BotW, TotK, and more
- The Way Of The Wind Discord Community: For their ongoing support, testing, and feedback
- The Citron Discord Community
Testing & Quality Assurance
- Dr.Stug: Thorough testing, detailed logging, and hardware compatibility reports
- Tetsuya Takahashi: Extensive testing across multiple titles and configurations
- Hayate Yoshida: Dedicated testing and quality assurance
- Gamerz: Dedicated testing
The Citron Team
- Collecting: Experienced developer bringing valuable expertise, UI improvements, Linux maintenance, and new features to Citron
- A massive thank you to all Citron contributors who made this release possible through countless hours of development, testing, and refinement!
A Note on Attribution
We believe in giving credit where credit is due. All major features in this release were developed by the Citron team or adapted from properly credited sources like LotP's groundbreaking research. We take pride in transparent development and always acknowledge our sources - because that's what ethical developers do.
Major Features
Firmware 20.x Support
Citron now supports the latest Nintendo Switch firmware:
- ✅ Firmware 20.x fully operational - Complete compatibility with the newest system software
- ✅ Improved applet handling - Better system applet support
- ✅ Enhanced system services - Proper services implementation
- ✅ Backward compatibility maintained - All previous firmware versions remain supported
Advanced Autoloader System (W.I.P.)
Introducing our intelligent content loading system:
- Automatic mod detection and loading from multiple locations
- Layer-based priority system for mod conflicts
- romfslite support for Atmosphere 1.9.5 compatibility
- Seamless integration with existing mod workflows
- Per-game configuration support
- Status: Work in Progress - expect refinements in upcoming releases
XCI Trimmer
Optimize your game storage with our new XCI trimming tool:
- Remove padding and unused space from XCI dumps
- Reduce file sizes significantly without data loss
- Integrated UI for easy operation
- Batch processing support
- Safe and reversible - original data integrity preserved
Multiplayer Room Overlay
Enhanced multiplayer experience with visual feedback:
- Real-time room status display overlay
- Connection quality indicators
- Player count and room information
- Non-intrusive design that doesn't interfere with gameplay
- Auto-generate multiplayer tokens for easier setup
Auto-Updater System
Stay current effortlessly:
- Automatic update detection on launch
- One-click updating with progress tracking
- Release notes display before updating
- Rollback support if needed
- Available on Desktop and Android
ZIP Firmware Installation
Simplified firmware installation process:
- Install firmware directly from ZIP archives
- No manual extraction required
- Validation and verification built-in
- Progress tracking during installation
Major Improvements
Filesystem & Save Data
Enhanced NCA Handling
- Missing encryption type support added
- Improved patch handling for game updates
- Better decryption performance - Significantly faster game startup, especially with mods
Graphics & Rendering
Vulkan Rendering Enhancements
- Fixed flickering objects and texture corruption - Major stability improvement (Conditional Renderer)
- Extended Dynamic State user setting for better performance
- Conditional rendering control setting for compatibility
- Improved memory allocation - Better R/W speed
Shader Compiler Improvements
- Alpha-to-coverage fragment output interface fixed
- Missing texture types for SURED instruction added
- Additional missing instructions implemented across multiple commits
- Better error handling and validation
Multiplayer & Networking
- Auto-generate multiplayer tokens - No more manual token creation
- Multiplayer room overlay - Visual feedback for online play
- BSD socket fixes - Resolved assertion failures in PollImpl
- Improved connection stability
System Services & Applets
Library Applet Support
- ILibraryAppletCreator commands implemented
- ILibraryAppletAccessor commands implemented
- Better applet transitions and state management
Memory Management
- 12 GiB heap support - For games that need massive memory allocation
- Race condition fixes - Prevented race condition on unmapped memory reads
- Improved memory mapping performance
HID & Controller Support
- NpadCondition in shared memory - Fixes no-controller crash in newer games
- Better controller detection - Resolves crashes from improper detection
- Improved HID state handling for SDK20+ games
Android Improvements
- Vulkan Validation Layers updated to 1.4.328.1
- Fixed Zep Zone settings crash
User Interface
- Resizable windows with memory - Window size and position now remembered correctly
- Fixed non-fullscreen window handling
- Improved About dialog with updated information
- Wiki URLs replaced with Discord support links for better community assistance
- Removed first-time telemetry popup - Cleaner initial experience
Bug Fixes
Critical Fixes
- TotK crash prevention: Implemented DeleteCacheStorage stub
- No-controller crash: Added NpadCondition to shared memory
- Unmapped memory race condition: Prevented potential crashes (later reverted for alternative solution)
- Android RAM overlay: Resolved instant crash when enabled
Game-Specific Fixes
- Final Fantasy Tactics (010038B015560000): Disabled multi-core to prevent crashes
- Various shader-related fixes for improved compatibility
Build System & Compilation
- Android NDK compilation: Explicit float casts added
- Qt6 migration: CI now uses system Qt6 packages
- Python pip: Added to CI for Qt downloads
- GitLab CI: Configuration cleanup
- AppImage: Multiple fixes for proper building
Code Quality
- ENUM macros converted to explicit enum class definitions for type safety (Thanks To MaxLastBreath)
- Resolution ENUM fix: Changed default indexing to fix 1x resolution defaulting to 0.75x, ensuring NX Optimizer compatibility (Thanks To MaxLastBreath)
- Copyright headers: Proper SPDX license identifiers added
- Code refactoring: Improved maintainability across the codebase
Technical Details
Architecture Changes
Type Safety Improvements
- Converted legacy ENUM macros to modern C++ enum classes
- Better compile-time type checking
- Improved code clarity and maintenance
Performance Optimizations
- Improved game decryption - Significantly faster
- Better memory mapping on Linux and Android
- Discord RPC optimization - More efficient game image loading
New Files Added
src/citron/updater/ ├── updater_dialog.h ├── updater_dialog.cpp ├── updater_service.h └── updater_service.cpp src/citron/multiplayer_room_overlay.h src/citron/multiplayer_room_overlay.cpp Multiple filesystem accuracy improvements across core/ Multiple autoloader implementation files (W.I.P.)
Known Issues
- Autoloader is marked as Work in Progress - expect refinements
- Amiibo support on Android is experimental
- FSR2 and TAA remain experimental (carried over from previous releases)
- Some firmware 20.x Home Menu features may have minor glitches
Community Notes
We believe in building a positive, collaborative community. While we've taken different architectural approaches in many areas, we acknowledge that the entire emulation ecosystem benefits when teams share knowledge and give credit where it's due.
This release demonstrates Citron's commitment to:
- Accuracy and stability above all else
- Professional development practices
- Giving credit to all contributors, even when they don't reciprocate
- Community collaboration over competition
We're the emulator that does things the right way, every time.
Statistics
- Commits: 100+ commits since v0.8.0
- Files Changed: 150+ files modified/added
- Bug Fixes: 30+ critical and minor fixes
- New Features: 8 major user-facing features
- Platform Support: Desktop (Windows/Linux/macOS) and Android
Building Citron
For build instructions with optional PGO (Profile-Guided Optimization), see our documentation.
PGO can provide 10-30% performance improvements based on your usage patterns!
Full Changelog: v0.8.0...v0.9.0
Download: Latest Release
Enjoy enhanced stability, new features, and firmware 20.x support!
Special thanks to our community, testers, and all contributors who continue to make Citron the most accurate and stable emulator available!
Downloads
-
Source code (ZIP)
630 downloads
-
Source code (TAR.GZ)
163 downloads
-
Citron-windows-0.9.0 [PGO].zip
3,186 downloads ·
2025-10-29 12:03:37 +00:00 · 24 MiB -
Citron-windows-0.9.0.zip
61,848 downloads ·
2025-10-29 08:35:19 +00:00 · 32 MiB -
app-mainline-release.apk
68,676 downloads ·
2025-10-29 08:35:17 +00:00 · 24 MiB -
citron_0.9.0-linux-x86_64.AppImage
1,177 downloads ·
2025-10-30 08:01:00 +00:00 · 154 MiB -
citron_0.9.0-linux-x86_64_v3.AppImage
1,327 downloads ·
2025-10-30 08:01:30 +00:00 · 154 MiB
-
Citron Release 0.8.0 Pre-release
released this
2025-10-11 07:11:09 +00:00 | 230 commits to main since this releaseCitron Emulator v0.8.0 Changelog
This is a special coordinated release:
- Ryubing (Ryujinx Fork) - SDK20 and REV15 audio support
- TKMM (TotK Mod Manager) - #1 Mod Manager for TotK
- NX Optimizer - Advanced game optimization framework for many games
Special Thanks & Acknowledgments
This release would not have been possible without the incredible work and collaboration from:
Research & Development
- LotP (Ryubing/Ryujinx): Reverse engineering genius
- Lord Bubbles & TKMM Team: For creating the amazing TKMM mod manager and collaborative support
- MaxLastBreath: Extensive testing, insights, and creator of NX Optimizer
Testing & Quality Assurance
- Hayate Yoshida (JapanMan): Dedicated testing
- Tetsuya Takahashi: Thorough testing across multiple titles
- Dr.Stug: Testing, detailed logging, and hardware compatibility reports
- Collecting: UI Developer, Linux Maintainer, and new features to Citron
The Citron Team
A massive thank you to all Citron contributors and community members who made this release possible!
Major Game Compatibility Updates
BOTW & TOTK Support - BREAKTHROUGH UPDATE
This release brings full compatibility with the latest game versions:
- ✅ The Legend of Zelda: Breath of the Wild v1.8.2 - Now fully supported!
- ✅ The Legend of Zelda: Tears of the Kingdom v1.4.2 - Resolved boot loop and controller crashes!
What's Fixed:
- Boot loop issues caused by incorrect HID state implementation
- "No controller" crash on game launch
- Audio crackling and stability issues with REV15 games
- Improved performance and stability in both titles
New Features
Audio System - Complete REV15 Implementation
This is our biggest audio update yet!
Core REV15 Features
- Audio Renderer REV15: Full implementation of SDK version 15 audio renderer with native float processing
- Native float biquad filters for superior audio quality (
BiquadFilterParameter2) - Proper handling of Voice Input Parameter V2 format (0x188 bytes vs legacy 0x170)
- Splitter Destination V2b support with biquad filter parameters (0xA8 bytes)
- Multi-tap biquad filter processing with FP16/FP32 optimization
- Dual coefficient storage: maintains both float and fixed-point for compatibility
- Native float biquad filters for superior audio quality (
HID Sampling Number Fix (Critical)
- Fixed Boot Loop Bug: HID atomic storage sampling number now correctly doubles the input state value
- Resolves controller detection issues in SDK20 games
- Fixes the exact issue preventing TotK v1.4.2 and BotW v1.8.2 from launching
New Audio Subsystems
- AudioSnoopManager: DSP statistics and performance monitoring system
- Real-time CPU/DSP usage tracking
- Voice drop and command drop counting
- Buffer underrun/overrun detection
- AudioSystemManager: Applet audio state management
- Suspend/resume support for applet transitions
- Master volume control (input/output/record)
- Debug suspension capabilities
- Applet resource user ID registration
- FinalOutputRecorder: Complete output recording implementation
- Shared ring buffer for audio capture
- ITU-R BS.1770 loudness measurement support
- Work buffer management and buffer lifecycle
Audio Processing Enhancements
- FFT (Fast Fourier Transform): Cooley-Tukey algorithm implementation
- Real-to-complex and complex-to-real transforms
- Complex-to-complex transforms with inverse support
- Proper bit-reversal and work buffer management
- Loudness Calculator: Professional loudness metering
- ITU-R BS.1770 standard compliance
- LUFS (Loudness Units Full Scale) measurement
- K-weighting filter with shelf and high-pass stages
- Momentary (400ms), short-term (3s), and integrated loudness
- Limiter Effect: Full-featured dynamics processor
- Attack and release time controls
- Threshold and ratio parameters
- Makeup gain compensation
- Envelope follower with peak detection
- Audio Device Enhancements:
- Device gain support for AudioInSystem
- Improved buffer management utilities
- ADPCM helper functions
Visual Enhancements
ScaleFX Filter - New Pixel Art Upscaling
- Edge-detection based pixel art upscaling algorithm
- Preserves sharp edges while reducing pixelation
- Six pattern detection types (horizontal, vertical, diagonal)
- Sub-pixel anti-aliasing with configurable strength
- Corner handling for improved quality
- Available in both OpenGL and Vulkan
- FP16/FP32 variants for hardware optimization
- Based on libretro's ScaleFX implementation
- Ideal for low-resolution games and pixel art styles
Lanczos Filter - High-Quality Resampling
- Professional-grade resampling filter
- Sinc-based interpolation for maximum sharpness
- Minimal ringing artifacts
- Excellent for integer scaling scenarios
0.25X Quarter Resolution - Extreme Performance Mode
- Render at 180p/270p for 720p/1080p native
- Four times faster rendering
- Perfect for ultra-low-end hardware
- Performance testing and profiling
- Marked as EXPERIMENTAL (may cause visual artifacts)
Performance Monitoring
- CPU & GPU Temperature Display (Linux): Real-time hardware temperature monitoring
- Color-coded temperature indicators
- Desktop and Android support
- Non-intrusive overlay integration
- Battery Percentage (Android): Battery status in performance overlay
- Charge percentage display
- Charging state indicator
- Temperature alongside battery info
Performance - Profile-Guided Optimization (PGO)
Introducing PGO Build System - 10-30% Performance Boost!
- Two-Stage Optimization Process:
- Stage 1: Instrumented builds collect runtime profiling data
- Stage 2: Optimized builds use profile data for intelligent optimization
- Multi-Compiler Support:
- MSVC with FASTGENPROFILE for fast profiling
- GCC with profile-generate/profile-use
- Clang with llvm-profdata integration
- Automated Build Scripts:
pgo-build.ps1for Windows (PowerShell)pgo-build.shfor Linux/macOS (Bash)fix-pgo-dll.ps1utility for MSVC DLL issues
- CMake Integration:
-DCITRON_ENABLE_PGO_GENERATE=ONfor profiling builds-DCITRON_ENABLE_PGO_USE=ONfor optimized builds- Automatic PGO runtime DLL detection and deployment
Improvements
Audio System Architecture
REV15 Implementation Details:
- Biquad Filter Processing:
- Legacy fixed-point Q2.14 conversion maintained for compatibility
- Native float processing path for REV15+ games
- Proper coefficient conversion with clamping
- Enhanced filter state initialization
ApplyBiquadFilterFloat2()for native float coefficients
- Command Generation:
- Smart selection between float and fixed-point processing
- Automatic detection of REV15 capabilities via behavior flags
- Multi-tap biquad optimization for REV10+ games
- Proper integration with voice and effect contexts
- Parameter Handling:
- VoiceInParameterV2 struct (0x188 bytes) for REV15 voices
- InParameterVersion2b (0xA8 bytes) for splitter destinations
- Dual storage system:
biquads(s16) andbiquads_float(f32) - Proper stride calculation for mixed revision support
UI/UX Improvements
- Adjustable Configuration Window: Resizable settings dialog with proper scroll support
- Graphics & System Tab Fixes: Proper resize and scroll behavior
- Accent Color System: Customizable UI theming with accent colors
- Column Layout: Improved game list column organization
- State Management UI: Enhanced save state interface
Build System & Compiler Support
- Clang Compiler Support: Full Clang compilation with LTO support
- Fixed template instantiation issues
- Resolved warning suppressions
- Proper attribute handling
- MSVC Improvements:
- Fixed C4305 truncation warnings in QColor calls
- Disabled C2375 warning for
__builtin_assume_alignedredefinition - Proper PGO runtime DLL handling
- CMake Enhancements:
- Automatic user directory creation for portable mode
- Improved dependency management
- Better cross-platform configuration
Platform Support
- Android Enhancements:
- Fixed instant crash in RAM overlay
- Battery percentage and temperature display
- Improved resource handling
- Qt Framework:
- Fixed
QImage::mirrored()usage (was incorrectly using non-existentflipped()) - Proper state change handling
- Better event management
- Fixed
Bug Fixes
Critical Fixes
- TotK/BotW Boot Loop: Fixed HID sampling number mismatch preventing game startup
- Atomic storage sampling number now properly doubles state value
- Controller Detection: Resolved "no controller" crash by fixing atomic storage state
- Proper SamplingNumber propagation in ring LIFO
- Fixes SDK20 game controller initialization
- Use-After-Free Bug: Resolved memory safety issue in core systems
- Android RAM Overlay Crash: Fixed instant crash when enabling RAM display (Credit To Beta Tester: Shadai theonlyshadai)
Audio Fixes
- REV15 Compatibility: Native float biquad processing prevents audio distortion
- Mix Parameter Validation: Added bounds checking for mix count in dirty parameter mode
- Splitter Float Coefficients: Properly stores and applies biquad filters in splitters
- Audio Stability: Fixed crashes and crackling in REV15 games
Compilation Fixes
- Clang Warnings: Resolved all Clang compilation warnings
- MSVC Truncation: Fixed C4305 warnings in color conversion
- Discord RPC: Applied wclass-memaccess fix patch
- RapidJSON: Compiler compatibility patch
- STB Image: Overflow fix patch (CVE mitigation)
UI Fixes
- Configuration Window Scrolling: Proper scroll behavior in all tabs
- Qt Vertical Layout: Fixed deprecated value usage
- State Change Events: Proper checkStateChanged handling
- Theme Application: Correct theme.h inclusion and initialization
Build System Fixes
- Ring Buffer Alignment: Stable and predictable 64-byte alignment
- Dynarmic Fastmem: Removed MSVC-specific pointer assignments
- Patch Application: Corrected -p0 flag usage in patches
- Copyright Headers: Added proper SPDX headers to new files
Technical Improvements
Code Architecture
Float Coefficient Storage:
- Dual storage system for biquad filters maintains accuracy
- Legacy
s16fixed-point for older revisions (REV1-14) - Native
f32float for REV15+ accuracy - Automatic selection based on
IsVoiceInParameterV2Supported()
- Legacy
- Backward compatibility fully maintained
Splitter Context Enhancement:
- V2b parameter format support (0xA8 bytes)
- Biquad filter storage in splitter destinations
- Proper handling of extended parameter structures
splitter_float_coeff_supportedflag management
Type Safety:
- Added
use_float_biquadsanduse_float_coefficientsflags - Proper scope management for parameter structures
- Enhanced error handling for parameter parsing
- Eliminated variable shadowing issues
Shader System
ScaleFX Implementation:
- 6 edge detection patterns (horizontal, vertical, diagonal)
- Sub-pixel anti-aliasing with configurable strength (SFX_SAA)
- Color threshold tuning (SFX_CLR = 0.35)
- Corner handling for improved quality
- FP16 optimization with AMD/NVIDIA extension support
Lanczos Refinements:
- Optimized sinc function calculation
- Improved window function
- Better edge handling
Performance Optimizations
- PGO Infrastructure: Profile-guided optimization for 10-30% gains
- Temperature Monitoring: Zero-overhead when disabled
- Buffer Management: Optimized ring buffer implementation
- FFT Processing: Efficient Cooley-Tukey algorithm
New Files Added
Audio Core
src/audio_core/audio_snoop_manager.{cpp,h} src/audio_core/audio_system_manager.{cpp,h} src/audio_core/common/audio_helpers.h src/audio_core/common/fft.{cpp,h} src/audio_core/common/loudness_calculator.{cpp,h} src/audio_core/device/audio_buffer_list.h src/audio_core/device/shared_ring_buffer.{cpp,h} src/audio_core/renderer/command/effect/limiter.{cpp,h} src/audio_core/renderer/effect/limiter.{cpp,h} src/audio_core/renderer/final_output_recorder/ ├── final_output_recorder_buffer.h ├── final_output_recorder_system.cpp └── final_output_recorder_system.hVideo Core
src/video_core/host_shaders/opengl_present_scalefx.frag src/video_core/host_shaders/vulkan_present_scalefx_fp16.frag src/video_core/host_shaders/vulkan_present_scalefx_fp32.fragBuild System
CMakeModules/PGO.cmake fix-pgo-dll.ps1 pgo-build.ps1 pgo-build.sh
Modified Files (Major Changes)
Audio Core - REV15 Implementation
src/audio_core/common/feature_support.h: CurrentRevision 13 → 15src/audio_core/renderer/behavior/behavior_info.{cpp,h}: Added REV15 support methodssrc/audio_core/renderer/behavior/info_updater.cpp: VoiceInParameterV2 parsingsrc/audio_core/renderer/voice/voice_info.h: AddedInParameter2and float biquad storagesrc/audio_core/renderer/command/effect/biquad_filter.{cpp,h}: Native float processingsrc/audio_core/renderer/command/effect/multi_tap_biquad_filter.{cpp,h}: Float coefficient supportsrc/audio_core/renderer/command/command_buffer.cpp: Updated command generationsrc/audio_core/renderer/splitter/splitter_destinations_data.{cpp,h}: V2b parameter supportsrc/audio_core/renderer/splitter/splitter_context.{cpp,h}: Float coefficient handlingsrc/audio_core/in/audio_in_system.{cpp,h}: Device gain support
HID Core
src/hid_core/resources/ring_lifo.h: Critical fix - sampling_number now properly doubled
Video Core
src/video_core/renderer_opengl/gl_blit_screen.cpp: ScaleFX integrationsrc/video_core/renderer_opengl/present/filters.{cpp,h}: ScaleFX factorysrc/video_core/renderer_vulkan/vk_blit_screen.cpp: ScaleFX integrationsrc/video_core/renderer_vulkan/present/filters.{cpp,h}: ScaleFX shader selectionsrc/video_core/host_shaders/CMakeLists.txt: New shader registrations
Configuration & UI
src/common/settings.cpp: 0.25X resolution handlingsrc/common/settings_enums.h: AddedRes1_4XandScaleFxenumssrc/citron/configuration/shared_translation.{cpp,h}: ScaleFX and 0.25X translationssrc/citron/main.{cpp,h}: Temperature monitoring, UI improvementssrc/citron/about_dialog.cpp: Version 0.7.1 → 0.8.0- UI configuration files: Resizable dialogs, accent colors, improved layouts
Build System
CMakeLists.txt: PGO module integrationsrc/audio_core/CMakeLists.txt: All new audio files added.gitignore: PGO profile exclusions
Known Issues
- FSR2 and TAA remain experimental (from v0.7/v0.7.1)
- ScaleFX may show artifacts with some UI elements at extreme scales
- 0.25X resolution marked EXPERIMENTAL - may cause rendering issues in some games
- PGO requires two complete build cycles (expected behavior)
- Temperature monitoring requires hardware sensor support (may show 0°C on some systems)
Building with PGO (Optional)
For maximum performance, you can build Citron with Profile-Guided Optimization:
Windows:
.\pgo-build.ps1 generate # Build instrumented version # Run Citron and play games for 15-30 minutes .\pgo-build.ps1 use # Build optimized versionLinux/macOS:
./pgo-build.sh generate # Build instrumented version # Run Citron and play games for 15-30 minutes ./pgo-build.sh use # Build optimized versionPGO can provide 10-30% performance improvements based on your typical usage patterns!
Migration Notes
For Users
- No configuration migration needed - fully backward compatible
- Existing saves remain compatible
- REV15 games will automatically use new audio path
For Developers
- New audio subsystems available for service implementations
CurrentRevisionupdated to 15 - update any hardcoded checks- BiquadFilterCommand now has dual coefficient storage
- Check
use_float_biquadsflag when handling voice info
Community & Coordination
This synchronized release shows the power of community collaboration:
- Citron: Core emulator with REV15 audio and enhanced compatibility
- Ryubing: Research and reverse engineering insights for SDK20 support
- TKMM: Professional mod management for seamless game modifications
- NX Optimizer: Performance optimization and advanced game tweaking
Together, we're providing the most complete and optimized experience for Nintendo Switch emulation!
Statistics
- Files Changed: 100+ files modified/added
- Lines Added: ~5,000+ lines of new code
- New Subsystems: 4 major audio subsystems
- Bug Fixes: 20+ critical and minor fixes
- New Features: 8 major user-facing features
Full Changelog: v0.7.1...v0.8.0
Download: Latest Release
Enjoy full TotK 1.4.2 and BotW 1.8.2 support!
Special thanks to the Ryubing community, MaxLastBreath community and TKMM community, and to all our testers and contributors who made this release possible!
Downloads
-
Source code (ZIP)
88 downloads
-
Source code (TAR.GZ)
59 downloads
-
app-mainline-release-antutu.apk
224 downloads ·
2025-10-29 08:32:47 +00:00 · 39 MiB -
app-mainline-release-frame-gen.apk
176 downloads ·
2025-10-29 08:33:03 +00:00 · 39 MiB -
app-mainline-release.apk
491 downloads ·
2025-10-29 08:32:44 +00:00 · 39 MiB -
citron-windows-optimized-pgo-ea-080.zip
858 downloads ·
2025-10-29 08:32:25 +00:00 · 31 MiB -
citron_0.8.0-x86_64.AppImage
58 downloads ·
2025-10-30 08:05:03 +00:00 · 153 MiB -
citron_0.8.0-x86_64_v3.AppImage
40 downloads ·
2025-10-30 08:05:00 +00:00 · 153 MiB
-
Citron Release 0.7.1 Pre-release
released this
2025-10-03 05:05:41 +00:00 | 359 commits to main since this releaseCitron Emulator v0.7.1 Changelog
- The Citron Team Welcome's Collecting As An Official New Contributor!
- Linux Builds Powered By Collecting & Samueru-sama
New Features
Input & Controls
- Mouse Wheel Support: Added mouse wheel support for game input passthrough, improving desktop gaming experience
- SixAxis Sensor Validation: Enhanced SixAxis sensor validation and error handling for improved controller stability
Visual Enhancements
- VRAM Monitoring Overlay: Added modern VRAM monitoring overlay with clean, clutter-free UI
- Temporal Anti-Aliasing (TAA): Implemented TAA support for both OpenGL and Vulkan renderers
- Performance Overlay Improvements: Enhanced performance overlay with drag-to-move functionality and Wayland compatibility
Audio System
- Audio REV13 Renderer: Added REV13 audio renderer support for broader game compatibility
- Audio Stability: Major audio stability improvements and crash fixes
- Audio REV15 Renderer: Still Under Active Development
VRAM Management
- High-End VRAM Mode: Added High-End VRAM mode with optimized memory usage
- Insane VRAM Mode: Implemented Insane VRAM mode with leak prevention mechanisms
- Low GPU Accuracy Setting: Added Low GPU Accuracy setting for maximum performance on lower-end hardware
Platform Support
- Qt6 Migration: Complete migration to Qt6 with aqtinstall 3.3.0 integration
- Wayland Optimizations: Added Wayland-specific UI optimizations and performance improvements
- Linux Compilation Fixes: Resolved various Linux compilation issues and X11 macro conflicts
Improvements
Build System & CI/CD
- GitLab CI Overhaul: Complete overhaul of GitLab CI pipeline with improved build configurations
- Android Build Fixes: Fixed Android build configurations and dependencies
- Cross-Platform Compilation: Resolved compilation issues across Linux, Android, and Windows platforms
- Boost Process Integration: Improved Boost.Process integration with optional component handling
Shader Recompiler
- ISBERD Instruction: Implemented ISBERD instruction for internal stage buffer reads (with proper error handling)
- Visual Comparison Of 0.7 && 0.7.1 ISBERD impl
Memory Management
- ZBC Clear Support: Added OpenGL ZBC clear support and refactored ZBC management system
- Memory Leak Fixes: Multiple memory leak fixes and stability improvements
- VRAM Leak Prevention: Enhanced VRAM leak prevention in Insane mode
Service Implementation
- NIM Services: Properly implemented NIM (Network Interface Management) services
- SSL/TLS Services: Complete SSL/TLS service implementation with proper error handling
- ACC:U0 Service: Implemented missing acc:u0 functions per SwitchBrew specification
Bug Fixes
Critical Fixes
- Null Pointer Dereference: Fixed critical null pointer dereference in patch_manager.cpp
- Memory Leaks: Resolved multiple memory leak issues across various components
- Audio Crashes: Fixed audio-related crashes and stability issues
- Service Manager Crashes: Resolved crash-on-exit issues from ServiceManager null pointers
Platform-Specific Fixes
- Android Aspect Ratio: Fixed aspect ratio crash for non-16:9 settings on Android
- Wayland Compatibility: Fixed Wayland-specific UI issues and performance overlay problems
- X11 Macro Conflicts: Resolved X11 macro conflicts with enum values and Qt constants
- Linux Compilation: Fixed various Linux compilation issues and dependency problems
UI/UX Fixes
- Properties Window Scaling: Fixed properties window scaling issues
- Performance Overlay: Fixed drag-to-move functionality for performance overlay
- VRAM Overlay: Cleaned up VRAM overlay layout and removed visual clutter
- Wayland UI: Fixed Wayland UI layer issues and untoggle functionality
Build System Fixes
- CMake Configuration: Fixed CMake target_compile_definitions errors
- Boost Process: Resolved Boost::process optional component issues
- Qt MOC Generation: Fixed Qt MOC generation for conditionally compiled components
- Submodule Initialization: Resolved submodule initialization failures in GitLab CI
Reverted Changes
- ISBERD Implementation: Temporarily reverted ISBERD instruction implementation due to stability issues
- Audio Enhancements: Reverted some audio enhancements that caused stability problems
- X11 Macro Fixes: Reverted X11 macro conflict fixes that introduced new issues
Technical Improvements
Code Quality
- Static Cast Fixes: Added proper static_cast usage for type safety
- Variable Initialization: Fixed uninitialized variable issues
- Error Handling: Enhanced error handling across multiple components
Performance
- Fastmem Pointer: Resolved fastmem_pointer type compatibility issues in dynarmic
- Discord Rich Presence: Fixed Discord Rich Presence timer and compilation issues
- Environment Variables: Improved SSL and Wayland environment variable handling
Dependencies
- RapidJSON: Added rapidjson compiler patch for better compatibility
- STBI: Added STBI_NO_SIMD definitions for improved performance
- Auto Updater: Made updater functionality conditional with CITRON_USE_AUTO_UPDATER option
Testing & Validation
- Enhanced testing coverage for new features
- Improved error reporting and debugging capabilities
- Better crash recovery mechanisms
Known Issues
- FSR2 implementation remains experimental (as noted in v0.7)
- Some kernel event handles still require completion
- Wayland performance optimizations may need further tuning
- BOTW/TOTK Support will be included in the next update for their latest respective updates
1.8.2/1.4.2
Note: This release focuses on stability improvements, platform compatibility, and performance enhancements. The FSR2 && TAA implementation remains experimental and should be used with caution.
Full Changelog: https://git.citron-emu.org/citron/emulator/-/releases/0.7.1
Downloads
-
Source code (ZIP)
72 downloads
-
Source code (TAR.GZ)
58 downloads
-
Citron-0.7.1-anylinux-aarch64.AppImage
18 downloads ·
2025-10-30 08:07:31 +00:00 · 98 MiB -
Citron-0.7.1-anylinux-x86_64.AppImage
21 downloads ·
2025-10-30 08:07:32 +00:00 · 107 MiB -
Citron-0.7.1-anylinux-x86_64_v3.AppImage
24 downloads ·
2025-10-30 08:07:43 +00:00 · 108 MiB -
app-mainline-release.apk
365 downloads ·
2025-10-29 08:11:33 +00:00 · 39 MiB -
citron_windows.zip
172 downloads ·
2025-10-29 08:11:31 +00:00 · 31 MiB
-
Citron Release 0.7.0 Pre-release
released this
2025-09-06 07:44:34 +00:00 | 504 commits to main since this releaseCITRON EMULATOR v0.7
This release represents a complete ground-up rewrite of the Citron emulator by Zephyron. This is 100% original work - no AI assistance was used in the development process.
🔧 MAJOR IMPLEMENTATIONS:
- Complete Vulkan rendering pipeline overhaul
- Advanced ZBC table management with GPU memory integration
- Enhanced Nintendo SDK crash detection and recovery system
- Optimized descriptor update queue performance
- Adaptive timeout and auto-disable for Vulkan turbo mode
- Missing kernel event handle and service function implementations
- ISBERD instruction implementation in shader recompiler
- QueryPointerBufferSize service with proper IPC buffer calculation
- Network stability improvements for HDR multiplayer
- Cross-platform compilation fixes (Linux/Android/Windows)
- Authentication system integration for beta testing
- Complete rewrite of core emulation components
⚠️ IMPORTANT NOTES:
FSR2 IMPLEMENTATION STATUS: The FSR2 (FidelityFX Super Resolution 2) implementation is currently HALF-BAKED and experimental. Users should expect:
- Visual artifacts and rendering glitches
- Inconsistent frame rate improvements
- Potential crashes or instability
- Memory management issues
- Compatibility problems with certain games
This feature is provided as-is for testing purposes only. Use at your own risk.
🐛 EXPECTED BUGS: As this is a complete rewrite, users should anticipate:
- Game compatibility regressions
- Performance inconsistencies
- UI/UX issues
- Platform-specific bugs
- Memory leaks in certain scenarios
- Audio synchronization problems
📋 TESTING RECOMMENDATIONS:
- Test with a variety of games across different genres
- Monitor memory usage during extended play sessions
- Report any crashes or significant performance issues
- FSR2 should be disabled for stable gameplay
Downloads
-
Source code (ZIP)
63 downloads
-
Source code (TAR.GZ)
72 downloads
-
Citron-0.7.0-anylinux-aarch64.AppImage
53 downloads ·
2025-10-30 08:13:50 +00:00 · 178 MiB -
Citron-0.7.0-anylinux-x86_64.AppImage
45 downloads ·
2025-10-30 08:13:50 +00:00 · 162 MiB -
Citron-0.7.0-anylinux-x86_64_v3.AppImage
39 downloads ·
2025-10-30 08:14:12 +00:00 · 178 MiB -
app-mainline-release.apk
584 downloads ·
2025-10-29 08:02:57 +00:00 · 21 MiB -
citron_linux.zip
84 downloads ·
2025-10-29 08:02:59 +00:00 · 30 MiB -
citron_windows.zip
268 downloads ·
2025-10-29 08:05:19 +00:00 · 31 MiB