Neu / zweiter Core neben dem Original
MERIDIAN + SCHUBEin zweiter Prozessor für den MERIDIAN.
SCHUB ist ein RISC-V-Prozessor im FPGA, der neben dem 65C816 arbeitet: 32 Bit, 24 MHz, eigene Caches. Er greift auf dieselben Chips zu – PINSEL, KOBOLD, KRAN, LOTSE und ORGEL – und rechnet dort, wo 8 MHz nicht reichen. Damit laufen auf dem MERIDIAN Spiele, die er allein nicht schaffen würde: DOOM mit fast 30 Bildern pro Sekunde, ein Flipper mit echter Physik, eine Stadt, die wächst, und ein Handelshaus über Generationen.
Die Idee / mehr Rechenkraft
Der MERIDIAN bekommt Hilfe.
Der MERIDIAN 816 ist absichtlich ein Rechner seiner Zeit: ein 65C816 mit 8 MHz und Chips, die ihm viel Arbeit abnehmen. Für ein 3D-Spiel oder eine Stadt mit tausenden Einwohnern reicht das nicht. SCHUB ist der Gedanke einer Beschleunigerkarte, wie es sie für den Amiga gab – nur dass er neben dem 65C816 arbeitet statt an seiner Stelle.
Ein Programm auf dem 65C816 lädt den Code für SCHUB, setzt die Startadresse und schaltet ihn ein. Ab da teilen sich beide den Speicher: SCHUB rechnet Spiel, Physik oder Simulation, die MERIDIAN-Chips zeigen das Ergebnis. Dazu kann der Blitter KRAN eine Spaltenkopie, mit der DOOM seine Wände zeichnet.
Im MiSTer-Menü lässt sich SCHUB aus- und einschalten. Ist er aus, ist der Core genau der MERIDIAN 816 aus dem Original – alle Programme, HORIZONT und TIEFGANG laufen unverändert.
Warum ein eigener Core?
SCHUB belegt die übrigen Speicherblöcke und Multiplizierer des FPGA vollständig. Deshalb bleibt das Original der Referenzrechner, der jede Korrektur zuerst bekommt; MERIDIAN + SCHUB übernimmt sie und ist die Spielwiese für Versuche. Beide liegen in eigenen Repositories auf GitHub.
Spiele / alle noch in Arbeit
Was mit SCHUB läuft.
Alle Ausschnitte sind am echten MiSTer über die Capture-Karte aufgenommen, ohne Ton. Die Spiele sind noch nicht fertig und zum Herunterladen gibt es sie noch nicht – hier ist der Stand von heute.
SPIEL // DOOM // SCHUB
DOOM – fast 30 Bilder pro Sekunde.
Der Klassiker von id Software, portiert auf den MERIDIAN. SCHUB führt die ganze Spiellogik und den Renderer aus, KRAN verbreitert die Wandspalten, LOTSE schaltet zwischen Spielbild und Statusleiste um, und die ORGEL spielt die Musik mit eigenen Samples für alle 47 Schlaginstrumente.
Auf dem MiSTer läuft die erste Episode mit 28 Bildern pro Sekunde (NTSC). Zum Vergleich: Allein auf dem 65C816 schafft derselbe Port rund zwei Bilder pro Sekunde.
Nicht zum Herunterladen: Das Modul enthält die Spieldaten von id Software.
SPIEL // NACHTFLIPPER // SCHUB
NACHTFLIPPER – vier Tische, eine lange Nacht.
Vier gemalte Flippertische in 256 Farben: Schloss Schattenfels, Fledermanns Labor, Emils Geisterbahn und Ball der Vampire. SCHUB rechnet die Kugel mit 120 Physikschritten pro Sekunde, mit Reibung, Drall und bewegten Flippern, und blendet sie unter Rampen aus.
PINSEL scrollt den Tisch nur über die Startadresse, KOBOLD bewegt Kugel, Flipper, Geister und Funken. Dazu Missionen, Multiball, eine Leuchtpunktanzeige und eigene Stereo-Musik.
SPIEL // METROPOLIS // SCHUB
METROPOLIS – eine Stadt, die wächst.
Eine Städtebausimulation mit isometrischer Pixelgrafik: Wohn-, Gewerbe- und Industriegebiete, Straßen, Bahn, U-Bahn, Strom und Wasser, Budget und Katastrophen. Gebäude wachsen in bis zu acht Stufen, Autos halten an Ampeln, Züge, Busse, Schiffe und Flugzeuge fahren.
SCHUB simuliert die Karte mit 64 × 64 Feldern und zeichnet sie in drei Zoomstufen und vier Blickrichtungen. Mit Enter beginnt eine vorbereitete Hafenstadt.
SPIEL // HANSE // SCHUB
HANSE – Häuser der Morgenröte.
Ein Handels- und Dynastiespiel für bis zu sechs Menschen an einem Gerät, die übrigen Häuser spielt der Rechner. Waren und Betriebe, Fernhandel, Ämter, Kirche, Familie und Intrigen – Quartal für Quartal, über Generationen.
24 gemalte Räume mit animierten Figuren, zwölf Porträts, taktische Schlachten und eigene Musik. SCHUB rechnet die Wirtschaft der ganzen Welt und alle Rivalen.
SPIEL // MODELLBAHN // SCHUB
MODELLBAHN – eine Platte zum Bauen.
Eine frei gestaltbare Modellbahnplatte: Gleise, Signale, Tunnel, Straßen, Häuser und Gelände. Die Beispielanlage startet gleich mit zwei Zügen und fünf Straßenfahrzeugen; Programm, Simulation und Grafik laufen im FPGA.
Die jüngste der Baustellen – Fassung 0.2. Beim Herauszoomen zeichnet sie noch nicht sauber, deshalb hier nur die Nahansicht.
Für Programmierer / die Schnittstelle
So spricht man SCHUB an.
SCHUB sieht denselben 24-Bit-Adressraum wie der 65C816. Gesteuert wird er über 32 Register ab $00:CD00; die vollständige Beschreibung steht in SCHUB.md ↗.
| Bereich | Bedeutung |
|---|---|
$CD00–$CD03 | Kennung SCHB |
$CD04 / $CD05 | Version und Fähigkeiten |
$CD08 | Steuerung: einschalten, ausführen, Neustart |
$CD09 | Status: vorhanden, läuft, Bus beschäftigt, Adressfehler |
$CD0C–$CD0F | Startadresse des RISC-V-Programms |
$CD10 / $CD14 | freie Argument- und Ergebnisregister |
$CD18 / $CD1C | Taktzähler und Taktfrequenz (24 MHz) |
Register, gemeinsame Puffer und DMA-Daten laufen über einen ungecachten Bereich (Bit 31 der Adresse), eigener Code und eigene Daten dürfen den Cache nutzen. Ist SCHUB eingeschaltet, kopiert KRAN mit Modusbit 3 Spalten statt Rechtecke.
Ausprobieren / Core und Anleitung
MERIDIAN + SCHUB auf dem MiSTer.
Einspielen
MERIDIAN_SCHUB_<datum>.rbfaus dem neuesten Release ↗ nach/media/fat/_Computer/kopieren.- Der Core nutzt denselben Ordner
games/MERIDIANwie das Original – Disketten, Module und Einstellungen gelten für beide. - Im OSD unter SCHUB ein- oder ausschalten. Programme, die ihn brauchen, schalten ihn selbst ein.
Was drin ist
- Der vollständige MERIDIAN 816 auf dem Stand des Originals, mit allen Korrekturen.
- Dazu SCHUB mit Quelltext, Tests für Prozessor und Spaltenkopie und der Schnittstellenbeschreibung.
- Die Spiele gehören nicht dazu – sie sind noch in Arbeit.
Das Original
- Wer nur den MERIDIAN 816 möchte, nimmt weiter den Original-Core: weniger belegt im FPGA, gleiche Programme.
- Fragen und eigene Programme gern ins Forum ↗.