Citron v0.9.0, a cutting-edge Nintendo Homebrew emulator, emphasizes performance and user experience. This update enhances stability, accuracy, and introduces significant features like support for Firmware 20.x, advanced autoloader systems, and an XCI trimmer. Contributor acknowledgments include LotP’s HID implementation, MaxLastBreath’s testing, and community feedback. Major improvements include a multiplayer room overlay, automatic updates, and enhanced graphics rendering. Bugs have been addressed, with critical fixes for known crashes. Citron champions a collaborative community approach, focusing on transparency and ethical development. The emulator supports desktop and Android platforms, showcasing over 100 commits since the last version.
(HEY YOU!! We hope you enjoy! We try not to run ads. So basically, this is a very expensive hobby running this site. Please consider joining us for updates, forums, and more. Network w/ us to make some cash or friends while retro gaming, and you can win some free retro games for posting. Okay, carry on ๐)
Citron v0.9.0 has been released. Citron is an advanced Nintendo Homebrew emulator focusing on performance and user-friendliness. Whether youโre reliving classic games or discovering new ones, Citron ensures an optimized gaming experience.
Citron Changelog:
This release introduces significant enhancements in stability, accuracy, and user experience while upholding our dedication to quality and community collaboration.
Acknowledgments & Credits
Research & Development
LotP (Ryubing/Ryujinx): Implementation of HID, support for SDK20, and advancement in REV15 audio architecture – the reverse engineering visionary behind these innovations.
GreemDev (Ryubing/Ryujinx): Ongoing development and maintenance efforts on Ryubing & GLI ๐ <3
MaxLastBreath: Comprehensive testing, critical insights, and creator of NX Optimizer – the ultimate performance mods for BotW, TotK, and more.
The Way Of The Wind Discord Community: For their sustained support, testing, and valuable feedback.
The Citron Discord Community
Testing & Quality Assurance
Dr.Stug: In-depth testing, meticulous logging, and compatibility reports for hardware.
Tetsuya Takahashi: Extensive testing across various titles and setups.
Hayate Yoshida: Committed testing and quality assurance.
Gamerz: Devoted testing efforts.
The Citron Team
Collecting: Skilled developer contributing valuable expertise, UI enhancements, Linux support, and new features to Citron.
A heartfelt thank you to all Citron contributors who made this release feasible through countless hours of development, testing, and fine-tuning!
A Note on Attribution
We value transparency and proper credit. All notable features in this release were developed by the Citron team or adapted from appropriately credited sources like LotP’s groundbreaking research. We pride ourselves on transparent development practices, recognizing our sources โ because ethical development matters.
Major Features
Firmware 20.x Support
Citron now fully supports the latest Nintendo Switch firmware:
โ
Firmware 20.x working seamlessly – Complete compatibility with the latest system software.
โ
Enhanced applet handling – Improved support for system applets.
โ
Advanced system services – Correct implementation of services.
โ
Backward compatibility ensured – All past firmware versions remain supported.
Advanced Autoloader System (W.I.P.)
Introducing our smart content loading system:
Automatic detection and loading of mods from various locations.
Layer-based priority system to handle mod conflicts.
romfslite support for compatibility with Atmosphere 1.9.5.
Smooth integration with existing mod workflows.
Per-game configuration capability.
Status: Work in Progress – expect enhancements in future releases.
XCI Trimmer
Maximize your game storage with our new XCI trimming utility:
Eliminate padding and unused space in XCI files.
Significantly reduce file sizes with no data loss.
User-friendly UI for straightforward operation.
Support for batch processing.
Safe and reversible – original data preserved.
Multiplayer Room Overlay
Enriched multiplayer experience with visual feedback:
Real-time room status overlay.
Connection quality indicators.
Information on player count and room details.
Non-intrusive design that doesnโt disrupt gameplay.
Auto-generate multiplayer tokens for simpler setup.
Auto-Updater System
Stay updated with ease:
Automatic detection of updates upon launch.
One-click updating with progress monitoring.
Release notes shown prior to updating.
Rollback functionality available if necessary.
Accessible on Desktop and Android.
ZIP Firmware Installation
Streamlined firmware installation process:
Install firmware directly from ZIP files.
No manual extraction is needed.
Built-in validation and verification.
Installation progress tracking.
Major Improvements
Filesystem & Save Data
Enhanced NCA Handling
Support added for missing encryption types.
Improved handling for game update patches.
Better decryption performance – Significantly quicker game startup, particularly with mods.
Graphics & Rendering
Vulkan Rendering Enhancements
Resolved flickering objects and texture corruption – Major stability enhancement (Conditional Renderer).
Extended Dynamic State user setting for improved performance.
Conditional rendering control setting for compatibility adjustments.
Optimized memory allocation – Improved read/write speed.
Shader Compiler Enhancements
Fixed alpha-to-coverage fragment output interface.
Added missing texture types for SURED instruction.
Implemented additional missing instructions across multiple commits.
Enhanced error handling and validation.
Multiplayer & Networking
Auto-generating multiplayer tokens – Eliminated manual token creation.
Multiplayer room overlay – Visual feedback for online gameplay.
BSD socket fixes – Resolved assertion errors in PollImpl.
Improved connection stability.
System Services & Applets
Library Applet Support
ILibraryAppletCreator commands implemented.
ILibraryAppletAccessor commands implemented.
Improved transitions and state management for applets.
Memory Management
12 GiB heap support – For titles requiring substantial memory allocation.
Race condition fixes – Avoided race conditions on unmapped memory reads.
Enhanced memory mapping performance.
HID & Controller Support
NpadCondition in shared memory – Fixes crashes without a controller in newer games.
Enhanced controller detection – Resolves crashes due to incorrect detection.
Improved HID state management for SDK20+ titles.
Android Improvements
Vulkan Validation Layers upgraded to 1.4.328.1.
Fixed crash related to Zep Zone settings.
User Interface
Resizable windows keep memory – Window size and position now correctly remembered.
Resolved issues with non-fullscreen window handling.
Enhanced About dialog with current information.
Wiki URLs replaced with Discord support links for better community support.
Removed first-time telemetry popup – Cleaner user experience.
Bug Fixes
Critical Fixes
TotK crash prevention: Implemented DeleteCacheStorage stub.
No-controller crash: Integrated NpadCondition to shared memory.
Resolved unmapped memory race condition: Prevented possible crashes (later reverted for alternative solution).
Resolved Android RAM overlay crash occurring instantly when enabled.
Game-Specific Fixes
Final Fantasy Tactics (010038B015560000): Disabled multi-core functionality to prevent crashes.
Various shader-related enhancements for improved compatibility.
Build System & Compilation
Android NDK compilation: Added explicit float casts.
Qt6 migration: CI now utilizes system Qt6 packages.
Python pip: Included in CI for Qt downloads.
GitLab CI: Cleanup of configuration.
AppImage: Multiple fixes for correct building.
Code Quality
ENUM macros updated to explicit enum class definitions for enhanced type safety (Thanks to MaxLastBreath).
Resolution ENUM adjustment: Changed default indexing to correct 1x resolution defaulting to 0.75x, ensuring compatibility with NX Optimizer (Thanks to MaxLastBreath).
Copyright headers: Added proper SPDX license identifiers.
Code refactoring: Enhanced 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.
Enhanced code clarity and maintenance.
Performance Optimizations
Faster game decryption – Significantly expedited.
Improved memory mapping on Linux and Android.
Discord RPC optimization – Enhanced efficiency in 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
Numerous filesystem accuracy enhancements across core/.
Multiple autoloader implementation files (W.I.P.).
Known Issues
Autoloader is labeled as Work in Progress – look for improvements.
Amiibo support on Android remains experimental.
FSR2 and TAA are still experimental (carried over from previous versions).
Some features in firmware 20.x Home Menu may exhibit minor glitches.
Community Notes
We strive to build a constructive, collaborative community. Despite taking diverse architectural approaches in various areas, we recognize that the whole emulation ecosystem thrives when teams share knowledge and credit one another.
This release reflects Citron’s commitment to:
Accuracy and stability as top priorities.
Professional development standards.
Credit to all contributors, even when reciprocation isnโt given.
Community cooperation over competition.
We aim to be the emulator that conducts itself correctly, every time.
Statistics
Commits: Over 100 commits since v0.8.0.
Files Changed: More than 150 files modified or added.
Bug Fixes: Over 30 critical and minor corrections.
New Features: 8 significant user-facing enhancements.
Platform Support: Desktop (Windows/Linux/macOS) and Android.
Retro Replay Retro Replay gaming reviews, news, emulation, geek stuff and more!