Coder Social home page Coder Social logo

visualboyadvance's Introduction

VBA - a GameBoy Advance emulator

VBA Development

VBA is a GBA emulator written in C. VBA is an open source project, licensed under the GPL 2.0 (or later). Anyone is welcome to contribute their improvements to the code.

Simplicity

VBA has a strong emphasis on keeping the code as simple as possible, but no simpler. That is, no abstractions, not lots of whitespace fluff but reasonably tight and flexible (where appropriate only!).

Dependencies

VBA has few dependencies: basically GLib and libarchive. This is intended and should remain this way. Frontends can be added and come up with more dependencies to make the user experience richer.

Contributing

Pick from the list of tasks below, go look at the open issues on GitHub, or just implement whatever missing feature you feel like. If you send a couple of good pull requests, you'll be added as a contributor and get your own commit access.

Task list

  • Clean up core code, converting it to clean C modules.
  • Port fixes from VBA-M and libretro.
  • Make use of the game database to provide rich features.
  • Add more features to the SDL frontend
  • Add more frontends
  • Port to more platforms

Basic build instructions

VBA currently uses CMake for its build system. In order to build for most systems, create a build directory and run:

cmake path/to/vba
make

visualboyadvance's People

Contributors

bgk 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

visualboyadvance's Issues

Animation hangs when using real BIOS but not VBA BIOS emulation

Steps to reproduce

  1. Acquire Pokémon Fire Red 1.0.
  2. Apply the IPS patch from this thread.
  3. Change the pointer at 0x9033F0 to 10 43 91 08.
  4. Grudgingly accept my apology for not making a minimal test case - I don't really understand what's going wrong, so I don't know how to reproduce the failure myself.
  5. Start a new game using VBA's BIOS emulation. Select Bulbasaur. Use Tackle. Watch the animation.
  6. Relaunch the emulator using a separate BIOS file. Select Bulbasaur. Use Tackle. Watch the animation.

Expected results

The same thing both times.

Actual results

When using the separate BIOS file the animation hangs halfway through; when using the emulator's IO functions it works correctly.

Notes

At 0x914310 is a bytecode script which controls the animation. It would be helpful to me if you could tell me which command is being executed when the animation fails.

README doesn't properly instruct on how to build visualboyadvance

When running cmake /path/to/vba/ there is no makefile created and when running make an error make: *** No targets specified and no makefile found. Stop. gets spit out. If there are more thorough installation instructions they should be listed in the README.

Visualboy Advance not starting with RTC enabled

Starting a game normally shows that the real time clock is not enabled by default, which is needed for some games to function properly. To actually avoid the "internal battery has run dry" error, i have had to start VBA via command line using "vba --rtc .gba".

'master' cannot be build

Cloning from 'master', using a Debian Whezzy, with dependencies from Debian repository concluded with a failed build.

Dependencies installed
libsdl2-dev
libsdl2-ttf-dev
libarchive-dev

Error log follows:
~/visualboyadvance/src/sdl/DisplaySDL.c: In function ‘display_sdl_load_png_to_buffer’:
~/visualboyadvance/src/sdl/DisplaySDL.c:318:2: error: unknown type name ‘png_image’
~/visualboyadvance/src/sdl/DisplaySDL.c:320:7: error: request for member ‘version’ in something not a structure or union
~/visualboyadvance/src/sdl/DisplaySDL.c:320:18: error: ‘PNG_IMAGE_VERSION’ undeclared (first use in this function)
~/visualboyadvance/src/sdl/DisplaySDL.c:320:18: note: each undeclared identifier is reported only once for each function it appears in
~/visualboyadvance/src/sdl/DisplaySDL.c:322:2: warning: implicit declaration of function ‘png_image_begin_read_from_file’ [-Wimplicit-function-declaration]
~/visualboyadvance/src/sdl/DisplaySDL.c:324:47: error: request for member ‘message’ in something not a structure or union
~/visualboyadvance/src/sdl/DisplaySDL.c:328:2: warning: implicit declaration of function ‘PNG_IMAGE_SIZE’ [-Wimplicit-function-declaration]
~/visualboyadvance/src/sdl/DisplaySDL.c:329:7: error: request for member ‘format’ in something not a structure or union
~/visualboyadvance/src/sdl/DisplaySDL.c:329:17: error: ‘PNG_FORMAT_RGBA’ undeclared (first use in this function)
~/visualboyadvance/src/sdl/DisplaySDL.c:331:2: warning: implicit declaration of function ‘png_image_finish_read’ [-Wimplicit-function-declaration]
~/visualboyadvance/src/sdl/DisplaySDL.c:334:47: error: request for member ‘message’ in something not a structure or union
~/visualboyadvance/src/sdl/DisplaySDL.c:339:13: error: request for member ‘width’ in something not a structure or union
~/visualboyadvance/src/sdl/DisplaySDL.c:343:13: error: request for member ‘height’ in something not a structure or union
make[2]: *** [CMakeFiles/vba.dir/src/sdl/DisplaySDL.c.o] Error 1
make[1]: *** [CMakeFiles/vba.dir/all] Error 2
make: *** [all] Error 2

build failure in OSx 10.11

Undefined symbols for architecture x86_64:
"_archive_read_free", referenced from:
_loader_load in libvbacore.a(Loader.c.o)
_loader_open_archive in libvbacore.a(Loader.c.o)
_loader_read_code in libvbacore.a(Loader.c.o)
"_archive_read_support_filter_all", referenced from:
_loader_open_archive in libvbacore.a(Loader.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Build CPSR checks into the table

there's checks for the CPSR status nibble here - https://github.com/visualboyadvance/visualboyadvance/blob/master/src/gba/CPUArm.cpp#L2786

They could be embedded in the dispatch table called via https://github.com/visualboyadvance/visualboyadvance/blob/master/src/gba/CPUArm.cpp#L2843 .

The upside is the always execute path is never checked for, and the conditional based ones are baked and resolved inside the table already (You don't have to "lookup" the thing to check in its own switch, the branch is built into the dispatch table used for instructions).

The bad side is a 16x larger table and table calls for when the cpsr check is false.

I did something similar in IodineGBA and got a small perf win - https://github.com/grantgalitz/IodineGBA/commit/4ae55207cc0baf442d47b4b42ce66389097cc195

Loading error: Unrecognized archive format

Hy I don't really know if it is really a problem of this code or the bios i am using.
I cloned and build vba binary from source and when i start it with a hello world program build with gbdk.
it says Loading error: Unrecognized archive format can some one tell me what that means or what i did wrong?

vba --bios GBA.bios helloworld.gb

the hello world program is compiled with this command:
lcc hello.c -o helloworld.gb
the helloworld.gb runs fine on the ubuntu vbaexpress 1.2 emulator.

NesBox to VBA Save State Conversion

Hello. I have been trying to migrate from NesBox Flash version to VirtualBoy Advance, because it allows for more configuration options. However, no matter how hard I try I cannot load the Save State file from NesBox into VirtualBoy Advance, because it is failing with an error. Relative information also here: http://gaming.stackexchange.com/questions/264343/nesbox-to-virtualboy-advance-save-file-conversion . Can someone help me convert the state files or somehow save game data to an EEPROM file or other format?

Colour issues on the sdl interface

kind of early, but I figured I may as well report some initial findings for my own personal sake, a bit of a bug tracker. Colours are a bit off at least on Mac OSX 10.8.4
vbacolour
Also noticed when pressing certain keys like Left Shift or backspace will cause a segmentation fault (though I'm sure it's probably related to keybindings) so I'll take a stab at these two issues when I can

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.