Contribute
RetroMao extensions are developed in a separate public repository, RetroMao-Community. You don’t need the app’s source code or an APK build.
Choose what to build
Section titled “Choose what to build”| Goal | Skills | Guide |
|---|---|---|
| Translate the interface | Editing a JSON file | Translate |
| Add a system or theme | Config files, images, GLB models | Make systems and themes |
| Add features | JavaScript, HTML/CSS | Develop plugins |
Set up
Section titled “Set up”You need Python 3.11+, plus Node.js 22+ for plugin tests and browser checks. We recommend creating and activating a Python virtual environment. Fork the repository, then run these from its root:
python -m pip install -r requirements-dev.txtnpm cipython tools/retromao.py checkOne tool for everything
Section titled “One tool for everything”tools/retromao.py covers everything from creating to publishing:
| Command | What it does |
|---|---|
init plugin|platform|language --id --name --author |
Creates from a template |
check [path] |
Validates languages, schemas, templates and APIs |
preview <path> |
Previews locally with sample data, without real cloud storage |
pack <path> --release-tag <tag> |
Packages a ZIP |
publish <path> --tag <tag> --repository <repo> |
Publishes a Release and updates the catalog |
Publish to your fork
Section titled “Publish to your fork”Players who add your repository URL to RetroMao can see what you publish.
python tools/retromao.py check extensions/demo-plugingit add extensions/demo-plugingit commit -m "Add demo plugin 1.0.0"git push origin HEADpython tools/retromao.py publish extensions/demo-plugin --tag demo-plugin-1.0.0 --repository YourAccount/RetroMao-Community --notes extensions/demo-plugin/RELEASE_NOTES.mdgit add plugins/index.jsongit commit -m "Publish verified demo plugin catalog"git push origin HEADpublish validates and packages your extension, creates a new Release and downloads the asset to check its size and SHA-256. It updates the catalog only if all of this succeeds. Versions and tags can’t be overwritten.
Contribute upstream
Section titled “Contribute upstream”Publishing to your fork and contributing upstream are separate. In a pull request to the official repository, include:
- The purpose, author and minimum host version
- Permissions, plus asset sources and licenses
- Local checks, previews and device testing, including anything you didn’t test
After review, maintainers publish the assets in the official repository.
- Don’t submit ROMs, firmware, saves, keys or account details.
- Only package assets with clear permission to redistribute, and credit the original authors.
- Before publishing, test at least 16:9, 4:3 and 1:1 layouts, with both touch and controller.
- Automated checks don’t replace testing on devices, emulators and real cloud storage.