Suchergebnisse : MIST

MISTer-Fortschritte und die zweite Luft für MIST

 Hardware, Retrogaming  Kommentare deaktiviert für MISTer-Fortschritte und die zweite Luft für MIST
Okt 302018
 

Schon lange nichts mehr zu MISTer und MIST geschrieben (zuletzt im Juni 2017). Dabei gibt es großartige Fortschritte bei beiden Projekten.

Der MISTer hat einen neu implementierten CPC-Core bekommen, der um Welten besser funktioniert als die alte, ursprüngliche Variante. MISTer-Mastermind Sorgelig hat viel Zeit darauf verwendet, besonders die CRTC-Implementierung (ein Motorola 6845, der in verschiedenen Varianten im CPC verbaut wurde, die sich alle in Kleinigkeiten unterscheiden, was von verschiedenen Demos auch weidlich ausgenutzt wird) und auch teilweise die Z80-Implementierung sowie die Floppy-Simulation (NEC 765), um endlich auch diverse Kopierschutzmaßnahmen sowie Sonderformate zu unterstützen.

MIST und MISTer profitieren gerade gemeinsam von einer Weiterentwicklung des Sega Genesis-Cores (für Europäer: Sega Megadrive), bei der unter anderem Sorgelig, GreyRogue und MIST-Mastermind Till Harbaum (“MasterOfGizmo” im Atari-Forum) zusammenarbeiten, nebst einem Spezialisten (“Jotego” im Atari-Forum) für die Soundchips des Genesis und mehreren Kennern der Originalspiele, die in langwierigen Testläufen die diversen Änderungen, die teilweise im Stundentakt gemacht werden, auf Regressions prüfen.

Im Zuge dieser Anpassungen und Weiterentwicklungen wurde auch für den MISTer eine neue Art des Scalings für den HDMI-Output implementiert auf Basis des “Nearest Neighbor”-Algorithmus, der diverse Artefakte des bisher benutzten Scalers verhindert (und dafür auf gewissen Hardware-Kombinationen aber auch neue Artefakte erzeugt). Das ist noch “work in progress” und derzeit eine Compile-Time-Einstellung, es sieht aber so aus wie wenn über zur Laufzeit ladbare Koeffizienten beide Skalieralgorithmen gleichzeitig im selben Core leben können. Und ein komplett neuer Scaler ist derzeit in Entwicklung – Stand heute ist die Scaler-Geschichte etwas unschön, weil sie spezielle IP erfordert, und diese nur für eher teure Quartus-Versionen (quasi die “Entwicklungsumgebung” für die Intel/Altera-FPGAs) verfügbar ist und die freien Versionen solche Cores nicht bauen können. Mit einem unabhängigen Open-Source-Scaler wäre dieses Hindernis auch aus dem Weg geräumt.

Lange Zeit fehlte ein Atari ST-Core beim MISTer – eigentlich die einzige große Lücke, alle anderen Cores waren längst auf dem MISTer portiert und teils sogar stark verbessert gegenüber ihrem MIST-Original. Und hier gibt es den vermutlich größten Fortschritt: ein komplett neuer Core namens FX CAST (von Jorge Cwik aka ijor im Atari-Forum), basierend auf einer zyklenexakten Nachbildung des Motorola 68000 und einer sehr präzisen Nachbildung von Grafik- und Soundchip. Die Sourcen dazu sind noch nicht offen, das soll aber demnächst so weit sein.

Also, ran an den MISTer, oder den alten MIST nochmal auspacken. Es gibt für den MIST inzwischen viele Cores, die das “Component out”-Kabel unterstützen, was es deutlich erleichtert, den MIST an einigermaßen aktuelle Fernseher oder Projektoren anzuschließen – bei vielen Bildgeräten hat “Component” neben HDMI als Input-Schnittstelle überlebt, während Scart-RGB mit der Lupe gesucht werden muss, genauso wie VGA-Eingänge mit ausreichender Flexibilität für die “krummen” Videosignale der diversen Cores.

Für den MISTer gibt es auch eine neue Version des USB-Hub-Boards mit der Wiederauferstehung des 9pol-Digital-Joystick-Anschlusses. Und es wird gerade mit Serial-to-MIDI experimentiert, um auch noch diese letzte MIST-MISTer-Lücke zu schließen.

Rundrum großer Fortschritt und viel Bewegung und Weiterentwicklung. Es ist eine Freude, das zu verfolgen, und ein schönes Beispiel für “Open Source funktioniert”. Besonders freue ich mich, dass Till wieder aktiv ins Geschehen eingreift, er klang zuletzt etwas negativ bezüglich der MIST-Zukunft (Produktion eingestellt, im Prinzip Abverkauf der letzten Exemplare, und Ärger mit Billig-Nachbauten wie Mistica die ihre Kunden im Regen stehen lassen). Er scheint wieder neue Energie gefunden zu haben.

Vom MIST zum MISTer

 Hardware  Kommentare deaktiviert für Vom MIST zum MISTer
Jun 242017
 

Es gibt ein interessantes neues Projekt im MIST-Universum. Sorgelig, einer der aktivsten Core-Portierer und -Entwickler fürs MIST-Board, hat ein neues Projekt gestartet: der MISTer ist sowas wie ein Nachfolger für das MIST-Board, mit deutlich verbesserter Hardware, aber weitestgehend kompatibler Firmware und damit einer einfachen Möglichkeit, die verfügbaren MIST-Cores auf den MISTer zu portieren.

Warum überhaupt neue Hardware? Das MIST ist langsam an die Grenze seiner Leistungsfähigkeit angekommen. Atari ST und Amiga sind noch im machbaren Bereich, beim Acorn Archimedes wird es schon sehr knapp, und am Sega Megadrive scheitert man aktuell (einige Dinge laufen gut, andere weniger). Die Atari ST-Community träumt natürlich von einer Falcon-Nachbildung, was von den Experten für das MIST aufgrund mangelhafter Leistungsfähigkeit ausgeschlossen wird. Dazu kommt, dass der VGA-Ausgang des MIST ein ständiges Problem darstellt: der Core selbst muss sich darum kümmern, dass videotechnisch so einigermaßen was Kompatibles zu heute verfügbaren Monitoren oder Fernsehern rauskommt. Im MIST-Forum behandeln gefühlt 90% der Postings die Themen Scandoubler, Picture Centering und Konvertierung des analogen Videosignals nach HDMI. Fast alles am MIST ist Plug-and-Play, aber nicht die Bildschirmfrage.

Hardware-Basis des MISTer ist das Terasic DE10-nano-Board. 130 US$ kostet das Basis-Board, natürlich ohne Gehäuse oder ähnlichen Schnickschnack. Der zentrale FPGA-Baustein übertrifft den des MIST um Längen: ein Intel (ex-Altera) Cyclone V mit 110K LEs (MIST: Cyclone III mit 25K LEs), einem ARM Cortex-A9 mit 800 MHz (MIST: 48 MHz ARM), deutlich mehr internem Speicher, und der ARM kann deutlich enger mit dem FPGA-Teil kooperieren. Ein HDMI-Ausgang ist an Bord, es wird automatisch auf 720p skaliert. Per Daughterboard gibt es aber weiterhin Zugriff auf das analoge Signal der Cores nebst analogem Audio-Ausgang.

Während im MIST der ARM nur Steueraufgaben hatte – USB, Menü anzeigen, auf die SD-Karte zugreifen, I/O-Ports kontrollieren – kann im MISTer der ARM durch die enge Kopplung viel mehr Aufgaben übernehmen, sogar Teile der Emulation selbst. Vor allem für Dinge wie das Auslesen von Daten aus Floppy-Images oder ähnliches ist das ein Segen, weil man auf fertig verfügbare Bibliotheken zurückgreifen kann, wie sie auch gewöhnliche Emulatoren verwenden. Mit einem Cortex-A9, der auf nicht weniger als 1 GB RAM zugreifen kann, ist sowas kein Problem. Auf dem ARM läuft ein Minimal-Linux, so dass man auch auf vorgefertigte Treiber z.B. für USB-Devices zurückgreifen kann. Damit ist ein einfacher Weg geebnet, um einiges an Legacy-Hardware wiederzuerwecken, vom seriellen über den parallelen Port bis hin zu IDE oder Floppy (z.B. über Kryoflux).

Aus Entwicklersicht ist laut Sorgelig der größte Vorteil, dass man komfortabel in einer IDE wie Visual Studio die Firmware entwickeln kann und per Knopfdruck auf das Board deployed. Neben der Tatsache, dass die Hardware viel leistungsfähiger ist natürlich und man deshalb bei der Verwendung oder Portierung anderer FPGA-basierter Projekte nicht mehr so viele Handstände machen muss.

Das Projekt ist noch im Frühstadium. Die MIST-Firmware wurde erfolgreich portiert, einige Cores auch. Im Moment wird der Sega Megadrive-Core angepasst.

Gibt es andere Nachteile außer der Tatsache, dass sich das Projekt in einer unausgereiften Frühphase befindet? Der MISTer hat keine klassischen DB9-Joystickports und auch keine MIDI-Ports wie das MIST Plus (aber es gibt GPIO-Pins, die dafür verwendet werden könnten). Und man kann das Ding (noch?) nicht fertig kaufen inklusive Gehäuse. Beim MIST konnte man das Board noch komplett selbst bauen – Platine ätzen und bestücken, kein Problem (genügend Geduld und entsprechendes Equipment vorausgesetzt). Der MISTer-FPGA ist in BGA-Bauweise, so dass man zwingend ein professionell gefertigtes Board wie das Terasic DE10-nano als Basis verwenden muss.

Ich bin gespannt auf die weiteren Fortschritte des Projekts.

Neues vom MIST

 Hardware, Retrogaming  Kommentare deaktiviert für Neues vom MIST
Feb 042017
 

Ich hatte mich schon in früheren Beiträgen (hier, hier und hier). Speziell der Archimedes-Core liegt naturgemäß in meinem Fokus (siehe hier und hier).

Beim Archimedes-Core hat sich leider wenig getan, aber dafür hat sich im Rest der MIST-Welt erheblicher Fortschritt ereignet, über den ich kurz berichten will.

Zum einen gibt es jede Menge neue Cores. Der C16-Core gilt inzwischen als ausgereift und weitgehend komplett. Der VC20 steht nun auch als Core bereit. Und um die Commodore-Fraktion abzurunden, ist ein PET2001-Core gerade in der Mache. Bei den Arcade-Cores gibt es viele Neuzugänge – Galaga ist sicher das Highlight, viele weitere sind in der Pipeline. Bei den Spielkonsolen freuen wir uns auf den Sega MegaDrive (aka Genesis) Core – der macht schon einen guten Eindruck, aber die Soundunterstützung fehlt noch. Unter der Rubrik “Exoten” würde ich den Mattel-Aquarius-Core einordnen. Die Sinclair-Fraktion freut sich über den Spectrum-128K-Core und den Sam-Coupe-Core. Und noch was aus der Rubrik “Ultra-Exot”: der BK0011M aus Russland, quasi ein PDP11-Clone, gab sein Debüt.

Signifikante Fortschritte gab es beim Amiga-Core (Minimig-Aga) und beim Amstrad CPC-Core, der nun sowohl 60Hz-VGA- als auch 50Hz-TV-Ausgabe beherrscht. Auch der NES-Core hat eine Neuauflage erfahren. Der Atari800-Core kann nun 50Hz-PAL. Der MSX-Core kann auch mit der allerneuesten MIST-Auflage, wo wohl leicht verändertes SDRAM-Timing am Start ist, arbeiten.

Sorgelig hat sich um verbesserte Kompatibilität mit Bildschirmen gekümmert. Viele Cores unterstützen nun den 15kHz-Modus und erlauben eine Videoausgabe nicht nur per RGB für die Scart-Fraktion, sondern auch per YUV (auch als YPbPr oder Komponente bekannt). Das hat einige Vorteile. Während bei RGB via Scart strenggenommen nur PAL klassisch interlaced unterstützt war und die progressive-Ausgabe klassischer Computer und Konsolen mehr aus Versehen bei den typischen Röhrenfernsehern funktioniert hat, ist die progressive Ausgabe beim Komponenten-Signal anständig spezifiziert. Das erhöht die Chance, auch mit modernem Equipment anständige Ergebnisse zu erzielen. Seit der Erfindung von HDMI ist der Komponenteneingang zwar auf dem Rückzug (bei Fernsehern der neuesten Generation fehlt er ebenso wie der Scart-Eingang), aber selbst die neueste Generation AV-Receiver hat immer noch Komponenten-Eingänge an Bord, wenn auch in ständig reduzierter Anzahl.

Die Firmware des MIST wurde ebenfalls verbessert, vor allem die Konfigurationsoptionen zur Zuordnung von Funktionen auf Buttons von USB-Controllern wurden flexibilisiert. Die Repeat-Intervalle für Feuerknöpfe können nun ebenfalls eingestellt werden. Dazu die Unterstützung für die YUV-Ausgabe per mist.ini.

Ich hoffe, ich habe nix vergessen. Ich finde es sehr erfreulich, wie sich die MIST-Community über die Jahre entwickelt hat – zu Anfang lag noch viel Last auf den Schultern des MIST-Erfinders, aber in letzter Zeit gibt es immer mehr Contributers. Es bleibt spannend. Wenn jetzt noch Stephen Leary ein paar seiner geplanten Erweiterungen des Archimedes-Cores nachlegt…

RetroPie vs. MiST: erste Eindrücke

 Retrogaming  Kommentare deaktiviert für RetroPie vs. MiST: erste Eindrücke
Jan 252016
 

Als Kind der 80er mit besonderer Affinität zum Schneider CPC und tausenden Spielstunden Erfahrung mit Klassikern wie Bomb Jack, Nemesis, R-Type, Gryzor, Ikari Warriors, Renegade, Savage, Sorcery, Hexenküche II, Deflektor, Grand Prix Simulator, BMX Simulator, Barbarian, IK+, Highway Encounter, The Bard’s Tale, Boulder Dash, Bruce Lee, Combat School, Commando, Defender of the Crown, Speedking, Super Hang-On, Wec Le Mans, Prohbition, Silent Service, Gunship, They $tole a Million, Impossible Mission, Winter Games, Barry McGuigan’s Championship Boxing, Ping Pong, Yie Ar Kung Fu, Puzznic, Saboteur, Spindizzy, Ghost’n’Goblins, Western Games, Werner – Mach Hin! und Boulder Dash – um nur die wichtigsten zu nennen – bin ich immer auf der Suche nach Lösungen, die alten Schätzchen neu erleben zu können.

Seit einiger Zeit betreibe ich dazu das MiST-Board (alte Blog-Posts dazu hier, hier und hier), welches gute Dienste leistet, aber bekanntlich ist ja das Bessere des Guten Feind. Als Besitzer diverser Raspberry-Pi-Modelle – natürlich vornehmlich zum Einsatz von RISC OS – lag es nahe, eine der Emulationslösungen auf dem Pi unter die Lupe zu nehmen.

Als Distribution zum Testen habe ich mir RetroPie ausgesucht (Version 3.3), das im Prinzip eine benutzerfreundliche Schale um EmulationStation ist und Raspbian als Unterbau verwendet. Als Hardware-Basis dient ein RPi 2 Model B, um ein bisserl Luft für die CPU-intensive Emulation zu haben. Als Controller verwende ich einen Competition Pro USB, um das originale 80er Microschalter-Feeling zu genießen.

Der erste Test war natürlich mit dem CPC-Emulator (caprice32 wird hier als Backend verwendet). Dazu schnell ein paar DSKs per Netzwerk (RetroPie richtet standardmäßig SMB-Freigaben ein) auf den Pi gespielt, diese wurden problemlos erkannt und nach Auswahl von “Amstrad CPC” in einer grafisch schicken Liste angezeigt. Wie überhaupt die grafische Präsentation von RetroPie sehr schön aussieht. Nacheinander habe ich Bomb Jack, Nemesis, Grand Prix Simulator und Gryzor angetestet, sowohl mit Joystick als auch mit Tastatur gesteuert (traditionell spiele ich CPC-Spiele oft mit der Tastatur, weil ich zu Anfang meiner CPC-Karriere schlicht keinen Joystick hatte – der Computer war ja schließlich Lern- und Arbeitsgerät :-)). Optisch und akustisch ist das alles einwandfrei (eine echte Prüfung für Emulatoren ist immer die Sprachausgabe von Grand Prix Simulator). Aber ich hatte ständig das Gefühl, das was nicht stimmt. Ich kann es nicht genau sagen, aber irgendwie stimmt das Timing nicht. Die alten Rückenmarksreflexe funktionieren nur ab und zu – und dass die eigentlich noch in Ordnung sind, zeigt der Wechsel zum MiST – dort habe ich jederzeit das Gefühl, vor einem Original-CPC zu sitzen.

Das MiST ist also mein Favorit bezüglich des originalgetreuen Spieleerlebnisses. Was also spricht für RetroPie? Eine ganze Menge. Der Pi ist preiswerter als das MiST. RetroPie unterstützt mehr Plattformen. Bluetooth-basierte Controller können verwendet werden (dafür nicht ohne weiteres die klassischen Atari-kompatiblen digitalen Joysticks). Ein Anschluss an moderne Fernseher oder Projektoren per HDMI ist völlig problemlos. Auch komplexe Plattformen können emuliert werden – das MiST ist vermutlich irgendwo zwischen Amiga und Archimedes am Ende, der Pi 2 hat genug Saft für PS1, Sega 32X und Nintendo N64. Das Handling des MiST mit den SD-Karten ist uneleganter als die Befütterung des Pi über Netzwerkfreigaben. Die Auswahl der Spiele ist deutlich hübscher als über das schmale OSD-Menü des MiST.

Und kaum schreibe ich das alles auf, schon gibt es eine neue Version von RetroPie: 3.4 wurde am 2016-01-21 veröffentlicht, das unter anderem nun Debian Jessie statt Wheezy als Basis verwendet. Ansonsten klingen die Änderungen eher nach Bugfixing als nach Feature-Revolution.

Abgesehen davon gibt es Alternativen wie Lakka und Recalbox die auch noch ausprobiert werden müssen.

Aber am Ende bleibt die Erkenntnis: bevor man zu lange überlegt, einfach beides kaufen und Spaß haben.

Artikelserie vom MiST-Meister in der c’t

 Hardware, Software  Kommentare deaktiviert für Artikelserie vom MiST-Meister in der c’t
Sep 202015
 

Das MiST-Mastermind Till Harbaum hat in der aktuellen, morgen am Kiosk erscheinenden c’t (Ausgabe 21/2015) den ersten Teil einer bisher auf (mindestens?) drei Teile geplanten Artikelserie publiziert. Darin geht es um die Basics rund um die FPGA-Programmierung, und natürlich dient das MiST-Board als Basis für diese Experimente.

Wer schon immer wissen wollte, wie das mit der “Magic” der MiST-Cores so funktioniert, könnte dümmeres tun, als sich die neueste c’t zu holen. Auch wenn das einzige Ergebnis des ersten Teils ist, die gelbe LED des MiST-Boards blinken zu lassen.

Für den zweiten Teil der Serie ist ein Pong-Klon angekündigt, sprich man erfährt wie die Videoausgabe funktioniert und wie man auf Eingaben des Benutzers reagiert. Im dritten Teil geht es dann ans Eingemachte: eine Z80-Implementierung nebst Speicher und Videocontroller kommen zum Einsatz – als alter Z80-Hase freue ich mich darauf besonders.

Neben der bloßen Verwendung vorgefertigter Cores wird dem MiST-Projekt also eine weitere, interessante Facette hinzugefügt.

Erste Gehversuche mit dem MiST-Board

 Hardware  Kommentare deaktiviert für Erste Gehversuche mit dem MiST-Board
Aug 162015
 

Im April hatte ich nebenan im RISC OS-Blog kurz über das MiST-Board berichtet, und zwar anlässlich des ersten Archimedes-Cores.

Wer nach “Core”, “MiST” und “Archimedes” nur Bahnhof versteht, hier die Schnellbleiche. Das MiST-Board ist im Prinzip ein kleiner Computer. Kernstück ist aber nicht eine gewöhnliche CPU, sondern ein FPGA. Also ein frei reprogrammierbarer Logikbaustein. Hier kommt dann die Begrifflichkeit des “Cores” ins Spiel. Ein solcher “Core” konfiguriert den FPGA. Und im Falle des MiST emuliert (oder besser simuliert) der FPGA dann einen kompletten Rechner der 80er oder frühen 90er.

Das Mastermind hinter dem MiST, Till Harbaum, kommt aus der Atari ST-Szene und hatte ursprünglich das Ziel, auf dem MiST einen Commodore Amiga (“Mi”, als Ablösung für das Minimig) und einen Atari ST (“ST”) nachzubilden. Wer die Historie nachlesen will, fange bei diesem Thread im Atari-Forum an. Dieses Ziel ist inzwischen weit übererfüllt. Der ST-Core kann inzwischen auch einen deutlich schnelleren STE nachbilden, der Amiga-Core hat inzwischen auch die Geschmacksrichtung AGA drauf. Und es sind zig Cores dazugekommen: Arcade-Automaten wie Pacman, Space Invaders und Moon Patrol, 8bit-Heimcomputer wie Schneider/Amstrad CPC, Commodore 64, Atari XL, MSX und Sinclair ZX Spectrum, frühe Spielkonsolen wie Atari VCS 2600 und CBS ColecoVision ebenso wie ihre etwas moderneren Nachfahren Nintendo Entertainment System, Sega Master System und NEC PC-Engine (auch als TurboGrafx bekannt).

Nun können heutige PCs mit Leichtigkeit ebenso diese kompletten Rechner und Spielkonsolen emulieren. VICE, Hatari, UAE, ArcEm, WinAPE, MAME, DosBox – die Liste ist endlos. Warum also nicht auf diese zurückgreifen? Ich würde nicht empfehlen, diese Frage im falschen Forum aufzuwerfen – die Fronten stehen sich unversöhnlich gegenüber. Die FPGA-Front reklamiert für sich, das echte Retro-Feeling bereitzustellen – ohne künstlich konvertierte Framerates, ohne Lags bei Tastatur und Joystick, ohne ewig Windows oder Linux booten zu müssen, und das alles in einer kleinen Box, die man auch mal zum Kumpel mitnehmen kann.

200€ sind aufgerufen für ein MiST-Board, käuflich zu erwerben z.B. bei Lotharek in Polen oder beim DragonBox Shop in Deutschland. Konkurrenz gibt es momentan eigentlich immer noch keine – FPGAArcade ist in den Startlöchern, aber das auch schon seit Jahren. Andere Projekte sind sehr speziell, wie z.B. das Suska-Board, das sich ganz der Atari ST-Welt verschrieben hat.

Nun habe ich – untypisch für mich, aber der Titel verrät es schon – das MiST-Board nicht nur gekauft, sondern tatsächlich auch in Betrieb genommen. Man sollte sich nix vormachen: das MiST-Board ist zwar durchaus professionell gefertigt und steckt in einem stabilen Metallgehäuse, aber der Feinschliff einer kommerziellen Ready-to-run-Lösung wird logischerweise nicht erreicht. Ein paar Hürden will ich nennen.

Zunächst sollte man die Firmware aktualisieren auf die neueste Version – oft sind neue Versionen von Cores zwingend auf Features neuer Firmware angewiesen, und wenn man nicht aufpasst, bekommt man merkwürdige bis verwirrende Fehlersituationen. Gott sei Dank ist der Upgrade einfach – SD-Karte (muss FAT-formatiert sein!) mit der neuesten firmware.upg-Datei bestücken und übers OSD updaten. Woher man die Firmware bekommt? Das MiST-Projekt wird auf Google Code gehostet, Firmware liegt frisch im SVN.

Klingt einfach? Nicht ganz, denn das OSD (erreichbar über den mittleren Taster) gibt es nur, wenn ein Core erfolgreich geladen wird. Man braucht also immer ein gültiges core.rbf auf der SD-Karte. Ich empfehle einen Atari-ST-Core. Mein MiST wurde mit einer Firmware-Version von April ausgeliefert, passend sind also ST-Cores ab Revision 1017.

Ein Stolperstein kann auch die verwendete SD-Karte sein. Eine SanDisk Ultra 2 GB aus meinem Bestand zeitigte merkwürdige Effekte, eine Transcend microSD 32 GB funktioniert völlig problemlos.

Kompliziert ist das Zusammenspiel mit moderner Hardware, namentlich dem Bildschirm. Das MiST-Board ist mit einem VGA-Ausgang ausgestattet. Also eher old-school. Aber lange nicht so old-school wie der simulierte Hardware. Und hier beginnen die Probleme. Seit die Welt moderne LCDs nutzt, wird dem analogen Videoeingang wenig Aufmerksamkeit gewidmet. Und so kommt es, dass die unterstützten Bildschirmmodi immer enger definiert werden. Oft werden von modernen Monitoren und Fernsehern nur noch die VESA-Modi unterstützt, und das stürzt uns Europäer in Sachen MiST in die Krise: ein europäischer Heimcomputer muss selbstverständlich 50Hz Bildwiederholfrequenz ausgeben, egal ob C64, Schneider CPC oder Amiga. Immerhin hat das MiST-Board einen Scandoubler mit an Bord, so dass nicht noch zusätzlich die 15kHz-Zeilenfrequenz-Krise über uns hereinbricht. Für echte Old-Schooler mit NEC MultiSync 3D oder ähnlich altgedienter Hardware kann man den Scandoubler per ini-Datei auch deaktivieren.

Erstes Ergebnis: mein Monitor (der eigentlich ein Fernseher ist – ein LG 22″er) mag nur mit den Arcade-Cores und dem Atari ST-Core zusammenspielen. Meine guten alten CRTs (der angesprochene NEC MultiSync 3D und ein Nokia 19″er) hingegen konnten auch mit dem 50Hz-Signal des CPC-Cores, des Amiga-Cores und des C64-Cores etwas anfangen. Der LG hat auch einen RGB-fähigen Scart-Eingang, d.h. dort könnte ich noch einen Versuch mit deaktiviertem Scandoubler starten. Versuche mit meinem Fernseher (älterer Toshiba-LCD) und meinem Projektor (Sanyo PLV-Z3) stehen noch aus, ebenso mit meinen zwei älteren LCD-Monitoren. Einige Cores kann man auf 60Hz-Betrieb umkonfigurieren, ob das im Einzelfall hilft muss ich noch testen.

Leider habe ich nirgendwo eine gescheite Lösung für dieses Problem gefunden. Es gibt VGA-HDMI-Konverter, aber die sind eher zickig. Es gibt Scart-HDMI-Konverter, für die gilt dasselbe. Es gibt professionelle Scaler-Lösungen, die sind eher teuer. Es gibt nirgendwo eine Liste von “guten” Monitoren, die mit den entsprechenden Analog-Signalen klarkommen. Am Vielversprechendsten erscheint mir noch ein kleines Stück Hardware, das in diesem Forum vorgestellt wird.

Soviel zu den Hardware-Hürden. Aber auch die Software-Hürden sind nicht zu unterschätzen, insbesondere wenn man die Original-Rechner niemals besessen hat. Eine kurze Sammlung: für den Betrieb des Amiga-Cores braucht man selbstverständlich ein Kickstart-ROM. Woher nehmen? Zwei legale Möglichkeiten: aus einem alten Amiga auslesen, oder die kommerzielle Emulationslösung “Amiga Forever” käuflich erwerben. Letzteres habe ich getan. Die Überraschung: jetzt habe ich zwar Lizenzen für alle möglichen Kickstart-Versionen der Welt, aber leider liegen sie nur in verschlüsselter Form vor. Gott sei Dank wusste das Internet Abhilfe. Beim Atari ST-Core ist die Sache etwas einfacher, da gibt es mit emuTOS eine Betriebssystemvariante, die als Open Source vorliegt. Wer Original-TOS-Versionen betreiben will, muss sich leider aus zweifelhaften Internet-Quellen bedienen.

Und wer wie ich den Archimedes-Core betreiben will, braucht natürlich ein lizenziertes RISC OS. Also wieder: aus einem alten Rechner rippen, oder bei RISC OS Ltd. kaufen – dort ist recht preiswert eine Sammlung alter Betriebssystemversionen von Arthur 0.30 bis RISC OS 3.71 mit allem dazwischen für 10 englische Pfund erhältlich. Ironischerweise – vielleicht würde dieser Artikel sonst im RISC OS-Blog erscheinen und nicht im IT-Blog – ist es mir nicht gelungen, den Archimedes-Core in Betrieb zu nehmen, der Bildschirm blieb schwarz – aber ich bleibe dran. Möglicherweise nur ein Problem mit dem MonitorType.

Meine MiST-Ziele für die absehbare Zukunft:

  • CPC-Core: Bomb Jack, Ikari Warriors und Black Land spielen
  • Amiga-Core: Katakis und Turrican spielen
  • C64-Core: Armalyte und IO spielen
  • Atari VCS 2600-Core: Jungle Hunt und Enduro spielen
  • Arcade: Pacman und Space Invaders spielen
  • Acorn Archimedes: Zarch und Elite spielen, lauffähig mit RISC OS 2 und RISC OS 3.1 mit Minimal-Floppy-Boot

Ich denke, das MiST-Projekt könnte durchaus davon profitieren, wenn “fertige” SD-Card-Images (soweit es die rechtliche Lage erlaubt) verfügbar wären und etwas benutzerfreundlichere Dokumentation, wo man nicht so viel zwischen den Zeilen lesen und sich viele Informationen von mehreren Stellen zusammenholen muss. Könnte was für mich sein.

Bits frickeln mit Java

 Java, OS, Software  Kommentare deaktiviert für Bits frickeln mit Java
Aug 072018
 

Gerade bin ich dabei – zum besseren Kennenlernen von Filecore-basierten Dateisystemen (man muss den Feind kennen) – in Java ein kleines Tool zu entwickeln, das Disc-Images im Filecore-Format versteht und Dateien und Verzeichnisse daraus extrahieren kann. Nur lesend, um weitere Komplexitäten erst mal zu vermeiden.

Etwas Hintergrund: Filecore ist das native Dateisystem unter RISC OS. Oft wird es auch als “ADFS” bezeichnet, weil das “Advanced Disc Filing System” quasi die erste Implementierung von Filecore war (damals, Floppy-Zeit, zur Archimedes-Ära 800 KiB auf einer 3,5″-DD-Diskette), bevor es abstrahiert und generalisiert als Basis für Disketten- und Festplattenformate in RISC OS Einzug hielt. Es gab über die Jahre reichlich Varianten, um die diversen Einschränkungen und Limits in den besser nutzbaren Bereich zu schieben – das E-Format ist das Übliche für DD-Disketten (800 KiB) und man findet es heute in den Weiten des Internets als .adf-Disc-Images der klassischen Archimedes-Software. Später kam das F-Format für die HD-Floppies (1600 KiB). Schließlich wurde mit RISC OS 4 das E+/F+-Format eingeführt (“Big Map”), um die lächerlich niedrige Grenze solcher Dinge wie “maximale Anzahl von Einträgen in einem Verzeichnis” auf ein halbwegs erträgliches Niveau zu heben.

Wie auch immer – beim Hantieren mit Emulatoren und natürlich dem MIST(er) hat man häufig mit diesen .adf- (Floppy-Images) und .hdf- (Harddisc-Images) Dateien zu tun. Oftmals will man “nur kurz” einen Blick reinwerfen und dazu nicht gleich den Emulator hochfahren. Zumal die Emulatoren auch nicht alle so richtig nutzerfreundlich sind was das “Mounten” des Images angeht.

Also: ein Tool muss her. Systemunabhängig und natürlich mit anständigem UI. Also Java. Das Problem: Filecore wurde von echten Bitfuchsern entwickelt. Da wimmelt es nur so von Bitleisten, unsigned values mit allem zwischen 8 und 64 bit und sonstigem, was unter Java nicht so richtig “nativ” unterstützt wird. Übrigens gibt es Spezialisten, die es auch noch gut finden, dass Java keine “unsigned types” hat – für mich ist dieser Artikel ein Beispiel dafür, wie eine limitierte Erfahrung auf nur wenige Programmiersprachen den Blick aufs wesentliche vernebeln kann, denn die allermeisten der genannten Probleme sind nur inhärent im Java- und C-Typsystem, aber in vernünftigen Sprachen wie Ada elegant gelöst. Dumm, dass die Java-Erfinder vermutlich einen genauso eingeschränkten Blickwinkel hatten – C, C++, Smalltalk, Ende der Geschichte. Aber ich schweife ab.

Jedenfalls habe ich nach Bibliotheken gesucht, die unter Java die Bitfrickelei und unsigned types im Handling etwas angenehmer machen. Leider bin ich bis auf Lukas Eders jOOU-Bibliothek auf nix gescheites gestoßen. Klar, im Apache-Commons-Universum gibt es ein paar Dinge, in Guava ebenso, und sogar Oracle hat das Licht gesehen und ein paar nützliche Dinge in Java 8 nachgerüstet. Also: selbst ist der Mann. “Not invented here” ist schließlich eine der grundsätzlichen Triebfedern der IT.

Es sei denn, jemand hat einen Hinweis auf eine vernünftige, umfassende Bibliothek um meine Bedürfnisse zu erfüllen. Unter ebenso vernünftiger Open-Source-Lizenz natürlich. UAwg! Nebenbei: die eigentliche Implementierung ist nun nicht das große Problem, das Finden geeigneter Doku und fehlerarme Interpretation derselben nebst Erkennen gewünschter und unerwünschter Abweichungen davon in der Praxis hingegen schon. Hat man das Problem erst mal in einer Sprache geknackt, sollte eine Portierung in andere Sprachen kein großes Problem sein. Es wäre eine interessante Fallstudie, den Ada-Code neben dem Java-Code zu sehen.

Und falls jemand ein anständiges (nicht jedoch komplexes!) Dateisystem kennt mit einer simplen Implementierung in einer freien Lizenz – mail me. Filecore hat einen Nachfolger schon seit etwa 30 Jahren verdient.