Gameboy Advance Diplay missbrauchen?

Gast #117124
Lesenswert?

Hallo zusammen,

Ich habe vor mir mit einem AVR eine Art Gameboy zu bauen, auf dem ich
dann 2D-Spiele usw. Spielen kann. Nur fehlt mir noch ein Display.
Da ein Farbdisplay mit mindestens 240x128 Pixeln recht teuer ist,
dachte ich mir, ob ich nicht das Display aus meinem alten Gameboy
Advance (240x160 Pixel) benutzen kann?

Ist es möglich ein Gameboy Advance Display mit einem AVR anzusteuern
und weis jemand, wie so etwas funktioniert?

Wäre über Ratschläge sehr dankbar!
MFG AVR-Bastler
Gast #117128
Lesenswert?

Also, entweder bin ich zu dumm, oder in den ganzen Threads gehts mur um
das Monochrom Display oder das Display des GB-Color!!
So wie es aussieht ist es wohl nicht einfach, diese GB-Displays
anzusteuern!

Kann mir jemand ein Color-Display empfehelen, dass ca. 240x160 Pixel
(mehr wär auch ned schlecht) hat und auch noch bezahlbar ist?

Würde mich sehr über Hilfe freuen!
Gruß Tobi
Gast #117131
Lesenswert?

Tja, es müsste einfach mal jemand seinen GB Advance aufschrauben und
auf's Display gucken. Ich wette, dass Nintendo einen proprietären
Chipsatz benutzt, zu dem es kaum Doku gibt. Falls dem jedoch nicht so
sein sollte: -> googeln -> Datenblatt downloaden -> hier posten. :-)
Wenn man erst mal ein Datenblatt hat, ist der Rest vglw. simpel.
Gast #117132
Lesenswert?

Wenn der AVR ein Grafikdisplay mit Daten beschicken soll, bleibt wohl
kaum genug Rechenzeit übrig, um noch groß andere Dinge zu tun,
höchstens du aktualisierst das Display nicht allzuoft, also
Rennwagenspiel (2D) ist kaum machbar, höchstens auf dem ganz kleinen.
jörn
Gast #117133
Lesenswert?

Du koennstest dir ein NEC N341i Handy kaufen und das Display
ausschlachten. Das HAndy ist ein derart uebel programmierter Murks das
es keinen grossen Wert haben kann, aber das Display ist gut.
ICh warte schon sehnsuechtig darauf das ich meins zerlegen kann. :-)

Ich denke aber auch das ein AVR dafuer nicht die richtige Wahl ist. Zum
einen GEschwindigkeit zum anderen auch Speichergroesse. Gerade bei
Farbdisplays muss man ja einiges an Daten bewegen.

BTW: Was ist eigentlich im Color-Gameboy fuer eine CPU drin? Ich kann
kaum glauben des noch ein alter Z80 ist.

Olaf
Gast #117134
Lesenswert?

>Ich wette, dass Nintendo einen proprietären
>Chipsatz benutzt, zu dem es kaum Doku gibt.

Naja nicht ganz. Die Ansteuerung läuft im GBA direkt über den
Hauptprozessor. Das ist ein ASIC von Nintendo mit ARM7-Kern, RAM,
Videospeicher, Soundmodul, Keyboardmodul, Schnittstellen usw. - alles
in einem Chip (am billigsten). Das Display wird also direkt vom ASIC
angesteuert und wird darauf spezialisiert sein, so dass die Ansteuerung
ohnen diesen kaum möglich sein wird. Für das ganze gibts aber jede Menge
Doku und Software...

http://www.ziegler.desaign.de
http://www.gbadev.org

Gruß Andreas
Gast #117135
Lesenswert?

Danke erstmal für die vielen Antworten!
Also, dass mit dem GBA Display kann man wohl vergessen )-:

Gibt es irgendwelche Farbdisplays, die ca. 240x160 Pixel, (320x240 wäre
natürlich besser) haben, die man auch einfach mit einem AVR ansteuern
kann???

Zur Geschwindigkeit:
Ich habe mir das so forgestellt, dass ein AVR als "Hauptprozessor"
arbeitet, der dann Bilder in einen Speicher läd, oder zimindest immer
das, was sich am Bild verändert hat. Ein 2. AVR arbeitet dann als
"Grafikprozessor" und läd immer das im Speicher abgelegte Bild in den
Controller von Display!

Könnte man so eine akzeptable Grafik bekommen?
Gast #117136
Lesenswert?

Ich hab noch was vergessen:

Kann man auch Displays mit 16bit Farbtiefe mit 8bit Farbtiefe
ansteuern? Weil 256 Farben würden mir eigentlich langen!

Würde mich sehr über Hilfe freuen!
Gruß Tobi
Gast #117137
Lesenswert?

Ich wuerde empfehlen bevor man soetwas anfaengt mal zum Taschenrechner
zu greifen und dann auszurechen wie oft man wiviel kb verschieben muss.
Danach ist dann vermutlich die ein oder andere Idee gestorben. :-)

Olaf
Gast #117138
Lesenswert?

Wenn ich ein Bild mit 240x160 Pixeln bei einer Farbtiefe von 1byte
speicher, is das doch ca. 33kb groß! Bei einer Wiederholungsfrequenz
von 50hz (oder geht das nicht?) sind das doch ca. 1920kb! schafft man
das nicht mit einem AVR? Oder müsste ich einen anderen Micro nehmen?
Was würdet ohr mir empfehlen?

Würde mich sehr über Hilfe freuen!
Gruß Tobi
Gast #117139
Lesenswert?

240*160 Pixel @ 256 Farben = 37,5kB pro Bild => @50fps = 1,83MB/s. Das
halte ich schon für ziemlich gewagt. Per USART bekommst du nicht viel
mehr als 0,1MB/s durch, also müsste dein Bus mehr als das Zehnfache
können. Einfach die Daten 8-bittig parallel rausschieben halte ich auch
für schwierig. So kämst du bei 8MHz Takt zwar theoretisch auf bis zu
8MB/s, aber das wäre ja ein reiner Burst-Betrieb. Wenn der µC sagen wir
mal zu 80% rechnet (Grafikberechnung, Spielfluss etc.) und nur zu 20%
reine Grafikausgabe macht, kommst du so gerade auf 1MB/s. Aber das
halte ich für arg auf Kante genäht.
Gast #117140
Lesenswert?

Ja nu, 50Hz sind ja auch viel zu viel. Mit 20-25 Bildern pro Sekunde
sieht es schon flüssig aus. Man sollte hier Bildwiederholrate von
"Bildern pro Sekunde" unterscheiden. Ausserdem ändert sich meist
nicht der ganze Bildschirminhalt, wobei die Berechnung, was überhaupt
upgedated werden soll auch aufwendig sein kann.
Gast #117141
Lesenswert?

Hallo AVR-Bastler,

also mich würde jetzt mal interessieren welchen Zweck Du mit Deiner
Entwicklung verfolgst. Geht es Dir darum, unbedingt einen AVR für
Deinen "Gameboy" zu verwenden oder willst Du das so machen, weil Du
"nur" den AVR kennst (Dein Nick würde dafür sprechen...)und das eher
ein Softwareproblem ist?
Falls es Dir darum geht, eigene Spiele entwickeln zu können, kannst Du
das auch für den richtigen Gameboy tun. Ich fürchte im Bezug auf die
Performance und die Funktionalität wird Dein AVR-basiertes System nie
an sein Vorbild rankommen.

Gruß Andreas
Gast #117142
Lesenswert?

Hallo

@hebel23
Mir geht es eigentlich darum, dass ich selber so eine Art "Gameboy"
bau und darauf dann kleine Spiele laufen lassen kann.

Warum ich einen AVR Benutze?
Ich habe bis jetzt nur mit AVR´s gearbeitet, aber ich überlege mir eh,
ob ich als Hauptprozessor nicht einen etwas Leistungsfähigeren
Microcontroller nehme (32-bit).
Jetzt geht es mir eigentlich nur darum, wie ich aus einem Speicher ein
Bild lesen kann und an ein Display schicken kann. Danach kann ich ja
immernoch entscheiden, ob ich vor den Speicher einen anderen Micro
häng, oder?

Ihr habt geschrieben, das der AVR mit der Display Übertragung schon
ziemlich ausgelastet wäre, dies spielt doch aber eigentlich keine
Rolle, da er eh nur Daten aus dem Speicher holt und diese an das
Display sendet, oder?


Würde mich sehr über Hilfe freuen!
Gruß Tobi
Gast #117143
Lesenswert?

Der Lehrling soll ein Rohr bauen. Der Meister fragt ihn, wie er
vorzugehen gedenkt.
Lehrling: "Ich nehme ein Loch und wickel Metall drum!"
Meister: "Und wo nimmst Du das Loch her?"
Lehrling: "Ich nehme ein altes Ofenrohr, und mache das Blech ab!"

Gruß,
Markus_8051
Gast #117145
Lesenswert?

Er meint damit du sollst den fertigen GameBoy programmieren, garnichts
an Hardware bauen sondern direkt für den Gameboy programmieren. So
könntest du eventuell sogar noch Geld verdienen.

Gruß Hagen
Gast #117146
Lesenswert?

sorry, dann hab ich das wohl falsch verstanden.

Das mit dem Geld verdienen wäre zwar toll, aber trotzdem würde ich
gerne so ein Gerät selber bauen, nur bräuchte ich noch ein bischen
Hilfe bei der Sache mit dem Display!
Würde mich sehr über Hilfe freuen
Gruß Tobi
Gast #117147
Lesenswert?

Für mich klingt das jetzt, als wolltest Du den AVR als Displaycontroller
einsetzen?! Wofür gibt es denn Displaycontroller? Damit die das Vollbild
verwalten und Du nur noch die Änderungen zu senden brauchst.

Ob der AVR das schafft, hängt vor allem davon ab, wieviel Änderungen Du
haben willst. Einen Pacman und ein paar Monster durch die Gegend zu
schieben, schafft der AVR mit links. Und wenn Dein Display nicht TFT
ist, ist es eh' zu langsam für irgendwelche 20 Frame-Träume.

Wenn ich sowas angehen würde, würde ich klein anfangen und später
aufbohren. Nimm so ein 20 Euro-Display mit 128*64 und eingebautem
Controller. Dann schreib mal ein Spiel und schau, wie es performed. Und
wenn da zuviele Reserven sind (-; nimmst Du QVGA Auflösung und Farbe
dazu. Und wenn Du gut programmiert hast, ist es kaum Aufwand, die
Graphikausgabe anzupassen. (Guter Test übrigens, ob man sich saubere
Schnittstellen überlegt hat! (-; )
Gast #117148
Lesenswert?

Is eigentlich eine gute Idee!
Ich kenn mich mit Displays nicht so gut aus und hab gedacht, dass man
dem Controller die Daten immer neu schicken muss.

Also, wenn ich garkein "Grafikprozessor" brauch, dann sollte ich mir
schnell überlegen, ob einen anderen Prozessor nehm??
Gibt es irgendwelche Micros (16bit oder so), mit denen ich deutlich an
Leistung gewinnen könnte???

Würde mich sehr über Hilfe freuen!
Gruß Tobi
Gast #117151
Lesenswert?

Es ist bei allen Controller klug bei farbiger, bewegter Grafik und doch
recht vielen Pixeln (also nicht 64x64) einen Displaycontroller zu
nehmen. Dafür gibt es die ja.
Nicht nur der AVR ist eine rel. schlechte Wahl für sowas, auch 32bit
Controller machen sowas nicht gerade gut.

Hängt eben von den Ansprüchen ab, aber warum in vielen zig STunden
etwas bauen, was bei Karstadt auf dem Grabbeltisch niemand mehr für 5,-
EUR haben will??

jörn
Gast #117152
Lesenswert?

Vielleicht noch einen Tip zur Berechnung der Geschwindigkeit. Es ist
keinesfalls so das man einfach weniger Daten an ein Display schicken
muss wenn man weniger bewegt. Also z.B auch garnichts machen muss wenn
man ein STandbild haben will.

Die Teile wollen trotzdem immer mit einer gewissen Mindestfrequenz die
Bilddaten reingeschrieben haben. Haelt man sich da nicht daran so geht
das Display kaputt. Genauer gesagt fangen dann die Pixel an komisch
auszusehen. Das kann man sogar schaffen wenn man einen
Displaycontroller hat und den falsch programmiert. Ist mir jedenfalls
schonmal passiert.

Ich wuerde zum selberbasteln wirklich allerdringenst darauf achten ein
Display zu verwenden das bereits einen Grafikkontroller eingebaut hat.
Auch wenn die teuer sind! Der Aufwand ist sonst immens.

Nur wenn das Display selber intelligent ist und z.B einen Zeichensatz
enthaelt und auf Wunsch Linien zwischen zwei Punkten zeichen kann
wuerde ich es an einen kleinen AVR haengen. Muss man naemlich den
kompletten Bildaufbau selber machen dann braucht man auch entsprechend
viel Speicher im Microcontroller, bzw. dann externen Speicher.

Wie man sieht, da steckt ein grosser Aufwand hinter und deshalb sieht
man Grafikdisplay auch nur recht selten. Die sind fuer fast alle
Anwendungen zu teuer. Handy und Digitalkameras sind da wohl die einzige
Ausnahme. Bei letzeren ist das aber wohl nicht so schlimm weil Kameras
sowieso schon ein dicken Prozessor und Ram haben um ueberhaubt mit den
grossen Bilddaten umgehen zu koennen.

Olaf
Gast #117154
Lesenswert?

Als Prozessor würde ich wohl einen ARM nehmen, von wem auch immer. Da
gibt es billige Exemplare mit ordentlich Leistung und freien
Entwicklertools.

Wenn Du Display und Display-Controller getrennt besorgst, kannst Du
auch einen auswählen, der vom s/w-128*64 bis zum 8-Bit-Farb-QVGA
reicht, dann mußt Du später nicht den Controller wechseln und wieder
bei null anfangen. Aber sei gewarnt: das Kombinieren von Displays und
Controllern scheint mir eine Wissenschaft für sich zu sein.
Gast #117155
Lesenswert?

Gibt es nicht Display, bei denen der COntroller schon festgelötet ist
und die man per SPI ansteuern kann? Weil wenn ich das Display mit SPI
ansteuer, ist es ja egal,w elches Display ich anschließ, ich muss ja
nur die "Befhele" an das Display ändern, oder?

Gruß AVR-Bastler
Gast #117158
Lesenswert?

Man könnte ja auch den Gameboy Prozessor mit dem AVR kommunizieren
lassen. Die Grafikausgabe wird dann komplett vom GBA Prozessor
übernommen.
Sinnvoll ist das aber wahrscheinlich nur, wenn man externe Hardware wie
z.B. Sensoren auslesen muss. Will man nur ein Spiel schreiben, braucht
man keinen externen Prozessor.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren