Hello, Guest the thread was viewed20k times and contains 147 replies

last post from JeeK at the

Der perfekte Heimcomputer - oder: Welcher Heimcomputer hat das sauberste Hardwarearchitektur-Design

  • Das ist alles korrekt und das habe ich auch z.B. mit der "theoretisch perfekten" Palette des SEGA Master Systems angesprochen. Diese sieht in der Praxis dann auch kacke aus.


    Es soll hier auch wie gesagt nicht drum gehen, DEN EINEN PERFEKTEN Computer zu finden ;) es geht drum, sich verschiedene Architekturen anzuschauen und zu gucken, was gut designt ist und was nicht, und was man sich als Inspiration hernehmen koennte fuer ein eigenes Design. Aber ich wiederhole mich...

  • Irgendwie ist mir das alles noch zu modern.


    Sowas war noch wirklich bis aufs letzte Bit durchdacht: Z22 :D

    Quote

    Der Z22-Computer oder kurz Z22 war ein ab 1955 von dem Physiker Lorenz Hanewinkel konstruierter und für die Zuse KG gebauter Computer. Er war der erste Röhrenrechner aus Westdeutschland.

    ZuseZ22BerlinTechnikMuseum.jpg


    Einen Emulator dafür gibt es hier, der läuft mit Javascript im Browser. :)


    Und hier findet man ein paar Dokumente und Anleitungen zu dem Teil.

  • es geht drum, sich verschiedene Architekturen anzuschauen und zu gucken, was gut designt ist und was nicht, und was man sich als Inspiration hernehmen koennte fuer ein eigenes Design. Aber ich wiederhole mich...

    Tja... Schwierig... Dafür müßte man mal auf mehreren Systemen richtig programmiert haben, doch wer hat das schon? Persönlich habe ich hauptsächlich Erfahrung mit AppleII, C64 und Amiga, seit Oobdoo auch ein wenig CPC und nur klitzeklein AtariST. AtariXL, Spectrum, MSX, BBC Micro oder Archimedes hingegen sind mir völlig fremd, ganz zu schweigen von den vielen anderen kleineren Rechnersystemen, die es damals auch gab, aber gerne übersehen werden.

    Von den paar Sachen, die ich halt so kenne, würde ich sagen, daß der C64 bezüglich Grafik- und Sound für einen 8-Bit-Rechner so ziemlich das Optimum darstellt. Vor Kurzem hatte ich mir mal Spiele auf dem AtariXL angesehen und war erstaunt darüber, wie farblos sie waren. Zwar weist der AtariXL eine größere Farbpalette auf als der C64, doch wurde diese theoretisch höhere Anzahl in den Spielen kaum umgesetzt. Ein wahrscheinlicher Grund wäre, daß der AtariXL anders als der C64 über kein Farbram verfügt. Stattdessen gilt die Regel, daß eine Bitkombination über eine Zeile hinweg stets der gleichen Farbe entspricht. In einem Multicolour-Bitmap-Modus vergleichbar zum C64 ergeben sich dadurch nur 4 Farben, die sich ohne Rasterinterrupt auch vertikal über den Bildschirm verteilen. (Im Zeichensatzmodus kann man wohl eine Farbe mehr erhalten ausgewählt durch das Highbit des Zeichens.)

    Wie Ihr nun wißt, wird die Farbe beim C64 so geregelt, daß pro 8x8-Kachel jeweils mindestens eine Farbe extra gesetzt werden kann. (Je nach Darstellungsmodus auch mehr.) Dadurch sehen C64-Spiele viel bunter aus als die alte Konkurrenz. Diese Kachelaufteilung der Anzeige mit Farbram war halt ein Kompromiß, um die Farbanzahl im Bild zu erhöhen, ohne daß gleich die doppelte Menge an Daten vom VIC gelesen und im Speicher vorrätig gehalten werden muß.

    Beim CPC ist man tatsächlich den Weg gegangen, die Speichermenge für die Grafik zu verdoppeln, was dann tatsächliche freie 160x200x16 brachte, d. h. jedes Pixel kann jede Farbe von 16 ausgesuchten annehmen. Nachteil: Erhöhter Platzverbrauch. Ein Doublebuffering in voller Auflösung verbraucht dann bereits 32 kb, d. h. die Hälfte des Speichers. Und man braucht dafür auch schnelleres Ram, um die Datenmenge 50/60mal pro Sekunde in den Grafikchip zu laden.

    Sprites wie beim C64 haben auch nicht viele Systeme. MSX wäre ein Beispiel für viele Sprites, hat aber dafür kein gemeinsames Ram mit dem Prozessor, sondern gesondertes Videoram, was ich persönlich nicht für erstrebenswert halte. Der AtariXL hatte nur eingeschränkte "Missile"-Sprites, wenn ich mich recht erinnere. DIe bunten Multicolour-Sprites des C64 waren definitiv ein Alleinstellungsmerkmal. Man kann aus heutiger Sicht vielleicht darüber die Stirn runzeln, daß Multicolour doppelt breite Pixel verlangte, aber die damaligen Fernseher hatten bei 320 Pixeln schon derbe Probleme, diese sauber darzustellen. Viele Hiresbilder heutiger Pixelkunst, wären damals[tm] ohne teuren Monitor gar nicht anzeigbar gewesen.

    So gesehen finde ich, daß man damals beim C64 in puncto Grafik und Sound vieles richtig gemacht hat, und es gibt nur wenige Dinge für mich, die ich mir anders gewünscht hätte, und die auch schon benannt worden sind:

    1.) Keine Kachelaufteilung im Bitmapmodus, sondern 40 konsekutive Bytes für eine Zeile, damit man alle Bytes der Zeile mit Hilfe der indizierten Adressierung über X oder Y direkt ansprechen kann.

    2.) Kein Zeichensatzrom automatisch eingeblendet bei $1000..$1fff und $9000..$9fff. Stattdessen lieber bei $d000..$dfff, da das Ram unter dem IO-Bereich ohnehin nur von Assembler aus ansprechbar ist. Daraufhin Verlegung des Textspeichers von $400..$7ff nach $cc00..$cfff. Damit gewinnt man 4 kb für den Basicspeicher und bietet direkt die Möglichkeit an, einen eigenen Zeichensatz z. B. bei $c000..$c7ff zu erzeugen bzw. unter dem Rom.

    3.) Es ist schade, daß der VICII intern nur 1024 Nibble für sein Farbram hat und nicht volle 8 Bit. Ansonsten hätte man jedem Zeichen schon im normalen Modus zwei Farben für Hinter- und Vordergrund mitgeben können, was auch die Gestaltungsmöglichkeiten bei Zeichensatzgrafik weiter erhöhen würde.

    Von der Architektur her fand ich schon immer der AppleII recht sinnvoll.

    Dank seines Slots-Konzeptes ist das ein 'mitmach' Computer der zum Basteln anregt.

    In der Tat erkennt man daran, daß Wozniak ein Bastler war, der hier sehr vorausschauend entworfen hat. Das Slotkonzept war ideal für alle möglichen Erweiterungen, die im Laufe der Jahre erschienen: Drucker, Maus, 80 Zeichenkarte, Soundkarte, Prozessor (z. B. Z80), Ramerweiterung, Harddisk.. Jedes Gerät kann dabei umfangreiches eigenes Rom mitbringen, so daß der Prozessor des AppleII für diverse Steuerungsaufgaben verwendet werden kann. Eine Vorstufe dessen, was man später "Plug&Play" nannte. Das Konzept des C64, daß alle Geräte an einem sehr langsamen seriellen Bus hängen und jeweils vollständig eigene Intelligenz mitbringen müssen, ist sehr aufwendig und teuer und dabei längst nicht so flexibel.


    Ach ja, und was das Design anbelangt, so haben mir der C128, der Amiga1200 und Apple//c sowie Apple//gs immer am besten gefallen.^^

  • Sprites waren doch eh mehr ein Workaround, weil der Grafikmodus bei ollen Computern lahm, technisch eingeschränkt und ohne Möglichkeit einer Doppelpufferung implementiert war. Ein idealer Homecomputer hätte also keine Sprites, sondern einen umschaltbaren Bildschirmspeicher mit HW-Untersützung zum Kopieren. Der Amiga mit seinem Blitter usw. war da schon wesentlich näher am Optimum als ein C64. Ein Zeichen- bzw. Tile-Modus hat natürlich aber auch schon was (für Zeichensatzanimationen und so) und der fehlte halt beim Amiga. Sobald die Rechenleistung usw. hoch genug ist, ist das zwar auch egal, aber mein idealer Heimcomputer hätte auch noch einen flexiblen Tile-Modus, der aber nach Möglichkeit so implementiert wäre, daß er einfach automatisch in den (offscreen-)Bildschirmspeicher schreibt, man aber trotzdem noch manuell drüberschreiben kann. Quasi ein Interrupt davor, um Tiles zu animieren und einer danach, um noch manuell in den Bildschirmspeicher zu schreiben. Dann beim nächsten Vsync umschalten zwischen Offscreen und Onscreen. Oder so.

    Nein, das sehe ich nicht so, dass Sprites nur ein Workaround sind. Der Amiga hatte immer einen ruckelfreien Mauszeiger (=Sprite). Bei anderen Systemen wird es da schon schwieriger. Schlimmstes Beispiel: MacOSX. Da der Desktop nur mit vermutlich 30 FPS läuft, ist der Mauszeiger hier auch mit 30 FPS am Ruckeln. Bei Windows PCs kann der Mauszeiger unabhängig der FrameRate des Desktops bewegt werden.


    Und Double-Buffering ist manchal nicht so schön, da es ein kleinen Lag verursacht. Soll angeblich bei Flippern wie Slamtilt über Emulation nicht gut sein, es sei denn man hat ein 240 HZ Monitor oder so was.


    Ehrich gesagt vermisse ich ein paar Kleinigkeiten vom Amiga auf heutigen PCs.

    Ich finde den Amiga gut, weil man schnell scrollen kann und mit einem zirkulären Puffer endlos scrollen kann. Da muss man nur die Tiles aufbauen, die neu in den Bildschirm kommen.


    Den C64 finde ich auch ehrlich gesagt schon ziemlich perfekt für 8 Bit. Nett wäre wegen dem Scrolling, sowas wie beim Amiga. So dass man die Startadresse des Bildschirm frei einstellen kann. Dann braucht man kein VSP oder ähnliches. Das bräuchte man natürlich auch für das FarbRam.


    Den C128 mag ich auch. Allerdings ist der vom Design wild zusammen gewürfelt. Der VDC ist schon sehr merkwürdig. Der 2 Mhz Modus ist zum Beispiel nicht so gut nutzbar, wenn gleichzeitig der VIC drauf zugreift. Aber nett finde ich, dass man das Farb Ram doublebuffern kann.


    Ähnliches gilt für AGA Amigas, viele Dinge sind einfach nicht konsequent weiter entwicklet worden. Zum Beispiel hat man nur einen 16 Bit Blitter. Da macht es manchmal wenig Sinn den Blitter zu nutzen. Die Sprites können zwar 4 mal breiter sein, aber wegen dem Scrolling (horizontal) kann schlimmstenfalls nur noch ein Sprite verwendet werden.


    Außerdem gefällt mir die Vielseitigkeit der Schnittstellen vom C64 und Amiga. An die Joystick-Ports bzw. Parallel/User Ports kann man schnell was anhängen ohne über irgendwelche Treiber zu gehen. Da kann man gut die Grenze von 2 Joystick Ports umgehen oder mal ein SNES Joypad anschließen oder andere Hardware Erweiterungen dran packen ;) Vielleicht so ein bisschen wie beim Raspberry Pi.


    Bei AGA/ECS Amigas finde ich auch schön, dass man die Bildschirmfrequenzen frei einstellen kann, wenn man ein passenden MultiSync Monitor hat.


    IMHO sind für 2D Spiele Amiga und C64 schon ziemlich gut.

    Für 3D Spiele fehlt eben ein Chunky-Modus. Alternativ gibt es natürlich den Mode7 beim SNES, der ja wohl ohne Chunky Modus auskommt.

  • Nein, das sehe ich nicht so, dass Sprites nur ein Workaround sind. Der Amiga hatte immer einen ruckelfreien Mauszeiger (=Sprite). Bei anderen Systemen wird es da schon schwieriger. Schlimmstes Beispiel: MacOSX. Da der Desktop nur mit vermutlich 30 FPS läuft, ist der Mauszeiger hier auch mit 30 FPS am Ruckeln. Bei Windows PCs kann der Mauszeiger unabhängig der FrameRate des Desktops bewegt werden.

    Äh, da habe ich andere Erfahrungen gemacht. Bei Windows kenne/kannte ich Mauszeiger, die bei ausgelastetem System stocken und hängen bleiben, bei macOS ist/war der Zeiger meistens noch sauber bewegbar, wenn das ganze System eingefroren ist (was selten genug passiert). Und mit deiner Aussage suggerierst du, Windows-PCs hätten Sprite-Hardware extra für den Mauszeiger. Das halte ich aber für ein Gerücht. Übrigens kann ich deine Aussage selbst auf klassischen Systemen nicht wirklich nachvollziehen. Ich habe auch den (Sprite-freien) Atari-ST-Mauspfeil nicht stärker ruckelnd wahrgenommen als den Amiga-Mauspfeil.

  • Der fehlende Chunky-Modus war es im Prinzip dann auch, der dem Amiga anfang der 90er das Genick gebrochen hat. Als ich das erste Mal Wolfenstein 3D auf einem 386er gesehen habe, habe ich gemerkt, dass das wohl das Ende für den Amiga bedeutet.

    Wie wahr, der PC hat den Amiga in Punkto Grafik so was von gefressen gehabt. Deswegen, wenn dann sollte so ein Traum-Retrocomputer wirklich direkt per Nibble oder Byte ein Pixel ansprechen können. Vielleicht sollte man auch auf jegliche Sprites usw komplett verzichten und dafür die CPU schneller werden lassen? Und 8Bit sind wirklich ne Qual in Assembler, das ständige Rumkopieren und auf irgendwelche Flags achten, nur um zwei Zahlen zu addieren, ist wirklich nicht schön und bläht der Code extrem auf. Von daher wären 32Bit schon toll, mit mindestens 40Mhz und vielen Registern. Hoher Speed deswegen, damit auch mit einer Hochsprache noch einfache Spiele möglich wären und man seine Sprites selbst kopiert.

  • Äh, da habe ich andere Erfahrungen gemacht. Bei Windows kenne/kannte ich Mauszeiger, die bei ausgelastetem System stocken und hängen bleiben, bei macOS ist/war der Zeiger meistens noch sauber bewegbar, wenn das ganze System eingefroren ist (was selten genug passiert). Und mit deiner Aussage suggerierst du, Windows-PCs hätten Sprite-Hardware extra für den Mauszeiger. Das halte ich aber für ein Gerücht. Übrigens kann ich deine Aussage selbst auf klassischen Systemen nicht wirklich nachvollziehen. Ich habe auch den (Sprite-freien) Atari-ST-Mauspfeil nicht stärker ruckelnd wahrgenommen als den Amiga-Mauspfeil.

    Also, der Windows Maus Zeiger ruckelt meistens sowieso. Das liegt unter anderem an der Abfrage Frequenz der Maus. Damals unter Windows 2000 hatte ich einen ruckelfreien Mauszeiger. Da Bildschirmfrequenz auf 100 Hz (Röhrenmonitor) war und die Polling Rate der PS/2 Maus 200 Hz. Wenn man USB nutzt und eine Gaming Maus mit 500 Hz oder 1000 Hz Polling Rate hat, sollte das halbwegs ruckelfrei sein.


    Außerdem wenn ich direkt mein Windows System mit meinem MacBook vergleiche, dann habe ich auf dem Mac überall dieses konstante leichte Ruckeln des Mauszeigers.


    Windows hat natürlich keine Sprites! Aber scheinbar haben einige Grafikkarten irgendwas ähnliches für den Mauszeiger. Der kann sich bei einigen Systemen tatsächlich unabhängig der Frame Rate des Bildschirms bewegen. Es gibt ja auch für Videos sowas wie ein unabhängigen Bereich innerhalb des Bildschirms. Ich glaube unter Linux heißt das Video Overlay wenn ich mich richtig erinnere. Siehe auch Beitrag #67


    Man braucht natürlich keine Sprites für so was kleines wie ein Mauszeiger, aber es ist einfach zu programmieren :)

  • Der fehlende Chunky-Modus war es im Prinzip dann auch, der dem Amiga anfang der 90er das Genick gebrochen hat. Als ich das erste Mal Wolfenstein 3D auf einem 386er gesehen habe, habe ich gemerkt, dass das wohl das Ende für den Amiga bedeutet.

    Wie wahr, der PC hat den Amiga in Punkto Grafik so was von gefressen gehabt. Deswegen, wenn dann sollte so ein Traum-Retrocomputer wirklich direkt per Nibble oder Byte ein Pixel ansprechen können. Vielleicht sollte man auch auf jegliche Sprites usw komplett verzichten und dafür die CPU schneller werden lassen? Und 8Bit sind wirklich ne Qual in Assembler, das ständige Rumkopieren und auf irgendwelche Flags achten, nur um zwei Zahlen zu addieren, ist wirklich nicht schön und bläht der Code extrem auf. Von daher wären 32Bit schon toll, mit mindestens 40Mhz und vielen Registern. Hoher Speed deswegen, damit auch mit einer Hochsprache noch einfache Spiele möglich wären und man seine Sprites selbst kopiert.

    Nur zur Sicherheit: Das ist jetzt ein sarkastischer Kommentar, dass wir das Thema eigentlich beenden koennen, da das ultimative Fazit sein wird, dass wir einfach den PC nutzen sollen (bzw nachbauen werden)?

  • Ist halt wirklich schwer, will man es schön zum Programmieren haben landet man bei Chunky, vielen breiten Registern und guten Speed und so wenig wie möglich Customchip Kodiererei.

    Sich freiwillig so zu limitieren dass man eben doch wieder Sprites, 8Bit usw. braucht hat schon was von Selbstgeißelung :D

    Bei unseren Lieblingen hat man ja keine Wahl, die sind so wie sie sind und man muss damit umgehen oder es sein lassen. Beim Ausdenken eines Traumheimcomputers weiß man leider wie es besser geht und mehr Spaß macht und da wird die Wunschliste immer Größer. Ist irgendwie sau schwer sich durch einen Retrorechner selbst das Leben schwer zu machen.

  • was ist denn dieses "chunky" wovon hier alle reden? ?(

    Das ist praktisch das Gegenteil von Planar. Chunky ist ein Byte pro Pixel bzw. 2 oder 4 Bytes pro Pixel. Und das Byte gibt die Farbnummer der Farbpalette an oder bei 2 oder 4 Bytes direkt den RGB-Wert.


    Bei Planar hat man nur jeweils ein Bit pro Pixel. Die mehr Farben bekommt man dann, wenn man mehrere Planes übereinander legt.


    z.B 8 Bitplanes = 256 Farben.


    Für 2D Spiele ist Planar noch ok bzw. besser da man manchmal auch coole Effekte programmieren kann. Für 3D Spiele ist es leider total ungeeignet.


    Und Sprites halte ich mit oder ohne Chunky für eine gute Idee. Auch wegen dem einfachen Handling.


    Siehe auch https://en.wikipedia.org/wiki/Mode_13h

  • Sich freiwillig so zu limitieren dass man eben doch wieder Sprites, 8Bit usw. braucht hat schon was von Selbstgeißelung :D

    Letztes Wochenende habe ich nach langer Zeit mal wieder meine mechanische Schreibmaschine hervorgeholt, weil ich dieses "Uraltding" mal meinen Kindern zeigen und zum Ausprobieren hinstellen wollte.


    Und was war: Das Teil hat uns allen irren Spaß gemacht. Ich glaube, es wurden fast 10 DIN A4 Seiten damit getippt und dass obwohl ein moderner PC samt Laserdrucker keine 2 Meter davon weg stand.


    Manchmal macht gerade das "weniger" viel mehr Spaß. Und darum geht es ja auch irgendwie doch immer beim Hobby: Spaß haben! ;)

  • Manchmal macht gerade das "weniger" viel mehr Spaß.

    Das hat sicher auch damit zu tun, dass es alles einfach "greifbarer" war. Die modernen Geräte machen vieles im Hintergrund für Dich.

    Wenn man dann etwas hat, bei dem man "versteht", was man tut, machts halt Spaß, funktioniert bei meiner kleinen auch immer wieder mal. :D

  • So geht es mir ja auch wenn ich einen C64 sehe, aber ob ein Neuer Retrocomputer solch ein Gefühl auslösen kann? Wenn ich meinen Kindern ein C64 zeige ist das was völlig anders als wenn das ein Mega65, Spektrum Next oder so wäre. Erst Recht wenn da neue Retrosystem rein gar nichts mehr mit meiner Vergangenheit zu tun hat und keinerlei Erinnerungen weckt. Limitierung und System überschaubar habe ich auch mit einem Arduino. Aber mich interessiert es mehr auf den C64 was zu machen, eben weil ich das damals nicht so konnte und mich nun freue, wenn ich damit Sachen hinbekomme, die mich damals zum Stauen gebracht haben. Ich bezweifle dass ich solch eine Verbindung auch zu einem Neuen Heimcomputer aufbauen könnte.


    Ich finde solche Neuen Heimcomputer eher aus Entwicklersicht spannend, aber weniger um damit als Anwender was zum machen. Aus Entwicklersicht fehlen mir aber so einige Skills um einen eigenen Heimcomputer zu bauen. ich bin kein Ingenieur, sondern habe nur Grundlagen der Elektronik so wage drauf aus der Lehre damals. Beschäftigt habe ich mich nur mit Software und da habe ich aber auch keine Ahnung von den Königsdisziplinen der Informatik wie Betriebssystem- oder Compilerentwicklung.

  • So geht es mir ja auch wenn ich einen C64 sehe, aber ob ein Neuer Retrocomputer solch ein Gefühl auslösen kann?

    Nein, kann er nicht. Soll er aber auch gar nicht. Ich würde ihn auch nicht in meine Sammlung packen (wie ich auch den Mega65 nicht in meine Sammlung packen würde) – da er ja nicht alt ist. (20 Jahre, nachdem er herauskam, wäre das vielleicht was anderes) ;)


    Es wäre ein neuer Computer – der natürlich andere Gefühle auslösen würde (wenn er das denn tut) als ein alter Computer. Da muss man eigentlich gar nicht drüber nachdenken, ist logisch. Ein "New Beetle" spricht auch andere Leute an als ein alter Käfer – ist halt retro aber nicht alt.

  • um mal beim thema zu bleiben:

    ich kenn eigentlich vom programmieren und spielen nur commodore. von vc-20, c16,c64 bis hin zum c128.

    von all dem was man hier liest, ist der c64 doch wohl den besten kompromiss eingegangen was

    leistung, technik und auch den preis betrifft.