Создавайте, вносите вклад и расширяйте самый точный эмулятор Game Boy Advance. Получите доступ к инструментам разработчика, документации API, исходному коду и руководящим принципам для участников.
mGBA — это проект с открытым исходным кодом, созданный сообществом разработчиков. Независимо от того, интересуетесь ли вы внесением кода, созданием пользовательских инструментов или созданием портов платформ, платформа разработчика предоставляет все необходимые ресурсы для начала работы.
Мощные инструменты и API для расширения и настройки mGBA
Полная поддержка скриптинга Lua 5.4 позволяет создавать пользовательские инструменты, тренеры, скрипты автоматизации и модификации игр. Программно получайте доступ к памяти, регистрам CPU, вводам и функциям эмулятора.
Встроенные возможности отладки для анализа поведения игр, проверки памяти и тестирования точности эмуляции. Идеально подходит для разработки игр и тестирования ROM.
Продвинутая система состояний сохранения с инструментами анализа. Проверяйте, изменяйте и конвертируйте состояния сохранения между форматами. Функциональность экспорта и импорта для кроссплатформенной совместимости.
Комплексные инструменты тестирования ROM для проверки совместимости игр и выявления проблем. Фреймворк автоматизированного тестирования для регрессионного тестирования и проверки совместимости.
Встроенные инструменты профилирования для анализа производительности эмуляции. Выявляйте узкие места, оптимизируйте рендеринг и измеряйте компромиссы между точностью и скоростью.
Программный доступ к конфигурации эмулятора. Создавайте пользовательские инструменты конфигурации, управляйте настройками программно и создавайте скрипты автоматизации.
Всё, что вам нужно для начала разработки с mGBA
Получите доступ к полному исходному коду mGBA на GitHub. Просматривайте кодовую базу, читайте историю коммитов и понимайте архитектуру.
Узнайте, как собрать mGBA из исходного кода на Windows, macOS, Linux и других платформах. Пошаговые руководства для каждой платформы.
Полная справочная информация по API для скриптинга Lua, конфигурации и внутренних API. Примеры, учебные пособия и лучшие практики.
Поймите внутреннюю архитектуру mGBA, решения по дизайну и организацию кода. Обязательное чтение для участников.
Узнайте, как внести вклад в mGBA. Стандарты кодирования, процесс pull request и рабочий процесс разработки.
Отслеживайте предстоящие функции, запланированные улучшения и приоритеты разработки. Посмотрите, над чем ведется работа.
Портирование mGBA на новые платформы или оптимизация существующих портов
Разработка для Windows с MSVC или MinGW. Бэкенды Direct3D и OpenGL. Установщик MSI и портативные сборки.
Нативный интерфейс Cocoa с рендерингом Metal. Универсальные бинарники для Intel и Apple Silicon. Включен проект Xcode.
Множественные варианты интерфейса: Qt, GTK+, SDL2 или командная строка. Поддержка OpenGL и Vulkan. Доступны пакеты дистрибутивов.
Разработка Android NDK с интерфейсом Java/Kotlin. Привязки JNI для основной эмуляции. Оптимизированные для касаний элементы управления.
Нативная разработка iOS с интерфейсом Objective-C/Swift. Графический бэкенд Metal. Включен проект Xcode.
Портирование mGBA на встроенные системы, такие как Nintendo 3DS, Wii U, PlayStation Vita и другие платформы через homebrew.
Интересуетесь созданием нового порта? Проверьте руководства по портированию или обсудите вашу идею с сообществом.
Общайтесь с другими разработчиками, получайте помощь и вносите вклад в mGBA
Основная платформа разработки. Сообщайте об ошибках, отправляйте pull request и отслеживайте проблемы.
Посетить GitHub →GitHub Discussions для вопросов, идей и общих обсуждений о разработке mGBA.
Присоединиться к обсуждениям →Сообщайте об ошибках, запрашивайте функции и отслеживайте прогресс разработки на GitHub Issues.
Просмотреть проблемы →Все вклады кода проходят проверку коллегами. Учитесь из проверок кода и участвуйте в проверках.
Просмотреть Pull Request →Отслеживайте изменения, улучшения и новые функции в каждом релизе. Просматривайте историю релизов и списки изменений.
Просмотреть релизы →Узнайте, кто вносит вклад, отслеживайте вклады с течением времени и признавайте членов сообщества.
Просмотреть участников →Быстрые примеры для начала работы с разработкой mGBA
Простой скрипт Lua для отображения координат игрока:
-- Отображение координат X и Y игрока
local core = require("core")
core.addFrameCallback(function()
local x = core.cpuRead32(0x02000000)
local y = core.cpuRead32(0x02000004)
print(string.format("Позиция игрока: X=%d, Y=%d", x, y))
end)
Узнать больше →
Команды быстрого старта для сборки mGBA:
# Клонировать репозиторий
git clone https://github.com/mgba-emu/mgba.git
cd mgba
# Настроить с CMake
cmake -S . -B build
# Собрать
cmake --build build
# Установить (опционально)
cmake --install build
Просмотреть полное руководство →
Системные требования и зависимости для сборки mGBA
Часто задаваемые вопросы о разработке с mGBA
Сборка mGBA из исходного кода зависит от вашей платформы. На Windows установите CMake и MSVC или MinGW. На macOS установите Xcode и используйте CMake. На Linux установите build-essential и библиотеки разработки. См. руководство по сборке для подробных платформенно-специфичных инструкций.
Вклад приветствуется! Начните с чтения руководящих принципов для участников. Вы можете вносить код, документацию, отчеты об ошибках или запросы функций. Форкните репозиторий, внесите изменения и отправьте pull request. Все вклады проходят проверку кода.
API скриптинга Lua обеспечивает полную поддержку Lua 5.4 для создания пользовательских инструментов, тренеров, скриптов автоматизации и модификаций игр. Вы можете программно получать доступ к памяти, регистрам CPU, вводам и функциям эмулятора. См. документацию API скриптинга Lua для полной справки и примеров.
Для сборки mGBA вам нужен компилятор C/C++ (GCC 4.9+, Clang 3.5+ или MSVC 2015+), CMake 3.1+, Git и платформенно-специфичные зависимости. Windows требует DirectX SDK, macOS требует Xcode Command Line Tools, Linux требует библиотеки разработки для SDL2, Qt или GTK+ в зависимости от вашей конфигурации сборки.
Да! Кодовая база mGBA разработана для переносимости. Основной код эмуляции не зависит от платформы, а платформенно-специфичный код изолирован в отдельных модулях. См. руководства по портированию в документации разработчика для инструкций по созданию новых портов платформ. Вы также можете обсудить ваши планы портирования в GitHub Discussions.
mGBA включает встроенные инструменты отладки, включая инспектор памяти, просмотрщик регистров и поддержку точек останова. Вы можете использовать внешние отладчики, такие как GDB, LLDB или Visual Studio Debugger. Эмулятор также поддерживает скрипты Lua для отладки. См. руководство по устранению неполадок для получения дополнительной информации.
mGBA выпущен под лицензией Mozilla Public License 2.0 (MPL 2.0). Это копилефт-лицензия, которая позволяет вам использовать, изменять и распространять mGBA, но требует делиться исходным кодом для изменений, специфичных для mGBA. См. файл LICENSE для полных деталей.
Используйте страницу GitHub Issues для сообщения об ошибках или запроса функций. Для ошибок включите подробные шаги воспроизведения, системную информацию и логи, если доступны. Для запросов функций объясните случай использования и ожидаемое поведение. Сначала проверьте существующие проблемы, чтобы избежать дубликатов.
Получите последнюю версию mGBA - самый точный эмулятор Game Boy Advance
Присоединяйтесь к сообществу разработчиков mGBA и помогите создать самый точный эмулятор Game Boy Advance