mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Alte Gamekonsole: Wie schaffen die das?


Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Habe ein bisschen in der Wikipedia über alte Gamekonsolen gestöbert.

Beispielsweise das NES, die erste Konsole (?) von Nintendo

CPU: 8bitter auf 1.77 MHz
RAM: 2 kB

Auflösung: 256 x 240 Pixel, 25 aus 53 Farben gleichzeitig
Video-RAM: 2 kB

Mir ist ein Rätsel, wie die mit dieser Hardware die Grafik hinkriegen 
können. 256 x 240 Pixel mit 25 Farben pro Pixel belegen mindestens ca 38 
kB - das NES hat gerade mal 2 kB Video-RAM. Mit Echtzeit-Berechnung der 
Bilddaten dürfte auch nix sein - immerhin liegt der Pixeltakt bei 4.9 
MHz.

Wie, wie bloss kriegen die das hin?

Gruss

Michael

Autor: Feadi F. (feadi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die alten Gamekonsolen haben alle einen Videoprozessor, meistens 
funktionieren die nur mit Sprites. Man ist also nicht darauf angewiesen, 
immer das ganze Bild im Speicher zu haben.

Gruß, Feadi

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die alten Gamekonsolen haben alle einen Videoprozessor, meistens
> funktionieren die nur mit Sprites. Man ist also nicht darauf angewiesen,
> immer das ganze Bild im Speicher zu haben.

Ja, aber die Sprites müssen ja auch irgendwo gespeichert werden - zählt 
dieser Speicher etwa nicht zum Videoram? Die 64 beim NES darstellbaren 
Sprites belegen immerhin auch schon ungefähr 5 kB.

Und für dieses Bild braucht man wohl definitiv mehr als 64 dargestellte 
Sprites: http://forum.romov.net/files/yo__noid_nes_screensh...

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Prozessor nichts besseres (nebenbei) tun muß, als ein paar 
Bytes in der Gegend herumzuscheiben, dann kann auch ein 1,77MHz 
Prozessor sowas machen.
Bei der Grafikdarstellung wurde ein Grafikchip dafür benutzt, aus den 
Informationen im (Grafik-)RAM z.B. ein FBAS-Signal zu erzeugen. (Für den 
APPLE ][ gab es eine PAL-Grafikkarte - der Kerl konnte von Haus aus nur 
NTSC - die aus einem LM1886 und einem LM1889 und etwas Hühnerfutter 
bestand...)
Sprites sind ja eigentlich auch nichts anderes als Datenfelder.
Verknüpft man die per XOR mit dem Hintergrund, dann kann man sie setzen, 
noch eine XOR-Verknüpfung, und sie sind wieder weg.
Das "Scrollen" ist auch nichts anderes als Bytes durch die Gegend zu 
schieben bzw. die Startadresse der auszugebenden Daten zu verändern.

Autor: Feadi F. (feadi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
http://en.wikipedia.org/wiki/Nintendo_Entertainment_System
Hier stehts:
"PPU external memory (Video RAM): 2 KiB of RAM for tile maps and 
attributes on the NES board and 8 KiB of tile pattern ROM or RAM on the 
cartridge (with bankswitching, virtually any amount can be used within 
manufacture cost)"

Es sind insgesamt also 10 kB VideoRAM/ROM.

Autor: Feadi F. (feadi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Leg mal das Gitter auf das Bild, dann kannst Du sehen wie wenig 
(verschiedene) Kacheln da eigentlich sind.

Gruß, Feadi

Autor: g0nz00 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennt jemand eigentlich einige Links zu selbst gebauten Spielkonsolen?

Mir ist aufgefallen das eigenbau Spielkonsolen mit wechselbaren Spielen 
doch sehr selten sind. Hat das einen grund?

Habe mal ein Systhem gesehen was 3 spiele eingebaut hatte, aber das 
waren nur diese "Ping Pong Strich Spiele" (soll nicht abwertend gemeind 
sein, ist bestimmt sehr schwer sowas zu bauen und zu programmieren)

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein besonders eindrucksvoller Vertreter der Kategorie "Ping Ping Strich 
Spiele" ist auf http://www.cyberniklas.de/pongmechanik/ zu sehen. Man 
beachte, daß es ganz ohne Prozessor, Speicher oder andere 
Halbleiterelemente auskommt.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kennt jemand eigentlich einige Links zu selbst gebauten Spielkonsolen?

Hab selbst mal was gebastelt: 
http://www.thinkcool.ch/index.php?content=cgen;id=... (Doku 
ist ziemlich ausführlich)

Zurzeit arbeite ich an einer Farbgrafik-fähigen Konsole - genau deswegen 
bin ich ja auch auf den Thread hier gekommen. Hab mal ein bisschen die 
alten Gamekonsolen mit meinem groben Entwurf verglichen, und kam mir 
dann ein bisschen dumm vor :-)

Naja, mal sehen, was ich von den angesprochenen Ideen so alles in mein 
CPLD kriege...

> Leg mal das Gitter auf das Bild, dann kannst Du sehen wie wenig
> (verschiedene) Kacheln da eigentlich sind.

Ja schon - aber es sind sicherlich mehr als 64 gleichzeitig dargestellt. 
Und z.B. für Textausgabe werden es dann doch einige verschiedene. Und 
kann der Grafikprozessor tatsächlich in Echtzeit aus den Sprites und 
ihren Koordinaten ein Videobild zusammenschustern? Also die CPU mit 1.77 
MHz schafft das bei einem Pixeltakt von knapp 5 MHz auf gar keinen Fall 
auch nur ansatzweise!

Autor: Sigint 112 (sigint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@gonzoo:
  Ich verstehe das auch nicht ganz: Ein ARM7 mit Color-LCD und einem 
64kiB EEPROM (seriell) sollte schon eine schöne Spielekonsole geben.
Mir fällt aber auch nicht wirklich ein, wonach man suchen könnte um 
solche Projekte zu finden.

Gruß,
  SIGINT

Autor: Feadi F. (feadi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also die CPU mit 1.77
> MHz schafft das bei einem Pixeltakt von knapp 5 MHz auf gar keinen Fall
> auch nur ansatzweise!
Das macht die CPU ja auch garnicht, dafür ist die PPU da.

Hast Du Wikipedia zu dem Thema nicht richtig gelesen?
Hier nochmal den Link: 
http://en.wikipedia.org/wiki/Nintendo_Entertainment_System

"PAL version, named RP2C07, runs at 5.32 MHz and outputs composite 
video"
Die PPU läuft mit 5.32 MHz.

"PPU internal memory: 256 bytes of on-die sprite position/attribute RAM 
("OAM") and 28 bytes of on-die palette RAM"
In der PPU selbst werden die Sprites definiert. Gespeichert sind diese 
entweder in den 2 kB VideoRAM, oder in der gamecartridge

"PPU external memory (Video RAM): 2 KiB of RAM for tile maps and 
attributes on the NES board"
In diesem VideoRAM liegt eine (oder mehrere) 'tile map' (Kachel-Karte), 
die das zu generierende Bild beschreibt. Kacheln kann das Ding so viele 
verarbeiten wie in den Speicher passen, nur die Sprites sind auf 64 
limitiert.

Der Unterschied zwischen Sprites und Kacheln (tiles) ist recht minimal. 
Eigentlich ist beides das gleiche, aber die Sprites haben Fähigkeiten 
die die Kacheln nicht haben. Dafür sind die Sprites auf 64 limitiert.

Gruß, Feadi

Autor: nicht der Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sowas hier?

http://www.embeddedartists.com/products/boards/lpc...

.. hätte da fast mitgemacht :-)

Autor: nicht der Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nochmal eine andere console (ziemlich genial, da mit propeller-chip, dh. 
8 cores):

http://en.wikipedia.org/wiki/Hydra_Console
http://www.parallax.com/detail.asp?product_id=32360
http://www.xgamestation.com/

:-)

Autor: Bartholomäus Steinmayr (sam_vdp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei man sich dann imho schon fragen muss, warum man nicht einfach 
einen 486er vom Schrottplatz programmiert, der kann das Gleiche, kostet 
nix und ein größeres Publikum für die Spiele hat man auch.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wobei man sich dann imho schon fragen muss, warum man nicht einfach
> einen 486er vom Schrottplatz programmiert, der kann das Gleiche, kostet
> nix und ein größeres Publikum für die Spiele hat man auch.

Naja, dann am besten gleich DirectX oder Flash, dann kanns jeder auf 
beliebiger Hardware spielen...

Dieses Frage muss sich jeder in einem technisch-kreativen Hobby mal 
stellen: Was will ich selbst tun, wo will ich Eigenleistung erbringen 
und was kaufe ich mir eben. Alles schafft man nicht - weder vom 
Know-How, noch von der Zeit. In meinem Fall geht es darum eine einfache 
Game-Hardware zu entwickeln - nicht jedoch darum, ein Game zu schreiben 
und zu verbreiten.

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Hobby ist ja alles erlaubt, aber ich frage mich desöfteren, warum man 
sich so einer Materie widmen sollte.

(Sorry vorab an jene, deren Schlips gleich Fußspuren aufweist)

Der Aufwand, Hardware zu realisieren die bei weitem nicht mit einem 
modernen Handy mithalten kann ist enorm - ohne daß dabei etwas wirklich 
neues realisiert wird...

...im Gegenteil - voller Stolz weiden sich die Augen des Entwicklers an 
der entstandenen Grafik, die 1981 (wohlgemerkt vor 26 Jahren) 
Spielhöllenstandard war.

(Referenz: DonkeyKong 
http://www.klov.com/game_detail.php?letter=&game_id=7610)


Natürlich ziehe ich meinen Hut vor jedem, der solches aus einem 
Mikrocontroller herausholt, aber gleichzeitig nähert sich mein 
kreisender Zeigerfinger der freigewordenen Fläche ;-)

Autor: Sigint 112 (sigint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@antworter:
  Schon mal folgenden Spruch gehört? : "Der Weg ist das Ziel"

Meistens ist das Ergeniss nur nebensache... es geht darum den Umgang mit 
der Technik zu lernen. Zudem bekommt man das Gefühl selbst was geleistet 
zu haben... warum glaubst du gibts so viele Heimwerker?!
Preiswerter kommt man in den seltensten Fällen weg: Wenn ich mir z.B. 
ein ARM7-Board bauen möchte auf dem Linux läuft, dann komm ich da nicht 
unter ca.80Euronen dran. (Platinen, ARM7, FLASH,RAM,etc. )
Einen preiswerten Router mit Linux als BS bekomm ich bei E-Pay für ca. 
40 bis 60 Euronen.
Eigenbau lohnt sich in fast allen Fällen nur,wenn ich Funktionen 
benötige die kein Gerät so leistet. Oder wenn die Funktion halt 
nebensache ist.

Gruß,
  SIGINT

Autor: Bartholomäus Steinmayr (sam_vdp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mr. Chip:
> In meinem Fall geht es darum eine einfache Game-Hardware zu entwickeln -
> nicht jedoch darum, ein Game zu schreiben und zu verbreiten.
Das hatte ich nicht gemeint, Projekte mit Controllern, bei denen man 
wirklich was an der Hardware baut, sind völlig in Ordnung. Ich hatte 
mich auf die La-Mothe-Projekte bezogen, die "nicht der Rahul" gepostet 
hat und wo man im Endeffekt für 100 Öcken eine fertig bestückte Platine 
bekommt, die man dann z.B. in ein Gehäuse bauen kann. Und da entzieht 
sich mir der Lerneffekt schon.

Beste Grüße,
Bartl

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Im Hobby ist ja alles erlaubt, aber ich frage mich desöfteren, warum man
> sich so einer Materie widmen sollte.

Irgendwie hast du schon recht, manchmal fragt man sich, was man da tut. 
Warum man nächtelang debuggend vor dem Computer sitzt und warum man sich 
Gerätschaften und Material kauft, für deren Preis man das Endprodukt 
auch bekommen könnte. Manchmal fragt man sich, warum man das tut - ist 
es wirklich nur das Interesse und die Freude an der Materie? Oder spielt 
auch das Gefühl von "Macht-und-Kontrolle" über die Technik mit? 
Selbstbestätigung? Selbstverwirklichung?

> Der Aufwand, Hardware zu realisieren die bei weitem nicht mit einem
> modernen Handy mithalten kann ist enorm - ohne daß dabei etwas wirklich
> neues realisiert wird...

Das stimmt. Man findet z.B. im Deutschprachigen Raum nur einige wenige 
Projekte, die sich beispielsweise mit Farbgrafik befassen. Eines mit 
Echtzeit-Farbgrafik wäre mir nichtmal bekannt.

> ...im Gegenteil - voller Stolz weiden sich die Augen des Entwicklers an
> der entstandenen Grafik, die 1981 (wohlgemerkt vor 26 Jahren)
> Spielhöllenstandard war.

Wobei man sagen muss, dass damals ganze Teams von ausgewachsenen 
Ingenieuren mit siebenstelligen Budgets, umfassender Ausrüstung und als 
Fulltimejob am Werk war, während ich beispielsweise gerade mal ein 
einzelner lumpiger Student bin mit einem Budget von jährlich maximal 
einigen hundert Euro, mit meiner Lötausrüstung auf DIL-Packages 
angewiesen und nicht mal ein Oszi besitze und kaum über 10 Stunden pro 
Woche zum Basteln komme...

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Manchmal fragt man sich, warum man das tut - ist es wirklich nur das
>Interesse und die Freude an der Materie?

Da ich selber bastele (Synthesizer etc.) und es nur als Hobby neben dem 
Studium laufen lasse, kenne ich den Gedankengang gut.
Allerdings bin ich der Meinung, daß es sinnvoller ist sich gerade bei 
der Elektronik mit Neuem zu beschäftigen.

Das Gebiet Grafikprogrammierung ist extrem ausgelutscht - selbst die 
"Bibel" dieses Bereiches (Foley, van Damme) behandelt Themen, die von 
einer Realisierung mit Mikrocontrollern noch weit entfernt ist.

...und wenn dann der tausendste Voxelgrafik-, Bresenham-, Raycasting-, 
Spritealgorithmus implementiert wird, muß ich mich einfach nach dem Sinn 
fragen.

Was ich (persönlich) interessanter finde, sind Bereiche in denen noch 
was "zu löten ist" (Heimautomatisierung, Prozeßsteuerung, verteilte 
Systeme, Audio/Synthese) - und wenn der tausendste Roboter nicht schon 
wieder ein Linienfolger ist, schaue ich mir auch diesen gerne an.

Aber wie dem auch sei, eine Konsole zu bauen ist immer noch sinnvoller, 
als dieselbe Zeit mit zocken zu verschwenden :-)



>@antworter:
>  Schon mal folgenden Spruch gehört? : "Der Weg ist das Ziel"

Kommt mir bekannt vor, aber wenn das Ziel der uralt-Spieleautomat auf 
dem Dachboden ist, ist der Weg ziemlich vorhersagbar ;-)

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das Gebiet Grafikprogrammierung ist extrem ausgelutscht - selbst die
> "Bibel" dieses Bereiches (Foley, van Damme) behandelt Themen, die von
> einer Realisierung mit Mikrocontrollern noch weit entfernt ist.

> ...und wenn dann der tausendste Voxelgrafik-, Bresenham-, Raycasting-,
> Spritealgorithmus implementiert wird, muß ich mich einfach nach dem Sinn
> fragen.

Es ist zwar tatsächlich ein umfassend abgehandeltes Gebiet, aber die 
meisten Projekte setzen auf bestehender Hardware auf - mir geht es eben 
gerade um den low-level Teil, d.h. um die nötige Hardware um eben 
anspruchsvolle Grafik ausgeben zu können. Und irgendwie hat mich die 
Digitaltechnik seit der entsprechenden Vorlesung an der Uni einfach 
gepackt :-)

> Was ich (persönlich) interessanter finde, sind Bereiche in denen noch
> was "zu löten ist" (Heimautomatisierung, Prozeßsteuerung, verteilte
> Systeme, Audio/Synthese) - und wenn der tausendste Roboter nicht schon
> wieder ein Linienfolger ist, schaue ich mir auch diesen gerne an.

Also bei den Robotern gehts mir ähnlich... Jeder zweite im Roboternetz 
vorgestellte Robby kann (ausschliesslich oder als Hauptfunktion) Linien 
folgen und Hindernissen ausweichen. Für ein Einsteigerprojekt ne hübsche 
Sache, aber irgend wann hat man es gesehen :-)

Die Frage ist halt: Wo liegen noch Herausforderungen? Die Anforderungen 
an mögliche sind hoch: Sie müssen eine echte Herausforderung bieten, 
aber doch nicht zu schwer sein. Sie müssen sich mit einem (Teil-)gebiet 
befassen von dem man Ahnung hat und das einem interessiert. Sie sollen 
etwas hergeben, aber doch nicht Jahre dauern usw.

> Aber wie dem auch sei, eine Konsole zu bauen ist immer noch sinnvoller,
> als dieselbe Zeit mit zocken zu verschwenden :-)

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Sprites sind ja eigentlich auch nichts anderes als Datenfelder.
> Verknüpft man die per XOR mit dem Hintergrund, dann kann man sie setzen,
> noch eine XOR-Verknüpfung, und sie sind wieder weg.

Wie genau läuft das jetzt mit diesem XOR und den Sprites? Verstehe ich 
nicht ganz, kannst du das nochmals langsam zum mitschreiben? :-)

Autor: Feadi F. (feadi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das ist recht einfach, Du brauchst eine 'Schwarzmaske' die Du auf den 
Hintergrund mit AND verknüpfst. Danach musst Du die 'Farbmaske' mit XOR 
darüber legen.

Alles was in der Schwarzmaske weiß und in der Farbmaske schwarz ist, ist 
nachher transparent.

Das ist aber vielleicht nicht das was  Rahul Der trollige  meinte.

Gruß, Feadi

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm...aber damit löse ich das Problem, dass mir die 'Sprites' jedes mal 
den Hintergrund zersudeln und ich ihn neu zeichnen muss, ja noch nicht. 
Bisher dachte ich daran, entweder der von den Sprites verschmutzte 
Hintergrund vorher zu sichern und danach wieder zurückzuschreiben 
(Blittering / BOBs) oder eben die Sprites erst in Echtzeit in das 
Bildsignal einzubauen, ohne den Bildspeicher zu berühren (echte 
Hardware-Sprites). Irgendwie fand ich das aber unelegant, aber nach dem 
Wikipediaartikel 
http://de.wikipedia.org/wiki/Sprite_%28Computergrafik%29 wird's genau so 
gemacht.

Werde eher einen Blitter / BOBs verwenden als Hardware-Sprites, das 
scheint mir ein bisschen einfacher. Wobei "einfach langsam" relativ 
wird. Mittlerweile habe ich ein CPLD als Speichercontroller, zwei 32k 
SRAMs als Videospeicher, einen Mega8 als Sync-Generator, einen 24 Bit 
breiten Bus für die Dateneingabe und jetzt möglicherweise noch ein 32k 
SRAM sowie einen Mikrocontroller für den Blitter.

Bauen kann man sowas (Wobei ich langsam Bedenken habe, ob hier 
Lochraster noch eine gute Idee ist, wegen den 40 MHz CPLD-Takt) - 
debuggen hingegen wird unglaublich schwer.

Vielleicht sollte ich doch lieber einen linienfolgenden Roboter bauen 
:-)

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@antworter

du baust synthesizer und audio-zeugs ? was denn so ?
die rein analoge schiene ? (vco/vcf) ich selbst bin auch mit einem 
audio-system dran. wenn du magst können wir uns ja mal austauschen

gruß
rene

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@TheMason

Mein letztes großes Projekt war ein (polyphoner) FM-Synthesizer mit 
digital gesteuerten analogen Filtern (Cutoff und Resonanz werden 
gesteuert).

Momentan sitze ich an einem Sample-Player (Drumcomputer) - diesmal mit 
`nem ARM7 (vorher ATMega).

Welche Teile analog und welche digital sind, mache ich meist von 
Klangpotential und Aufwand abhängig.

Was willst Du denn machen ?

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@antworter

ich hab hier (schon seit längerem) ein projekt auf under construction 
(genannt audio-projekt)das ein programmierbaren audio-prozessor 
basierend auf einem fpga darstellt. werde das teil auch bald hier 
reinstellen (muß nur noch was doku machen).
mit dem teil kann man filtern, mischen, routen, oszillatoren erstellen 
und delays bauen. also alles was man für einen synthesizer, mischpult, 
effektgerät und dergleichen braucht.
bin da auch noch auf der suche nach leuten, da das alleine schon recht 
mächtig ist (sitze da auch schon ne weile dran).
basis des ganzen ist ein fpga-board von xilinx (spartan 3), an den ich 
ein msp430 und 2 audio-codecs angeschlossen habe. das board selbst hat 
noch 1MB Ram das im moment nur für delays genutzt wird. evtl. kann man 
da noch einen sampleplayer mit bauen.
im späteren ausbau würde ich gerne (erstmal eine eigene platine daraus 
machen) und evtl. noch eine cf-card an den fpga anschließen um evtl. 
später auch hd-recording machen zu können.

hast du bock mit zu machen ?

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@TheMason

Habe gerade gesehen, daß dazu schon viele Infos auf diesem Board 
rumschwirren - aber heute werde wohl nicht mehr dazu kommen, das alles 
durchzulesen.

Wie könnte ich Dich am besten kontaktieren, wenn es mir zusagt ?

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schreib mir einfach eine email : reneboellhoff (at) gmx (dot) de

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@antworter

wenn du mir deine email zukommen lässt, kann ich dir mal ein mp3-demo 
schicken wie ein synthesizer mit dem audio-prozessor klingt.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...so wies aussieht, muss ich das Projekt fallenlassen. Die 
Grafikausgabe an sich wäre kein allzugrosses Problem, allerdings fand 
ich keine Lösung für die Frage, wie ich die Daten für halbwegs 
brauchbare (NES/Gameboy-Stil) Animationen genügend schnell anliefern 
kann.

Hat irgend wer ne Idee, was man mit dem (bereits bestellten) CPLD doch 
noch anfangen könnte?

Oooder: Mit nem FPGA sollte es eigentlich gehen - aber gibts die 
irgendwo im hobbylötbaren Format?

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leg doch die Grafiken in nem Speicher ab, auf die dein Grafikcontroller 
zugriff hat. Dann brauchst du letztendlich nur noch die Position der 
einzelnen Grafiken zum Grafikcontroller übertragen (und wenn sich nix 
ändert, noch nicht mal das).

Wahrscheinlich machen die älteren Konsolen das auch nicht anders. 
Kopieren die einzelnen Grafikblöcke, soweit notwendig, erstellen ein 
Hintergrundbild und sagen dann nur noch, wo der Charakter mit welchem 
Sprite steht.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank: Ist alles bereits so geplant. Ich möchte die bewegten Grafiken 
als sogenannte BOBs 
http://de.wikipedia.org/wiki/BOB_%28Computergrafik%29 implementieren. 
Das Datenaufkommen ist aber immens.

Die andere Variante sind die echten Sprites, aber dort ist die Logik für 
die Einblendung relativ komplex - kaum etwas für ein CPLD.

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://darkwatcher.psxfanatics.com/console/

Hier findet man eine Übersicht über alte Konsolen, die ersten hatten 
noch weniger als 1 MHz CPU Frequenz und hatten trotzdem schon 
beeindruckende Spiele. Für solche alten Systeme zu entwickeln ist 
bestimmt ziemlich interessant (besonders der Intellivision interessiert 
mich)

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm, ok.

Es gibt durchaus FPGAs, die man auch noch selbst löten kann.
Guck z.B. mal bei Altera bei den Cyclones (I oder II) . Gibts noch bis 
PQFP 244. Die Frage ist halt, wieviel Logikelemente du brauchst.
(Ich glaub, ich muss auch mal was in der Art basteln, wenn ich denn Zeit 
dazu hätte... :-) )

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es gibt durchaus FPGAs, die man auch noch selbst löten kann.
> Guck z.B. mal bei Altera bei den Cyclones (I oder II) . Gibts noch bis
> PQFP 244. Die Frage ist halt, wieviel Logikelemente du brauchst.

Muss ich mir mal ansehen. Allzuviel Logik brauch ich nicht, wenn ich das 
so überdenke, wäre es mit 2 CPLDs hinzukriegen. Vielleicht werde ich es 
dann doch so versuchen, denn bis ich in der Schweiz an FPGAs komme... 
:-S

> Hier findet man eine Übersicht über alte Konsolen, die ersten hatten
> noch weniger als 1 MHz CPU Frequenz und hatten trotzdem schon
> beeindruckende Spiele. Für solche alten Systeme zu entwickeln ist
> bestimmt ziemlich interessant (besonders der Intellivision interessiert
> mich)

Hmm...motiviert mich jetzt doch nochmals. Jedenfalls ist ein AVR den 
damaligen Prozessoren weit überlegen, und mit einem CPLD liessen sich 
zumindest einfache ASICs "ersetzen". Und der Speicher ist sowieso kein 
Thema.

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@mr.chip:

Sind Dir die alten SIMMs (DRAMs) aus PC`s bekannt ?

Hier im Forum gab/gibt es mehrere Leute (mich eingeschlossen), die diese 
erfolgreich zum laufen gebracht haben - ist auch nicht sonderlich 
kompliziert.

(Du bekommst bis zu 4MByte pro Modul gratis, wenn Du einen PC zum 
Schlachten findest.)

Wenn Du dann für jedes neu generierte Bild (25 Bilder pro sek) die 
Sprites aus dem DRAM in Deinen Bildbuffer blittest, hättest Du ohne 
überlappende Sprites eine fest nach oben begrenzte Datenrate.

Der DRAM selbst könnte alle in dem Spielelevel vorhandenen Sprites 
enthalten.

Der CPLD würde dann das eigentliche Blitting übernehmen (Ansteuerung des 
DRAM-Moduls), und z.B. einfache Operationen wie z.B. Transparenz 
gegenüber dem Bild-Hintergrund ausführen.

Du kannst es ja mal durchrechnen mit einer typischen 
RAM-Random-Access-Zeit von 200ns (als Hausnummer).




Kopf hoch, IC runter und Lötkolben `drauf :-)

Autor: Feadi F. (feadi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ mr.chip:
Du kannst welche bei Segor kaufen, oder ich kann Dir einen bei Reichelt 
mitbestellen. Michael Ributschka macht auch Sammelbestellungen bei 
Digikey, da habe ich auch schon mehrfach zufrieden mitgemacht.
Beitrag "Digikey Sammelbestellung"

Möglichkeiten gibt es viele.

Gruß, Feadi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.