Hello, Guest the thread was viewed5k times and contains 100 replies

last post from frank128 at the

Mega65 Ketzer Thread

  • Um mal wieder "ketzerisch" zu werden, was mich am MEGA65 am meisten enttaeuscht hat, ist der C64-Modus (nicht der Core). Ich hatte eigentlich wirklich gehofft, dass dieser sehr kompatibel sein wuerde, zumindest so, dass man 9 von 10 Spielen im C64-Modus spielen kann. Auch war das tatsaechlich mal der Plan der MEGA65-Entwickler. Leider gab es da wohl dann doch Schwierigkeiten, sodass der C64-Modus zwar besser sein soll als der des C65, aber immer noch bedauerlich unkompatibel. Ich habe mal einen Schwung an Spielen getestet, ich denke es waren mindestens 40-50 Titel, und davon liefen vielleicht 20%.


    Natuerlich kann man den C64-Core nutzen, der soll ja wirklich supergut sein. Aber das ist fuer mich irgendwie ein "Bruch". Ich muss dazu neu booten, eine Taste gedrueckt halten, einen anderen Core waehlen, und auf einmal ist das kein MEGA65 mehr, der C64-Spiele abspielt, sondern es ist jetzt halt wirklich "nur" noch ein C64. Das mag fuer Pragmatiker kein Problem sein, aber fuer mich ist das ein Verlassen der illusorischen C65-Welt. Auch sieht die Grafik voellig anders aus. Die Farben sind anders, das Scaling ist anders (zumindest auf meinem VGA-Monitor). Das Menue ist anders, die MEGA65-Features (wie z.B. der Freezer) funktionieren nicht mehr.


    Ich hatte mich eigentlich auf einen "erweiterten C64" gefreut, einen C64DX (wie der C65 urspruenglich als Codename hiess). Ein C64, der immer noch ein C64 ist, aber mehr kann. Mit dem man dann aber auch das alte Zeug laufen lassen kann. Wenigstens 9 von 10 Spielen. Aber mit den selben Farben, den selben Scanlines, dem selben Feeling. Und das konnte der MEGA65 schlussendlich nicht halten (und das haette auch der C65 nicht gehalten!).



    Eine andere Sache, die ich total nervig finde (vielleicht ist es inzwischen anders - mein Wissensstand ist mit Sicherheit ueber 1 Jahr alt) ist der Umgang mit den Dateiformaten, SD-Karten, Images, Disketten, usw. Irgendwie ist das alles so umstaendlich. Hinten ist so eine winzige MicroSD-Karte, aber die deutlich handlichere normalgrosse SD-Karte ist unten hinter einer Klappe versteckt. Wenn ich Programme auf den MEGA bringen will, muss ich diese erst in D81-Images reinknallen, bevor ich damit auf dem MEGA was anfangen kann. Das Mounten im Freezer hat oft auch nicht so richtig funktioniert, zumindest hatte ich da oftmals Probleme (keine Ahnung ob das Bugs waren die inzwischen vielleicht weg sind). Letztendlich verwenden wohl viele den JTAG-Adapter fuer sowas, aber das fuehlt sich fuer mich dann auch wieder nicht wie ein "richtiger, eigenstaendiger Rechner" an, sondern eher wie ein PC-"Slave". Auf dem Ultimate64 habe ich hinten 2 USB-Ports, da stecke ich einfach 'nen Stick rein, gehe in das Menue und los gehts. Beim MEGA dauert irgendwie alles immer 3x so lange, bis ich da endlich mal mein Zeugs drauf laufen lassen kann. Beim MEGA wollte man keine USB-Ports anbieten, weil das ja nicht "retro" sei, aber man hat kein Problem damit, einen MicroSD-Karten-Slot einzubauen.


    Am liebsten wuerde ich ja alles mit Disketten machen, am besten mit DOS-formatierten Disketten, dann koennte ich hier am PC einfach ein externes USB-Laufwerk anschliessen und meine Sachen per Diskette transferieren. Da waere dann noch retro-maessig und wuerde Spass machen. Aber jedesmal die MicroSD-Karte rausfummeln geht mir auf die Nerven, und JTAG klingt fuer mich nach "permanent offenes Gehaeuse" und zudem stehen bei mir PC und MEGA65 nicht im selben Zimmer.

  • Wenn ich Programme auf den MEGA bringen will, muss ich diese erst in D81-Images reinknallen, bevor ich damit auf dem MEGA was anfangen kann.

    PRGs lassen sich auch direkt von der SD Karte starten



    JTAG klingt fuer mich nach "permanent offenes Gehaeuse" und zudem stehen bei mir PC und MEGA65 nicht im selben Zimmer.

    M65Connect funktioniert inzwischen auch via LAN, kein JTAG mehr notwendig :)



    Beim MEGA wollte man keine USB-Ports anbieten, weil das ja nicht "retro" sei, aber man hat kein Problem damit, einen MicroSD-Karten-Slot einzubauen.

    UND einen HDMI Port ... aber Hauptsache USB ist nicht "Retro" genug :facepalm:

  • Die Hardware-Emulation emuliert auf der Chip-Ebene und kommt damit dem Original sehr nahe.

    Bitte nicht einfach Verkaufs-PR nachplappern. FPGAs sind nicht per se "besser" als alles andere, und selbst der HDL-Code muss nicht "schöner" sein und ist es auch häufig nicht:

    https://github.com/randyrossi/…f8f96f/hdl/sprites.v#L203

    Da sind also teilweise wirklich exakt die gleichen Hacks drin wie auch in C-Code.

    Du kannst Dir sicher sein, dass im originalen VIC-II nirgends was in Richtung if (cycle_num == `SPRITE_CRUNCH_CYCLE_CHECK) begin drinsteckt.


    Was FPGAs allerdings den meisten (siehe unten) CPU/"Software"-basierten Ansätzen voraushaben, ist die immense parallele Rechenleistung bei gleichzeitig definierten engen Latenzzeiten.

    Das kommt aber auch daher, dass die bei diesen Projekten eingesetzten FPGAs eben keine "kleinen" Lösungen sind, sondern ganz schön teure aufwendige Chips, die von den Herstellern für Anwendungsbereiche im GHz-Bereich beworben werden. Damit dann einen 6510 zu emulieren ist schon ganz schön Kanonen auf Spatzen.

    Der Punkt ist halt dass FPGA Dinge kann, die ein Software-Emulator aus Prinzip nicht kann, oder vielleicht erst in vielen Jahren. Beispielsweise echte Parallelitaet

    Naja. https://github.com/c1570/Connomore64 und C64-Rebuild auf 3,3V-Basis mit X uCs möglich?

    Das ganze Türmchen da kostet keine 20€ und läuft auf die Mikrosekunde genau, ohne auch nur einen CPLD oder FPGA, und "Parallelität" gibt's da mehr als genug.

  • Ah ok, das ging anfangs noch nicht (soweit ich weiss - oder ich habs nicht geblickt)

    Ging glaube ich schon von Anfang an, einfach ein ",U12" hinten dranhängen an den LOAD Befehl ;)


    Problem ist natürlich, dass das nur mit OneFilern geht, nachladen ist nicht ...

  • Naja. https://github.com/c1570/Connomore64 und C64-Rebuild auf 3,3V-Basis mit X uCs möglich?

    Das ganze Türmchen da kostet keine 20€ und läuft auf die Mikrosekunde genau, ohne auch nur einen CPLD oder FPGA, und "Parallelität" gibt's da mehr als genug.

    Das mag schon sein, aber meist wird ja bei Software-Emulatoren von einem Einsatz auf einem PC/Laptop oder aehnlichem gesprochen. Wo ein Betriebssystem laeuft, wo der Emulator dann einfach als ganz normales Programm laeuft, wo man 50/60Hz-Ruckler haben kann, wo man Input-Lag vom USB-Joystick haben kann, wo man zeitversetzten Sound hat wegen Audio-Buffer, usw.


    Ein Ultimate64 kann ich am Roehrenmonitor betreiben und wenn ich Bock habe auch meine 1541 anschliessen. Und ich habe wirklich zu 100% das Gefuehl, an einem echten C64 zu sitzen, obwohl es keiner ist. Das hat mir ein Software-Emulator am PC bisher noch nicht geben koennen.

  • Das mag schon sein, aber meist wird ja bei Software-Emulatoren von einem Einsatz auf einem PC/Laptop oder aehnlichem gesprochen

    Also eigentlich hast Du explizit "aus Prinzip" geschrieben...

    Ja das habe ich, trotzdem war in der Diskussion die Rede von Software-Emulatoren auf dem PC (als Gegensatz zu externen FPGA-basierten Geraeten wie dem MiSTer oder MEGA65). Und es ist auch "aus Prinzip" nicht falsch, auch wenn es sein mag, dass es unter gewissen Umstaenden nicht mehr ins Gewicht faellt ;)

  • Naja die Hälfte von dem, was Du aufgezählt hast, ist nichtmal "Prinzip", sondern reines Konfigurationsproblem.


    Der einzige "nahezu" prinzipbedingte Vorteil einer FPGA-Lösung ist, dass sie tatsächlich kompatible Legacy-Schnittstellen anbieten kann (IEC, Expansionsport, Userport, Datasette, Joysticks, Tastatur). Das bekommt man im Umfeld von PCs mit ihren "och ich lege mal 50uS lang ein Päuschen ein"-Betriebssystemen nicht hin.


    Und da finde ich beim MEGA schon eher schwach, dass er eben nicht direkt auch mit Userport kommt, das hätte einfach dazugehört.

  • Zu den Legacy-Schnittstellen wuerde ich dann aber auch noch analoge Bild- und Tonausgabe hinzuzaehlen :)


    Ansonsten, die echte Parallelitaet bekommst Du bei Deinem "Tuermchen" ja auch nur ueber den Einsatz mehrerer Chips hin, oder? Das hat ja nix mit Konfiguration zu tun (es sei denn Du meinst die Hardware-Konfiguration - aber dann sind wir ja bereits bei "Hardware").


    Natuerich koennte man auch jeden einzelnen Chip des C64 in Software auf einem eigenen Mikrocontroller emulieren und daraus dann einen C64 bauen, auf einem ins C64-Gehaeuse passenden Mainboard, aber ob man das dann noch einfach so als "Software-Emulator" abtun kann, ist natuerlich Definitionssache. Ungefaehr genauso wie beim FPGA, wo einige ja auch von "Software" reden, weil die Firmware ja in Form von Software vorliegt.

  • Der Punkt ist halt dass FPGA Dinge kann, die ein Software-Emulator aus Prinzip nicht kann, oder vielleicht erst in vielen Jahren. Beispielsweise echte Parallelitaet, verzoegerungsfreien Input/Output, und solche Geschichten.

    Ja, wenn man die letzten ms braucht, dann ist man mit FPGA schon im Vorteil. Ich bin leider in einem Alter wo ich solche Actionspiele, wo es wirklich framegenau sein muss nicht mehr spiele. Soweit ich weiß kann man aber mit Beamracing ala WinUAE da schon eine Menge rausholen, ob da dann noch jemand groß den Unterschied zu wirklich 0 Latenz merkt? Auf jeden Fall wäre halt Latenz kein Punkt um mir Hardware hinzustellen. Aber das ist jetzt keine Punkt Pro oder Kontra Mega65. Nur weil ich keine Hardware brauche für mein Retrofeeling, bedeutet das ja nicht dass anderen das auch so geht. Der wirkliche Hauptkritikpunkt ist wirklich dass das Teil von Anfang ein vollwertiger C64 hätte sein müssen und das auf dem Level vom Ultimate oder TC64. Wie schon geschrieben, dieses C65 ist ja ganz toll, aber wer macht damit wirklich was, außer die Entwickler? C65 ist ja nichts Nostalgisches, den hatte ja keiner.

    Wie hier schon erwähnt wurde, Ein MiSTer mit dem Design wäre es gewesen und man hätte sich eine Menge Arbeit einfach sparen können und wahrscheinlich auch Kosten und das Ding wäre der Knaller geworden. So glaube ich nicht dass ich noch irgendwas Spannende für den Mega65 auf YouTube finden wäre, das Ding sieht jetzt da schon ziemlich tot aus.

  • ZeHa Mit "Konfiguration" meinte ich die PC-Betriebssystem-Konfiguration. Wer mit einem PC 50Hz-Bildwiedergabe nicht ruckelfrei hinbekommt, hat kein Problem, das man nur mit einem FPGA lösen könnte.


    Beim Türmchen laufen pro Platine zwei CPU-Kerne, zwei bis vier PIOs und noch diverse andere Funktionseinheiten parallel. Das Dekodieren der VIC-II-Grafik wird z.B. gar nicht per C-Code gemacht. Bei größeren Microcontrollern (im RP2040 sind ja nur die ganz kleinen M0+ verbaut) wäre das aber auch in C innerhalb der vorgegebenen Latenzen machbar.


    Was die Latenzen angeht, naja, diese im PC-Emulator-Bereich inzwischen möglichen Sachen wie negatives Lag dadurch, dass der Emulator bei einem Input ein paar ms in der Zeit zurückspringt - welche FPGA-Lösung bietet das denn?

  • Mit "Konfiguration" meinte ich die PC-Betriebssystem-Konfiguration. Wer mit einem PC 50Hz-Bildwiedergabe nicht ruckelfrei hinbekommt, hat kein Problem, das man nur mit einem FPGA lösen könnte.

    G-Sync oder Fresync sollte man schon haben, ansonsten macht ein Emulator nicht so viel Spaß, wenn es dann anfängt zu zuckeln und nicht alles butterweich scrollt.

  • C65 ist ja nichts Nostalgisches, den hatte ja keiner.

    Es ging aber ja beim Mega65 Projekt von Anfang an GENAU DARUM ! Eben WEIL den keiner hatte ;)

    Nostalgie kann man aber nur mit etwas verbinden was man erlebt hat. Wenn ich mir alle Prototypen von damals heute neu zusammenbaue, dann kommt doch keine Nostalgie auf, ist genau wie bei dem Apollo Amiga mit 68080 und AAA, alles ganz toll und technisch interessant, aber nostalgisch eine Nullnummer.

  • Beim Türmchen laufen pro Platine zwei CPU-Kerne, zwei bis vier PIOs und noch diverse andere Funktionseinheiten parallel. Das Dekodieren der VIC-II-Grafik wird z.B. gar nicht per C-Code gemacht. Bei größeren Microcontrollern (im RP2040 sind ja nur die ganz kleinen M0+ verbaut) wäre das aber auch in C innerhalb der vorgegebenen Latenzen machbar.

    Naja damit hast Du wohl Deine Parallelisierung in Hardware geschaffen, aber damit ist das ja auch keine "reine" Software-Emulation im klassischen Sinne mehr. Wie ist die Latenz beim Ton usw?


    Was die Latenzen angeht, naja, diese im PC-Emulator-Bereich inzwischen möglichen Sachen wie negatives Lag dadurch, dass der Emulator bei einem Input ein paar ms in der Zeit zurückspringt - welche FPGA-Lösung bietet das denn?

    Das ist aber auch eher ein Workaround, der soweit ich weiss nicht bei jedem Spiel funktioniert - aber damit habe ich persoenlich keine Erfahrung. Ein FPGA-System am CRT braucht so eine Sache halt nicht :)


    Wenn ich mir alle Prototypen von damals heute neu zusammenbaue, dann kommt doch keine Nostalgie auf

    Also bei mir kommt Nostalgie auf auch wenn ich den C65 nur vom Hörensagen kannte ...

    Ganz genauso gings mir auch. Der C65 ist halt gewissermassen ein "Mythos", der ein bisschen in Richtung "Parallelwelt" geht. Was waere wenn. Und dies nun doch noch in Form eines MEGA65 erleben zu koennen, das war schon eine coole Vorstellung. Inzwischen bin ich da aber wie gesagt nicht mehr ganz so begeistert wie urspruenglich. Aber das liegt vielleicht auch einfach in der Natur der Sache. Manche Dinge muss man halt erst erlebt haben, um zu wissen, dass sie doch nicht so cool sind wie erhofft :D

  • Nostalgie kann man aber nur mit etwas verbinden was man erlebt hat.

    Ich z.B. habe die Zeit, als der C65 im Gespräch war, erlebt und damals auch Berichte darüber gelesen. Ich hätte ganz gerne einen C65 gehabt und hätte ich auch heute noch gerne, aber für ein Gebrauchtgerät bei ebay ist leider nicht genug in meiner Portokasse. Da rückt der MEGA65 schon eher in die Nähe des Möglichen. :)


    Ich habe mich anfangs durch das C65-ROM gewühlt und dann auch viel mit Emulator bzw. Nexysboard gemacht. Die meiste Retro-Computer-Hobbyzeit in den letzten Jahren habe ich mit Sachen rund um C65/MEGA65 verbracht. Und das Alles auch mit einem großen Gefühl von Nostalgie verbunden. ;)

  • ZeHa Ich seh da jetzt den prinzipiellen Unterschied zu z.B. einem Multithreaded-Emulator auf dem PC nicht. VICE macht das glaube ich nicht, aber einige andere Emulatoren wohl schon. Die Firmware des Connomore64 (das Türmchen) kann man auch in einer PC-Version kompilieren, die benutzt dann eben mehrere Threads und eine C-Implementierung fürs VIC-II-Rendering.

    Allerdings fällt dabei ziemlich viel Synchronisationsaufwand an, weil man in Thread A ja nie weiß, wo man zeitlich im Vergleich zu Thread B gerade ist (auf dem PC). Auf Hardware weiß man das ganz genau, weil man nie unterbrochen wird. Insofern hat sich die Firmware des Connomore64 sehr ähnlich zu z.B. Floppyspeedern auf dem C64 geschrieben: man spart sich alle Synchronisation und zählt stattdessen Zyklen beim Programmieren.


    Latenzen, öhm, bei Sound weiß ich nicht, da benutze ich nur SIDKick/reSID, abseits davon fallen keine Latenzen an. Video läuft im Moment wegen Debugging noch über Framebuffer, die Video-Library benutzt aber eigentlich nur Linebuffer, schon weil der RP2040 im Allgemeinen nicht genug RAM für einen Framebuffer hat. :)


    Aber ich zieh mich mal hier raus, können ggf. gerne im Connomore-Thema weiterquatschen.