gameboy emulator


SirDzstic

Member
Joined
Nov 14, 2005
Messages
187
Hallo,

ich habe mit einem anderen bei berliOS ein Projekt angefangen,
einen gameboy emulator für den gp2x zu entwickeln.
Ich mache das, um was zu lernen; dass es nicht wirklich
effizient ist, einen Emulator "from scratch" neu zu entwickeln,
ist mir klar, aber wie ich sagte, geht es mir darum nur zweitrangig.

Ich dachte, es könnte ggf. jemanden hier interessieren, deshalb
hier die Homepage des Projekts: http://developer.berlios.de/projects/gb4gp2x/
Download ist per anonymem SVN-Zugang möglich.

Bis jetzt ist ein Bootloader und und ein kleiner Teil des Prozessors
implementiert, und ich konnte sogar schon den Anfang diverser
Roms erfolgreich ausführen (damit meine ich die ersten 5-6 opcodes :)).

Vielleicht hat ja jemand Anmerkungen, Vorschläge, etc...

SirDzstic

€:
Ich habe die Ausführung der Opcodes in proc.c aus dem switch-statement
ausgegliedert. In der aktuellen Revision ist das noch nicht komplett,
deshalb sieht es darin sehr chaotisch aus.
Ich bitte um Verzeihung :)
 
Hey, das sind ja gute News.

Ich kann den Emulator gerne testen, wenn Du willst. Hab ja dafür einen gp2x hier.
 
Würde mich sehr freuen, aber erwarte nicht zu viel.
Es ist im Moment noch eine reine Konsolenanwendung, ohne Grafik o.Ä. :)
 
SirDzstic said:
Würde mich sehr freuen, aber erwarte nicht zu viel.
Es ist im Moment noch eine reine Konsolenanwendung, ohne Grafik o.Ä. :)

Sobald er was grafisch anzeigt: Her damit.
Da ich kein serielles Kabel habe, kann ich leider keine Konsole sehen ;)
 
Ich werde bescheid sagen, sobald was entsprechendes ins repository committet wurde.

Ich denke, ich werde für die Ausgaben auf der Konsole demnächst
nen SDL-Frontend schreiben.
Freut euch auf Ausgaben wie diese:
Code:
asdf@localhost /home/asdf/src/gb4gp2x/trunk $ bin/gb4gp2x ~/src/rom/test.gb 
booting /home/asdf//src/rom/test.gb...
loading ROM into memory... done.
ROM info:
        title:          (Censored by SirDzstic :P)
        GBC Indicator:  non-GBC (0x00)
        GB/SGB Ind.:    GB
        licensee:       0x3030
        cart type:      0x03
        ROM size:       0x04
        RAM size:       0x02
        Destination:    japanese

reading Nintendo logo... done.
displaying logo...
checking logo... ok
checksum: ok
initializing memory, registers and stack... done.
boot sequence complete.

registers:
AF: 01b0
BC: 0013
DE: 00d8
HL: 014d
stack pointer:   fffe
program counter: 0100

dumping core... done.
0100    NOP
0101    JP      0150
0150    ???     (f3)
0151    ???     (3e)
0152    LD      BC, 00ea
0155    ???     (20)
0156    JP      4000
4000    ???     (f3)
4001    ???     (3e)
4002    ???     (0a)
exit.
 
Committed revision 16.


Es wäre ganz nett, wenn einer mal die aktuelle Revision herunterladen würde
und mir sagen könnte, wo Kommentare nötig sind. Bis jetzt glaube ich, dass
ich der einzige bin, der den source versteht :(
Code:
svn checkout http://svn.berlios.de/svnroot/repos/gb4gp2x/trunk
 
klingt cool, werde ihn später auch gerne testen...
programmierst (und optimierst) du schon jetzt für arm und biste im moment noch an ner ersten version die auf x86 läuft?
 
Ich versuche mich weitgehend an Standards zu halten, damit er sich auf möglichst vielen Systemen kompilieren lässt.
Ich habe ihn noch nicht auf dem GP2X getestet, weil er noch keine Grafikausgabe hat, sondern nur grob die Hälfte
des Prozessors emuliert ist.
Mit sterm sollte er eigentlich laufen; kannst ihn gern mal crosscompilieren und es ausprobieren. Ich hab hier
grad mein System neu aufgesetzt und komm nicht so recht zum Testen.

Er sollte schön einzeln auflisten, welcher Befehl gerade dran ist, und ihn auch entsprechend ausführen.

€: Achso, das ist vielleicht nicht so wichtig, aber ich gehe im moment davon aus, dass das Terminal
auf dem der Emulator ausgeführt wird mindestens 80 Zeichen pro Zeile platz bietet.
Könnte mir mal einer zurückmelden, ob sterm das bietet, sonst muss ich irgendwie
quetschen ;)

€2: Ich hab mal auf die schnelle nen Binary kompiliert.
gb4gp2x
 
SirDzstic said:
€2: Ich hab mal auf die schnelle nen Binary kompiliert.
gb4gp2x

Was für ein Binary? Ich habe die Datei gezogen, mit Extension *.gpe ergänzt ins Root der SD-Karte, gestartet und.... Menü. Im Terminal wird kein Fehler angezeigt, aber auch keine sonstige Ausgabe.

Oder soll mit dem Binary was anderes gemacht werden?

Greetz
BNrXYZ
 
Nein nein nein :/

Wenn du es ausführen willst, führ es in sterm aus.
Wenn du es über das menü startest, spuckt dir das binary nur nen Fehler auf stdout aus, den du nicht sehen kannst, weil es keine Graphische Ausgabe hat, und du landest wieder im Menü (wenn du glück hast -- wie gesagt, ich habe es noch nicht getestet).

Im sterm:
./gb4gp2x <pfad zum rom>
 
BestNrXYZ said:
SirDzstic said:
€2: Ich hab mal auf die schnelle nen Binary kompiliert.

Was für ein Binary?

mal so reingeschoben:
Nehmt ihr immer für Binary ein männliches Adjektiv, ich dachte immer es wäre weiblich und heißt die Binary/ eine Binary.
 
Missbraucht mal meinen Thread nicht so, sondern probierts mal aus :/
Ich kann meinen GP2X nicht ansprechen weil der mein ehci-hcd modul nicht mag.

DAS Binary btw :>
 
Back
Top