[STM32F746] Gameboy Emulator

OP #5376644
Hallo Mikrocontroller Fans,

ich wollte hier kurz auf das neue Show Projekt auf unserem Blog 
hinweisen.

Es ist ein Gameboy Emulator, welcher auf einem STM32F746-Disco Board 
läuft.

http://mikrocontroller.bplaced.net/wordpress/?page_id=1290

Viel Spass damit,

Manfred
(Firma: matzetronics)
Cooler Job, Leute!
Ums der MBC Emulation einfacher zu machen, könnte man evtl. das USB 
Keyboard und damit das HID Zeug rauswerfen und ein paar simple GPIO für 
ein Keypad benutzen. Ob man dadurch viel spart, müsste man ausprobieren. 
Auf jeden Fall habt ihr meinen höchsten Respekt! +1
Super cooles Projekt, aber entweder ich bin blind oder es gibt quasi 0 
Info dazu? Als interessierter Leser würde ich gerne wissen was die 
Motivation war, wo die Probleme (sofern es welche gab) lagen, wie ihr 
die gelöst hab...

Die 3 Sätze unterm Link sind eher meh. Und auch die anderen Blog-Posts 
sind extrem mager. :(
OP
Matthias S. schrieb:
> Cooler Job, Leute!
> Ums der MBC Emulation einfacher zu machen, könnte man evtl. das USB
> Keyboard und damit das HID Zeug rauswerfen und ein paar simple GPIO für
> ein Keypad benutzen. Ob man dadurch viel spart, müsste man ausprobieren.
> Auf jeden Fall habt ihr meinen höchsten Respekt! +1

Hi Matthias,
es sind alle Sourcen frei zugänglich. Es sollte also ein leichtes sein 
gewünschte Änderungen auszuprobieren.
LG, Manfred
Manfred B. schrieb:
> Hi Vincent Hamp,
>
> vielen Dank für das Feedback - aber du weisst schon, dass es auf unserem
> Blog eine Suchfunktion gibt. Dort einfach GAMEBOY eintippen - und schon
> hast du alle Infos;)
>
> Ciao,
> Manfred


http://mikrocontroller.bplaced.net/wordpress/?p=2354
http://mikrocontroller.bplaced.net/wordpress/?p=2341
http://mikrocontroller.bplaced.net/wordpress/?p=2314
http://mikrocontroller.bplaced.net/wordpress/?p=2299
http://mikrocontroller.bplaced.net/wordpress/?page_id=1290

Das is alles was die Suchfunktion ausspuckt?
OP
Vincent H. schrieb:
>
> http://mikrocontroller.bplaced.net/wordpress/?p=2354
> http://mikrocontroller.bplaced.net/wordpress/?p=2341
> http://mikrocontroller.bplaced.net/wordpress/?p=2314
> http://mikrocontroller.bplaced.net/wordpress/?p=2299
> http://mikrocontroller.bplaced.net/wordpress/?page_id=1290
>
> Das is alles was die Suchfunktion ausspuckt?

Ja genau - das sind alle Infos dazu. Es ist eins von vielen Show 
Projekten auf unserem Blog - und die Motivation ist bei allen die 
gleiche: Spass am Programmieren der STM32 Mikrocontroller.
(Firma: matzetronics)
Manfred B. schrieb:
> Hi Matthias,
> es sind alle Sourcen frei zugänglich. Es sollte also ein leichtes sein
> gewünschte Änderungen auszuprobieren.

Oh, das würde ich gerne tun, allerdings bräuchte ich erstmal ein F746 
Disco Board :-P
Wichtiger ist mir im Moment das Mini-Oszilloskop (Show-10) von euch, wo 
ich noch einen Frequenzzähler nachrüsten möchte.
OP
Genau schrieb:
> Ist das Programm speziell für diesen einen ARM-Controller von ST
> geschrieben oder lässt es sich auf andere ARM-Controller ähnlicher
> Bauart portieren ?

Hallo,
welchen anderen ARM-Controller ähnlicher Bauart meinst du denn?

Wer Uwe kennt, weiß dass seine Projekte sehr Modular aufgebaut sind.
Die Z80 Sourcen sind von ihm selbst geschrieben und mit Sicherheit auf 
anderen STM32Fx lauffähig. Aktuell läuft es auf dem STM32F7 mit ganz 
passabler Bildwiederholrate (64fps). Auf kleineren ARM Controllern (z.B. 
STM32F4) wird das nicht ganz so flüssig laufen.

LG, Manfred
Matthias S. schrieb:
> Cooler Job, Leute!
> Ums der MBC Emulation einfacher zu machen, könnte man evtl. das USB
> Keyboard und damit das HID Zeug rauswerfen und ein paar simple GPIO für
> ein Keypad benutzen. Ob man dadurch viel spart, müsste man ausprobieren.
> Auf jeden Fall habt ihr meinen höchsten Respekt! +1

Hi Matthias,
das F7-Disco board hat keine 8 Buttons und diese frei fliegend
anzuschließen finde ich aufwändiger als ein USB-Keyboard einzustecken.

Aber die Funktionen auf GPIOs zu routen ist kein Problem
(bekommst du bestimmt auch selber hin)

Genau schrieb:
> Ist das Programm speziell für diesen einen ARM-Controller von ST
> geschrieben oder lässt es sich auf andere ARM-Controller ähnlicher
> Bauart portieren ?

das Projekt ist aufgeteilt in den Z80-Emulator:
der ist in Ansi-C geschrieben...läuft also HW unabhängig

und den Gameboy-Teil:
dieser benutzt die STM-HAL um auf die Hardware zuzugreifen,
sollte aber leicht auf jede andere Plattform zu portieren sein.
(es wird nichts "spezielles" vom F7 benutzt, nicht mal der DMA)

Mann braucht nur eine Eingabemöglichkeit (min. 8 Buttons)
und ein LCD mit mindestens (160x144 Pixel in 4 Graustufen)

Vincent H. schrieb:
> Als interessierter Leser würde ich gerne wissen was die
> Motivation war, wo die Probleme (sofern es welche gab) lagen, wie ihr
> die gelöst hab...
>
> Die 3 Sätze unterm Link sind eher meh. Und auch die anderen Blog-Posts
> sind extrem mager. :(

Hi Vincent,
die Motivation war "langeweile"
Probleme gab es recht wenige
Der Z80-Emulator war reine Fleißarbeit (fast 512 Opcodes)
Aber es gibt im Netzt super Doku und Unit-Tests für den Gameboy,
damit kommt man gut zum Ziel.

Das größte "Problem" war/ist die Emulationsgeschwindigkeit.
Der original Gameboy schafft 60fps mit dem Vorteil
das die CPU sich nicht um die Grafik kümmern muss.

Die Grafik-Funktionen vom Gameboy sind etwas "unkonventionell"
der Memory-Bank-Controller ist auch nicht viel besser.

Um nicht zu viele IF-Statements einbauen zu müssen, habe ich viel
über Tabellen gelöst, das war schon die halbe Miete.

p.s. habe eine neue bugfix Version hochgeladen und konnte
nochmal 2fps rausholen (in Worten "zwei" :-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.