Visual Boy Advance 360 V0.03 Public Beta
========================================

Visual Boy Advance – Gameboy Advance Emulator

VBA is the best and most popular Gameboy Advance emulator around. Emulates GBA, GBC, SGB, GB roms!

Background of VBA

In 2004, Forgotten created the original VBA emulator. At the time, VBA was being released through vba.ngemu.com. Following the initial release, the project was handed over to the VBA team.

Development of the original VBA ceased in 2004 with the release of 1.8 beta 3. However, the project continued through various developers aiming to improve VBA but not united in their efforts to do so. These “forked” versions improved on the original VBA but needed focus and unity to capture all the different improvements being accomplished.

The Rise of VBA-M

In an effort to bring some cohesion to the multiplicity of releases, a version named VBA-M was created. VBA-M is now in active development, with updates as current as November 2009.

In addition to the DirectX version for the Windows platform, there is also one based on SDL, the free, platform-independent, graphics library. VBA is available for a variety of operating systems, such as Linux, BSD, Mac OS X, Xbox, and BeOS. VisualBoyAdvance has also been ported to GameCube and Wii.

About
=====

Visual Boy Advance 360 (VBA360) is a Xbox 360 port of VBA-M from svn version r945. Credit must go to the original authors for their hard work.

Some code parts of VBA-GX are used in VBA360. Credit to the VBA-GX coders for their hard work.

VBA360 uses libSDL360x (SDL libraries for the Xbox 360)

Background and Notes
====================

The scene already has a port of XeBoyAdvance, which is a top class emulator. Props to LoveMHZ for his hard work and efforts, especially considering it was developed on a retail kit. An amazing job. In any case, Visual Boy Advance 360 started out as a simple proof of concept project. The first build of XeBoyAdvance has sound issues with certain games and I wanted to find out if libSDL360x’s audio code was the culprit. It turns out that a simple “quick and dirty” port worked fine without audio problems.

XeBoyAdvance runs at 100% speed, however it runs with some kind of frameskip. I was curious to see how fast my code ran – so i compiled with auto-frameskip off and zero frameskip. Surely the Xbox 360 port would run silky smooth at 60fps with no slow down and zero frameskip right? Wrong! First attempts of VBA-M on the 360 were very poor, around 70-75% speed for most games, skipping audio and slowdown everywhere. Ugh. A minimum of frameskip 2 or 3 was a minimum to get it running at fullspeed.

For days I couldnt figure out why. A 3.2ghz tri-core CPU, running code slower than the Xbox1. Even without multi-threaded code, 1 CPU at 3.2ghz should eat the code up, but was full of fail. I almost convinced myself that 1) I had a broken 360 that didnt run at 3.2ghz 2) MS lied and the core speeds were alot slower and 3) That the CPU cores were locked and needed some assembly calls to unlock them to fullspeed.

I took a step back from the code, and decided to dig into the PPC architecture and learn it. VBA360 became my test project of sorts to apply optimization techniques to. Every so often after reading and learning about something, id go back and apply it to VBA360. Some things worked great, others slowed the emulation down further. In the end I came away from it with a much better understanding of the system hardware.

So i’ve decided to release this build. It’s been a private, friends only build for some time now. I’m proud of the final result in this build. Almost everything runs at 60fps with zero frameskip with filters – there are still some roms that have slowdown – they will be worked on and addressed.

I’ve bundled the source-code in the interests of the scene and GPL zealots everywhere. It’s messy code – remember this was a POC – and there are some dirty hacks in there as well. You have been warned.

Features
========

- Gameboy Advance/Gameboy/Gameboy Color/Super Gameboy emulation
- Graphics/Sound/Controller support
- Savestate and Battery save support
- Enhanced Graphics Filter support
- Bilinear/Point hardware filtering
- Compressed Rom Support (.zip, .7z)
- Favorites Support
- Supports 64k/128k Flash Saves
- Source Code has been provided for your amusement.
- Turbo support (Right Trigger)
- Activate In game menu via right thumbstick.
 

Credits
=======
VBA, VBA-M, VBA-GX Teams, Team Avalaunch, Team XeLove