New / a second core next to the original

MERIDIAN + SCHUBA second processor for the MERIDIAN.

SCHUB is a RISC-V processor in the FPGA that works next to the 65C816: 32 bits, 24 MHz, its own caches. It uses the same chips – PINSEL, KOBOLD, KRAN, LOTSE and ORGEL – and does the maths where 8 MHz is not enough. That lets the MERIDIAN run games it could not manage alone: DOOM at almost 30 frames per second, a pinball game with real physics, a city that grows and a trading house over generations.

Runs on real hardwareSwitchable in the menuCore free on GitHub
MERIDIAN + SCHUB
NACHTFLIPPER on the MiSTer – SCHUB moves the ball, PINSEL scrolls the table
RISC-V RV32IM◆24 MHz◆64 KB instruction cache◆32 KB data cache◆Registers at $CD00◆KRAN column copy◆On/off in the OSD◆Off = original

The idea / more computing power

The MERIDIAN gets help.

SCHUB ON

The MERIDIAN 816 is meant to be a computer of its time: a 65C816 at 8 MHz with chips that take a lot of work off its hands. That is not enough for a 3D game or a city with thousands of people. SCHUB is the idea of an accelerator card like the ones the Amiga had – except that it works next to the 65C816 instead of replacing it.

A program on the 65C816 loads the code for SCHUB, sets the start address and switches it on. From then on both share the memory: SCHUB runs the game, the physics or the simulation, and the MERIDIAN chips show the result. On top of that the KRAN blitter gets a column copy, which DOOM uses to draw its walls.

SCHUB can be switched off and on in the MiSTer menu. When it is off, the core is exactly the MERIDIAN 816 of the original – all programs, HORIZONT and TIEFGANG run unchanged.

Why a separate core?

SCHUB uses up the remaining memory blocks and multipliers of the FPGA. So the original stays the reference machine and gets every fix first; MERIDIAN + SCHUB takes them over and is the playground for experiments. Both have their own repository on GitHub.

Back to the MERIDIAN 816 →