{"id":13493820,"url":"https://github.com/visualboyadvance-m/visualboyadvance-m","last_synced_at":"2025-05-13T20:22:31.239Z","repository":{"id":33582158,"uuid":"37228563","full_name":"visualboyadvance-m/visualboyadvance-m","owner":"visualboyadvance-m","description":"The continuing development of the legendary VBA gameboy advance emulator.","archived":false,"fork":false,"pushed_at":"2025-04-21T04:01:16.000Z","size":61934,"stargazers_count":3502,"open_issues_count":280,"forks_count":329,"subscribers_count":108,"default_branch":"master","last_synced_at":"2025-04-21T05:26:05.792Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://visualboyadvance-m.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/visualboyadvance-m.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"rkitover"}},"created_at":"2015-06-10T23:43:02.000Z","updated_at":"2025-04-21T04:01:20.000Z","dependencies_parsed_at":"2023-10-27T07:33:16.272Z","dependency_job_id":"f9b3b597-91ff-49c6-acd0-618af3243ab1","html_url":"https://github.com/visualboyadvance-m/visualboyadvance-m","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visualboyadvance-m%2Fvisualboyadvance-m","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visualboyadvance-m%2Fvisualboyadvance-m/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visualboyadvance-m%2Fvisualboyadvance-m/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visualboyadvance-m%2Fvisualboyadvance-m/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/visualboyadvance-m","download_url":"https://codeload.github.com/visualboyadvance-m/visualboyadvance-m/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311332,"owners_count":21569008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:01:19.109Z","updated_at":"2025-04-28T12:01:58.654Z","avatar_url":"https://github.com/visualboyadvance-m.png","language":"C++","funding_links":["https://github.com/sponsors/rkitover"],"categories":["C++","Applications"],"sub_categories":["Games"],"readme":"\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [Visual Boy Advance - M](#visual-boy-advance---m)\n  - [System Requirements](#system-requirements)\n  - [Building](#building)\n  - [Building a Libretro core](#building-a-libretro-core)\n  - [Visual Studio Support](#visual-studio-support)\n  - [Visual Studio Code Support](#visual-studio-code-support)\n  - [Dependencies](#dependencies)\n  - [Cross compiling for 32 bit on a 64 bit host](#cross-compiling-for-32-bit-on-a-64-bit-host)\n  - [Cross Compiling for Win32](#cross-compiling-for-win32)\n  - [CMake Options](#cmake-options)\n  - [MSys2 Notes](#msys2-notes)\n  - [Debug Messages](#debug-messages)\n  - [Reporting Crash Bugs](#reporting-crash-bugs)\n  - [Contributing](#contributing)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\nOur bridged Discord server is [Here](https://discord.gg/EpfxEuGMKH).\n\nWe are also on *`#vba-m`* on [Libera IRC](https://libera.chat/) which has a [Web\nChat](https://web.libera.chat/).\n\n[![Get it from flathub](https://dl.flathub.org/assets/badges/flathub-badge-en.svg)](https://flathub.org/apps/com.vba_m.visualboyadvance-m)\n[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/visualboyadvance-m)\n\n***Want to know where you can install visualboyadvance-m in your linux distribution?***\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/visualboyadvance-m.svg)](https://repology.org/project/visualboyadvance-m/versions)\n\n# Visual Boy Advance - M\n\nGame Boy and Game Boy Advance Emulator\n\nThe forums are [here](https://board.visualboyadvance-m.org/).\n\nWindows and Mac builds are in the [releases tab](https://github.com/visualboyadvance-m/visualboyadvance-m/releases).\n\nNightly builds for Windows and macOS are at [https://nightly.visualboyadvance-m.org/](https://nightly.visualboyadvance-m.org/).\n\n**PLEASE TEST THE NIGHTLY OR MASTER WITH A FACTORY RESET BEFORE REPORTING\nISSUES**\n\nYour distribution may have packages available as well, search for\n`visualboyadvance-m` or `vbam`.\n\nIt is also generally very easy to build from source, see below.\n\nIf you are using the windows binary release and you need localization, unzip\nthe `translations.zip` to the same directory as the executable.\n\nIf you are having issues, try resetting the config file first, go to `Help -\u003e\nFactory Reset`.\n\n## System Requirements\n\nWindows XP, Vista, 7, 8.1 or 10/11, Linux distros or macOS.\n\n2Ghz x86 (or x86-64) Intel Core 2 or AMD Athlon processor with SSE, Snapdragon 835 \nor newer CPU compatible with Arm for Windows.\n\n- Just a guideline, lower clock speeds and Celeron processors may be able to run at full\nspeed on lower settings, and Linux based ARM Operating systems have wider CPU support.\n\nDirectX June 2010 Redist\n[Full](https://www.microsoft.com/en-au/download/details.aspx?id=8109) /\n[Websetup](https://www.microsoft.com/en-au/download/details.aspx?id=35) for\nXaudio (Remember to uncheck Bing on the websetup.)\n\n## Building\n\nThe basic formula to build vba-m is:\n\n```bash\ncd ~ \u0026\u0026 mkdir src \u0026\u0026 cd src\ngit clone https://github.com/visualboyadvance-m/visualboyadvance-m.git\ncd visualboyadvance-m\n\n./installdeps # On Linux or macOS\n\nmkdir build\ncd build\ncmake .. -DCMAKE_BUILD_TYPE=Release -G Ninja\nninja\n```\n\n`./installdeps` is supported on MSYS2, Linux (Debian/Ubuntu, Fedora, Arch,\nSolus, OpenSUSE, Gentoo and RHEL/CentOS) and Mac OS X (homebrew, MacPorts or\nFink.)\n\n## Building a Libretro core\n\nClone this repo and then,\n\n```bash\ncd src/libretro\nmake -j`nproc`\n```\n\nCopy `vbam_libretro.so` to your RetroArch cores directory.\n\n## Visual Studio Support\n\nFor visual studio, dependency management is handled automatically with vcpkg,\nFrom the Visual Studio GUI, just clone the repository with git and build with\nthe cmake configurations provided.\n\nIf the GUI does not detect cmake, go to `File -\u003e Open -\u003e CMake` and open the\n`CMakeLists.txt`.\n\nIf you are using 2017, make sure you have all the latest updates, some issues\nwith cmake projects in the GUI have been fixed.\n\nYou can also build from the developer command prompt or powershell with the\nenvironment loaded.\n\nUsing your own user-wide installation of vcpkg is supported, just make sure the\nenvironment variable `VCPKG_ROOT` is set.\n\nTo build in the Visual Studio `x64 Native Tools Command Prompt`, use something\nlike this:\n\n```\nmkdir build\ncd build\ncmake .. -DCMAKE_BUILD_TYPE=Release -G Ninja\nninja\n```\n.\n\n## Visual Studio Code Support\n\nMake sure the\n[C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)\nand [CMake\nTools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)\nextensions are installed.\n\nAdd the following to your `settings.json`:\n\n```json\n{\n    \"cmake.configureOnOpen\": true,\n    \"cmake.preferredGenerators\": [ \"Ninja\" ]\n}\n```\n.\n\n## Dependencies\n\nIf your OS is not supported, you will need the following:\n\n- C++ compiler and binutils\n- [make](https://en.wikipedia.org/wiki/Make_(software))\n- [CMake](https://cmake.org/)\n- [git](https://git-scm.com/)\n- [nasm](https://www.nasm.us/) (optional, for 32 bit builds)\n\nAnd the following development libraries:\n\n- [zlib](https://zlib.net/) (required)\n- [mesa](https://mesa3d.org/) (if using X11 or any OpenGL otherwise)\n- [ffmpeg](https://ffmpeg.org/) (optional, at least version `4.0.4`, for game recording)\n- [gettext](https://www.gnu.org/software/gettext/) and gettext-tools\n- [SDL2](https://www.libsdl.org/) (required)\n- [openal-soft](https://kcat.strangesoft.net/openal.html) (required, a sound interface)\n- [wxWidgets](https://wxwidgets.org/) (required for GUI, 2.8 and non-stl builds are no longer supported)\n\nOn Linux and similar, you also need the version of GTK your wxWidgets is linked\nto (usually 2 or 3) and the xorg development libraries.\n\nSupport for more OSes/distributions for `./installdeps` is planned.\n\n## Cross compiling for 32 bit on a 64 bit host\n\n`./installdeps m32` will set things up to build a 32 bit binary.\n\nThis is supported on Fedora, Arch, Solus and MSYS2.\n\n## Cross Compiling for Win32\n\n`./installdeps` takes one optional parameter for cross-compiling target, which\nmay be `win32` which is an alias for `mingw-w64-i686` to target 32 bit Windows,\nor `mingw-w64-x86_64` for 64 bit Windows targets.\n\nThe target is implicit on MSYS2 depending on which MINGW shell you started (the\nvalue of `$MSYSTEM`.)\n\nOn Debian/Ubuntu this uses the MXE apt repository and works quite well.\n\n## CMake Options\n\nThe CMake code tries to guess reasonable defaults for options, but you can\noverride them, for example:\n\n```shell\ncmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_LINK=NO -G Ninja\n```\n. Here is the complete list:\n\n| **CMake Option**      | **What it Does**                                                     | **Defaults**          |\n|-----------------------|----------------------------------------------------------------------|-----------------------|\n| `ENABLE_SDL`            | Build the SDL port                                                   | OFF                   |\n| `ENABLE_WX`             | Build the wxWidgets port                                             | ON                    |\n| `ENABLE_DEBUGGER`       | Enable the debugger                                                  | ON                    |\n| `ENABLE_ASM_CORE`       | Enable x86 ASM CPU cores (**BUGGY AND DANGEROUS**)                   | OFF                   |\n| `ENABLE_ASM`            | Enable the following two ASM options                                 | ON for 32 bit builds  |\n| `ENABLE_ASM_SCALERS`    | Enable x86 ASM graphic filters                                       | ON for 32 bit builds  |\n| `ENABLE_MMX`            | Enable MMX                                                           | ON for 32 bit builds  |\n| `ENABLE_LINK`           | Enable GBA linking functionality                                     | AUTO                  |\n| `ENABLE_LIRC`           | Enable LIRC support                                                  | OFF                   |\n| `ENABLE_FFMPEG`         | Enable ffmpeg A/V recording                                          | AUTO                  |\n| `ENABLE_ONLINEUPDATES`  | Enable online update checks                                          | ON                    |\n| `ENABLE_LTO`            | Compile with Link Time Optimization (gcc and clang only)             | ON for release build  |\n| `ENABLE_GBA_LOGGING`    | Enable extended GBA logging                                          | ON                    |\n| `ENABLE_XAUDIO2`        | Enable xaudio2 sound output for wxWidgets (Windows only)             | ON                    |\n| `ENABLE_FAUDIO`         | Enable faudio sound output for wxWidgets,                            | ON, not 32 bit Win    |\n| `ENABLE_ASAN`           | Enable libasan sanitizers (by default address, only in debug mode)   | OFF                   |\n| `UPSTREAM_RELEASE`      | Do some release tasks, like codesigning, making zip and gpg sigs.    | OFF                   |\n| `BUILD_TESTING`         | Build the tests and enable ctest support.                            | ON                    |\n| `VBAM_STATIC`           | Try link all libs statically (the following are set to ON if ON)     | OFF                   |\n| `SDL2_STATIC`           | Try to link static SDL2 libraries                                    | OFF                   |\n| `FFMPEG_STATIC`         | Try to link static ffmpeg libraries                                  | OFF                   |\n| `OPENAL_STATIC`         | Try to link static OpenAL libraries                                  | OFF                   |\n| `TRANSLATIONS_ONLY`     | Build only the translations.zip and nothing else                     | OFF                   |\n\nNote for distro packagers, we use the CMake module\n[GNUInstallDirs](https://cmake.org/cmake/help/v2.8.12/cmake.html#module:GNUInstallDirs)\nto configure installation directories.\n\nOn Unix to use a different version of wxWidgets, set\n`wxWidgets_CONFIG_EXECUTABLE` to the path to the `wx-config` script you want to\nuse.\n\n## Reporting Crash Bugs\n\nIf the emulator crashes and you wish to report the bug, a backtrace made with\ndebug symbols would be immensely helpful.\n\nTo generate one (on Linux and MSYS2) first build in debug mode by invoking\n`cmake` as:\n\n```shell\ncmake .. -DCMAKE_BUILD_TYPE=Debug\n```\n\nAfter you've reproduced the crash, you need the core dump file, you may need to\ndo something such as:\n\n```shell\nulimit -c unlimited\n```\n, in your shell to enable core files.\n\n[This\npost](https://ask.fedoraproject.org/en/question/98776/where-is-core-dump-located/?answer=98779#post-id-98779)\nexplains how to retrieve core dump on some distributions, when they are managed\nby systemd.\n\nOnce you have the core file, open it with `gdb`, for example:\n\n```shell\ngdb -c core ./visualboyadvance-m\n```\n. In the `gdb` shell, to start the process and print the backtrace, type:\n\n```\nrun\nbt\n```\n. This may be a bit of a hassle, but it helps us out immensely.\n\n## Contributing\n\nSee the [Developer Manual](/DEVELOPER-MANUAL.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisualboyadvance-m%2Fvisualboyadvance-m","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisualboyadvance-m%2Fvisualboyadvance-m","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisualboyadvance-m%2Fvisualboyadvance-m/lists"}