Goboy ist ein Multi-Plattform-Nintendo Gameboy und Gameboy Color Emulator in Go. Der Emulator kann die meisten GB -Spiele und einige CGB -Spiele durchführen. Es gibt auch Farb- und Klangunterstützung. Dieser Emulator wurde hauptsächlich als Entwicklungsübung aufgebaut und arbeitet noch in Arbeit. Bitte zögern Sie nicht, einen Beitrag zu leisten, wenn Sie an der Entwicklung von Gameboy -Emulator interessiert sind.


Das Programm umfasst Debugging -Funktionen, was es nützlich macht, den Emulatorbetrieb für den Erstellen eines selbst zu verstehen. Diese Funktionen umfassen das Drucken von Opcodes und Registrierung von Werten in der Konsole bei jedem Schritt (obwohl die Emulation stark verlangsamt) und das Umschalten einzelner Klangkanäle.
Laden Sie die neueste Veröffentlichung von GoBo von The Releases -Seite herunter.
Wenn Go installiert ist, können Sie Goboy durch Ausführen in Ihren Go -Bin installieren:
go get github.com/Humpheh/goboy/cmd/goboyWenn Sie Go 1.11 haben, können Sie auch:
git clone https://github.com/Humpheh/goboy.git
cd goboy
go build -o goboy cmd/goboy/main.goGoBo ist mit MacOS, Windows und Linux kompatibel. Wenn Sie auf Windows 10 erstellt werden, müssen Sie Mingw und Linux benötigen, Sie müssen GTK installieren.
GoBoy verwendet das Go -Bibliothekspixel für Steuerbindungen und Grafiken, für die OpenGL erforderlich ist. Möglicherweise müssen Sie einige Anforderungen installieren, die auf den Pixel Readme gefunden werden können.
goboy zelda.gbSteuerelemente: ← ↑ ↓ → Z x Geben Sie die Rückfläche ein
Die Farbpalette kann mit = (im DMG -Modus) gefahren werden, und das Spiel kann mit f Vollbildmaterial erstellt werden.
Andere Optionen:
-dmg
set to force dmg mode
-mute
mute sound outputDebugg oder experimentelle Optionen:
-cpuprofile string
write cpu profile to file (debugging)
-disableVsync
set to disable vsync (debugging)
-stepthrough
step through opcodes (debugging)
-unlocked
if to unlock the cpu speed (debugging)Es gibt einige Tastaturverknüpfungen, die zum Debuggen nützlich sind:
Q - Hintergrund umschalten
W - Kraftschaltsprites erzwingen
A - GB -Hintergrundpalettendaten (CGB) drucken
S - Print Sprite -Palettendaten (CGB)
D - Hintergrundkarte zum Protokollieren Sie drucken
E - Opcode -Druck in die Konsole umschalten (verlangsamt die Ausführung)
7,8,9,0 - Schallkanäle 1 bis 4 umschalten.
Wenn das geladene ROM eine Batterie unterstützt, wird neben dem geladenen ROM, das eine Dump des RAM von der Patrone enthält, eine Akku (eine <rom-name>.sav (z. B. zelda.gb.sav ) unterstützt. Eine Schleife im Programm aktualisiert diese Speicherdatei jede Sekunde, während das Spiel ausgeführt wird.
GoBo führt derzeit alle Tests in Blarggs cpu_instrs und instr_timing -Test -ROMs bestanden.


Diese ROMs sind zusammen mit einem Test im Quellcode enthalten, um die Ausgabe wie erwartet zu überprüfen ( instructions_test.go und timing_test.go ). Diese Tests werden auch in jedem Commit durchgeführt.
Bitte zögern Sie nicht, Pull -Anfragen an dieses Projekt zu öffnen oder zu spielen, wenn Sie interessiert sind! Es gibt immer noch viele kleine Fehler, die durch das Spielen von Spielen im Emulator leicht zu finden sind oder eine Aufgabe von der TODO -Liste unten übernehmen!




Eine Vielzahl von Ressourcen wurde verwendet, um die Gameboy -Hardware zu verstehen und zu testen. Einige davon sind: