If a core synthesizes correctly but shows odd behaviour, these are some of the items that may have gone wrong
- Is the CPU memory size correct? The game may boot with a smaller RAM but fail later on
- Are the clock enable signals applied to the right clock domain? Check the CPU clk/clk_en pair
- Is the port direction correct in all modules? Quartus will fail to drive signals that are defined in all modules as inputs
- Are level interrupts held long enough?
- Strobe signals from one clock domain to another, or one cen-domain to another must use jtframe strobe synchronizers
- Is the frame interrupt getting to the CPU?
- Try disabling cycle recovery in the CPUs
- The shifted screen counter should keep the right sequence around LVBL transitions
- Is JTFRAME_COLORW correct?
- Is the bit plane order correct?
- If a color PROM is used, the bit plane order must be set right at the input
- Is the right part of the palette selected?
- Are interrupts coming correctly to the CPU?
- If unsigned and signed output modules are used for sound, the unsigned ones must be converted to signed using jtframe_dcrm
This text can be used in GitHub to generate a check list to use during code development
Ground Work
- Schematics
- Hardware dependencies
- SDRAM mapping (mame2mra.toml and mem.yaml) RTL
- Logic connected
- Tilemap logic
- Sprite logic
- Color mixer
- Graphics are correct
- Top level simulation hooked up correctly
- Simulation starts up correctly (See #27)
- Music sounds
- OSD sound options (FX level, FM/PSG enable)
- Synthesis ok
- Playable Final Verification
- Button names in mame2mra.toml
- Add Patreon message
- Update README file
- Github actions updated so jtbuild builds the new core
- Check MiSTer
- Check Pocket
- Write Patreon entry
Use jtbeta for compiling. The files will be created in $JTROOT/release, and then copied to $JTFRIDAY and $JTBIN
JTBIN checks
- No files for non-beta RBF in JTBIN
- JTBIN has been comitted and pushed
- Correct link in JTBIN wiki
- Run update_all and check the files
- Files in Patreon After publishing
- Tweet about the beta
- Files in #betafiles, including jtbeta.zip as a separate file
- Remove jtbeta.zip from MRAs
- Recompile MiSTer without beta
- Recompile Sockit without beta
- Copy minor platforms to JTBIN
- Copy Pocket files to JTBIN
- Push branch to GitHub, if a local remote was used
- Make source code repository public, if it was private Unsupported games
- mame2mra.toml discards unsupported games
- No MRA/JSON files for unsupported games in any repository
- issue in main repository listing unsupported games as possible new cores