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

OSCHINA-MIRROR/vsf-linux-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;
  • Поддержка аппаратного обеспечения Game Boy/Game Boy Color;
  • Быстрая эмуляция. Известно, что работает на полной скорости даже на низкопроизводительном оборудовании, таком как нетбуки;
  • Порты Qt и SDL для тяжёлого и лёгкого интерфейса;
  • Локальная (на одном компьютере) поддержка кабеля связи;
  • Обнаружение типа сохранения, даже для размера флэш-памяти;
  • Поддержка картриджей с датчиками движения и вибрацией (можно использовать только с игровыми контроллерами);
  • Поддержка часов реального времени, даже без настройки;
  • Поддержка солнечного датчика для игр Boktai;
  • Поддержка Game Boy Camera и Game Boy Printer;
  • Встроенная реализация BIOS и возможность загрузки внешних файлов BIOS;
  • Поддержка турбо/ускоренной перемотки вперёд, удерживая клавишу Tab;
  • Перемотка назад, удерживая кавычку;
  • Пропуск кадров, настраиваемый до 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;
  • MBC5;
  • MBC5+Rumble;
  • MBC7;
  • Wisdom Tree (нелицензионный);
  • NT «новый тип» (нелицензированный MBC5-подобный);
  • Pokémon Jade/Diamond (нелицензированный);
  • BBD (нелицензированный MBC5-подобный);
  • Hitek (нелицензированный MBC5-подобный).

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

  • MBC6 (отсутствует поддержка записи во флэш-память);
  • MMM01;
  • Pocket Cam;
  • TAMA5 (отсутствует поддержка RTC);
  • HuC-1 (отсутствует поддержка ИК);
  • HuC-3 (отсутствует поддержка ИК).

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

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

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

  • Windows 7 или новее;
  • OS X 10.9 (Mavericks) или новее;
  • 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 или новее. GCC и Clang известны своей работой при компиляции mGBA, но Visual Studio 2013 и старше не работают. Поддерживаются Visual Studio 2015 и более поздние версии. Сборка с помощью Docker

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

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

docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32

Это создаст каталог 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.

*Сборка на 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 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,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 sdl2 sqlite3

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

Вам также потребуется установить Qt. К сожалению, поскольку Qt принадлежит и управляется больной компанией, а не разумной организацией, больше нет офлайн-версии установщика с открытым исходным кодом для последней версии, поэтому вам придётся либо вернуться к старой версии установщика (которая хочет, чтобы вы создали бесполезный аккаунт, но вы можете временно обойти установку недействительного аккаунта). Установка и сборка mGBA

Существует несколько способов установки mGBA:

  • использование онлайн-установщика (требует наличия аккаунта);
  • использование vcpkg для сборки (медленный процесс).

Ни один из этих вариантов не является идеальным. Для установщика потребуется установить соответствующие версии MSVC. Обратите внимание, что автономные установщики не поддерживают MSVC 2019.

Для использования vcpkg потребуется его установить, что займёт некоторое время, особенно на компьютерах с четырёхъядерным процессором или менее мощным.

Команды для сборки инструментария

Если у вас есть 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.

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

Отсутствующие функции

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

  • окно OBJ для режимов 3, 4 и 5;
  • определение размера флэш-памяти в некоторых случаях. Эти параметры можно настроить во время выполнения, но рекомендуется сообщить об ошибке, если такая ситуация возникнет.

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

mGBA распространяется под Mozilla Public License version 2.0. Копия лицензии доступна в файле LICENSE, который распространяется вместе с программой.

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

mGBA Copyright © 2013 – 2022 Jeffrey Pfau. Распространяется под Mozilla Public License версии 2.0. Копия лицензии находится в распространяемом файле LICENSE.

mGBA содержит следующие сторонние библиотеки:

  • inih, которая является авторским правом © 2009 – 2020 Ben Hoyt и используется по лицензии BSD 3-clause.
  • blip-buf, которая является авторским правом © 2003 – 2009 Shay Green и используется по Lesser GNU Public License.
  • LZMA SDK, который является общественным достоянием.
  • MurmurHash3 реализация Austin Appleby, которая является общественным достоянием.
  • getopt for MSVC, который является публичным доменом.
  • SQLite3, который является общественным достоянием.

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

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

Введение

Описание недоступно Развернуть Свернуть
MPL-2.0
Отмена

Обновления

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

Участники

все

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

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