Contributing a Core to MiSTer FPGA - MiSTer-devel/Wiki_MiSTer GitHub Wiki
MiSTer is an open project and welcomes developers who want to contribute new cores. To have your core integrated into the platform, follow these ten steps:
-
Make sure the project provides preservation value by implementing the original system accurately. Fully AI generated code should meet a minimum reasonable bar for readability and include some evidence of quality and accuracy testing.
-
Publish the project as a public GitHub repository under a compatible open-source license, such as GPLv3 or MIT.
-
Follow the standard repository structure described in the MiSTer core template:
-
sys/— MiSTer framework files -
rtl/— Core implementation files -
releases/— Binary releases and MRA files
Include the standard
.qpf,.qsf,.srf,.sdc,.sv,files.qip,clean.batand.gitignorefiles required by the template. See itsREADME.mdfor details. -
-
Make sure the contents of
sys/are compatible with the framework in the template repository. -
Follow the MiSTer development principles and coding guidelines.
-
Add at least one fully functional compiled release to the
releases/folder using this format:<core_name>_YYYYMMDD.rbfFor arcade cores, use:
Arcade-<core_name>_YYYYMMDD.rbf -
Arcade cores must also include MRA files in the
releases/folder, and all included games must be fully playable.Each MRA must comply with the MRA specification and include:
<rbf>{core_name}</rbf>
Place only one primary MRA per game directly under
releases/.Alternative MRAs may be placed under:
releases/_alternatives/<game_name>/<version_name>.mra
The MRA paths must not conflict with any existing MRA files on the platform.
-
Send an email to [email protected] with a link to the GitHub repository and request an invitation to the
MiSTer-develGitHub organization. Emails without a valid GitHub repository link may be automatically filtered out. Your request will be reviewed within a few days. -
After receiving the invitation, transfer the repository to
MiSTer-devel.You will remain the primary maintainer, retaining full control. Hosting the repository in the organization allows other developers to help maintain it if you become unavailable for an extended period.
-
After the transfer is complete, add the core to the appropriate section of the List of Cores.
For non-arcade cores, also specify a valid and unique Home folder. This folder is used by MiSTer to load files associated with the core, so make sure it does not conflict with an existing core.
Once these steps are complete, the core will be integrated into MiSTer and distributed automatically through the updater.
Thank you for contributing!