1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-mgba

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

mGBA

mGBA — это эмулятор для запуска игр Game Boy Advance. Он стремится быть быстрее и точнее, чем многие существующие эмуляторы Game Boy Advance, а также добавляет функции, которых нет у других эмуляторов. Также он поддерживает игры Game Boy и Game Boy Color.

Актуальные новости и загрузки можно найти на mgba.io.

Особенности

  • Точная поддержка аппаратного обеспечения Game Boy Advance[1].
  • Поддержка аппаратного обеспечения Game Boy/Game Boy Color.
  • Быстрая эмуляция. Известно, что работает на полной скорости даже на недорогом оборудовании, таком как нетбуки.
  • Порты Qt и SDL для тяжёлого и лёгкого интерфейса.
  • Поддержка локального (на одном компьютере) кабеля связи.
  • Обнаружение типа сохранения, даже для размера флэш-памяти[2].
  • Поддержка картриджей с датчиками движения и вибрацией (можно использовать только с игровыми контроллерами).
  • Поддержка часов реального времени, даже без настройки.
  • Поддержка солнечного датчика для игр Boktai.
  • Поддержка Game Boy Camera и Game Boy Printer.
  • Встроенная реализация BIOS и возможность загрузки внешних файлов BIOS.
  • Поддержка сценариев с использованием Lua.
  • Турбо/ускоренная перемотка вперёд при удержании Tab.
  • Перемотка назад при удержании Backquote.
  • Пропуск кадров, настраиваемый до 10.
  • Поддержка скриншотов.
  • Поддержка чит-кодов.
  • 9 слотов сохранения состояния. Состояния сохранения также можно просматривать в виде скриншотов.
  • Запись видео, GIF, WebP и APNG.
  • Поддержка e-Reader.
  • Возможность переназначения элементов управления для клавиатур и геймпадов.
  • Загрузка из ZIP и 7z файлов.
  • Поддержка патчей IPS, UPS и BPS.
  • Отладка игр через интерфейс командной строки и удалённая поддержка GDB, совместимая с Ghidra и IDA Pro.
  • Настраиваемая перемотка эмуляции.
  • Поддержка загрузки и экспорта снимков GameShark и Action Replay.
  • Ядра доступны для RetroArch/Libretro и OpenEmu.
  • Перевод на несколько языков, предоставленный сообществом через Weblate.
  • И многое другое.

Игровые мапперы Game Boy

Полностью поддерживаются следующие мапперы:

  • MBC1;
  • MBC1M;
  • MBC2;
  • MBC3;
  • MBC3+RTC;
  • MBC30;
  • MBC5;
  • MBC5+Rumble;
  • MBC7;
  • Wisdom Tree (нелицензионный);
  • NT «старый тип» 1 и 2 (нелицензионная мультикарта);
  • NT «новый тип» (нелицензионный, похожий на MBC5);
  • Pokémon Jade/Diamond (нелицензионные);
  • Sachen MMC1 (нелицензионный).

Частично поддерживаются следующие мапперы:

  • MBC6 (отсутствует поддержка записи во флэш-память);
  • MMM01;
  • Pocket Cam;
  • TAMA5 (неполная поддержка RTC);
  • HuC-1 (отсутствует поддержка IR);
  • HuC-3 (отсутствует поддержка IR);
  • Sachen MMC2 (отсутствует поддержка альтернативной разводки);
  • BBD (отсутствует переключение логотипа);
  • Hitek (отсутствует переключение логотипа);
  • GGB-81 (отсутствует переключение логотипа);
  • Li Cheng (отсутствует переключение логотипа).

Планируемые функции

  • Поддержка сетевого многопользовательского соединения через кабель связи.
  • Поддержка Dolphin/JOY bus через кабель связи.
  • Смешивание звука MP2k для более качественного звука, чем аппаратное обеспечение.
  • Поддержка перезаписи для инструментальных прогонов.
  • Комплексный набор инструментов отладки.
  • Поддержка беспроводных адаптеров.

Поддерживаемые платформы

  • Windows 7 или новее;
  • OS X 10.9 (Mavericks)[3] или новее;
  • Linux;
  • FreeBSD;
  • Nintendo 3DS;
  • Nintendo Switch;
  • Wii;
  • PlayStation Vita.

Известно, что другие Unix-подобные платформы, такие как OpenBSD, также работают, но не протестированы и не полностью поддерживаются.

Системные требования

Требования минимальны. Любой компьютер, который может работать под управлением Windows Vista или более новой версии, должен справиться с эмуляцией. Также требуется поддержка OpenGL 1.1 или новее, с OpenGL 3.2 или новее для шейдеров и расширенных функций.

Загрузки можно найти на официальном сайте в разделе «Загрузки». Исходный код можно найти на GitHub.

Элементы управления

Элементы управления настраиваются в меню настроек. Многие игровые контроллеры должны автоматически отображаться по умолчанию. Стандартные элементы управления клавиатуры следующие:

  • A: X;
  • B: Z;
  • L: A;
  • R: S;
  • Start: Enter;
  • Select: Backspace. Компиляция

Для компиляции требуется использовать CMake 3.1 или более новую версию. Известно, что для компиляции mGBA работают GCC, Clang и Visual Studio 2019.

Сборка в Docker

Рекомендуется использовать Docker для сборки на большинстве платформ. Предоставляется несколько образов Docker, содержащих необходимые инструменты и зависимости для сборки mGBA на нескольких платформах.

Примечание: если вы используете старую систему Windows до Windows 10, вам может потребоваться настроить Docker для использования общих папок VirtualBox, чтобы правильно сопоставить текущий каталог проверки mgba с рабочим каталогом образа Docker. (Подробности см. в выпуске №1985.)

Чтобы использовать образ Docker для создания mGBA, просто выполните следующую команду, находясь в корне проверки mGBA:

docker run --rm -it -v ${PWD}:/home/mgba/src mgba/windows:w32

После запуска контейнера Docker будет создан каталог build-win32 с продуктами сборки. Замените mgba/windows:w32 другим образом Docker для других платформ, который создаст соответствующий другой каталог. В Docker Hub доступны следующие образы Docker:

  • mgba/3ds
  • mgba/switch
  • mgba/ubuntu:xenial
  • mgba/ubuntu:bionic
  • mgba/ubuntu:focal
  • mgba/ubuntu:groovy
  • mgba/vita
  • mgba/wii
  • mgba/windows:w32
  • mgba/windows:w64

Если вы хотите ускорить процесс сборки, рассмотрите возможность добавления флага -e MAKEFLAGS=-jN для параллельной сборки mGBA с N количеством ядер ЦП.

Создание на nix-системах

Чтобы создать проект с помощью CMake на Unix-подобной системе, рекомендуются следующие команды:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
make
sudo make install

Это создаст и установит mGBA в /usr/bin и /usr/lib. Автоматически будут обнаружены зависимости, которые устанавливаются, а после выполнения команды cmake после предупреждений о невозможности их найти будут показаны отключённые функции.

Если вы работаете на macOS, шаги немного отличаются. Предполагая, что вы используете менеджер пакетов homebrew, рекомендуемые команды для получения зависимостей и сборки:

brew install cmake ffmpeg libzip qt5 sdl2 libedit lua pkg-config
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..
make

Обратите внимание, что на macOS не следует выполнять make install, так как это не будет работать должным образом.

Разработка на Windows

  • MSYS2

Для разработки на Windows рекомендуется использовать MSYS2. Следуйте инструкциям по установке на их веб-сайте. Убедитесь, что вы используете 32-битную версию («MSYS2 MinGW 32-bit») (или 64-битную версию «MSYS2 MinGW 64-bit», если хотите собрать для x86_64) и выполните эту дополнительную команду (включая фигурные скобки), чтобы установить необходимые зависимости (обратите внимание, что это включает загрузку более 1100 МБ пакетов, поэтому это займёт много времени):

pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,lua,pkgconf,qt5,SDL2,ntldd-git}

Проверьте исходный код, выполнив эту команду:

git clone https://github.com/mgba-emu/mgba.git

Затем, наконец, создайте его, выполнив эти команды:

mkdir -p mgba/build
cd mgba/build
cmake .. -G "MSYS Makefiles"
make -j$(nproc --ignore=1)

Обратите внимание, что эта сборка mGBA для Windows не подходит для распространения из-за разброса DLL, необходимых для её работы, но идеально подходит для разработки. Однако, если требуется распространение такой сборки (например, для тестирования на машинах, на которых не установлена среда MSYS2), запуск cpack -G ZIP подготовит zip-файл со всеми необходимыми DLL.

  • Visual Studio

Сборка с использованием Visual Studio — это также сложная настройка. Для начала вам потребуется установить vcpkg. После установки vcpkg вам нужно будет установить несколько дополнительных пакетов:

vcpkg install ffmpeg[vpx,x264] libepoxy libpng libzip lua sdl2 sqlite3

Обратите внимание, что этот пакет не поддерживает аппаратное ускорение кодирования видео на оборудовании Nvidia. Если вас интересует... Вам потребуется предварительно установить CUDA, а затем заменить ffmpeg[vpx,x264,nvcodec] на предыдущую команду.

Также вам потребуется установить Qt. К сожалению, из-за того, что Qt принадлежит и управляется больной компанией, в отличие от разумной организации, больше нет оффлайн-версии установщика с открытым исходным кодом для последней версии, поэтому вам придётся либо вернуться к старой версии установщика (https://download.qt.io/official_releases/qt/5.12/5.12.9/qt-opensource-windows-x86-5.12.9.exe) (которая требует создания бесполезного аккаунта, но вы можете временно обойти это, установив неверный прокси или отключив сетевое подключение), использовать онлайн-установщик (который требует наличия аккаунта в любом случае) или использовать vcpkg для его сборки (что занимает много времени, особенно на компьютерах с четырьмя ядрами или меньше):

vcpkg install qt5-base qt5-multimedia

Затем откройте Visual Studio, выберите Clone Repository и введите https://github.com/mgba-emu/mgba.git. Когда Visual Studio закончит клонирование, перейдите в File > CMake и откройте файл CMakeLists.txt в корне извлечённого репозитория. После этого mGBA можно разрабатывать в Visual Studio аналогично другим проектам CMake в Visual Studio.

Создание цепочки инструментов

Если у вас есть devkitARM (для 3DS), devkitPPC (для Wii), devkitA64 (для Switch) или vitasdk (для PS Vita), вы можете использовать следующие команды для сборки:

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..
make

Замените параметр -DCMAKE_TOOLCHAIN_FILE для следующих платформ:

  • 3DS: ../src/platform/3ds/CMakeToolchain.txt
  • Switch: ../src/platform/switch/CMakeToolchain.txt
  • Vita: ../src/platform/psp2/CMakeToolchain.vitasdk
  • Wii: ../src/platform/wii/CMakeToolchain.txt

Зависимости

У mGBA нет жёстких зависимостей, однако для определённых функций требуются следующие дополнительные зависимости. Если зависимости не найдены, функции будут отключены.

  • Qt 5: для графического интерфейса пользователя. Для аудио требуется Qt Multimedia или SDL.
  • SDL: для более простого интерфейса и поддержки геймпада в интерфейсе Qt. Рекомендуется SDL 2, но поддерживается версия 1.2.
  • zlib и libpng: для поддержки скриншотов и сохранения состояний в PNG.
  • libedit: для поддержки отладчика командной строки.
  • ffmpeg или libav: для записи видео, GIF, WebP и APNG.
  • libzip или zlib: для загрузки ROM, хранящихся в zip-файлах.
  • SQLite3: для игровых баз данных.
  • libelf: для загрузки ELF.
  • Lua: для скриптинга.
  • json-c: для API хранения скриптов.

SQLite3, libpng и zlib включены в эмулятор, поэтому их не нужно компилировать отдельно.

Сноски

[1] В настоящее время отсутствуют следующие функции:

  • OBJ окно для режимов 3, 4 и 5 (Bug #5)

[2] Определение размера флэш-памяти работает не во всех случаях. Их можно настроить во время выполнения, но рекомендуется сообщить об ошибке, если такой случай возникнет.

[3] Версия 10.9 нужна только для порта Qt. Возможно, удастся собрать или запустить порт Qt на версии 10.7 или старше, но официально это не поддерживается. Известно, что порт SDL работает на версии 10.5 и может работать на более старых версиях.

Авторские права

mGBA является авторским правом © 2013 – 2023 Джеффри Пфау. Он распространяется под Mozilla Public License version 2.0. Копия лицензии доступна в распространённом файле LICENSE.

В mGBA используются следующие сторонние библиотеки:

  • inih, авторское право © 2009 – 2020 Бен Хойт, используется по лицензии BSD 3-clause.
  • LZMA SDK, общественное достояние.
  • Реализация MurmurHash3 Остина Эпплби, общественное достояние. Getopt for MSVC, который является общественным достоянием.

SQLite3, который является общественным достоянием.

Если вы издатель игр и хотите получить лицензию на коммерческое использование mGBA, пожалуйста, напишите по адресу licensing@mgba.io для получения дополнительной информации.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

mGBA — это эмулятор для запуска игр Game Boy Advance. Развернуть Свернуть
MPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-mgba.git
git@api.gitlife.ru:oschina-mirror/mirrors-mgba.git
oschina-mirror
mirrors-mgba
mirrors-mgba
master