Release notes

Ongoing rewrite, so expect bugs!

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

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

  • Zangoose@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    15 days ago

    Is citron the emulator that tried to implement DRM into their emulator? I don’t really remember but I’ve been meaning to find a good yuzu fork recently

    • BurgerBaron@piefed.socialOPM
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      15 days ago

      Yes, their lead dev Zephyron is an asshole and tried that which lead to a developer schism. I don’t link to them in the sidebar here for that reason. The alternatives are in said sidebar here :)

      Edit: The devs who left Citron moved to Eden mostly I think.

        • BurgerBaron@piefed.socialOPM
          link
          fedilink
          English
          arrow-up
          3
          ·
          15 days ago

          No, that was Zephyron’s (citron) idea. He backtracked but the asshole part remains true, it’s not his only drama.

          Eden was started by former Citron developer Camille LaVey and the new Eden team.