Seite 5 von 6

Re: Games und Programmierung

Verfasst: Fr 2. Okt 2009, 23:35
von drohne235
Ich habe mal zwei absolut geniale Tutorials von bamse ins Wiki verlinkt:

http://hive-project.de/wiki/code:grafik-treiber

Die beiden Tutorials beschreiben den Aufbau eines eigenen TV-Treibers. Ich habe die letzten beiden Tage damit experimentiert - die Möglichkeiten sind toll. Hab aus dem Stand einen Treiber gebastelt mit der geilen AUflösung von 188 x 244 :twisted: aber dafür mit einem Byte pro Pixel und damit mit der gesamten Palette von 86 Farbe pro Pixel gleichzeitig. Wenn ich das richtig sehe, kann man eine solche Grafik auch über den Bus aus dem eRam holen - mit Finescrolling und vektorisierten Zeilen usw. Letzteres muß ich mal nach dem Urlaub (1 Woche) testen.

Das zweite Tut beschreibt einen TV-Treiber mit 376 x 240 Pixeln auch mit voller Palette, also einem Byte pro Pixel. Dieser Treiber ist aber Tilebasiert mit 47 x 30 Tiles zu je 8 x 8 Pixeln. Finescrolling in X & Y-Richtung sowie bewegte Sprites sind auch beschrieben. Absolut genial der Treiber. Das ist doch was für Janaha und sein Nethack! Der Treiber arbeitet mit einer Cog als Videorenderer und vier Cogs als Scanlinerenderer, die je eine Zeile in ihrem eigenen cRam vorberechnen und dann in einen Zeilenpuffer schiebt. Ansonsten gibt es noch die Tilemap von ~1,9 KByte und der Rest ist für die Tiles frei. Genial finde ich. :) Und es ist wirklich gut beschrieben.

Zum testen habe ich mir übrigens in meinen PC eine alte TV-Karte eingebaut und kann per AV-Eingang das Hivebild mit VLC bequem auf meinem LCD anzeigen. Das ist beim programmieren sehr bequem und man hat nicht noch einen Moni auf dem Tisch stehen. Die Experimente erinnern mich sehr stark an meine alte Zeit mit dem Atari XL - dort hatte man ja den Antic-Chip als einfachen Video-Koprozessor zur Verfügung. Dieser Antic hatte ein echtes eigenes Programm im Hauptspeicher und man konnte zeilenweise das Bild programmieren. Es gab sogar Sprungbefehle, so das man schnell ganze Zeilenbereiche umschalten konnte ohne ein Byte der Grafik zu verschieben.

Mit dem Propeller kann man jetzt nicht nur zeilenweise den Bildaufbau programmieren, sondern bis auf Pixelebene. In meinem Treiber ist die unterste Ebene, quasi die innerste Schleife des Treibers, die Pixelausgabe mit einem Byte pro Pixel! Die meisten kennen ja noch die Geschichten mit den senkrechten Farbbalken bei den alten Retros, die über das Zeileninterrupt erzeugt wurden. Ich habe ein Demo am Hive gebastelt, wo diese Zeilen senkrecht stehen, indem nach jedem Pixel der Farbwert inkrementiert wird - rein algorithmisch, also völlig ohne Bildspeicher in Echtzeit erzeugt. Macht wirklich Spaß damit zu spielen, da kommt echtes Retrofeeling auf. :)

Das Ganze ist auch super um PASM zu lernen, da man so im Gegensatz zu anderen Problemen gleich Erfolg oder Misserfolg sieht, ganz ohne Debugger oder Emulator. Und die Prinzipien sind bei TV vergleichbar mit VGA, so das man in beiden Fällen von den Experimenten profitiert.

Ich hab mal ein paar Screens angehängt und einen Mitschnitt (Achtung 10 MB!), da sich das alles ja auch bewegt.

Re: Games und Programmierung

Verfasst: Mo 12. Okt 2009, 19:09
von drohne235
Im Urlaub hab ich nochmal ein wenig gerechnet und nachgedacht: Wahrscheinlich könnte man bis 256x200 Pixel bei 8bpp (86 Farben) über den Bus holen, dann wird es einfach mit den Zugriffszeiten vom eRAM zu eng. Dabei ist der Bus zu 75% ausgelastet. Die Einblendung der Sprites hab ich schonmal getestet, allerdings bei 376 x 240: Da die lCog's nur eine begrenzte Zeit pro Zeile haben, sind nebeneinander liegend (Extremfall) 8 Sprites möglich. Verteilt über den Bildschirm kann man problemlos 20 Sprites mit 16x16 Pixeln (auch 86 Farben) einblenden. Was darüber hinaus geht, führt zu kleinen Artefakten im Hintergrund. Bei geringerer Auflösung entsprechend mehr Sprites. Bei dem kleinen Demo hat man noch über 22 KByte hRAM für Tiles und Spritedaten frei.

Das Scrolling ist übrigens ruckelfrei auf dem Screen, das ist nur bei der AUfnahme so zuppelig geworden.

Re: Games und Programmierung

Verfasst: Mo 12. Okt 2009, 20:11
von Rainer
Hi drohne235,

bin beeindruckt. Saubere Leistung :)

Gruß.
Rainer

Re: Games und Programmierung

Verfasst: Mo 12. Okt 2009, 20:57
von drohne235
Ich hab schon ein wenig bereut, dass ich unbedingt mit einem Schach anfangen musste. Die TV-Treiber und und Ideen in Richtung Arcade machen da wesentlich mehr Spaß, da kommt echtes Retrofeeling auf. Was mir momentan noch ein wenig fehlt ist eine Möglichkeit Grafiken zu konvertieren, z.Bsp. von BMP in das spezielle Format wie man es auf dem Hive braucht. Ich hab schon überlegt, ob es nicht das beste ist gleich ein Tool auf dem Hive selbst zu programmieren und keinen Konverter.Einen kleinen Sprite und Tileeditor. Das hätte den Vorteil, das man es gleich richtig auf dem Hive sieht, ohne erste Farbpaletten und nichtquadratische Pixel und ähnliches anpassen zu müssen. Na mal schauen wie es mich packt... :)

Re: Games und Programmierung

Verfasst: Sa 28. Nov 2009, 11:10
von drohne235
Ich hätte ja nicht gedacht, dass folgedes funktioniert: Wolfenstein 3D auf einem Propellerchip.

http://www.youtube.com/watch?v=6vp5krplhxE

Auch interessant: SID-Player

http://forums.parallax.com/forums/defau ... 5&m=401999

Re: Games und Programmierung

Verfasst: Sa 28. Nov 2009, 17:19
von lohrermopper
drohne235 hat geschrieben: Ich hätte ja nicht gedacht, dass folgedes funktioniert: Wolfenstein 3D auf einem Propellerchip.

http://www.youtube.com/watch?v=6vp5krplhxE
...
Hallo,

da steckt wohl doch mehr dahinter, als nur ein Propeller-Chip.
Siehe:
http://www.propgfx.co.uk/
;)
Anscheinend gibt es inzwischen sehr viele Entwicklungsboards und Retro-Computer Projekte mit Propeller-Mikrokontroller.
:|
Grüße
LohrerMopper.
P.S.: Ich kann mich dunkel erinnern, daß Wolfenstein auf einem 286er mit 12 MHz recht gut gelaufen ist. :geek:

Re: Games und Programmierung

Verfasst: Sa 28. Nov 2009, 19:03
von drohne235
Ist definitiv nur ein Propeller: propGFX ist ein Projekt, um eine Grafikkarte für Mikrocontroller zu entwickeln - aber auf dieser Grafikkarte ist genau ein Propeller, den man dann über diverse Schnittstellen ansprechen kann, um Informationen per Video oder VGA auszugeben. ;)

Re: Games und Programmierung

Verfasst: Sa 28. Nov 2009, 19:30
von DJLinux
Von der Integer Rechenleistung her ist das kein Problem.
Es kann aber nicht VGA sein (nur vier farben in 16 Pixel) die blauen Wandtexturen würden gehen aber nicht mit den weiteren Farben des Propeller Logos oder da wo Wände mit dem Boden oder der Decke auf einander treffen.

Für TV ist mir das Video zu "sauber" gecaptured selbst eine gute TV Karte mit VideoIn produziert meist mehr Schnee oder andere Pixel-Artefakte.

none gefaked greetings :lol:

Joshy

Re: Games und Programmierung

Verfasst: Sa 28. Nov 2009, 20:18
von laserjones
Hier sind die Specs des PropGFX: http://www.propgfx.co.uk/forum/Blah.pl?m-1192484350/

Sie verwenden demnach zumindest einen externen Video-Encoder. Außerdem ist der Propeller leicht übertaktet (96 MHz).

Grüßchen,
Jörg

Re: Games und Programmierung

Verfasst: So 29. Nov 2009, 01:36
von drohne235
Hmm, hab auch nochmal genauer hingeschaut: Auf der Homepage steht "Check out our latest demo on the Hybrid - Wolfenstein 3D" als Überschrift zu dem Wolfenstein-Video. Offensichtlich gibt es drei Platinen - PropHybrid, PropGFX und PropGFX Lite (http://www.propgfx.co.uk/forum/Blah.pl). Zum PropHybrid findet man die techn. Spezifikationen hier:

http://www.propgfx.co.uk/forum/Blah.pl?m-1193793130/
http://www.propgfx.co.uk/Hybrid/Docs/Hy ... Manual.pdf

Die PropHybrid scheint ein ähnliches Projekt wie die Hydra zu sein, nur noch zusätzlich ein SD-Laufwerk. Ansonsten ein Prop und nur Ausgang für Video - sieht man gut im PDF.