Testing and fiddling with our recent overhaul for changing OS/UI themes and updating on the fly resulting in a segmentation fault that also would not allow you to re-open the emulator unless changing back to the theme previously known by Citron, which obviously we don't want. Grabbed the core dump. The backtrace pointed to a race condition in GMainWindow::UpdateUITheme, where a QTextStream was reading from a Qt resource stylesheet (.qss) that was being simultaneously reloaded by the theme change event. This led to an attempt to read from a dangling pointer. This change resolves the issue by reading the entire stylesheet into memory in a single, atomic operation using f.readAll(). This prevents the underlying resource from becoming invalid during the read. The resulting QByteArray is explicitly converted to a QString via QString::fromUtf8 to satisfy Qt 6's stricter type requirements. Signed-off-by: Collecting <collecting@noreply.localhost>
Citron - Nintendo Homebrew Emulator 🍋
Welcome to Citron, a cutting-edge Nintendo Homebrew emulator designed to deliver an optimized experience for playing your favorite games and exploring new ones. Citron is a high-performance and easy-to-use emulator, tailored for enthusiasts and developers alike.
Disclaimer: Citron is intended strictly for legal homebrew use and is not affiliated with or endorsed by Nintendo. Use of Citron for pirated or unauthorized copies of games is strictly prohibited. Please respect game developers and support them by purchasing legitimate copies of their games.
Features 🛠️
- High Performance: Optimized for speed and smooth gameplay.
- User-Friendly: Clean and intuitive interface.
- Cross-Platform: Available on multiple platforms.
- Homebrew Support: Fully supports legal homebrew games and applications.
- Ongoing Development: Stay tuned for frequent updates as Citron evolves!
Download 🚀
Ready to experience Citron? Download the latest version and dive into your favorite Nintendo homebrew titles!
Getting Started 💡
- Check the System Requirements: Head over to this link to check the requirements to run this emulator system requirements page
- Download and Install: Head over to the downloads page to grab the latest release.
- Add Homebrew Games: Citron is built to play homebrew games. Add them to your game directory and enjoy!
- Configure Your Settings: Customize your emulator settings to suit your performance needs.
Source Code 🔧
Citron is an open-source project. You can find the source code on our official Git repository:
We welcome contributions! Check out the repository and feel free to submit issues or pull requests to help improve Citron.
Legal Disclaimer 📜
Citron is a homebrew emulator designed to support legally created and distributed homebrew software. It does not support piracy, nor is it intended for illegal purposes. Using Citron to play pirated copies of games is a violation of copyright law. Citron is not affiliated with or endorsed by Nintendo, and all Nintendo trademarks and copyrights are the property of their respective owners.
We highly encourage users to respect intellectual property rights and to only use Citron with legal, homebrew content.
License 📄
Citron is licensed under the GPL License. See the full license in the LICENSE file for more details.
Contributing ✨
We are always looking for developers, testers, and enthusiasts to contribute to Citron. Whether you want to submit a pull request, report an issue, or suggest new features, all contributions are welcome. Please follow our contributing guidelines to get started.
Contact Us 📬
For any inquiries or to follow Citron's development journey, reach out to us:
- Official Website: https://citron-emu.org
- Source Code: https://git.citron-emu.org
- Twitter: @CitronEmu
Made with 💚 by Zephyron | Source Code