Forum: Mikrocontroller und Digitale Elektronik [STM32F746] Gameboy Emulator


von Manfred B. (manib)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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

von Vincent H. (vinci)


Lesenswert?

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. :(

von Manfred B. (manib)


Lesenswert?

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

von Manfred B. (manib)


Lesenswert?

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

von Vincent H. (vinci)


Lesenswert?

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?

von Manfred B. (manib)


Lesenswert?

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.

von René F. (Gast)


Lesenswert?

Schönes Projekt, hast du dir die Pan Docs von Martin Korth zuhilfe 
genommen?

von Manfred B. (manib)


Lesenswert?

René F. schrieb:
> Schönes Projekt, hast du dir die Pan Docs von Martin Korth zuhilfe
> genommen?
Hi René, der Emulator hat mein Bruder, Uwe programmiert - ich mache hier 
nur etwas "Werbung". Ich werde Uwe bitten etwas mehr Backgroundinfos 
anzugeben.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Philipp G. (geiserp01)


Lesenswert?

Respekt vor der Arbeit.

von Genau (Gast)


Lesenswert?

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 ?

von Manfred B. (manib)


Lesenswert?

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

von Uwe B. (derexponent)


Lesenswert?

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" :-)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.