Welcome Contributors
Ryujinx welcomes contributions through pull requests, testing, and issue reporting. This guide will help you become an effective contributor to the project.Before contributing, please read this entire guide to save time for both you and the maintainers.
Quick Reference
Code Style Guide
Follow Ryujinx’s C# coding conventions
Pull Request Guide
Understand the PR review process
Reporting Issues
Effective bug reports and feature requests help maintainers prioritize and fix issues faster.Finding Existing Issues
Search first
Check the open issues to avoid duplicates
Writing a Good Bug Report
A quality bug report should include:High-level description
High-level description
Clearly explain what the problem is
Minimal reproduction
Minimal reproduction
Provide the smallest configuration needed to reproduce the issue:
- A small homebrew application
- Save file and reproduction steps for a specific game
- Exact steps to trigger the bug
Expected vs actual behavior
Expected vs actual behavior
Describe what you expected to happen versus what actually occurred
Environment information
Environment information
Include system details:
- OS/distribution
- CPU model
- GPU model and driver version
- RAM capacity
Ryujinx log file
Ryujinx log file
Attach the log file from when the issue occurred:
- Found in
[Executable Folder]/Logs - Named chronologically
Additional context
Additional context
- Is this a regression from previous versions?
- Are there any known workarounds?
- Any other relevant information
Writing a Good Feature Request
Before submitting a feature request:- Review existing feature requests for duplicates
- Familiarize yourself with the expected format
- Use the Feature Request issue template
Contributing Code
Maintainers merge changes that improve the project and meet quality standards.DOs and DON’Ts
DO
- Follow the coding style
- Prioritize the existing style of files you’re modifying
- Keep discussions focused; create new issues for tangential topics
- Clearly state when you’re taking on an issue
- Share your contributions on social media
DON'T
- Submit PRs for style changes alone
- Surprise maintainers with large PRs (discuss first on Discord)
- Commit code you didn’t write without discussion
- Modify licensing-related files or headers
Suggested Workflow
Create or find an issue
- Skip this for trivial changes
- Get agreement from the team for significant changes
- State that you’re implementing it and request assignment
Make and commit changes
- Follow build instructions
- Write clear, actionable commit messages
Create a pull request
- Target the main branch
- State what issue or improvement you’re addressing
- Check that all CI checks pass
Wait for review
See the pull request guide for review details
Good First Issues
New to the codebase? Start with good first issues - these are straightforward tasks perfect for new contributors.Commit Message Format
Follow this format based on A Note About Git Commit Messages:Factor commits appropriately - not too large with unrelated changes, and not too small with the same change applied multiple times.
CI Process
The continuous integration system automatically builds and tests all PRs.Common CI Failures
dotnet format not run
dotnet format not run
Run
dotnet format locally and commit the changesCompilation error
Compilation error
Fix the compiler error in your PR
Test failure
Test failure
Investigate the test failure in your changes
Random workflow failure
Random workflow failure
A maintainer will manually restart the job
PR Feedback Process
Both team members and community members provide valuable feedback on pull requests.Two Ryujinx team members must review and approve every PR before merge.
Understanding Review Comments
- “LGTM, see nit” - The PR will be merged once minor feedback is addressed
- “LGTM” - “Looks good to me” - approval granted
Copying Code from Other Projects
When including code from other projects, follow these rules:Verify the license
The file must have a permissive license
Update third-party notices
Add proper attribution to THIRDPARTY.md
Next Steps
Build Ryujinx
Set up your development environment
Coding Style
Learn the C# conventions
Testing
Write and run tests