GithubHelp home page GithubHelp logo

visualboyadvance-m / visualboyadvance-m Goto Github PK

View Code? Open in Web Editor NEW
3.3K 3.3K 313.0 60.25 MB

The continuing development of the legendary VBA gameboy advance emulator.

Home Page: https://visualboyadvance-m.org

CMake 3.24% C 18.75% C++ 66.85% Shell 3.71% Makefile 0.42% Assembly 5.96% Batchfile 0.01% Lex 0.05% Yacc 0.06% Objective-C++ 0.07% Roff 0.09% Nix 0.02% POV-Ray SDL 0.78%

visualboyadvance-m's Introduction

Join the chat at https://gitter.im/visualboyadvance-m/Lobby

Our bridged Discord server is Here.

We are also on #vba-m on Libera IRC which has a Web Chat.

Get it from flathub Get it from the Snap Store

Want to know where you can install visualboyadvance-m in your linux distribution?

Packaging status

Visual Boy Advance - M

Game Boy and Game Boy Advance Emulator

The forums are here.

Windows and Mac builds are in the releases tab.

Nightly builds for Windows and macOS are at https://nightly.visualboyadvance-m.org/.

PLEASE TEST THE NIGHTLY OR MASTER WITH A FACTORY RESET BEFORE REPORTING ISSUES

Your distribution may have packages available as well, search for visualboyadvance-m or vbam.

It is also generally very easy to build from source, see below.

If you are using the windows binary release and you need localization, unzip the translations.zip to the same directory as the executable.

If you are having issues, try resetting the config file first, go to Help -> Factory Reset.

System Requirements

Windows 7, 8.1 or 10/11, Linux distro's or macOS.

2Ghz x86(or x86-64) Intel Core 2 or AMD Athlon processor with SSE, Snapdragon 835 or newer cpu compatible with Arm for Windows.

  • Just a guideline, lower clock speeds and Celeron processors may be able to run at full speed on lower settings, and Linux based ARM Operating systems have wider cpu support.

DirectX June 2010 Redist Full / Websetup for Xaudio (Remember to uncheck Bing on the websetup)

Building

The basic formula to build vba-m is:

cd ~ && mkdir src && cd src
git clone https://github.com/visualboyadvance-m/visualboyadvance-m.git
cd visualboyadvance-m
./installdeps

# ./installdeps will give you build instructions, which will be similar to:

mkdir build && cd build
cmake .. -G Ninja
ninja

./installdeps is supported on MSys2, Linux (Debian/Ubuntu, Fedora, Arch, Solus, OpenSUSE, Gentoo and RHEL/CentOS) and Mac OS X (homebrew, macports or fink.)

Building a Libretro core

Clone this repo and then,

cd src/libretro
make -j`nproc`

Copy vbam_libretro.so to your RetroArch cores directory.

Visual Studio Support

For visual studio, dependency management is handled automatically with vcpkg, From the Visual Studio GUI, just clone the repository with git and build with the cmake configurations provided.

If the GUI does not detect cmake, go to File -> Open -> CMake and open the CMakeLists.txt.

If you are using 2017, make sure you have all the latest updates, some issues with cmake projects in the GUI have been fixed.

You can also build from the developer command prompt or powershell with the environment loaded.

Using your own user-wide installation of vcpkg is supported, just make sure the environment variable VCPKG_ROOT is set.

To build in the visual studio command prompt, use something like this:

mkdir build
cd build
cmake .. -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_BUILD_TYPE=Debug -G Ninja
ninja

Visual Studio Code Support

Make sure the C/C++ and CMake Tools extensions are installed.

Add the following to your settings.json:

{
    "cmake.configureOnOpen": true,
    "cmake.preferredGenerators": [ "Ninja" ]
}

.

Dependencies

If your OS is not supported, you will need the following:

And the following development libraries:

  • zlib (required)
  • mesa (if using X11 or any OpenGL otherwise)
  • ffmpeg (optional, at least version 4.0.4, for game recording)
  • gettext and gettext-tools
  • SDL2 (required)
  • SFML (optional, for link)
  • OpenAL or openal-soft (required, a sound interface)
  • wxWidgets (required for GUI, 2.8 and non-stl builds are no longer supported)

On Linux and similar, you also need the version of GTK your wxWidgets is linked to (usually 2 or 3) and the xorg development libraries.

Support for more OSes/distributions for ./installdeps is planned.

Cross compiling for 32 bit on a 64 bit host

./installdeps m32 will set things up to build a 32 bit binary.

This is supported on Fedora, Arch, Solus and MSYS2.

Cross Compiling for Win32

./installdeps takes one optional parameter for cross-compiling target, which may be win32 which is an alias for mingw-w64-i686 to target 32 bit Windows, or mingw-w64-x86_64 for 64 bit Windows targets.

The target is implicit on MSys2 depending on which MINGW shell you started (the value of $MSYSTEM.)

On Debian/Ubuntu this uses the MXE apt repository and works quite well.

On Fedora it can build using the Fedora MinGW packages, albeit with wx 2.8, no OpenGL support, and no Link support for lack of SFML.

On Arch it currently doesn't work at all because the AUR stuff is completely broken, I will at some point redo the arch stuff to use MXE as well.

CMake Options

The CMake code tries to guess reasonable defaults for options, but you can override them, for example:

cmake .. -DENABLE_LINK=NO -G Ninja

Of particular interest is making Release or Debug builds, the default mode is Release, to make a Debug build use something like:

cmake .. -DCMAKE_BUILD_TYPE=Debug -G Ninja

Here is the complete list:

CMake Option What it Does Defaults
ENABLE_SDL Build the SDL port OFF
ENABLE_WX Build the wxWidgets port ON
ENABLE_DEBUGGER Enable the debugger ON
ENABLE_ASM_CORE Enable x86 ASM CPU cores (BUGGY AND DANGEROUS) OFF
ENABLE_ASM Enable the following two ASM options ON for 32 bit builds
ENABLE_ASM_SCALERS Enable x86 ASM graphic filters ON for 32 bit builds
ENABLE_MMX Enable MMX ON for 32 bit builds
ENABLE_LINK Enable GBA linking functionality (requires SFML) AUTO
ENABLE_LIRC Enable LIRC support OFF
ENABLE_FFMPEG Enable ffmpeg A/V recording AUTO
ENABLE_ONLINEUPDATES Enable online update checks ON
ENABLE_LTO Compile with Link Time Optimization (gcc and clang only) ON for release build
ENABLE_GBA_LOGGING Enable extended GBA logging ON
ENABLE_DIRECT3D Direct3D rendering for wxWidgets (Windows, NOT IMPLEMENTED!!!) ON
ENABLE_XAUDIO2 Enable xaudio2 sound output for wxWidgets (Windows only) ON
ENABLE_ASAN Enable libasan sanitizers (by default address, only in debug mode) OFF
UPSTREAM_RELEASE Do some release tasks, like codesigning, making zip and gpg sigs. OFF
BUILD_TESTING Build the tests and enable ctest support. ON
VBAM_STATIC Try link all libs statically (the following are set to ON if ON) OFF
SDL2_STATIC Try to link static SDL2 libraries OFF
SFML_STATIC_LIBRARIES Try to link static SFML libraries OFF
FFMPEG_STATIC Try to link static ffmpeg libraries OFF
OPENAL_STATIC Try to link static OpenAL libraries OFF
TRANSLATIONS_ONLY Build only the translations.zip and nothing else OFF

Note for distro packagers, we use the CMake module GNUInstallDirs to configure installation directories.

On Unix to use a different version of wxWidgets, set wxWidgets_CONFIG_EXECUTABLE to the path to the wx-config script you want to use.

MSys2 Notes

To run the resulting binary, you can simply type:

./visualboyadvance-m

in the shell where you built it.

If you built with -DCMAKE_BUILD_TYPE=Debug, you will get a console app and will see debug messages, even in mintty.

If you want to start the binary from e.g. a shortcut or Explorer, you will need to put c:\msys64\mingw32\bin for 32 bit builds and c:\msys64\mingw64\bin for 64 bit builds in your PATH (to edit system PATH, go to Control Panel -> System -> Advanced system settings -> Environment Variables.)

If you want to package the binary, you will need to include the MinGW DLLs it depends on, they can install to the same directory as the binary.

Our own builds are static.

Debug Messages

We have an override for wxLogDebug() to make it work even in non-debug builds of wx and on windows, even in mintty.

It works like printf(), e.g.:

int foo = 42;
wxLogDebug(wxT("the value of foo = %d"), foo);

From the core etc. the usual:

fprintf(stderr, "...", ...);

will work fine.

You need a debug build for this to work or to even have a console on Windows. Pass -DCMAKE_BUILD_TYPE=Debug to cmake.

Reporting Crash Bugs

If the emulator crashes and you wish to report the bug, a backtrace made with debug symbols would be immensely helpful.

To generate one (on Linux and MSYS2) first build in debug mode by invoking cmake as:

cmake .. -DCMAKE_BUILD_TYPE=Debug

After you've reproduced the crash, you need the core dump file, you may need to do something such as:

ulimit -c unlimited

in your shell to enable coredump files.

This post explains how to retrieve core dump on Fedora Linux (and possibly other distributions.)

Once you have the core dump file, open it with gdb, for example:

gdb -c core ./visualboyadvance-m

In the gdb shell, to print the backtrace, type:

bt

This may be a bit of a hassle, but it helps us out immensely.

Contributing

See the Developer Manual.

visualboyadvance-m's People

Contributors

artiip avatar briansrls avatar clownacy avatar condret avatar denisfa avatar ds22x avatar edorax avatar eleuin avatar eod avatar fpscan avatar hizzlekizzle avatar inactive123 avatar knightsc avatar kode54 avatar laqieer avatar libretroadmin avatar mystro256 avatar n-a-c-h avatar negativeexponent avatar orbea avatar rkitover avatar saulfabregwiivc avatar skidau avatar squall-leonhart avatar stanleykid-22 avatar steelskin avatar sundhaug92 avatar swooshycueb avatar webgeek1234 avatar zachbacon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visualboyadvance-m's Issues

Freezes when opening the second game with SDL audio

Actual behavior

Freezing when opening the second ROM. Crashes when opening the second GBA ROM.

Steps to reproduce the behavior

Choose SDL in audio settings.

Open a GB/GBC game, then try open another, it'll freeze. Open a GBA game, then open another GBA game, it'll crash and you'll get this:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb3fff700 (LWP 17198)]
0x0000000001558330 in ?? ()
(gdb) bt full
#0  0x0000000001558330 in ?? ()
No symbol table info available.
#1  0x00007ffff772a5fb in SDL_RunAudio (devicep=devicep@entry=0x1556a10) at /build/buildd/libsdl2-2.0.2+dfsg1/src/audio/SDL_audio.c:483
        silence = 0
        device = 0x1556a10
        stream = 0x17cd710 ""
        stream_len = 2048
        udata = 0x17d02b0
        fill = 0x4f2670 <SoundSDL::soundCallback(void*, unsigned char*, int)>
        delay = 11
#2  0x00007ffff778673d in SDL_RunThread (data=0x1558340) at /build/buildd/libsdl2-2.0.2+dfsg1/src/thread/SDL_thread.c:282
        args = 0x1558340
        userfunc = 0x7ffff772a4a0 <SDL_RunAudio>
        userdata = 0x1556a10
        thread = 0x1558000
        statusloc = 0x1558010
#3  0x00007ffff77d1279 in RunThread (data=<optimized out>) at /build/buildd/libsdl2-2.0.2+dfsg1/src/thread/pthread/SDL_systhread.c:72
No locals.
#4  0x00007ffff74fa184 in start_thread (arg=0x7fffb3fff700) at pthread_create.c:312
        __res = <optimized out>
        pd = 0x7fffb3fff700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736213284608, -1725036879148407560, 1, 25772416, 140736213285312, 140736213284608, 1724904937141904632, 
                1725052957179979000}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#5  0x00007ffff7b0f37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.

Build details

Ubuntu 14.04, GCC 4.9.2, libSDL 2.0.2, mesa 10.1.3

Interface (wx, SDL, default is wx):

master branch, last commit

Emulator crashes when trying to load a save state

Please fill out this form:

Expected behavior

The previously saved state is loaded.

Actual behavior

The emulator crashes to desktop.

Steps to reproduce the behavior

Open a game. Make a save state, and then attempt to load it (i.e. hit Shift+F1 and then F1). The program should then crash.

Build details

Operating System (Windows, Mac, Linux, etc.):
Windows 10 x64
Interface (wx, SDL, default is wx):
wx
Version of code (pre-built binary version, or commit ref, or just "master"):
master
Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

Crash when saving sound settings and closing dialog (GB/GBC)

Expected behavior

Changing a setting in the Sound Settings dialog saves .cfg and closes window.

Actual behavior

Changing a setting in the Sound Settings dialog saves .cfg and emulator will crash when closing the window.
image

Steps to reproduce the behavior

  1. Open VBA-M (latest version)
  2. Start any GB/GBC game (A game must be running. GBA is unaffected.)
  3. Open Options > Audio > Sound Settings
  4. Change any option or slider (Volume for example)
  5. Press OK
  6. Crash will occur

Option details

opengl & directsound but it shouldn't matter

Build details

OS: Windows 7 (also tested on Windows 10)
Version: 2e8bee1 (x64 release build)

OpenGL Aspect ratio broken during fullscreen (Screen is cut off)

Expected behavior

Fullscreen should work fine with OpenGL and aspect ratio fix enabled.

Actual behavior

Screen appears to be cut in half in fullscreen if aspect ratio fix is enabled with OpenGL.

Example:
image

Steps to reproduce the behavior

  1. Download latest release build (931fda4)
  2. Load any GB or GBA game (GB is more affected than GBA)
  3. Set video options to OpenGL
  4. Enable correct aspect ratio fix
  5. Enter fullscreen

Build details

Win7, using tagged release of 931fda4.
Also occurs on Win10 using the same build.

This issue along with issue #88 do not affect the earlier beta-3 release of f7f67ff.

Xbox 360 Controller does not work on Linux

Please fill out this form:

Expected behavior

Controller works normally

Actual behavior

Does not accept controller input in joypad config

Steps to reproduce the behavior

Have controller plugged in
Go to Options>Joypads
Select control and press buttons

ROM details

Which games are affected by the issue (please state if GBA or GB game):
N/A
Which games, if any, are NOT affected by the issue (please state if GBA or GB game):
N/A

Option details

Video driver (simple, opengl or cairo):
opengl
Sound driver (directsound, xaudio, openal, SDL):
default

Build details

Operating System (Windows, Mac, Linux (state distribution), etc.):
Manjaro Linux Stable
If using Linux, specify if using xorg or Wayland:
xorg
Version of code (pre-built binary version, or commit ref, or just "master"):
Commit: 1eb7685

Hardware details:

If relevant, the joystick you are using and the drivers you are using for it:
Standard Xbox 360 controller, kernel 4.10

missing sound channels when doing a quick save with the shift+ F1 key or chaging the volume settings in Game Boy Advance

Please fill out this form:

Expected behavior

No sound bug

Actual behavior

Sound bug when changing volume in Game Boy Advance

Steps to reproduce the behavior

change the volume in the sound settings

Build details

VisualBoyAdvance-M-WX-2.0.0-beta2

Operating System (Windows, Mac, Linux, etc.):
Windows 10 64 bit

Interface (wx, SDL, default is wx):
WX

Version of code (pre-built binary version, or commit ref, or just "master"):
Master

Any other relevant build information:
No

If this is e.g. a joystick or video issue, then the relevant hardware information:

Here's a video I made of how it sounds.

https://www.youtube.com/watch?v=k1YBahl3PqA&feature=youtu.be

audio loop when clicking outside of vba's screen borders

Hello, i don't really know if anyone else mentioned that on the old bugtracker but there's an issue when you click the cursor outside of the vba's window boarders while you playing any ROM. The issue causes VBA to pause the current video frame (which is logical) and the audio to stuck in a loop of approximately 0.5 sec's which is repeating constantly until you move the cursor back in and click it.

Tested while no other program was running in the backround.

OS : Windows 10 pro
Processor : Intel Core i7 (3.4hz both)
System Type : 64bit os, x64 based processor

Thank You.

Reshade crashes vba-m

Expected behavior

Using Reshade in combination with vba-m (currently 2.0) to enhance graphics (color correction).
Screenshots: https://forums.libretro.com/t/gameboy-advance-color-correction-shader/6444

Actual behavior

Reshade 1.1.0.962 with MasterEffects cannot be applied to vba-m (the hook mode does not work)
Reshade 3.0.6 instantly crashes vba-m if the user loads a game.

Steps to reproduce the behavior

Installing Reshade 1.1.0 or 3.0.6 and starting a game

Video driver (simple, opengl or cairo):
OpenGL and Simple

Operating System (Windows, Mac, Linux (state distribution), etc.):
Win 10

Version of code (pre-built binary version, or commit ref, or just "master"):
Latest Master (compiled)

Additional Information:
Older version of vba-m works without issues

Add Cg Shader support

Please add cg shader support the old rpi scalers dont have as many options available. And their are lots of cg shaders out their to use.

Emulation is too fast

I was previously using a personal build based on SVN snapshots but moved to this git version recently. I'm using Fedora (Linux) and I seem to get abnormally really fast emulation speeds, almost as if I was constantly holding down the speed key. Hitting the speed key seems to make things go even faster. It seems like the frame limiter is messed up and games run from 500% to 1000% the normal speed and about 1500% with the speed key hit. I can't reproduce this with OpenGL with WX, but this is always reproducible with GTK, WX+Simple, or WX+Cairo.

I'm going to try to do a git bisect to figure out what happened, but if anyone can point me in the right direction, that may help.

Emulator completely locks up when clicking menus in GB/GBC

Please fill out this form:

Expected behavior

It doesn't freeze

Actual behavior

The emulator freezes and I am unable to click on anything on my computer. Must enter tty and use kill -9 (SIGINT doesn't work)

Steps to reproduce the behavior

Open a GB/GBC game and click menus

Build details

Operating System (Windows, Mac, Linux, etc.): Linux (Arch Linux)

Interface (wx, SDL, default is wx): wx

Version of code (pre-built binary version, or commit ref, or just "master"): master

Any other relevant build information: laptop with AMD Radeon graphics

If this is e.g. a joystick or video issue, then the relevant hardware information:

PS2 joypad key configuration isn't saved.

Please fill out this form:

Expected behavior

Joypad keys should be saved.

Actual behavior

They are deleted, thus, I can't use my joypad

Steps to reproduce the behavior

Open VBAM-M [WX/GTK] under linux.
Click settings, then input, then configure.
Try to put your joypad keys.
Save.

Build details

Operating System (Windows, Mac, Linux, etc.):
Linux, Arch Linux.
Interface (wx, SDL, default is wx):
wx
Version of code (pre-built binary version, or commit ref, or just "master"):
commit 1eb7685
Any other relevant build information:
Got from arch repos.
If this is e.g. a joystick or video issue, then the relevant hardware information:

Please consider adding support for Action Replay codes

Please fill out this form:

Expected behavior

Please consider adding support for Action Replay codes. If there is an existing way to do this, please make it more easier to find and/or document it.

Actual behavior

When I go to List Cheats and try to add one, I only see options for GameShark and GameGenie.

Steps to reproduce the behavior

NA

Build details

Operating System (Windows, Mac, Linux, etc.): Windows

Interface (wx, SDL, default is wx): wx

Version of code (pre-built binary version, or commit ref, or just "master"): 6ecab80... (released 2/2/17)

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

Win32, minGW: "The application was unable to start correctly"

After figuring out how to set up minGW and MSYS2, I finally successfully built WxWidgets VBA-M for Windows...and found that the resulting executable refuses to start, spewing forth the following error:

"The application was unable to start correctly (0xc000007b). Click OK to close the application."

Classic NES Series games flickering

Expected behavior

No flickering

Actual behavior

Flickering

Steps to reproduce the behavior

Play Classic NES Series - Excitebike (USA, Europe), Classic NES Series - Metroid (USA, Europe), Classic NES Series - Super Mario Bros. (USA, Europe).

Build details

VisualBoyAdvance-M-WX-2.0.0-beta2

Operating System (Windows, Mac, Linux, etc.):
Windows 10 64-Bit

Interface (wx, SDL, default is wx):
Default

Version of code (pre-built binary version, or commit ref, or just "master"):
I think master

Any other relevant build information:
No

If this is e.g. a joystick or video issue, then the relevant hardware information:

Intel HD Graphics (Gigabyte)
1023MB NVIDIA GeForce GT 720 (EVGA)
ForceWare version: 365.10
SLI Disabled

fail compiling on mac

I'm using MacOS Sierra, previously I'm using build that posted in the forum here and it worked fine.

Bu then I tried to install latest update by using release build from Release page but mac said they are damaged and cannot be opened.

Then I've tried checking out from master branch to build it using the instruction provided but it failed when executing "make -j8"

[ 10%] Built target wxvbam_translations
[ 10%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zAlloc.c.o
[ 11%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zCrcOpt.c.o
[ 13%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zIn.c.o
[ 13%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zStream.c.o
[ 13%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zDec.c.o
[ 14%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zBuf.c.o
clangclang: : errorerror: : unsupported option '--param ssp-buffer-size=4'unsupported option '--param ssp-buffer-size=4'

clang: error: unsupported option '--param ssp-buffer-size=4'
clang: error: unsupported option '--param ssp-buffer-size=4'
clang: error: unsupported option '--param ssp-buffer-size=4'
clang: error: unsupported option '--param ssp-buffer-size=4'
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zDec.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zAlloc.c.o] Error 1
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zIn.c.o] Error 1
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zStream.c.o] Error 1
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zBuf.c.o] Error 1
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zCrcOpt.c.o] Error 1
[ 16%] Building C object fex/CMakeFiles/fex.dir/7z_C/7zCrc.c.o
[ 16%] Building CXX object CMakeFiles/vbamcore.dir/src/common/ConfigManager.cpp.o
[ 16%] Building C object CMakeFiles/vbamcore.dir/src/common/dictionary.c.o
[ 17%] Building CXX object CMakeFiles/vbamcore.dir/src/common/Patch.cpp.o
[ 18%] Building C object CMakeFiles/vbamcore.dir/src/common/iniparser.c.o
clang: error: unsupported option '--param ssp-buffer-size=4'
[ 18%] Building C object CMakeFiles/vbamcore.dir/src/common/memgzio.c.o
make[2]: *** [fex/CMakeFiles/fex.dir/7z_C/7zCrc.c.o] Error 1
make[1]: *** [fex/CMakeFiles/fex.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
clang: error: unsupported option '--param ssp-buffer-size=4'
make[2]: *** [CMakeFiles/vbamcore.dir/src/common/Patch.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
clang: error: unsupported option '--param ssp-buffer-size=4'
clang: error: unsupported option '--param ssp-buffer-size=4'
make[2]: *** [CMakeFiles/vbamcore.dir/src/common/memgzio.c.o] Error 1
make[2]: *** [CMakeFiles/vbamcore.dir/src/common/iniparser.c.o] Error 1
clang: error: unsupported option '--param ssp-buffer-size=4'
make[2]: *** [CMakeFiles/vbamcore.dir/src/common/dictionary.c.o] Error 1
clang: error: unsupported option '--param ssp-buffer-size=4'
make[2]: *** [CMakeFiles/vbamcore.dir/src/common/ConfigManager.cpp.o] Error 1
[ 19%] Building CXX object CMakeFiles/vbamcore.dir/src/Util.cpp.o
clang: error: unsupported option '--param ssp-buffer-size=4'
make[2]: *** [CMakeFiles/vbamcore.dir/src/Util.cpp.o] Error 1
make[1]: *** [CMakeFiles/vbamcore.dir/all] Error 2
make: *** [all] Error 2

is there any step that I've missed? should I install any dependencies by myself? didn't all the dependencies has been handled by "installdeps" script?

incorrent ROM type detection

bool utilIsGBImage(const char* file)

this is wrong, because the ending of a filename says nothing about the content of a file.

I once took part in a reverse-engineering contest. One of the crackmes was a gb-rom, named flux.dat.
vbam refused to emulate it, until I renamed the file to flux.gb.

I would expect vbam to check the header of the file instead of the name.

Use XDG specification for config files

Right now there's a ~/.vbam directory, which should be located at ~/.config/vbam

Not directly related, but starter directory for search roms should be the home folder (~/), not ~/.vbam

Please get cheats (gameshark?) working

Please fill out this form:

Expected behavior

Cheats work

Actual behavior

Cheats don't work

Steps to reproduce the behavior

Try to use cheats

Build details

2.0.0 beta 2
Operating System (Windows, Mac, Linux, etc.):
Windows 10
Interface (wx, SDL, default is wx):
Win32 - MFC
Version of code (pre-built binary version, or commit ref, or just "master"):
I don't know
Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

Unable to load save states most of the time

Please fill out this form:

Expected behavior

Save state loading should work without issues.

Actual behavior

Most of the time when I try to load a save state, with GBA it causes the emulator to hang and the music stuck and with GB/GBC, it causes the game to crash. I've tried with the following games and attached the save states for each of them:

GBA: Pokemon FireRed, Mario Kart Super Circuit
GBC: Pokemon Crystal
GB: Pokemon Red
saves.zip

Steps to reproduce the behavior

1.) Load any game (or specifically the ones I mention above).
2.) Once started up for a little bit, press CTRL+F1 to save to the first slot.
3.) Then after a little bit, press F1 to load it.
4.) Note the hang or crash.

I have also ran with the Debug version of the application but it doesn't seem to have any extra information. Please let me know if I can send anything else over.

Build details

Operating System (Windows, Mac, Linux, etc.): Windows

Interface (wx, SDL, default is wx): wx

Version of code (pre-built binary version, or commit ref, or just "master"): 6ecab80 (released 2/2/17)

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

Cheat Search bug

How do I do a unknown search? I know how to do it in other emulators but not this one.

Adding Portable Mode

Expected behavior

Visualboyadvance-M shall create a settings file within its install folder (for all settings).
No registry entries or roaming data folder shall be created. The only folder which shall be used is the install folder.

Actual behavior

Visualboyadvance-M stores the settings to a place which is "unknown" for the user.

Steps to reproduce the behavior

Start VBA-M configure something. Change the path from the vba-m.exe and verify if the settings remain.

Build details

Latest Beta 3 from the releases. Windows 10

ASM doesn't build on Fedora

EDIT: I misunderstood the root cause, ASM doesn't seem to build on Fedora.

Seems like a change between March 7th and March 14th broke the x86 32bit builds on Fedora (all other arches work fine).

Here's the build log:
https://kojipkgs.fedoraproject.org//work/tasks/2949/18422949/build.log

Here are the errors in particular:

/tmp/ccAJAmeP.ltrans25.ltrans.o: In function `_2xSaI(unsigned char*, unsigned int, unsigned char*, unsigned char*, unsigned int, int, int)':
/builddir/build/BUILD/visualboyadvance-m-throttle/src/filters/2xSaI.cpp:775: undefined reference to `_2xSaILine'
/tmp/ccAJAmeP.ltrans25.ltrans.o: In function `SuperEagle(unsigned char*, unsigned int, unsigned char*, unsigned char*, unsigned int, int, int)':
/builddir/build/BUILD/visualboyadvance-m-throttle/src/filters/2xSaI.cpp:501: undefined reference to `_2xSaISuperEagleLine'
/tmp/ccAJAmeP.ltrans25.ltrans.o: In function `Super2xSaI(unsigned char*, unsigned int, unsigned char*, unsigned char*, unsigned int, int, int)':
/builddir/build/BUILD/visualboyadvance-m-throttle/src/filters/2xSaI.cpp:233: undefined reference to `_2xSaISuper2xSaILine'
/tmp/ccAJAmeP.ltrans25.ltrans.o: In function `Init_2xSaI(unsigned int)':
/builddir/build/BUILD/visualboyadvance-m-throttle/src/filters/2xSaI.cpp:78: undefined reference to `Init_2xSaIMMX'

It's happening at the linking step, although it looks like the asm is still being compiled.

Emulator freezes without access to Internet.

Please fill out this form:

Expected behavior

It doesn't freeze.

Actual behavior

If there's no access to the Internet, the emulator freezes after the main window appears at startup.

Steps to reproduce the behavior

On Windows:
Disable the NIC or simple unplug the wire, then run the emulator.

void GameArea::OnIdle(wxIdleEvent& event)
{
...
// Check for online updates
if (gopts.onlineupdates > 0 && !emusys) {
// stuck here
-> wxGetApp().frame->CheckForUpdates();
}
...
}

Build details

  1. Setup the build system of MXE with:
    https://github.com/visualboyadvance-m/mxe
    Installed package needed by vba-m in MXE: wxwidgets, sdl2 he sfml, etc.
    Preppend the directory of usr/bin of MXE to the PATH env var.
  2. Pull the vba-m source from this Git repo:
    git clone https://github.com/visualboyadvance-m/visualboyadvance-m.git
  3. Create makefile:
    unset env | grep -vP '^\t' | grep -vi '^EDITOR=\|^HOME=\|^LANG=\|MXE\|^PATH=' | grep -vi 'PKG_CONFIG\|PROXY\|^PS1=\|^TERM=' | cut -d '=' -f1 | tr '\n' ' '
    BUILD_DIR=build-vbam-mxe
    rm -rf ${BUILD_DIR}
    && mkdir ${BUILD_DIR}
    && cd ${BUILD_DIR}
    && i686-w64-mingw32.static-cmake
    ../vba-m/visualboyadvance-m
  4. Make it:
    make -C ${BUILD_DIR}

Operating System (Windows, Mac, Linux, etc.):
Host OS: Ubuntu 16.04 LTS (64bit)
Target OS: Windows 7 (64bit)

Interface (wx, SDL, default is wx):
Is wx.

Version of code (pre-built binary version, or commit ref, or just "master"):
master

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

PC COMPATIBILITY

Please fill out this form:

Expected behavior play and use vba-m on older computer like vba 1.8.0

Actual behavior vba-m won't work at all on older computer but 1.8.0 does; i need vba-m to work so i can play certain games

Steps to reproduce the behavior

ROM details

Which games are affected by the issue (please state if GBA or GB game): n/a

Which games, if any, are NOT affected by the issue (please state if GBA or GB game): n/a

Option details

Video driver (simple, opengl or cairo): n/a

Sound driver (directsound, xaudio, openal, SDL): n/a

Build details

Operating System (Windows, Mac, Linux (state distribution), etc.): windows (xp or 95 not sure)

If using Linux, specify if using xorg or Wayland: n/a

Version of code (pre-built binary version, or commit ref, or just "master"):

Hardware details:

If relevant, the joystick you are using and the drivers you are using for it:

Navi Trackers in Four Swords Adventures+ plays garbage for audio

This is an old issue on the Dolphin Wiki.

When loading up Navi Trackers (4 player party mode) VBA-M will constantly emit garbage audio. It is loud, and makes recording footage pretty impossible (I was going to record footage for Dolphin's wiki)

mGBA supposedly works properly according to endrift, Higan plays no audio whatsoever. Endrift actually should know what the problem is, so if you ask her about this she should be able to give a huge hint as to what is wrong.

I verified this in the latest GIT of VBA-M as of this date. The audio sounds like a very loud humming noise. It drowns out Dolphin completely.

fix libretro front end

@ZachBacon opening this to track libretro fixing work:

  • so it looks like we need to make it build with whatever happened to ConfigManager
  • we also need to integrate it into cmake
  • this may involve stuff like cross-compiling support for android/ios/arm/pi etc..
  • preferrably with automatic installation into retroarch

Zach can you please add some notes here, since you've been working on this, on what has been done, what needs to be done, etc..

find cheats not working on gameboy

There is a bug when trying to make gameboy cheat codes i know how to make them but it's not working on visualboyadvance-m. Will someone please try to make some Infinite Missiles on Metroid 2 so you can see what i'm talking about. On Bizhawk it's easy to make Infinite Missiles. but there RAM search is more advance so maybe that's why it's easier.

capture1-4-2017-3 06 39 am

visualboyadvance-m-win32-Beta-3

Keyboard shortcuts don't work

I've tried using keyboard shortcuts with VBA-M, but for some reason they don't do jack. For example, when using CTRL+P while playing a game, this should pause the game, but it doesn't.

I'm using the latest release—6ecab80—with Windows. I can't find the interface (wx or SDL).

Thank you for your time.

Openal.so loading issues on some distros

Some distros only package the unversioned libopenal.so library in the openal development package, which can cause the following to fail in src/wx/openal.cpp if the openal development package isn't installed:

!Lib.Load(wxDynamicLibrary::CanonicalizeName(wxT("openal")))

because it canonicalizes to "libopenal.so".

This can be annoying for packaging, as a non-development package depending on a development package defeats the purpose of making the split in the first place.

I maintain the Fedora package, so I'm going to work around this by just adding ".1" to the canonicalized name, but realistically I don't think this is the "correct" solution.

My solution looks something like this:

!Lib.Load(wxDynamicLibrary::CanonicalizeName(wxT("openal"))+".1")

As the library SHOULD be loaded as libopenal.so.1, not libopenal.so. I would hope someone with more experience can patch and resolve this issue.

Thanks!

installdep and Makefile on debian are not working

On debian the installscript is not working, this is caused by libpng16-deb not in the repositories. Another problem is that the version of Cmake on repositories is 3.0.2 and the required version is 3.3.2

Issues compiling in Ubuntu.

I tried to compile the source code on ubuntu x86_64 but get error:
[ 84%] Linking CXX executable ../../visualboyadvance-m
/usr/bin/ld: cannot find -lgtk-x11-2.0
/usr/bin/ld: cannot find -lgdk-x11-2.0
/usr/bin/ld: cannot find -lpangocairo-1.0
/usr/bin/ld: cannot find -lcairo
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/ld: cannot find -lpangoft2-1.0
/usr/bin/ld: cannot find -lpango-1.0
/usr/bin/ld: cannot find -lfontconfig
/usr/bin/ld: cannot find -lfreetype
collect2: error: ld returned 1 exit status
src/wx/CMakeFiles/visualboyadvance-m.dir/build.make:554: recipe for target 'visualboyadvance-m' failed.
make[2]: *** [visualboyadvance-m] Error 1
CMakeFiles/Makefile2:219: recipe for target 'src/wx/CMakeFiles/visualboyadvance-m.dir/all' failed
make[1]: *** [src/wx/CMakeFiles/visualboyadvance-m.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

What can i do to fix it? Thanks.

Make VBA-M not pause in menu when Linked

Currently, when trying to play online or in LAN, if someone clicks the menu, the game pauses and breaks the connection. Please make it so that when you click the menu when in a linked game, the emulation still keeps running.

When pressing d-pad up and left shoulder button together character runs to the right

Please fill out this form:

Expected behavior

Normal controller behavior

Actual behavior

In Metroid Fusion when pressing left shoulder button to angle the gun up and to the right, when i press d pad up and to the right: / the character moves to the right which is normal; but when i go back to d pad up: | the character continues running to the right until I let go of the d pad which is not normal.

Steps to reproduce the behavior

See previous information.

Build details

2.0.0 beta 2
Operating System (Windows, Mac, Linux, etc.):
Windows 10
Interface (wx, SDL, default is wx):
wx
Version of code (pre-built binary version, or commit ref, or just "master"):
I don't know.
Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:
Intel Core i3 laptop.

"Automatically Save/Load Cheats" not persisted between restart

Please fill out this form:

Expected behavior

This setting should be persisted between restarts.

Actual behavior

If you enable this setting and restart the application, it is no longer enabled.

Steps to reproduce the behavior

1.) Launch the application and enable "Automatically Save/Load Cheats".
2.) Note that it is now checked/enabled.
3.) Restart the application.
4.) Note that it is no longer checked/enabled.

Build details

Operating System (Windows, Mac, Linux, etc.): Windows

Interface (wx, SDL, default is wx): wx

Version of code (pre-built binary version, or commit ref, or just "master"): 6ecab80... (released 2/2/17)

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

filters xbrz 4x and above are slow with the simple video driver

Please fill out this form:

Expected behavior

xbrz filters 4x and above work as described.

Actual behavior

xbrz filters 4x and above only seem to work with opengl, but for the simple video driver stutters.

Steps to reproduce the behavior

Use the simple driver and select the filter.

Build details

Operating System (Windows, Mac, Linux, etc.): All Platforms

Interface (wx and SDL, default is wx): wxWidgets

Version of code (pre-built binary version, or commit ref, or just "master"): current master

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:
Video issue

Music is stuck when "Pause when inactive" is enabled and focus is lost

Please fill out this form:

Expected behavior

The music/sound should be muted when focus is lost and "Pause when inactive" is enabled.

Actual behavior

The music/sound is stuck at the same few notes which is very jarring.

Steps to reproduce the behavior

1.) Load a game.
2.) Enable Emulation -> Pause when inactive
3.) Have the game window not be maximized and ensure the game is playing some music.
4.) Click on something else so that the game window is no longer in focus.
5.) Note the stuck music.

Build details

Operating System (Windows, Mac, Linux, etc.): Windows

Interface (wx, SDL, default is wx): wx? I think

Version of code (pre-built binary version, or commit ref, or just "master"): VisualBoyAdvance-M Git

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

d-pad of F310 doesn't work as intended in VBA-M-WX-2.0.0-beta2

I use the F310 Logitech controller, and the emulator version VBA-M-WX-2.0.0-beta2. The issue has been tested on these games, but it probably do in more games:
Final Fantasy Legend III (U) [!].gb
Knight Quest (U).gb

When i move my character using the d-pad, if i go Up or Down, i can't slide my thumb to the Right or Left direction. If i try to slide my thumb to turn Right or Left, it will continue to walk in the Y axis i was using, even if Up/Down is no longer pressed.

As i can't slide my thumb, i actually have to release the d-pad completely before changing direction. However, it seem to have no problem to change direction from X-Axis to Y-Axis. The issue only occur when sliding the thumb from Y axis to X axis.

Using the same controller, i doesn't have the issue with other version of the emulator (for example 1.8.0 beta 3 or 1.8.0-SVN work fine). However, i couldn't try with a different controller as i only have F310 Logitech. The joystick works fine, and my laptop keyboard works fine too, so the problem is only to the d-pad, and specific to VBA-M-WX-2.0.0-beta2. For the driver of the controller, it's just a plug-and-play so i don't really know. I'm using winXP-SP3, but since the problem only occur to one specific version of the emulator, i don't think it's related to WinXP.

Remember window's size/state/position upon restart

Please fill out this form:

Expected behavior

It would be nice to have the application remember its size, state (whether maximized or not), and position upon being restarted. Please consider adding this, at least as an option.

Actual behavior

The application defaults to a specific size and state and a somewhat random position.

Steps to reproduce the behavior

1.) Load the application.
2.) Change the size/state/position from the default.
3.) Close and reopen it.
4.) Note the default settings are used.

Build details

Operating System (Windows, Mac, Linux, etc.): Windows

Interface (wx, SDL, default is wx): wx

Version of code (pre-built binary version, or commit ref, or just "master"): 6ecab80.... (released 2/2/17)

Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:

Various Bugs on Win 10

Hello. I'd like to report some bugs I encountered on the last released build (2.0.0 Beta)

Bug descriptions:
1st. Whenever I change the audio volume, the application crashes.

2nd. Whenever I click outside the application while a game is running, the audio freezes and loops instead of getting muted -this only occurs when 'Pause when inactive' is checked-.

3rd. Whenever I try to load a save state -for instance F1- while on full screen mode, the application crashes.

4th. I can't connect two instances of the program using the 'Link' feature.

Steps to reproduce:
1st. Open the application, go to Options>Audio>Configure...; Drag the volume selector into another position, hit OK.

2nd. Open the application, make sure 'Pause when inactive' is checked. Run a game. Click anywhere outside the application.

3rd. Open the application, save a state, go into full screen mode (F11), hit the macro button for the state you saved (F1, F2...).
Note: It seems this bug is more likely to appear if you have just been using the 'speed up' function.

4th. Open two instances of the application and on each one load a game -I'm using Pokémon Blue and Pokémon Yellow-; On both instances, go to Options>Link>Type and select 'Cable'. Then, on each instance again, go to Options>Link>Start Network Link.... Next, choose one to be the Server, select 2 players and hit 'Start'. On the other one, select 'Client' and fill the 'Server' field with your local IP; Hit connect. The game will now inform you that the two players are connected. However, trying to engage in multiplayer activity will be futile.
Note: I think this may have something to do with the 'Pause when inactive' option. I unchecked it on both instances. But I can't control both of them at the same time: I need to click on each one, then go to the "cable club" individually, unlike with VBA Link -which isn't working for me either-.

ROM details:
Player 1: Pokémon Blue (Spanish) [Personal dump] GB
Player 2: Pokémon Yellow (Spanish) [Personal dump] GB

Video driver: simple.

Sound driver: directsound.

Build details:
Operating System: Windows 10 Home (OEM).
Version of code: Last Released Build (2.0.0 Beta)

Super Game Boy lacks Super NES sound channels

Expected behavior

Certain Super Game Boy-enhanced games can use the Super NES sound channels for certain sounds. An example of this is Donkey Kong, where instead of Pauline's screams sounding like "mee-APP, mee-APP", they sound like Pauline is actually shouting "Help! Help!" and this also happens with MANY sounds on Kirby's Dream Land 2.

Actual behavior

The sounds are silent when playing these games.

Steps to reproduce the behavior

Play Donkey Kong in SGB mode, start a new game and wait for Donkey Kong to reach the top. Pauline will shout. Alternatively, play Kirby's Dream Land 2 in SGB mode.

ROM details

Which games are affected by the issue (please state if GBA or GB game):
Donkey Kong, Kirby's Dream Land, other Super Game Boy-enhanced games.
Which games, if any, are NOT affected by the issue (please state if GBA or GB game):
Any game that does not take advantage of the extra SNES sound channels.

Option details

Video driver: Direct3D

Sound driver: XAudio

Build details

Operating System: Windows

Version of code: Pre-built

Hardware details:

If relevant, the joystick you are using and the drivers you are using for it: None

Choppy frame rate

Please fill out this form:

Expected behavior

Smooth frame rate

Actual behavior

Choppy framerate

Steps to reproduce the behavior

Play a rom

Build details

2.0.0 beta 2
Operating System (Windows, Mac, Linux, etc.):
Windows 10
Interface (wx, SDL, default is wx):
wx
Version of code (pre-built binary version, or commit ref, or just "master"):
I don't know
Any other relevant build information:

If this is e.g. a joystick or video issue, then the relevant hardware information:
Intel Core i3 laptop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.