Contributing to TruchiEmu
Thank you for your interest in contributing to TruchiEmu! Whether you're fixing bugs, adding features, improving documentation, or helping with testing, your contributions are welcome.
Ways to Contribute
Code Contributions
- Bug fixes: Check GitHub Issues for open bugs
- New features: Propose features via GitHub Discussions first
- Performance improvements: Optimize emulation core integration or UI
- Shader development: Create custom Metal shaders
Non-Code Contributions
- Documentation: Improve guides, add examples, fix typos
- Testing: Test games across different systems and report compatibility
- Bug reports: File detailed issues with reproduction steps
- Community support: Help other users in Discussions and issues
Getting Started
- Fork the TruchiEmu repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/truchiemu.git - Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes following the project's code style
- Build and test your changes locally
- Submit a pull request
Contribution Guidelines
Code Style
- Follow existing code patterns and naming conventions
- Use SwiftUI best practices for UI changes
- Keep ObjC++ bridging to a minimum — prefer Swift where possible
- Document public APIs with appropriate comments
Pull Request Process
- Ensure your PR addresses a single concern
- Include a clear description of the changes
- Reference any related issues
- Update documentation if needed
- Ensure the project builds successfully
Reporting Issues
When filing a bug report, please include:
- macOS version and hardware (Apple Silicon or Intel)
- TruchiEmu version
- Steps to reproduce the issue
- Expected vs actual behavior
- Crash logs or screenshots if applicable
Areas Needing Help
- Core integration: Improve compatibility with additional libretro cores
- Shader effects: Create new Metal shaders for different display types
- Documentation: Expand the docs site with more examples and guides
- Testing: Test game compatibility across different systems
- UI/UX: Refine the SwiftUI interface and add new features