Hello, Guest the thread was viewed227k times and contains 1284 replies

last post from echo at the

Micro64 - DER c64 Emulator

  • Hallo allerseits,


    nachdem ich das Thema in einem anderen Thread kurz angerissen habe, werde ich den Micro64 (M64) (mit Erlaubnis des Entwicklers BeRo) hier mal kurz ankündigen.
    Bei M64 handelt es sich um einen absolut cycleexacten C64-Emu, bei dem aber auch wirklich ALLES cycleexact abläuft. Selbst die 1541 wird so genau emuliert, daß sogar diverse "Fehler" auftauchen, die in Wirklichkeit gar keine sind, weil in der echten Hardware ebenfalls vorhanden. :)
    Die Sid-Emu wird (wenn ich noch lange genug nörgle) wahrscheinlich auch mal als separater Player erscheinen, denn Klang und Genauigkeit übertreffen alle anderen Player bei weitem, und man ist hier echt nicht mehr weit weg von einem realen Sid.


    CPU Bugs und Hacks, wie in den anderen Emus üblich, gibts in M64 nicht. (Bitte BeRo, mach du das mal mit den Screens von der Testsuite. Ich als Anticoder kann das doch eh nicht erklären.) ;)


    Auf Grund der enormen Leistung von M64 wird ein halbwegs moderner Win-Rechner benötigt. Der Emu ist multithreaded programmiert und benutzt Shader für die PAL-Emulation.


    Die Liste der Features ist ellenlang und reicht von der automatischen Joystick-Erkennung bis hin zum exakten Floppy-Sound.


    Jetzt fragt sich sicher jeder, warum das Ding noch nicht veröffentlicht ist ... ganz einfach:
    Die VIC-II Emulation ist noch buggy und wird komplett neu implementiert - das dauert einfach noch etwas.


    In diesem Thread bitte über dieses Projekt diskutieren und natürlich auch gerne Fragen stellen.
    Ich (als Tester) werde Fragen so weit mir möglich beantworten. Wenns mir zu kompliziert wird, wird der BeRo antworten. :)


    Die Antworten auf die drei häufigsten Fragen gibts gleich vorweg:


    Es wird kein Releasedatum genannt.
    Wir brauchen zur Zeit keine weiteren Betatester.
    Es wird auch keine Public Beta geben.


    So, nu isses raus. :)

  • Auf Grund der enormen Leistung von M64 wird ein halbwegs moderner Win-Rechner benötigt.

    Ist jetzt aber nicht einfach einzuschätzen was ihr unter "halbwegs modernen WIN rechner" versteht...
    XP-only? gar Vista wegen DX10??


    Einen eigenständigen SID-Player fänd ich aber gut!
    (Könnte der dann auch wav exportieren?)


    sl FXXS

  • Also ich sag mal so:
    XP oder Vista ist egal ... wird beides gleichermaßen unterstützt. Eine DX9-Karte sollte es sein.
    Das Beschäftigungslevel meines E6700 liegt zwischen 30% und 40%.
    Was da noch wie optimiert wird, und was die neue VIC-II Emulation dann braucht wird man sehen.


    An dem Player bin ich beinhart dran. ;)
    Die Exportfunktion ist Pipifax ... also selbstverständlich.

  • Das mit dem Floppy Sound hört sich cool an,würd mich mal interessieren wie man sowas realisieren konnte.

    Das kann mindestens ein anderer Emu doch auch schon.
    Muss mal suchen...


    EDIT: Der Emu64 z.B. soll das bereits seit v3.3 können.

  • Eine Frage von einem Windows-Abstinenzler: Ist das einigermaßen OS-unabhängig programmiert und besteht daher die Chance, dass es Ports für OSX oder Linux geben wird oder ist das eher ausgeschlossen (und daher für mich dann uninteressant)?

  • Super...aber erst nen schön leistungsfähigen Rechner haben müssen und dann kommt der nur für Windows... :roll:
    Der Sound ist nicht mehr weit weg vom richtigen SID ? Beweise :)


    Das mit dem Floppy Sound hört sich cool an,würd mich mal interessieren wie man sowas realisieren konnte.

    Beweise gibts gleich! :)


    ... und zwar jetzt:


    Eliminator, einmal echter 6581 und einmal M64 .



    Floppysound kann in der Tat auch schon ein anderer, nämlich Emu64. Allerdings nicht halb so genau wie der M64. Hier funzt nämlich sogar "1541 Music".


    BeRo hat so programmiert, daß sehr einfach auf andere OS's portiert werden kann - hat er so weit ich weiß auch vor.

  • Bei M64 handelt es sich um einen absolut cycleexacten C64-Emu, bei dem aber auch wirklich ALLES cycleexact abläuft. Selbst die 1541 wird so genau emuliert, daß sogar diverse "Fehler" auftauchen, die in Wirklichkeit gar keine sind, weil in der echten Hardware ebenfalls vorhanden. :)


    D.h. die 1541 läuft asynchron zum C64? Bei VICE wird für das Laufwerk AFAIK einfach der gleiche Takt wie für den C64 verwendet was natürlich nicht gerade realitätsnah ist.

  • Unterstell mir nicht was ich höre:)
    Wenn das Teil mal fertig ist und für NICHT-Windows Systeme auch draußen is,schaun mer mal wie doll das is.


    Der Bass bzw die Drums zB kommen anders.
    Mich würd jetzt ein direkter Vergleich mit Sidplay und Vice interessieren.
    Naja wie gesagt weiterhin viel Erfolg bei dem Teil....




    Emulieren ist eh wie sich ne Frau vorstellen und nicht anfassen dürfen :bgdev

  • Die SID Emulation ist wirklich sehr gut, auch wenn ich ebenfalls noch Unterschiede höre (nein, nicht die Filter (die würden sich auch auf einem anderen 6581 anders anhören) sondern die Drums).

    ganz genau ... absolut JEDER sid klingt anders, was die filter angeht. richtig ist, daß die obertöne einfach noch viel zu laut und grell kommen. das läßt die drums auch etwas anders klingen (ebenso andere wellenformen).
    kommt schon noch alles... :)


    Anmerken möchte ich hier noch, daß es in der aktuellen Build auch eine Linux-Version gibt.

  • Also es gibt näturlich auch eine native Linuxversion. Micro64 ist an sich die direkte Weiterentwicklung von fr-051 Brötkästchen von mir, wenn Micro64 auch nicht mehr eine 64kb große EXE ist. :roll:
    Die Emulation ist dank der freundliche Unterstützung von Jens Schönfeld und Peter Windrich im Form von Reverse Engineering Informatonen, nun so perfekt (naja bis auf die VIC Emulation noch), so dass alles wirklich ganz akkurat ist. Das heißt:


    Zur CPU Emulation: Absolut exakte CPU Emulation. unter anderem mit exakten Handling von der BRK CPU Instruktion, wenn NMI nach BRK Cycle 4 auftritt, so dass ein BRK nicht mehr in ein NMI mutatiert. Ein NMI darf nicht sofort nach einem BRK oder IRQ ausgeführt werden, sondern erst mit 1 Cycle Delay. VICE und HOXS64 habe genau dabei z.B. noch arg Probleme. Die BRKNMI Sache bedanke ich übrgins der Reverse Engineering Arbeiten von Jens und Peter. In Micro64 steckt zudem noch mehr Reverse Engineering Informationen von denen, über die ich hier leider nicht äußern darf. Ich hab's es halt versprochen.


    Zur CIA Emulation: Die CIA Emulation ist auch komplett und absolut exakt.


    Zur SID Emulation: Dito :roll: obwohl ich da noch wohl die Filterresonanztabelle überbearbeiten muss. Es besitzt zudem bereits Support für HardSID, Catweasel und ParSID. Und das beste an der SID Emulation bei micro64 ist, dass der Sound da wirklich komplett synchron zum Bild ist.


    Zur VIC Emulation: Daran sitzen gerade ich und Peter Windrich. Also man darf bespannt sein. Aber schon so weit: Der VIC Artikel von Christan Bauer ist dann ein Fall für den Papierkorb.


    Zur 1541 Emulation: Darauf bin ich besonders stolz. Original Takt (1 MHz). Absolut komplette Mechanik Emulation inkl. Spindleanlauf/stopverhalten, Lesekopf, Trägheit der Bauteile, Datenschrott wenn nach mehr als 0 GCR-Bits nacheinander (das ohne viel zusätzliche Codelogik) etc. Die 1541 Soundemulation arbeitet eng mit dieser 1541 Mechnanikemulation zusammen und setzt eine einfachere Form von Granular Synthese ein. Liest&schreibt D64X64 und G64 Dateien, auch non-bytealigned G64s (lesend&schreibend) dank der kompletten Laufwerkmechanikemulation.


    Zur Cartridge Emulation: Es werden alle CRTs unterstützt.


    etc. etc. etc. :juhu:


    Kurz und knapp: Micro64 ist bis auf die VIC Emulation soweit absolut exakt, dass alle, wirklich alle, Testsuite Tests und andere Testprgs (VIC Test Progs jetzt mal davon ausgenommen) völlig einwandfrei durchzulaufen, ohne zu meckern.


    Als Beispiel bei VICE schlagen da bei der PC64 Testsuite 2.15 folgende Tests fehl: CPUTIMING, IRQ, NMI (einmal wegen inkorrekten BRKNMI Handling und wegen dem, zu dem ich später noch was sage) und ICR01 (ein CIA-Emulationsbug). Also CPUTIMING und NMI (mal abgesehen vom inkorrekten BRKNMI Handling) schlagen erst bei VICE 1.22 wieder fehl, bei den älteren VICE Versionen laufen sie einwandfrei durch bis halt auf NMI, das dann "00/5" wegen dem inkorrekten BRKNMI Handling ausgibt.


    Und ich würde auf Antworten von euch sehr freuen :hammer: