Goboy

Humpheh Humpheh
Dépôt créer le : 20/08/2017
Release du : 25/02/2026 GoBoy v0.5
Forks: 121 Watcher: 0 2638
Choisir une liste...
FR

Allez.

Build StatuscodecovGo Report CardGoDoc

GoBoy est un émulateur multiplateforme Nintendo GameBoy et GameBoy Color écrit en go. L'émulateur peut gérer la majorité des jeux GB et certains jeux CGB. Il y a aussi support de couleur et de son. Cet émulateur a été construit principalement comme un exercice de développement et est toujours en cours. N'hésitez pas à contribuer si vous êtes intéressé par le développement de l'émulateur GameBoy.

links-awakening-dx.pngpkmn-gold-game.png

Le programme inclut des fonctions de débogage qui le rendent utile pour comprendre le fonctionnement de l'émulateur pour en construisant vous-même. Ces fonctions comprennent l'impression d'opcodes et de valeurs de registre sur la console à chaque pas (bien qu'il ralentira considérablement l'émulation) et le basculement des canaux sonores individuels.

Installation

Téléchargez le dernière publication de GoBoy de la page de sortie.

Bâtiment à partir de la source

Avec go installé, vous pouvez installer GoBoy dans votre bin go en exécutant:

go get github.com/Humpheh/goboy/cmd/goboy

Si vous avez Go 1.11, vous pouvez également faire:

git clone https://github.com/Humpheh/goboy.git
cd goboy
go build -o goboy cmd/goboy/main.go

GoBoy est compatible avec MacOS, Windows et Linux. En s'appuyant sur Windows 10 nécessite MinGW et Linux, vous devrez installer gtk.

GoBoy utilise la bibliothèque go pixel pour le contrôle et le rendu graphique, qui nécessite OpenGL. Vous pourriez avoir besoin d'installer certaines exigences qui peuvent être trouvées sur le lecture de pixels.

Utilisation

goboy zelda.gb

Contrôles: ← ↑ ↓ → Z X Entrée dans l'espace de retour

La palette de couleurs peut être cyclique avec = (en mode DMG), et le jeu peut être fait plein écran avec F.

Autres options:

  -dmg
    	set to force dmg mode
  -mute
    	mute sound output

Options expérimentales ou de débogage:

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

Déboguement

Il y a quelques raccourcis clavier utiles pour le débogage :

Q - force basculer le fond
W - force à basculer les sprites
A - imprimer les données de la palette de fond gb (cgb)
S - imprimer les données de la palette sprite (cgb)
D - imprimer la carte de fond pour le journal
E - basculer l'impression d'opcode vers la console ( ralentira l'exécution)
7,8,9,0 - basculer les canaux sonores 1 à 4.

Sauver

Si le ROM chargé supporte une batterie .sav (par exemple) zelda.gb.sav) fichier sera créé à côté du ROM chargé contenant une décharge de la RAM de la cartouche. Une boucle dans le programme mettre à jour ce fichier de sauvegarde toutes les secondes pendant que le jeu est en cours d'exécution.

Essais

GoBoy passe actuellement tous les tests dans Blargg cpu_instrs et instr_timing les examens.

cpu-instrs.pnginstr-timing.png

Ces rom sont inclus dans le code source ainsi qu'un test pour vérifier la sortie est comme prévu (instructions_test.go et timing_test.go). Ces tests sont également exécutés sur chaque commit.

Contribution

S'il vous plaît n'hésitez pas à ouvrir des demandes de tirage à ce projet ou de jouer autour si vous êtes intéressé! Il y a encore beaucoup de petits bugs qui peuvent facilement être trouvés en jouant à des jeux sur l'émulateur, ou prendre un tâche de la liste TODO ci-dessous!

Bugs connus et liste TODO

  • [x] Sprites près du bord de l'écran sans dessin
  • [x] La moitié supérieure du sprite disparaît en haut de l'écran
  • [x] Petites sprites rainure
  • [x] Problème de décalage de la fenêtre de tuile BG - visible sur Pokemon Rouge écran d'éclaboussure - peut-être pas temps interruption?
  • [x] Harry Potter et la Chambre des Secrets a des problèmes de sprite étranges
  • [x] La demande de mettre l'écran en blanc ne le fait pas
  • [x] Support bancaire MBC3
  • [x] Améliorer l'APU (voir Pokémon jaune ouverture de l'écran pour la raison pourquoi)
  • [x] Fenêtre séparable
  • [x] Écran blanc lorsqu'il est éteint
  • [x] Comportement à l'opcode STOP
  • [ ] Bogues Sprite Z
  • [ ] Problèmes mineurs de calendrier de l'APU
  • Meilleur tampon APU
  • [ ] Arrête de plaisanter
  • [ ] Support d'horloge MBC3
  • [ ] Accélérer le processeur et le processeur
  • L'assurance-chômage native de la plateforme ?
  • [ ] Plus de palettes de couleurs DMG
  • [ ] Soutien des états de sauvegarde
  • [ ] Soutien des démarrages
  • [ ] Les ROM d'essai de Blargg

links-awakening.pngpkmn-tcg.png

pkmn-gold.pngpkmn-red.png

Ressources

Une grande variété de ressources ont été utilisées pour comprendre et tester le matériel GameBoy. Voici quelques-uns de ces éléments :

Contributeurs GitHub

Humpheh
Humpheh
154 contributions
BartElliott
BartElliott
1 contributions
ear7h
ear7h
1 contributions
TotallyGamerJet
TotallyGamerJet
1 contributions
lk16
lk16
1 contributions