Goboy-многоплатформенный Nintendo Gameboy и Emulator Color Gameboy, написанный в Go. Эмулятор может запустить большинство игр GB и некоторых игр CGB. Есть также цветная и звуковая поддержка. Этот эмулятор был в основном создан как упражнение по разработке и все еще находится в стадии разработки. Пожалуйста, не стесняйтесь вносить свой вклад, если вы заинтересованы в разработке эмулятора Gameboy.


Программа включает в себя функции отладки, что делает ее полезным для понимания операции эмулятора для создания одного самого. Эти функции включают в себя печать опкодов и значения регистра в консоли на каждом этапе (хотя он значительно замедлит эмуляцию) и переключение отдельных звуковых каналов.
Загрузите последний релиз Goboy со страницы релизов.
С установкой GO, вы можете установить Goboy в свой мусорное ведро, работая:
go get github.com/Humpheh/goboy/cmd/goboyЕсли у вас есть 1.11, вы также можете сделать:
git clone https://github.com/Humpheh/goboy.git
cd goboy
go build -o goboy cmd/goboy/main.goGoboy совместим с MacOS, Windows и Linux. Строительство на Windows 10 требует Mingw и на Linux, вам нужно установить GTK.
Goboy использует пиксель библиотеки GO для управления привязкой и графическим рендерингом, который требует OpenGL. Возможно, вам потребуется установить некоторые требования, которые можно найти на Pixels Readme.
goboy zelda.gbЭлементы управления: ← ↑ ↓ → Z x Введите Backspace
Цветовая палитра может проходить велосипед с = (в режиме DMG), и игра может быть сделана полноэкранной с f .
Другие варианты:
-dmg
set to force dmg mode
-mute
mute sound outputВарианты отладки или эксперимента:
-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)Есть несколько сочетания клавиш, полезных для отладки:
Q - Force Toggle Faine
W - силовые переключения спрайты
A - Печать данных фоновой палитры GB (CGB)
S - распечатать данные палитры Sprite (CGB)
D - распечатать фоновую карту для журнала
E - Печать переключения оплота в консоли (замедлит выполнение)
7,8,9,0 - переключить звуковые каналы с 1 по 4.
Если загруженный ПЗУ поддерживает батарею A <rom-name>.sav (например, zelda.gb.sav ), будет создан рядом с загруженным ПЗУ, содержащим дамп оперативной памяти из картриджа. Цикл в программе будет обновлять этот файл сохранения каждую секунду во время работы игры.
В настоящее время Goboy проходит все тесты в cpu_instrs Blargg и instr_timing Test ROM.


Эти ПЗУ включены в исходный код вместе с тестом для проверки вывода, как и ожидалось ( instructions_test.go и timing_test.go ). Эти тесты также проводятся на каждом коммите.
Пожалуйста, не стесняйтесь открывать запросы на это проект или поиграть, если вам интересно! Есть еще много небольших ошибок, которые можно легко найти, играя в игры на эмуляторе, или взять задачу из списка TODO ниже!




Большое разнообразие ресурсов использовалось для понимания и тестирования оборудования Gameboy. Некоторые из них включают в себя: