Mode0 auf dem C64

There are 35 replies in this Thread which has previously been viewed 1,148 times. The latest Post (September 12, 2025 at 12:12 AM) was by 1570.

  • Der CPC kann ja im Mode0 16 Farben ohne Restriktionen darstellen. Also 4 bpp. Aus einer LUT 16 aus 27.

    Der C64 benötigt nur 2 bpp, muss (oder kann - je nach Sichtweise) aber die 3 individuellen Farben noch 40*25-mal defiinieren.
    Was spart man beim C64 unterm Strich?

    Könnte jemand leicht verständich die Hintergründe erklären und ob man einen solche "unrestrikted" Modus auf dem C64 oder einem (100% kompatiblen) Nachfolger auch hätte implementieren können? Auch für Spiele oder nur statische Bilder? Oder sind der VIC-x oder die C64-Speicheranbindung grundsätzlch ungeeignet dafür?

    Ich hätte mir einen MC-Mode0 mit 16 aus 32 Farben gewünscht und einen HR-Mode1 mit 4 aus 32 Farben.

  • Man definiert nur 1 mal 40x25 im RAM zumindest.

    Please login to see this link.
    Please login to see this link.
    Please login to see this link.


  • Was spart man beim C64 unterm Strich?

    Hatten wir schon vor ein paar Tagen hier sehr ausführlich. Der VIC-II hat nur gut 1MByte/Sek Speicherbandbreite, der CPC reserviert etwa das Doppelte für Grafik alleine.

    Davon ab kam der C64 nunmal ein Jahr früher auf den Markt und war auf geringe Kosten optimiert; z.B. der VIC-II wurde mit einem auch für MOS seit Jahren veralteten Prozess hergestellt.

    Please login to see this link. - Please login to see this link.

  • Die Frage ist, hätte man (~1985) in einen RICHTIGEN C128 (auch: 2MHz, 128 kB RAM) statt dieses zusätzlichen VDC einen "VIC-III" bauen können, der meine Anforderungen von oben erfüllt, aber zum VIC-II kompatibel bliebt? Von mir aus auch von einem Zulieferer outside MOS.

    Hardware-Sprites müsste er weiterhin haben, am liebsten dann auch 16 an der Zahl.

    Warum kann der CPC das? Die 4 MHz Z80 CPU? Schnelleres RAM? Kein Teilen des RAMs zwischen CPU und Grafikchip?

  • Oder sind der VIC-x oder die C64-Speicheranbindung grundsätzlch ungeeignet dafür?

    Beim C64 müssen sich VIC-II und CPU die RAM-Bandbreite teilen und das sind trotz Tricks wie dem getrennt angebundenen Farb-RAM bei einem 1MHz-System nur 2 MByte/s, von denen der VIC etwas mehr als die Hälfte benötigt.

    Beim CPC sieht es nach kurzem Blick auf die Videomodi so aus, als ob die alle ungefähr 2 MByte/s Daten brauchen. Wieviel das RAM da maximal hergeben kann müsste jemand erklären, der mehr Details zum Systemtiming kennt, aber es dürfte auf jeden Fall hilfreich sein, dass ein Z80 (dort mit 4MHz) nicht in jedem Taktzyklus auf den Speicher zugreifen will wie ein 6502.

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Die Frage ist, hätte man (~1985) in einen RICHTIGEN C128 (auch: 2MHz, 128 kB RAM) statt dieses zusätzlichen VDC einen "VIC-III" bauen können, der meine Anforderungen von oben erfüllt, aber zum VIC-II kompatibel bliebt?

    Das wurde im anderen Thread eigentlich auch durchgekaut, Stichwort größeres ColorRAM etc. siehe Please login to see this link. und davor.

    Das RAM des C64 könnte vermutlich auch 4MHz, aber der 6510 und VIC-II nunmal nicht, und 1983 waren alle wesentlichen Chip-Designer schon von Commodore weg. Danach hat es nur noch für sowas wie den VDC gereicht.

    Ein wirklich aufgebohrter VIC-III mit 100%iger Kompatibilität zum VIC-II ist schwierig, einfach weil der VIC-II eine Menge Sachen ziemlich kompliziert macht, um mit der eingeschränkten Bandbreite und IC-Pin-Zahl auszukommen. Ein Nachfolger hätte das eigentlich so nicht gebraucht (z.B. einfach eigenes VRAM oder 4MHz-Anbindung nutzen können), dann ist er aber nicht mehr 100%ig kompatibel zu bekommen (wenn auch sagen wir 95% schon gehen).

    Please login to see this link. - Please login to see this link.

  • Ein (un)schoenes Beispiel dieser Restriktion ist der Acorn Electron bei dem die effektive CPU Frequenz halbiert wird, weil sich Display und ULA für den RAM Zugriff den Bus teilen.

    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • Könnte jemand leicht verständich die Hintergründe erklären und ob man einen solche "unrestrikted" Modus auf dem C64 oder einem (100% kompatiblen) Nachfolger auch hätte implementieren können? Auch für Spiele oder nur statische Bilder?

    Mit Please login to see this link. kann man die Zellen bis auf eine Rasterzeile verkleinern, aber ein Grafikmodus ohne Restriktionen ist am C64 nicht möglich.

    In Hires kann auch Please login to see this link. noch nachhelfen.

    Solche Modi benötigen viel CPU-Zeit und sind daher kaum für Spiele geeignet. Mit der Unterstützung einer REU sähe das evtl. anders aus. Zumindest gibt es da Video-Demos wie dieses hier: Please login to see this link.

  • Ich meine nicht den C64, wie er hardwaremäßig IST. Sondern ob man ihn umbauen / erweitern hätte können mit einem besseren VIC (was ja offenbar aussichtslos ist) oder bei einem Nachfolgemodell (was bei 100%iger Kompatibilität wohl auch eher nicht geht).

    Hätte man zumindest die Farbauswahl kompatibel erweitern können, also bei MC statt 3+1 aus 16 -> 3+1 aus 32?
    Beim TED geht das ja auch aus den 121 Farben oder arbeitet der TED grundsätzlich anders als der VIC-II?

  • Das Nachfolgermodell wäre der C65. Da war das tatsächlich vorgesehen.

    Mit dem Please login to see this link. gibt es einen VIC-II-Ersatz, der das auch kann. Das Bandbreitenproblem lässt sich lösen, indem man dem VIC einen eigenen Grafikspeicher verpasst.

  • Das Bandbreitenproblem lässt sich lösen, indem man dem VIC einen eigenen Grafikspeicher verpasst.

    Und das wäre damals technisch oder wirtschaftlich nicht gegangen?

    C64-Mode: VIC-III rödelt auf dem gemeinsamen 128 kB RAM herum.

    C128-Mode: VIC-III benutzt einen eigenen (32 kB?) Videospeicher. Ist das nicht irgendwie sowas wie das Color-RAM, nur in groß?

  • Quote

    C128-Mode: VIC-III hat einen eigenen (32 kB?) Videospeicher.

    War ja beim VDC so gedacht. Aber der Zugriff von der CPU in den Videospeicher ist halt vergrützt.

  • Hätte man zumindest die Farbauswahl kompatibel erweitern können, also bei MC statt 3+1 aus 16 -> 3+1 aus 32?

    ich würde das indirekt über Farbpaletten-Register realisieren. Also Farbnummer 0 bekommt die Farbe, die im Palettenregister 0 definiert wurde, Farbe 1 im Register 1 usw. Dann bieten sich auch mehr als 16 bzw. 32 (feste) Farbtöne an, je nach Bitbreite der Palettenregister.

  • Die Frage ist, hätte man (~1985) in einen RICHTIGEN C128 (auch: 2MHz, 128 kB RAM) statt dieses zusätzlichen VDC einen "VIC-III" bauen können, der meine Anforderungen von oben erfüllt, aber zum VIC-II kompatibel bliebt?

    Hmmm "richtigen" c128 ...

    Dafür war der c128 nicht gedacht.

    Der c128 sollte ein Hybrid werden.

    Zum einen C64 kompatibel um die Spieler zu erfreuen und Software weiter zu verwenden.

    Zum anderen eine Business Maschine, mit 80 Zeichen Schirm, 2MHz und Z80 mit CP/M.

    Der c128 sollte nie der "bessere" Spiele Computer werden.

    Er sollte einfach nur kompatibel sein.

    Im übrigen finde ich das Konzept des c128 richtig geil.

    Zwei unabhängige Bildschirme zu haben ist eine sehr schöne Sache.


    Das mit dem besseren C64 und "VIC-III" hat Commodore auch realisiert mit dem C65.
    Nur leider hat der Vertrieb das im Keim erstickt, aus lauter Angst ...

    Please login to see this link. --- Please login to see this link. --- Please login to see this link.

  • Eher nicht. Sprites fehlen auch.

    Ich meine bei einem imaginären VIC-III mit Sprites, der dann halt wie der VDC auch einen eigenen Grafikspeicher hätte.
    Du sagt, das mit dem eigenen Grafikspeicher ist nix für die CPU ("vergrüzt").
    Jungs, ich bin kein Programmierer oder Informatiker. :saint:

  • Man muss halt einen Weg finden, den Grafik-speicher von der CPU zu beschreiben, wenn die Grafik ihren eigenen hat. Und das kann man kaum schlechter machen als beim VDC.

  • das kann man kaum schlechter machen als beim VDC.

    Das ist richtig.

    Wobei das automatische inkrement der Adresse hat was.


    Was ich nie verstehen werde, warum man die Adressierung der VDC Register so umständlich macht?!!!

    Warum nicht einfach alle Register direkt im IO Bereich einblenden und gut.

    Please login to see this link. --- Please login to see this link. --- Please login to see this link.

  • Man muss halt einen Weg finden, den Grafik-speicher von der CPU zu beschreiben, wenn die Grafik ihren eigenen hat. Und das kann man kaum schlechter machen als beim VDC.

    Und hätte man das für den VIC-III im nextbetter-C64 (nicht: ich bin drei Computer-"C128", nicht: ich bin fast besser als ein Amiga-"C65") besser lösen können als beim VDC, und bliebe man bei der gemeinsamen RAM-Nutzung im VIC-II-Modus noch kompatibel?

    VIC-III-Modus (16 aus 32): VIC-III hat eigenes VRAM, die CPU greift irgendwie anders "außenrum" trotzdem auch "unvergrützt" :) auf dieses VRAM zu

    VIC-II-Modus (3+1 aus 16): VIC-III benutzt gemeinsames RAM, geteilt mit der CPU

    So irgendwie?