mGBA es un emulador para ejecutar juegos de Game Boy Advance. Pretende ser más rápido y preciso que muchos de los emuladores de Game Boy Advance existentes, además de añadir características de las que carecen otros emuladores. También es compatible con los juegos de Game Boy y Game Boy Color.

Se pueden encontrar noticias y descargas actualizadas en mgba.io.

Estado de la construcciónEstado de la traducción

Características

  • Soporte de hardware de Game Boy Advance muy preciso.
  • Soporte de hardware de Game Boy/Game Boy Color.
  • Emulación rápida. Se sabe que funciona a toda velocidad incluso en hardware de gama baja, como los netbooks.
  • Puertos Qt y SDL para un frontend pesado y otro ligero.
  • Soporte de cable de enlace local (mismo ordenador).
  • Detección del tipo de guardado, incluso para el tamaño de la memoria flash.
  • Soporte para cartuchos con sensores de movimiento y rumble (sólo utilizable con mandos de juego).
  • Soporte de reloj en tiempo real, incluso sin configuración.
  • Soporte para el sensor solar de los juegos Boktai.
  • Soporte para la cámara de Game Boy y la impresora de Game Boy.
  • Una implementación de BIOS integrada, y capacidad para cargar archivos de BIOS externos.
  • Soporte de turbo/avance rápido manteniendo el tabulador.
  • Rebobinado manteniendo la tecla de retroceso.
  • Salvapantallas, configurable hasta 10.
  • Soporte de captura de pantalla.
  • Soporte de código de trucos.
  • 9 ranuras de salvado. Los savestates también se pueden ver como capturas de pantalla.
  • Grabación de vídeo, GIF, WebP y APNG.
  • Soporte de e-Reader.
  • Controles reutilizables para teclados y gamepads.
  • Carga desde archivos ZIP y 7z.
  • Soporte de parchesIPS, UPS y BPS.
  • Depuración de juegos a través de una interfaz de línea de comandos y soporte remoto GDB, compatible con IDA Pro.
  • Rebobinado de emulación configurable.
  • Soporte para cargar y exportar instantáneas de GameShark y Action Replay.
  • Cores disponibles para RetroArch/Libretro y OpenEmu.
  • Traducciones proporcionadas por la comunidad para varios idiomas a través de Weblate.
  • Muchas, muchas cosas más pequeñas.

Mapers de Game Boy

Los siguientes mappers son totalmente compatibles:

  • MBC1
  • MBC1M
  • MBC2
  • MBC3
  • MBC3+RTC
  • MBC5
  • MBC5+Rumble
  • MBC7
  • Árbol de la Sabiduría (sin licencia)
  • Pokémon Jade/Diamante (sin licencia)
  • BBD (sin licencia MBC5-like)
  • Hitek (unlicensed MBC5-like)

Los siguientes mappers son parcialmente compatibles:

  • MBC6 (falta soporte de escritura en memoria flash)
  • MMM01
  • Pocket Cam
  • TAMA5 (falta soporte RTC)
  • HuC-1 (falta compatibilidad con IR)
  • HuC-3 (falta compatibilidad con RTC e IR)

Características previstas

  • Soporte de cable de enlace multijugador en red.
  • Soporte de cable de enlace de bus Dolphin/JOY.
  • Mezcla de audio MP2k, para un sonido de mayor calidad que el hardware.
  • Soporte de regrabación para las ejecuciones de ayuda de herramientas.
  • Soporte de Lua para scripts.
  • Una completa suite de depuración.
  • Soporte para adaptadores inalámbricos.

Plataformas soportadas

  • Windows Vista o más reciente
  • OS X 10.8 (Mountain Lion) o posterior
  • Linux
  • FreeBSD
  • Nintendo 3DS
  • Nintendo Switch
  • Wii
  • PlayStation Vita

Se sabe que otras plataformas tipo Unix, como OpenBSD, también funcionan, pero no se han probado y no son totalmente compatibles.

Requisitos del sistema

Los requisitos son mínimos. Cualquier ordenador que pueda ejecutar Windows Vista o más reciente debería ser capaz de manejar la emulación. También se requiere soporte para OpenGL 1.1 o más reciente, con OpenGL 3.2 o más reciente para los shaders y las características avanzadas.

Descargas

Las descargas se pueden encontrar en el sitio web oficial, en la sección de descargas. El código fuente se puede encontrar en GitHub.

Controles

Los controles son configurables en el menú de ajustes. Muchos mandos del juego deberían estar mapeados automáticamente por defecto. Los controles de teclado por defecto son los siguientes:

  • A: X
  • B: Z
  • L: A
  • R: S
  • Inicio: Enter
  • Seleccionar: Retroceso

Compilación

La compilación requiere el uso de CMake 3.1 o más reciente. Se sabe que GCC y Clang funcionan para compilar mGBA, pero se sabe que Visual Studio 2013 y anteriores no funcionan. El soporte para Visual Studio 2015 y más nuevos está por llegar.

Construcción en Docker

La forma recomendada de construir para la mayoría de las plataformas es usar Docker. Se proporcionan varias imágenes de Docker que contienen la cadena de herramientas y dependencias necesarias para construir mGBA en varias plataformas.

Para utilizar una imagen de Docker para construir mGBA, simplemente ejecute el siguiente comando mientras está en la raíz de un checkout de mGBA:

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

Esto producirá un directorio build-win32 con los productos de construcción. Reemplace mgba/windows:w32 con otra imagen Docker para otras plataformas, lo que producirá otro directorio correspondiente. Las siguientes imágenes Docker disponibles en Docker Hub:

  • 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

*construcción en nix

Para utilizar CMake para construir en un sistema basado en Unix, los comandos recomendados son los siguientes:

mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install

Esto construirá e instalará mGBA en /usr/bin y /usr/lib. Las dependencias que se instalan serán detectadas automáticamente, y las características que se desactivan si las dependencias no se encuentran se mostrarán después de ejecutar el comando cmake después de las advertencias acerca de ser incapaz de encontrarlos.

Si usted está en macOS, los pasos son un poco diferentes. Suponiendo que está utilizando el gestor de paquetes homebrew, los comandos recomendados para obtener las dependencias y construir son:

brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make

Tenga en cuenta que no debe hacer un make install en macOS, ya que no funcionará correctamente.

Construcción para desarrolladores de Windows

MSYS2

Para construir en Windows para el desarrollo, se recomienda utilizar MSYS2. Siga los pasos de instalación que se encuentran en su sitio web. Asegúrate de que estás ejecutando la versión de 32 bits («MSYS2 MinGW 32-bit») (o la versión de 64 bits «MSYS2 MinGW 64-bit» si quieres construir para x86_64) y ejecuta este comando adicional (incluyendo los corchetes) para instalar las dependencias necesarias (ten en cuenta que esto implica la descarga de más de 1100MiB de paquetes, por lo que llevará mucho tiempo):

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

Comprueba el código fuente ejecutando este comando:

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

Por último, constrúyelo ejecutando estos comandos:

mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)

Ten en cuenta que esta build de mGBA para Windows no es adecuada para su distribución, debido a la dispersión de DLLs que necesita para ejecutarse, pero es perfecta para el desarrollo. Sin embargo, si se desea distribuir esta compilación (por ejemplo, para probar en máquinas que no tienen el entorno MSYS2 instalado), ejecutando cpack -G ZIP se preparará un archivo zip con todas las DLLs necesarias.

Visual Studio

Construir usando Visual Studio es una configuración igualmente complicada. Para empezar tendrá que instalar vcpkg. Después de instalar vcpkg necesitarás instalar varios paquetes adicionales:

vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3

Nota que esta instalación no soportará la codificación de vídeo acelerada por hardware en el hardware Nvidia. Si te interesa esto, tendrás que instalar CUDA de antemano, y luego sustituir ffmpeg en el comando anterior.

También necesitarás instalar Qt. Lamentablemente, debido a que Qt es propiedad de una empresa en crisis y no de una organización razonable, ya no existe un instalador de edición de código abierto fuera de línea para la última versión, por lo que tendrá que recurrir a un instalador de la versión antigua (que requiere la creación de una cuenta inútil, pero puede evitar la configuración temporal de un proxy no válido o la desactivación de la red), utilizar el instalador en línea (que requiere una cuenta de todos modos), o utilizar vcpkg para construirlo (lentamente). Ninguna de estas opciones es buena. Para el instalador querrá instalar las versiones aplicables de MSVC. Ten en cuenta que los instaladores offline no son compatibles con MSVC 2019. Para vcpkg querrás instalarlo como tal, lo que llevará bastante tiempo, especialmente en ordenadores de cuatro núcleos o menos:

vcpkg install qt5-base qt5-multimedia

A continuación, abre Visual Studio, selecciona Clonar Repositorio, e introduce https://github.com/mgba-emu/mgba.git. Cuando Visual Studio haya terminado de clonar, vaya a Archivo > CMake y abra el archivo CMakeLists.txt en la raíz del repositorio extraído. A partir de ahí, mGBA puede ser desarrollado en Visual Studio de manera similar a otros proyectos de Visual Studio CMake.

Construcción de la cadena de herramientas

Si tienes devkitARM (para 3DS), devkitPPC (para Wii), devkitA64 (para Switch), o vitasdk (para PS Vita), puedes usar los siguientes comandos para la construcción:

mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make

Sustituye el parámetro -DCMAKE_TOOLCHAIN_FILE para las siguientes plataformas:

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

Dependencias

mGBA no tiene dependencias duras, sin embargo, las siguientes dependencias opcionales son necesarias para características específicas. Las características se desactivarán si las dependencias no se pueden encontrar.

  • Qt 5: para la interfaz gráfica de usuario. Se requiere Qt Multimedia o SDL para el audio.
  • SDL: para un frontend más básico y soporte de gamepad en el frontend de Qt. Se recomienda SDL 2, pero se admite la 1.2.
  • zlib y libpng: para el soporte de capturas de pantalla y el soporte de savestate-in-PNG.
  • libedit: para el soporte del depurador de línea de comandos.
  • ffmpeg o libav: para la grabación de vídeo, GIF, WebP y APNG.
  • libzip o zlib: para cargar ROMs almacenadas en archivos zip.
  • SQLite3: para bases de datos de juegos.
  • libelf: para la carga de ELF.

SQLite3, libpng y zlib se incluyen con el emulador, por lo que no es necesario compilarlos externamente primero.

Notas al pie

Las características que faltan actualmente son

  • Ventana OBJ para los modos 3, 4 y 5 (Bug #5)

La detección del tamaño de la memoria flash no funciona en algunos casos. Estos pueden ser configurados en tiempo de ejecución, pero la presentación de un error se recomienda si tal caso se encuentra.

10.8 sólo es necesario para el puerto de Qt. Puede ser posible construir o ejecutar el puerto Qt en 10.7 o anterior, pero esto no está oficialmente soportado. El puerto SDL se sabe que funciona en 10.5, y puede funcionar en más viejo.

Copyright

mGBA es Copyright © 2013 – 2021 Jeffrey Pfau. Se distribuye bajo la licencia pública de Mozilla versión 2.0. Una copia de la licencia está disponible en el archivo distribuido LICENSE.

mGBA contiene las siguientes bibliotecas de terceros:

  • inih, que es copyright © 2009 – 2020 Ben Hoyt y se utiliza bajo una licencia BSD de 3 cláusulas.
  • blip-buf, que es copyright © 2003 – 2009 Shay Green y se utiliza bajo una licencia pública GNU menor.
  • LZMA SDK, que es de dominio público.
  • La implementación de MurmurHash3 por Austin Appleby, que es de dominio público.
  • getopt para MSVC, que es de dominio público.
  • SQLite3, que es de dominio público.

Si usted es un editor de juegos y desea licenciar mGBA para uso comercial, por favor envíe un correo electrónico a [email protected] para más información.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.