Goboy
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...
Choisir une liste...
Allez.
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.


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.


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




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 :
- http://www.codeslinger.co.uk/pages/projects/gameboy/files/GB.pdf
- https://github.com/retrio/gb-test-roms
- http://www.codeslinger.co.uk/pages/projects/gameboy/beginning.html
- http://bgb.bircd.org/ - précieux pour le débogage
- https://github.com/AntonioND/giibiiadvance/tree/master/docs
- https://github.com/trekawek/coffee-gb