Your dream becomes true

http://www.youtube.com/watch?v=XNPDslLv ... re=related
Hm,drohne235 hat geschrieben:Wie das ganze aussehen würde, wenn man auf den Bildspeicher verzichtet und statt dessen bei jedem Pixel schaut, ob evtl. ein 3D- Objekt darunter liegt, das möcht ich hier lieber nicht schätzen.
Naja, wenn man sich auf Wireframe beschränkt bräuchte man ja keinen Test in der Z-Achse, da werden alle Punkte einfach geodert. Wenn man einen schnellen Linienalgorithmus hätte, welcher die Linien von oben beginnend immer in Echtzeit zeilenweise berechnen könnte, könnte man bis auf den Puffer für zwei Zeilen ganz auf einen Bildschirmpuffer verzichten und könnte den frei werdenden Speicher in Bellatrix mehr für Routinen nutzen, welche genau diese inien manipulieren (drehen, strecken, bewegen...)
Nein, nein der Ram ist auf keinen fall an der Falschen stelle. An den Videochip passt er so ja eh nicht mehr, weil er viel zu viele Adress- und Datenleitungen braucht. Das Ram brauchen wir vor allem für die laufenden Anwendungen.drohne235 hat geschrieben:Einen Zugriff auf das externe Ram sehe ich da auch eher als sinnlos an, denn der ist viel zu langsam und auch noch am "falschen" Chip drann. Das extere Ram werde ich wohl eher dafür nehmen, um dynamisch Tiles/Sprites nachzualden. Und dann nur die gerade wirklich gebrauchten Tiles/Sprites im Ram des "Videopropellers" zu halten.
Ist der RAM an Regnatix wirklich falsch? Für Anwendungen wie Compiler, Editoren usw. ist der Speicher natürlich genau richtig. Aber die Frage habe ich mir auch schon gestellt wenn es um Grafik geht. Und es erscheint auch wirklich an der falschen Stelle, zumindest wenn man die Struktur des Hive so als fertig ansieht. Aber das muß ja nicht so sein! Du brauchst den eRam an Bellatrix? Dann programmiere den Hive so das es genau so ist: Mache eine COG in Regnatix zu einem "externen" Adresszähler/Register für Bellatrix, die adressierte Speicherzelle kann Bellatrix selbst über den Datenbus einlesen. Im Extremfall kann Bellatrix über eine umkonfigurierte Steuerleitung (PRO/SELECT) den "Adresszähler" in Regnatix takten, kann also den Zugriff auf den Speicher selbst steuern. Wenn du also möchtest, mache Regnatix einfach zu einem Speicherkontroller für Bellatrix.![]()
Ich hatte mir da überlegt, das RAM der Cog's gezielt aufzuteilen zwischen den Teilen die eine Anwendung nutzen darf und teilen, die fest dem Betriebssystem gehören. Das Betriebssystem wird dann entsprechende Routinen haben, die teile des internen Rams jederzeit mit neuen Daten / Programmen füllen kann. Natürlich auch mit entsprechenden möglichkeiten den geladenen Code zu starten.drohne235 hat geschrieben:
Momentan ist es so: Eine Anwendung kann über die IOS-Funktionen "breset/bload" in einem Programm einfach einen kompletten neuen Code in den Bellatrixchip laden und damit seinen eigenen Grafiktreiber aktivieren. Für die Kommandozeile als momentanes einfachste Oberfläche wird einfach wieder der normale Standarttreiber "vga.bin" in Bellatrix geladen - momentan ein schöder Texttreiber. Im StarTracker mache ich das schon genau so, dort wird beim starten der Treiber geladen um die Startrek-Oberfläche zu zeichen und beim beenden wird wieder der Texttreiber geladen. Die Bibliothek sind dabei einfach die entsprechenden Treiberdateien auf der SD-Karte, im Fall des StarTrecker befindet sich der Treiber in der Datei "stint.bin". So hatt jede Anwendung uneingeschränkt die volle Kontrolle über die Ressourcen von Bellatrix.Im momemt schwebt mir da vor, das bei dem Start einer Hive- Anwenung die Anwendung aus einer Bibliothek einen Video/Audio- Treiber auswählen darf, der dann auf den Video/Audiochip sozusagen nachgeladen wird.
Was noch fehlt: Das gleiche für den Administrachip. Mir ist einfach noch keine einfache Methode eingefallen wie man das für Administra hinbekommt, da sich ja in diesem Chip etwas ganz grundlegendes befindet: Die Anbindung an die SD-Card, von welcher ja die Treiber kommen. Man müßte also den Treiber beim Wechsel erst im eRam puffern oder irgendwie die Dateien umkopieren, aber das erschien mir bisher einfach zu umständlich. Aber Fakt ist eins: Letztlich brauchen wir das auch für Administra, genau wie du das schreibst.
Hihi.drohne235 hat geschrieben:Jo, wichtig wären auch Auskunftsfunktionen - Anzahl der Zeichen und Zeilen des aktuellen Treibers - um zeichenorientierte Software unabhängig von der Auflösung zu programmieren. Bis jetzt hat das System ja noch "Werkstattniveau", d.h. ich hab einfach nur das eingebaut was ich aktuell brauchte - da ist also evtl. noch viel Bedarf an Funktionalität. Vielleicht wäre es ja auch besser das ganze einfach nochmal neu anzufangen.Genau Deine Idee hatte ich auch .. außerdem hätte ich noch gerne eine Funktion, um die aktuelle Auflösung abfragen zu können.
Was ich irgendwie bei der Grafik absolut cool finde ist die alte Vectrex:
http://www.retrozentrale.net/?p=1266
http://vectorzoa.com/info2.html
Bei so einer einfachen Grafik muß man sich auch mehr auf das Spiel selbst, auf innovative Ideen konzentrieren, die dann ihren ganz eigenen Reiz haben.
Einen echten Vektorbildschirm bekommen wir natürich nicht hin, aber ich denke da mehr an die dynamischen Eigenschaften: Da die Vectrex ja jedes Bild dynamisch in Echtzeit aufbaut, würde eine zeilenweise Echtzeitberechnung in dieser Eigenschaft der Vectrex entsprechen. Und ich finde so ein simulierter "Vectrex-Mode" würde nicht nicht nur den Vorteil bringen, so gut wie keinen Bildwiederholspeicher zu brauchen, sondern die Art der Grafik finde ich auch sehr inspirierend: Nur reine Vektoren. Da muß man schon sehr innovative Gedanken entwickeln um ein Game zu realisieren, hätte dadurch aber auch einen ganz unverwechselbaren Stil. Nehmen wir mal irgendwelche Animationen: Nicht vollflächige Pixelanimationen, sondern reine Vektorfilmchen. Wer kennt noch dieses berühmte Strichmänchen aus dem Fernsehen:Ja die Vectrex, die hatte schon was besonderes. Hier wurde der Elektronenstrahl nicht Zeile für Zeile über den Bildschirm geführt, sondern die Anwenung hat ihn den Vectoren der 3D- Grafik entsprechend geführt. Soweit lassen sich die einfachen Fernseher und TFT Monitore leider nicht verbiegen. Die arbeiten immer ganz star Zeile für Zeile ab.
"Steampunk" ... Den Begriff kannte ich noch gar nicht, und was man alles zu sehen kriegt, wenn man das in der Google-Bildsuche eingibt ... Und was man bei YouTube alles an irren Oszilloskop-Missbräuchen und Laserprojektionen findet ... Hilfe, ich will drei Leben, und zwar alle parallel! (Hm, müsste mit dem HIVE und seinen drei CPUs doch eigentlich gehen ...)Also langsam glaube ich wirklich das wir hier alle gleich verrückt sind - da hab ich auch schon dran gedacht.Wäre natürlich absolut Steampunk so ein halbmechanischer Laservektorbildschirm.
Ich glaube auch, dass uns wirklich die gleichen Sachen faszinieren. Das macht Spaß, auf verwandte Geister zu treffen, denen intelligente, originelle, ästhetische und effiziente Lösungen wichtiger sind als die übliche Bombastik. Und die nicht immer auf den "Sinn vons Ganze" schauen.Wer kennt noch dieses berühmte Strichmänchen aus dem Fernsehen:
Schön gesagt und ganz meine Meinung.laserjones hat geschrieben: Ich glaube auch, dass uns wirklich die gleichen Sachen faszinieren. Das macht Spaß, auf verwandte Geister zu treffen, denen intelligente, originelle, ästhetische und effiziente Lösungen wichtiger sind als die übliche Bombastik. Und die nicht immer auf den "Sinn vons Ganze" schauen.
Sicher? So wie ich es verstehe, läuft jeder Cog unabhängig von den anderen mit den vollen 80 MHz. Ein Befehl braucht 4 Takte, also haben wir 20 Mips pro Cog.Der Propeller läuft intern mit 80Mhz, jeder der 8 Cogs, bekommt reihum einmal drann. Die Cogs laufen also "nur" mit 10 Mhz.
Hm, das würde das ganze schon ein bissel Entspannen.laserjones hat geschrieben:Sicher? So wie ich es verstehe, läuft jeder Cog unabhängig von den anderen mit den vollen 80 MHz. Ein Befehl braucht 4 Takte, also haben wir 20 Mips pro Cog.Der Propeller läuft intern mit 80Mhz, jeder der 8 Cogs, bekommt reihum einmal drann. Die Cogs laufen also "nur" mit 10 Mhz.