Die Geschichte des Emu64
Obwohl es schon einige C64 Emulatoren gab, habe ich mir das Ziel gesetzt, einen eigenen Emulator zu schreiben. Das Wissen über den C64 habe ich mir über Buchliteratur und Tests an realer C64 Hardware angeeignet.
Zwischen 1998 und 2000 wurde der Emu64 unter DOS in x86 Assembler programmiert und entwickelt. In dieser Zeit habe ich sehr viel Grundlagenforschung betrieben um meine Vision zu einem eigenen C64 Emulator umzusetzen. Es wurde dem DOS Programmierer zu dieser Zeit nicht mehr leicht gemacht, Windows war schon weit verbreitet. Deshalb ging ich dann auch mit der Zeit und konvertierte den Emu64 nach Win32. Dadurch, dass Hardware immer weniger unter DOS mit Treibern unterstützt wurde, gab es den ersten großen "Wechsel" für Emu64.
Für alle die wissen wollen wie der Quellcode damals aussah, können ihn sich auf GitHub gerne ansehen. Emu64 DOS Version (x86 Assembler)
Die Entwicklung wurde nun ausschließlich unter Windows 9x/2000 fortgesetzt. Die erste Windows Version erschien ein knappes halbes Jahr später mit der Versionsbezeichnung 1.11. Wobei hier die Emulation ausschließlich im Vollbildmodus stattfand. Ein Fenster für den C64 Screen gab es hier noch nicht. Als Programmiersprache wurde nun zusätzlich C++ genutzt. Die Emulation selbst wurde weiterhin in Assembler geschrieben. Bis ins Jahr 2006 gab es diverse Versionen, wobei es eine größere Pause bis zur Version 3.03 gab.
Ab dieser Version wurde Windows Vista unterstützt.
Die Emulationsroutinen wurden nun ebenfalls komplett in C++ umgesetzt. Als neues Highlight wurde die Gamebase64 implementiert. Mit der Gamebase64 wurde es möglich sich Spiele aus einer Internet Datenbank auszuwählen, zu laden und zu spielen. Im Oktober 2007, zur Veröffentlichung, gab es eine neue Funktion. Das LAN64, eine Möglichkeit Programme vom Emu64 auf einen richtigen C64 (ins RAM) zu transferieren. Hierzu wird ein spezielles Kabel benötigt, was die Parallelschnittstelle vom PC mit dem Userport des C64 verbindet. Um div. Soundprobleme zu beseitigen wurde zur nächsten Version die SID Emulation komplett überarbeitet.
Im Dezember 2007 wurde die letzte 3er Version vom Emu64 veröffentlicht. Im Januar 2008 habe ich bekannt gegeben Emu64 .Net Framework tauglich zu machen. Diese werden nur für das Frontend des Emu64 genutzt und hilft die Windows Kompatibilität zu verbessern.
Anfang 2009 wurde die Emu64 Anwendergemeinde nicht nur mit einem neuen Forumsauftritt überrascht, sondern auch mit einer Emu64 Version 4.00. Altanwender waren darüber überrascht, dass div. Funktionen aus der Version 3.40 entfernt wurden. Der Hintergrund hierfür ist, das ein weiterer Programmcodewechsel stattgefunden hat. Emu64 wird nun unter Visual C++ 2008 und .Net Framework 2.0 entwickelt. Hierzu habe ich den Sourcecode 100% überarbeitet. Mit der darauf folgenden Version 4.10 wurde das LAN64 wieder implementiert. Als weitere Überraschung wurde der Emu64 -Little- Version 1.10 im April 2009 veröffentlicht. Der kleine Bruder ist eine abgespeckte Version die ohne Installation lauffähig ist. Eine interessante Variante für Anwender, die ihren C64 Emulator mit einen USB Stick dabei haben wollen. Die Gamebase64-Unterstützung die von vielen Anwendern vermisst wurde, ist mit der Version 4.20 wieder implementiert worden und als weitere Neuerung die EasyFlash CRT-Unterstützung.
Am 09.05.2010 kam dann die letzte offizielle Version der 4er Reihe heraus, die Version 4.30. Es gab dann noch eine inoffizielle Version 4.40 die aber nie veröffentlicht worden ist.
Ab März 2011 wurde nun die Ära der 5er Serie eingeläutet. Ich habe mal wieder angefangen alles auf den Kopf zu stellen und wechselte privat von Windows zu Linux und entwickle fortan nun unter diesem Betriebssystem. Das brachte natürlich auch beachtliche Änderungen am Emu64, um nicht zu sagen alles außer die Emulationsroutinen mussten mal wieder neu geschrieben werden. Ab nun wird anstatt .NET das Framework Qt verwendet und SDL/OpenGL für die C64 Ausgabe. Durch die Benutzung Freier OpenSource Bibliotheken ist es möglich eine Emu64 Version für mehrere Betriebssysteme zu erstellen also Plattform unabhängig.
Zwischen März 2011 und April 2017 kamen immer nur sogenannte „Development Snapshots“ heraus da hier der Großteil noch portiert wurde. Der lange Zeitraum liegt darin begründet das ich in dieser Zeit mein Techniker Studium in Teilzeit (Abendstudium) absolviert habe. Da blieb leider so gut wie keine Freizeit für den Emu64.
Im März 2018 kam dann die Version 5.0.18 heraus wo nun die meisten Sachen Portiert wurden und nun auch eine brauchbare Version zu Verfügung stand. Außerdem wurde am 6.3.2018 Emu64 offiziell zu einem Projekt der OpenSource Gemeinde und lebt fortan auf GitHub, Quelloffen und für jedermann Einsichtbar.
So, das wäre im Groben die Geschichte meines Lebensprojekts an welches ich ja nun schon über 2 Jahrzehnte arbeite, mal intensiver und mal mit etwas Pausen. ;)
Thorsten Kattanek
Berlin, 12.04.2022