C64-Nachbau mit Mikrocontrollern

Es gibt 43 Antworten in diesem Thema, welches 7.980 mal aufgerufen wurde. Der letzte Beitrag (28. August 2008 um 13:59) ist von skoe.

  • ...damit Bitte melde dich an, um diesen Link zu sehen. nicht zu unübersichtlich wird.

    Im Wissen, dass ein Mikrocontroller-Nachbau nie so perfekt werden wird wie ein FPGA-Nachbau, interessiert mich das Thema trotzdem. Und es gab anscheinend auch andere, die es zumindest interessanter fanden als FPGA

    Hab mir gerade zum ersten mal SwinSID-Beispiele angehört. Bin verblüfft, dass das mit so einfachen Mitteln so gut klingt. Hätte ich nicht gedacht. Gibt's auch Negativ-Beispiele von Dingen, die im Gegensatz zum SID ganz schrecklich klingen? (Jetzt kommt sicher der Kommentar: klingen doch alle schrecklich)

    Es gibt zumindest die Vermutung, dass man alle Teile des C64 in billigen Controllern emulieren kann. Eventuell auch mehrere Teile in einem Controller. Außer dem VIC.

    Computerbastler
    Passt ein VIC allein in einen preiswerten CPLD? Bei Dir laufen doch die 4 GB schon, kannst Du mal versuchen, die video_vicII_656x_a.vhd durch das mystische Programm zu jagen, um das herauszufinden? So ganz grob in der Richtung: Bitte melde dich an, um diesen Link zu sehen.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • alles was intensiv filter benutzt sollte eigentlich ziemlich merkwürdig klingen :)

  • Also Filtern tut der SwinSID verdammt gut, aber er kann im Moment leider nur Tief oder Hochpass und nicht die ganzen schönen Kombinationen des Originalen SID, aber der zur Zeit verwendete AVR ist wie ich mir hab sagen lassen Leistungsmäßig am Ende mit der Emulation von Seiten des Entwicklers war auch schon angedacht auf den nächst höheren zu gehen...

    Wie weit ist denn das FPGA SID Projekt? Vor allem bezüglich Filter Emulation?

  • gute frage... ich glaub die hat nie jemand (ausser den machern) wirklich in aktion gesehen :)

  • skoe

    Der VIC II benötigt 1550 Makrozellen der größte Xilinx CPLD den ich gefunden habe hat nur 512 Makrozellen.

    Am besten man quetscht, CPU,Buslogic,VIC und VIAs in einen Spartan 3 400 und baut den rest mit "normalen" Bauteilen drum herum.


    Grüße

    Dirk

  • > aber der zur Zeit verwendete AVR ist wie ich mir hab sagen lassen Leistungsmäßig am Ende

    Der verwendete AVR kostet bei Reichelt ca. 2,50. Zum etwa gleichen Preis bekommt man auch einen ARM mit mehr PS und internem (mono-) DAC. Hätte ich vermutlich gleich portiert... oh, jetzt denken alle, ich bekäme Geld von ARM... Aber die AVRs haben den klaren Vorteil, als DIL erhältlich zu sein und bei 5V zu laufen.

    > Der VIC II benötigt 1550 Makrozellen der größte Xilinx CPLD
    > den ich gefunden habe hat nur 512 Makrozellen.

    Danke für die Info. Damit kann anscheinend der Thread auch gleich wieder beendet werden :wink: Wenn sowieso ein (großer) FPGA gebraucht wird, ist diese Nachbau-Idee nicht nur sinnlos, sondern auch albern.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Ich finde den SwinSID auch verblüffend. Dass der ohne Hilfsmittel richtig auf einen 6510 Bustakt reagieren kann, - erstaunlich. Kann man SID Register auch lesend zugreifen?

    In Kürze gibt es auch Xmegas mit DAC, bin irgendwie kein ARM Freund ...

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Das geht leider nicht beim SwinSID, der AVR ist dort so programmiert das er nur Schreibend verwendet werden kann.

    Also als nur Soundausgabedevice sozusagen...

    Das mit dem BUS Timing ist da auch schon ein gutes Thema, wenn der BUS nur etwas schneller als im 64er läuft, bekommt der SwinSID AVR mächtig probleme...

    Habe ja mal versucht das Teil am C16 +4 zum laufen zu überreden, hat bisher leider nicht geklappt... kam alles heraus nur nix was nach Musik klingt :wand

  • Habe ja mal versucht das Teil am C16 +4 zum laufen zu überreden, hat bisher leider nicht geklappt... kam alles heraus nur nix was nach Musik kling

    Wie gesagt, mich wundert es dass er es übehaupt hin gebracht hat. Aber bestimmt würde es auch am C16 laufen wenn man die firmware darauf abstimmt.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • MCs gehen leider eher schlecht weil die Pins nicht schnell genug reagieren können, von der reinen Rechenpower könnte ich mir allerdings einen C64 aus vielen AVRs vorstellen.

    Man könnte allerdings einen geräumigen AVR32 nehmen und dort einen C64 Emulator drin schreiben der an den AVR32 und die äussere Hardware angepasst wird.
    Müsste man nur noch einen Framebuffer in einen CPLD bauen, ich glaube nämlich nicht das so ein AVR32 genug Rechenpower für C64 UND FBAS oder VGA Signalgeneration hat, da könnte man mit einem Propeller mehr Glück haben.

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • Ich hab so einen AVR32 da, es läuft Linux drauf. Also wär das mit der Emulation schon mal kein Problem (Vice Sourcen anpassen). Der VIC muss auf alle Fälle durch eine passende Hardware (oder original VIC?) gemacht werden.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Du willst VICE nicht anpassen, ich krieg immernoch Zahnschmerzen und Kreise in den Augen wenn ich an die MMC64 implementation denke. @.@

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • VICE mit 60/66MHz und wenigen kB RAM macht bestimmt eine Menge Spaß. Wenn man sowas machen will, braucht man übrigens auch keine VIC-Emulation (in Hardware) mehr, denn die ist ja in VICE drin. Stattdessen braucht man "nur" eine Hardware, die einen Framebuffer ausgibt; das bekommt man schon irgendwie hin.

    Ist natürlich alles total sinnlos weil elend langsam und nicht hardwarekompatibel (das war eine der ursprünglichen Anforderungen!). Dann kann man auch gleich einfach einen GP2X oder sonstwas nehmen und da VICE draufmachen.

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • 1570:
    66 Mhz könnte reichen, natürlich nicht mitm VICE.
    Ich sagte ja schon, ein an die Umgebung angepasster Emulator, das heißt auch das der AVR32 ein IEC Interface bekommt.

    Ich schätze mal das ganze ist als EvilHack(TM)-Version mit 3 Chips zu erschlagen, ein AVR32, ein DualPort-RAM und ein CPLD.
    Eine Ordentliche bräuchte mehr -> Bustreiber ICs und anderer "Kleinkram"

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • Ich schätze mal das ganze ist als EvilHack(TM)-Version mit 3 Chips zu erschlagen, ein AVR32, ein DualPort-RAM und ein CPLD.

    CPLD für was? Für den VIC? Der passt da nicht rein (siehe Posting 5)...

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Der CPLD entlastet als Framebuffer den MC.
    Der MC schreibt sein Bild in das DP-RAM während der CPLD aus dem selben RAM den Monitor füttert, so bleibt das Timingkritische gerödel aus dem MC raus.

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • Der MC schreibt sein Bild in das DP-RAM während der CPLD aus dem selben RAM den Monitor füttert

    Da braucht man denke ich nicht unbedingt einen CPLD für; einfach nur irgendwie mit einem Microcontroller ohne sonstige "Ablenkung" Video erzeugen geht ja, wie diverse Projekte zeigen. Ich kann mir aber nicht vorstellen, dass selbst bei dieser Art von Entlastung die Geschwindigkeit eines Microcontrollers zur Emulation eines VICII ausreicht, schließlich muss das ganze Originaltiming auch sauber emuliert werden. Schonmal den VICII-Code in VICE angesehen? Ist nicht ganz trivial.

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    MCs gehen leider eher schlecht weil die Pins nicht schnell genug reagieren können


    Warum sollten sie das nicht tun? Bit-Banging im Megahertz-Bereicht ist selbst auf langsameren MCs durchaus üblich. Die GPIOs wackeln so schnell, wie CPU- und Peripherietakt es zulassen.

    Zitat

    von der reinen Rechenpower könnte ich mir allerdings einen C64 aus vielen AVRs vorstellen.


    Es gibt übrigens auch andere Mikrocontroller, auch wenn man im Hobbybereich manchmal der Meinung ist, dass dem nicht so wäre :tong:

    Zitat

    Man könnte allerdings einen geräumigen AVR32 nehmen


    Das ist übrigens einer davon, auch wenn Du die Version mit externem Speicher meinst, hat er immer noch interne Peripherie.

    Zitat

    Ich hab so einen AVR32 da, es läuft Linux drauf


    Und wenn Du darauf noch Vice startest – auch ohne VIC-Emu – verlässt Du definitiv die preislichen Sphären, die man mit einem FPGA betreten würde. Zumal Vice nicht mal ansatzweise dazu designed ist, einen externen VIC Zyklengenau anzusteuern.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • > 66 Mhz könnte reichen, natürlich nicht mitm VICE.
    Tut mir Leid, wenn ich schon wieder mit dem Thema rumwedel, aber es passt hierzu wie die Faust auf's Auge: Ich bin gerade dabei, einen ganzen "Rechner" auf einem Controller zu implementieren: Die open1541 soll eine Kreuzung aus 1541U und sd2iec werden. Genau auf dem Weg, wie Du ihn hier für den C64 vorgeschlagen hast.

    Der Controller läuft mit 60 Mhz, hat einen ARM core, vergleichbar mit einem AVR32. Soll auch einen IEC-Bus haben, der zyklengenau sein muss. Ich glaube, dass das schon ziemlich abenteuerlich wird, obwohl die 1541 WESENTLICH einfacher aufgebaut ist als ein C64. Wenn Du Erfahrungen damit sammeln möchtest, mach doch mit :wink:

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • skoe:
    Sorry, genug Hochzeiten zum tanzen.
    Aber andersrum, es gab schonmal Leute die haben eine 1 Mhz 6502 in einen 20 Mhz AVR8 gepackt, kann mich nur nicht mehr an den Link erinnern wo ich das gelesen habe.
    Da sollte doch eine 6502@2 Mhz in einem AVR32 kein Drama sein. :)

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D