O Goboy é um Nintendo Gameboy de várias plataformas e o emulador de cores Gameboy escrito em Go. O emulador pode executar a maioria dos jogos da GB e alguns jogos CGB. Há também suporte de cor e som. Este emulador foi construído principalmente como um exercício de desenvolvimento e ainda está em andamento. Sinta -se à vontade para contribuir se você estiver interessado no desenvolvimento do emulador de gameboy.


O programa inclui funções de depuração, tornando -o útil para entender a operação do emulador para construir um você mesmo. Essas funções incluem a impressão de códigos de operações e os valores de registro no console em cada etapa (embora desacelerem bastante a emulação) e alternar de canais de som individuais.
Faça o download do lançamento mais recente do Goboy na página de lançamentos.
Com o Go Instalado, você pode instalar o Goboy em sua lixeira, executando:
go get github.com/Humpheh/goboy/cmd/goboySe você foi 1.11, você também pode fazer:
git clone https://github.com/Humpheh/goboy.git
cd goboy
go build -o goboy cmd/goboy/main.goO Goboy é compatível com macOS, Windows e Linux. Com base no Windows 10, requer Mingw e Linux, você precisará instalar o GTK.
O Goboy usa o pixel da biblioteca Go para encadernação de controle e renderização gráfica, que requer o OpenGL. Pode ser necessário instalar alguns requisitos que possam ser encontrados no Readme dos Pixels.
goboy zelda.gbControles: ← ↑ ↓ → Z X Digite Backspace
A paleta de cores pode ser ciclada com = (no modo DMG) e o jogo pode ser feito com tela cheia com f .
Outras opções:
-dmg
set to force dmg mode
-mute
mute sound outputDebug ou opções experimentais:
-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)Existem alguns atalhos de teclado úteis para depuração:
Q - Força o fundo de alternância
W - Força Sprites de Alternância
A - Imprimir dados da paleta de fundo GB (CGB)
S - Imprimir dados da paleta Sprite (CGB)
D - Imprimir mapa de fundo para registrar
E - TOLGLE OPCode Printing para console (vai desacelerar a execução)
7,8,9,0 - alterne os canais de som 1 a 4.
Se a ROM carregada suportar uma bateria A <rom-name>.sav (por exemplo, o arquivo zelda.gb.sav ) será criado ao lado da ROM carregada contendo um despejo da RAM do cartucho. Um loop no programa atualizará esse arquivo salvo a cada segundo enquanto o jogo estiver em execução.
Atualmente, o Goboy passa todos os testes no cpu_instrs da BLARGG e nas ROMs de teste do instr_timing .


Essas ROMs estão incluídas no código -fonte, juntamente com um teste para verificar a saída, é o esperado ( instructions_test.go e timing_test.go ). Esses testes também são executados em cada confirmação.
Sinta -se à vontade para abrir pedidos de puxar para este projeto ou brincar se você estiver interessado! Ainda existem muitos pequenos bugs que podem ser facilmente encontrados jogando jogos no emulador ou aceitar uma tarefa da lista de TODO abaixo!




Uma grande variedade de recursos foi usada para entender e testar o hardware Gameboy. Alguns deles incluem: