- 
					
					Citron Release 0.8.0 Pre-releasereleased this 2025-10-11 07:11:09 +00:00 | 155 commits to main since this releaseCitron Emulator v0.8.0 ChangelogThis 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 & AcknowledgmentsThis 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 TeamA massive thank you to all Citron contributors and community members who made this release possible! 
 Major Game Compatibility UpdatesBOTW & TOTK Support - BREAKTHROUGH UPDATEThis 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 FeaturesAudio System - Complete REV15 ImplementationThis 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 EnhancementsScaleFX 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
 
 
 ImprovementsAudio System ArchitectureREV15 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 FixesCritical 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 ImprovementsCode ArchitectureFloat 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 SystemScaleFX 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 AddedAudio Coresrc/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 Coresrc/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 SystemCMakeModules/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 → 15
- src/audio_core/renderer/behavior/behavior_info.{cpp,h}: Added REV15 support methods
- src/audio_core/renderer/behavior/info_updater.cpp: VoiceInParameterV2 parsing
- src/audio_core/renderer/voice/voice_info.h: Added- InParameter2and float biquad storage
- src/audio_core/renderer/command/effect/biquad_filter.{cpp,h}: Native float processing
- src/audio_core/renderer/command/effect/multi_tap_biquad_filter.{cpp,h}: Float coefficient support
- src/audio_core/renderer/command/command_buffer.cpp: Updated command generation
- src/audio_core/renderer/splitter/splitter_destinations_data.{cpp,h}: V2b parameter support
- src/audio_core/renderer/splitter/splitter_context.{cpp,h}: Float coefficient handling
- src/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 integration
- src/video_core/renderer_opengl/present/filters.{cpp,h}: ScaleFX factory
- src/video_core/renderer_vulkan/vk_blit_screen.cpp: ScaleFX integration
- src/video_core/renderer_vulkan/present/filters.{cpp,h}: ScaleFX shader selection
- src/video_core/host_shaders/CMakeLists.txt: New shader registrations
 Configuration & UI- src/common/settings.cpp: 0.25X resolution handling
- src/common/settings_enums.h: Added- Res1_4Xand- ScaleFxenums
- src/citron/configuration/shared_translation.{cpp,h}: ScaleFX and 0.25X translations
- src/citron/main.{cpp,h}: Temperature monitoring, UI improvements
- src/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 integration
- src/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 NotesFor 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 & CoordinationThis 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)
											
											38 downloads
- 
											
												Source code (TAR.GZ)
											
											2 downloads
- 
												
													app-mainline-release-antutu.apk
												
												82 downloads ·2025-10-29 08:32:47 +00:00 · 39 MiB
- 
												
													app-mainline-release-frame-gen.apk
												
												79 downloads ·2025-10-29 08:33:03 +00:00 · 39 MiB
- 
												
													app-mainline-release.apk
												
												180 downloads ·2025-10-29 08:32:44 +00:00 · 39 MiB
- 
												
													citron-windows-optimized-pgo-ea-080.zip
												
												254 downloads ·2025-10-29 08:32:25 +00:00 · 31 MiB
- 
												
													citron_0.8.0-x86_64.AppImage
												
												7 downloads ·2025-10-30 08:05:03 +00:00 · 153 MiB
- 
												
													citron_0.8.0-x86_64_v3.AppImage
												
												6 downloads ·2025-10-30 08:05:00 +00:00 · 153 MiB