2729cb84b7
Features: - Preliminary Lua scripting support - Presets for Game Boy palettes - Add Super Game Boy palettes for original Game Boy games - Tool for converting scanned pictures of e-Reader cards to raw dotcode data - Options for muting when inactive, minimized, or for different players in multiplayer - Cheat code support in homebrew ports - Acclerometer and gyro support for controllers on PC - Support for combo "Super Game Boy Color" SGB + GBC ROM hacks - Improved support for HuC-3 mapper, including RTC - Support for 64 kiB SRAM saves used in some bootlegs - Discord Rich Presence now supports time elapsed - Additional scaling shaders - Support for GameShark Advance SP (.gsv) save file importing - Support for multiple saves per game using .sa2, .sa3, etc. - Support for GBX format Game Boy ROMs - New unlicensed GB mappers: NT (newer type), Sachen (MMC1, MMC2) Emulation fixes: - ARM7: Fix unsigned multiply timing - GB: Copy logo from ROM if not running the BIOS intro (fixes mgba.io/i/2378) - GB: Fix HALT breaking M-cycle alignment (fixes mgba.io/i/250) - GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/1925) - GB Audio: Properly apply per-model audio differences - GB Audio: Revamp channel rendering - GB Audio: Fix APU re-enable timing glitch - GB I/O: Fix writing to WAVE RAM behavior (fixes mgba.io/i/1334) - GB MBC: Fix edge case with Pocket Cam register accesses (fixes mgba.io/i/2557) - GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032) - GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402) - GB SIO: Fix bidirectional transfer starting (fixes mgba.io/i/2290) - GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339) - GBA: Improve timing when not booting from BIOS - GBA: Fix expected entry point for multiboot ELFs (fixes mgba.io/i/2450) - GBA: Fix booting multiboot ROMs with no JOY entrypoint - GBA: Fix 1 MiB ROM mirroring to only mirror 4 times - GBA Audio: Adjust PSG sampling rate with SOUNDBIAS - GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency - GBA BIOS: Work around IRQ handling hiccup in Mario & Luigi (fixes mgba.io/i/1059) - GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes mgba.io/i/2141) - GBA DMA: Fix DMA source direction bits being cleared (fixes mgba.io/i/2410) - GBA I/O: Redo internal key input, enabling edge-based key IRQs - GBA I/O: Disable open bus behavior on invalid register 06A - GBA Memory: Fix misaligned 32-bit I/O loads (fixes mgba.io/i/2307) - GBA Video: Fix OpenGL rendering on M1 Macs - GBA Video: Ignore horizontally off-screen sprite timing (fixes mgba.io/i/2391) - GBA Video: Fix Hblank timing (fixes mgba.io/i/2131, mgba.io/i/2310) - GBA Video: Fix rare crash in modes 3-5 - GBA Video: Fix sprites with mid-frame palette changes in GL (fixes mgba.io/i/2476) - GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes mgba.io/i/2443) - GBA Video: Fix horizontal lines in GL when charbase is changed (fixes mgba.io/i/1631) - GBA Video: Fix sprite layer priority updating in GL Other fixes: - ARM: Disassemble Thumb mov pseudo-instruction properly - ARM: Disassemble ARM asr/lsr #32 properly - ARM: Disassemble ARM movs properly - Core: Don't attempt to restore rewind diffs past start of rewind - Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451) - Core: Fix crash if library can't be opened - Debugger: Fix crash with extremely long CLI strings - Debugger: Fix multiple conditional watchpoints at the same address - FFmpeg: Fix crash when encoding audio with some containers - FFmpeg: Fix GIF recording (fixes mgba.io/i/2393) - GB: Fix temporary saves - GB: Fix replacing the ROM crashing when accessing ROM base - GB: Don't try to map a 0-byte SRAM (fixes mgba.io/i/2668) - GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396) - mGUI: Fix FPS counter after closing menu - Qt: Fix some hangs when using the debugger console - Qt: Fix crash when clicking past last tile in viewer - Qt: Fix preloading for ROM replacing - Qt: Fix screen not displaying on Wayland (fixes mgba.io/i/2190) - Qt: Fix crash when selecting 256-color sprite in sprite view - Qt: Fix coloration of swatches on styles with distinct frame backgrounds - VFS: Failed file mapping should return NULL on POSIX Misc: - Core: Suspend runloop when a core crashes - Core: Add wallclock offset RTC type - Debugger: Save and restore CLI history - Debugger: GDB now works while the game is paused - Debugger: Add command to load external symbol file (fixes mgba.io/i/2480) - FFmpeg: Support dynamic audio sample rate - GB: Support CGB0 boot ROM loading - GB Audio: Increase sample rate - GB MBC: Filter out MBC errors when cartridge is yanked (fixes mgba.io/i/2488) - GB MBC: Partially implement TAMA5 RTC - GB Video: Add default SGB border - GBA: Automatically skip BIOS if ROM has invalid logo - GBA: Refine multiboot detection (fixes mgba.io/i/2192) - GBA Cheats: Implement "never" type codes (closes mgba.io/i/915) - GBA DMA: Enhanced logging (closes mgba.io/i/2454) - GBA Memory: Implement adjustable EWRAM waitstates (closes mgba.io/i/1276) - GBA Savedata: Store RTC data in savegames (closes mgba.io/i/240) - GBA Video: Implement layer placement for OpenGL renderer (fixes mgba.io/i/1962) - GBA Video: Fix highlighting for sprites with mid-frame palette changes - mGUI: Add margin to right-aligned menu text (fixes mgba.io/i/871) - mGUI: Autosave less frequently when fast-forwarding - Qt: Rearrange menus some - Qt: Clean up cheats dialog - Qt: Only set default controller bindings if loading fails (fixes mgba.io/i/799) - Qt: Save converter now supports importing GameShark Advance saves - Qt: Save positions of multiplayer windows (closes mgba.io/i/2128) - Qt: Add optional frame counter to OSD (closes mgba.io/i/1728) - Qt: Add optional emulation-related information on reset (closes mgba.io/i/1780) - Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes mgba.io/i/1754) - Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074) - Qt: Add tile range selection to tile viewer (closes mgba.io/i/2455) - Qt: Show warning if XQ audio is toggled while loaded (fixes mgba.io/i/2295) - Qt: Add e-Card passing to the command line (closes mgba.io/i/2474) - Qt: Boot both a multiboot image and ROM with CLI args (closes mgba.io/i/1941) - Qt: Improve cheat parsing (fixes mgba.io/i/2297) - Qt: Change lossless setting to use WavPack audio - Qt: Use FFmpeg to convert additional camera formats, if available - Qt: Resume crashed game when loading a save state - Qt: Include cheats in bug report - SDL: Support exposing an axis directly as the gyro value (closes mgba.io/i/2531) - Windows: Attach to console if present - VFS: Early return NULL if attempting to map 0 bytes from a file - Vita: Add bilinear filtering option (closes mgba.io/i/344)
73 lines
1.9 KiB
Makefile
73 lines
1.9 KiB
Makefile
PORTNAME= mgba
|
|
DISTVERSION= 0.10.0
|
|
CATEGORIES= emulators
|
|
|
|
MAINTAINER= pkubaj@FreeBSD.org
|
|
COMMENT= Game Boy Advance (GBA) emulator/debugger
|
|
WWW= https://mgba.io
|
|
|
|
LICENSE= MPL20 BSD3CLAUSE LGPL21+
|
|
LICENSE_COMB= multi
|
|
LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/src/third-party/inih/LICENSE.txt
|
|
LICENSE_FILE_LGPL21+ = ${WRKSRC}/src/third-party/blip_buf/license.txt
|
|
LICENSE_FILE_MPL20= ${WRKSRC}/LICENSE
|
|
|
|
LIB_DEPENDS= libepoxy.so:graphics/libepoxy \
|
|
libpng.so:graphics/png
|
|
|
|
USES= cmake compiler:c++11-lang gl gnome localbase:ldflags pkgconfig \
|
|
sdl sqlite:3
|
|
|
|
USE_GITHUB= yes
|
|
GH_ACCOUNT= mgba-emu
|
|
|
|
USE_GL= gl glu
|
|
|
|
USE_LDCONFIG= yes
|
|
|
|
USE_SDL= sdl2
|
|
|
|
CMAKE_ARGS= -DCMAKE_INSTALL_DOCDIR:STRING="${DOCSDIR}" \
|
|
-DUSE_MINIZIP:BOOL=OFF \
|
|
-DUSE_LIBZIP:BOOL=OFF \
|
|
-DUSE_ZLIB:BOOL=ON \
|
|
-DUSE_LZMA:BOOL=ON \
|
|
-DUSE_SQLITE3:BOOL=ON \
|
|
-DUSE_DISCORD_RPC:BOOL=OFF \
|
|
-DBUILD_GL:BOOL=ON \
|
|
-DBUILD_GLES2:BOOL=OFF
|
|
LDFLAGS+= -Wl,--as-needed # glu
|
|
|
|
OPTIONS_DEFINE= DEBUGGERS FFMPEG LIBRETRO MAGICK QT5 DOCS
|
|
OPTIONS_DEFAULT= DEBUGGERS FFMPEG LIBRETRO MAGICK QT5
|
|
OPTIONS_SUB= yes
|
|
|
|
DEBUGGERS_DESC= Debugging infrastructure (CLI debugger, GDB remote stub)
|
|
FFMPEG_DESC= FFmpeg video recording support
|
|
LIBRETRO_DESC= libretro core
|
|
MAGICK_DESC= ImageMagick GIF recording support
|
|
QT5_DESC= Qt 5 frontend
|
|
|
|
DEBUGGERS_USES= libedit
|
|
DEBUGGERS_CMAKE_BOOL= USE_DEBUGGERS USE_EDITLINE USE_GDB_STUB
|
|
|
|
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
|
|
libavformat.so:multimedia/ffmpeg \
|
|
libavresample.so:multimedia/ffmpeg \
|
|
libavutil.so:multimedia/ffmpeg \
|
|
libswscale.so:multimedia/ffmpeg
|
|
FFMPEG_CMAKE_BOOL= USE_FFMPEG
|
|
|
|
LIBRETRO_CMAKE_BOOL= BUILD_LIBRETRO
|
|
LIBRETRO_CMAKE_ON= -DLIBRETRO_LIBDIR:PATH="${PREFIX}/lib/libretro"
|
|
LIBRETRO_CONFLICTS_INSTALL= libretro-mgba
|
|
|
|
MAGICK_USES= magick:6
|
|
MAGICK_CMAKE_BOOL= USE_MAGICK
|
|
|
|
QT5_USES= desktop-file-utils qt:5
|
|
QT5_USE= qt=qmake:build,buildtools:build,core,gui,widgets,network,opengl,multimedia
|
|
QT5_CMAKE_BOOL= BUILD_QT
|
|
|
|
.include <bsd.port.mk>
|