• 0.9.0 e0d2ab3abb

    Citron Release 0.9.0 Pre-release

    Zephyron released this 2025-10-28 09:22:04 +00:00 | 47 commits to main since this release

    Citron 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
  • 0.8.0 4e0178c678

    Citron Release 0.8.0 Pre-release

    Zephyron released this 2025-10-11 07:11:09 +00:00 | 155 commits to main since this release

    Citron Emulator v0.8.0 Changelog

    This is a special coordinated release:


    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

    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.ps1 for Windows (PowerShell)
      • pgo-build.sh for Linux/macOS (Bash)
      • fix-pgo-dll.ps1 utility for MSVC DLL issues
    • CMake Integration:
      • -DCITRON_ENABLE_PGO_GENERATE=ON for profiling builds
      • -DCITRON_ENABLE_PGO_USE=ON for 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) and biquads_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_aligned redefinition
      • 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-existent flipped())
      • Proper state change handling
      • Better event management

    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 s16 fixed-point for older revisions (REV1-14)
      • Native f32 float for REV15+ accuracy
      • Automatic selection based on IsVoiceInParameterV2Supported()
    • 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_supported flag management

    Type Safety:

    • Added use_float_biquads and use_float_coefficients flags
    • 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.h
    

    Video 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.frag
    

    Build 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 → 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 InParameter2 and 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_4X and ScaleFx enums
    • 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 version
    

    Linux/macOS:

    ./pgo-build.sh generate     # Build instrumented version
    # Run Citron and play games for 15-30 minutes
    ./pgo-build.sh use          # Build optimized version
    

    PGO 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
    • CurrentRevision updated to 15 - update any hardcoded checks
    • BiquadFilterCommand now has dual coefficient storage
    • Check use_float_biquads flag 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
  • 0.7.1 a1c7d2fddb

    Citron Release 0.7.1 Pre-release

    Zephyron released this 2025-10-03 05:05:41 +00:00 | 284 commits to main since this release

    Citron 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

    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
  • 0.7.0 206d778782

    Citron Release 0.7.0 Pre-release

    Zephyron released this 2025-09-06 07:44:34 +00:00 | 429 commits to main since this release

    CITRON 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