Contributing¶
PSXSplash and SplashEdit are open-source projects. The codebase has grown significantly as a one-person project and pull requests are very welcome.
Share your creations!
If you build something with SplashEdit, please share it on the PSX.Dev or Bandwidth Discord servers. It would mean a lot to see what people make with this tool.
Repositories¶
| Repository | Contents |
|---|---|
| psxsplash | C++ PS1 runtime engine (built on PSYQo) |
| splashedit | Unity editor package (C# exporters, inspectors, build pipeline) |
Areas Where Help Is Needed¶
High Priority¶
- Navigation code cleanup - The nav mesh generation works but the code needs refactoring for maintainability.
- Nav Cell Height fix - The setting is broken and needs debugging.
Medium Priority¶
- Camera.LookAt implementation - Needs proper atan2 math to correctly orient the camera.
- Camera.GetRotation - Rotation decomposition from the internal matrix.
- Jump collision - Jumping is currently visual only with no environment interaction.
- Dynamic collision AABB updates - Rotated objects don't update their collision bounds.
Nice to Have¶
- macOS support - The developer doesn't have a Mac, so contributions here are especially welcome.
- Texture size validation - SplashEdit should warn when textures aren't power-of-two or exceed 256x256.
- Additional Lua API functions - New convenience functions, math utilities, or system capabilities.
- Bug fixes - Any bug fix, no matter how small, is appreciated.
- Documentation improvements - Corrections, clarifications, additional examples.
Getting Started¶
- Fork the repository
- Clone your fork
- Set up the development environment (see Installation)
- Make your changes
- Test thoroughly
- Submit a pull request
Documentation Versioning¶
The docs use mike for versioning. A permanent version dropdown appears in the site header, letting visitors switch between versions.
Branch Strategy¶
| Branch | Purpose |
|---|---|
main |
Current released version (deployed to the live site) |
dev |
Next version in development (not deployed, not public) |
Contributing Docs for the Next Version¶
If your changes apply to an unreleased version:
- Base your branch off
dev(notmain) - Submit your PR targeting the
devbranch - Your changes will stay invisible to the public until the version is released
If your changes apply to the current version (typo fixes, corrections, clarifications):
- Base your branch off
main - Submit your PR targeting
main - Changes go live automatically on merge
Releasing a New Version (Maintainers)¶
When a new version is ready to go public:
- Update the
VERSIONfile on thedevbranch to the new version number (e.g.,2.1) - Merge
devintomain - Push to
main— the CI will automatically deploy the new version and set it aslatest - Optionally tag the release:
git tag v2.1 && git push --tags - Recreate the
devbranch frommainfor the next development cycle
Previous versions remain accessible through the version dropdown. Visitors are always routed to latest by default.