Application:VBA
VisualBoyAdvance
VisualBoyAdvance (commonly abbreviated as VBA) is an emulator of the Game Boy, Game Boy Color, and Game Boy Advance handheld game consoles sold by Nintendo.
Credit
Ported by Will Dietz Jan 2010.
Thanks to #webos-internals for their feedback throughout testing!
Icon created by Austin (Used with Permission)
License
All source is under the GPLv2 license.
The original source code is available here
And the latest VBA for webOS source is available on git here
Donate
Lots of work has gone into making this a great game for you to enjoy! If you like it please consider donating. See official thread for the paypal link if you're interested.
Installing VBA
Install Preware, and then launch it. Click on "Available Packages" then "Applications, or "Available Applications" then "All" depending on the Preware preferences you have chosen. Now type in "visual" (no quotes). VisualBoyAdvance should show up. If not, make sure your feeds are up to date. Click on VBA and then click install. You will probably have to install other services as well (it will tell you if you do).
Now you are ready to add ROMs(games)!
Adding ROMS
We aren't going to discuss how to get ROMs here but we will tell you how to transfer them to your Pre. If you want to try some free Homebrew games for the GBA look at the end of the wiki page.
Compatible ROM Files:
.gba (Game Boy Advance)
.gbc (Game Boy Color)
.gb (Game Boy)
If the downloaded game has a ".bin" extension just rename it to the proper extension(for example, rename a gameboy advance game to end with ".gba" without quotes)
Once you have installed VBA on your Pre via Preware, click on it from the launcher to open it for the first time. This should create the necessary folders for the ROMs.
Now connect your Pre to your computer via USB mode. Once the Pre shows up on your computer, open it. You now should be at the "root" of your Pre's storage. If you look at the folders in the root, there should be a few including the "wallpapers", "ringtones", and most importantly, "vba" folders. Click on that and then the "roms" folder. Copy the ROMs from your computer and move them here. DO NOT put the ROMs (.gb, .gbc, .gba) in folders within the "roms" folder.
If you don't see a "vba" folder, but you do see a "wallpapers" and a "ringtones" folder AND you know you installed VBA properly, go ahead and create the necessary folders. Create one at the root called "vba" (no quotes or caps). Then make another one inside that called "roms" (again, no quotes or caps).
As of 1.0.3, the "roms" folder is also where the saves (.sav) and screen captures go.
As of 1.1.0, there is zip file support
Controls
To select a rom, just tap on it in the rom selector.
Note that if you have more roms than fit on the screen, simply scroll to them.
New in 1.0.4 Hit a letter key to jump to that letter in the rom list (useful when you have lots of roms)
These are the current controls (while playing):
Pre Button | Emulator Function | Notes |
WASD | Up/left/down/right | |
k | B | |
l | A | |
q | L (trigger) | |
p | R (trigger) | |
Enter | Start | |
Spacebar | Select | |
@ | Turbo | |
. (period) | Screenshot | |
t | Start/Select/a/b All at Once | Useful for Resets (or saving in zelda) |
orange+s (minus) | Toggle Displaying Emulation Speed | |
orange+l (apostrophe) | Change Scaling Filter | |
orange+@ | Change Screen Orientation | |
orange+z (or y for qwertz pre) | Toggle Sound | Boosts (GBA) Performance |
1,2,3 | Save state number 1,2,3 | orange + "corresponding letter" |
4,5,6 | Load state number 1,2,3 | orange + "corresponding letter" |
orange+ w('+') | Toggle overlay (touchscreen) controls | Only works in the landscape orientation with keyboard on RIGHT |
orange+a (ampersand) | Toggle 'autosave'/'autoresume' functionality | |
orange+q (slash) | Cycle skins |
Custom Controls
New in 1.0.5!
Instructions
You can now customize the controls!
To start customizing, while running a game, hit '=' (orange+p).
Then follow the on-screen instructions, hitting the keys you want the various buttons bound to.
To stop the binding and cancel, hit '=' again.
Note Due to the pre's keyboard limitations, some keys cannot be detected when pressed down at same time (j/k is an example of such a pair). Keep this in mind.
Community-suggested bindings
If you have a binding you think is great, please share it here!
Alternate D-Pad position: Up-R, Down-F, Left-D, Right-G. Since there is a small bump on the F key, you may find it easier to know where your fingers are on the keyboard this way.
Skins
NEW IN 1.1.1!
There is now skin support. Shipped by default (as of this writing) are skins from VincentLaw, zsoc, nights0223 and crzisme.
All skins go in /vba/skins.
Each skin has a folder containing two files:
- controller.png
- controller.cfg
For an idea of what controller.cfg should contain, look at the other controller.cfg files, it should be mostly self-explanatory. Hopefully :).
NOTES
- The x/y for each control object are the centers of the button.
- The screen size variables are the maximum in each direction--the game will still scale them according to their aspect ratios.
- The screens will always be drawn at the x,y indicated--they won't be centered.
- There is support for turbo buttons, just no skin uses it yet.
- orange+q (slash) cycles through the skins
Screenshots/Videos
Screenshot Mockup as of v1.1.1 (FBCAT doesn't grab OPENGLES apps apparently?)
YouTube Videos of VBA (v1.0.1):
Mario Kart Advance
Metroid Fusion
Zelda DX
Pokemon Crystal
Super Mario Land 2
Feature Requests/TODO
Here's a list of feature requests I'm aware of and/or things I plan to do.
- ALSA instead of pulseaudio (hopefully to improve emulation speed with sound enabled)
- Additional keybinding options, such as:
- Diagonal keys (up+right, right+down, etc)
- System keys (redefine save state keys, sound off, etc)
- Pause emulation key?
- "Go back to rom chooser" menu
- Create /save folder for .sav files (battery-backed RAM save info), instead of placing .sav in the /roms folder
- Better performance on GBA!!
- See iphone/GP2X ports and their ARM optimizations! (dynarec?)
- Include a homebrew rom to demo the app?
- Use GLSL shader to do palette lookup?
- See if the current cost is worth the bother.
- options menu? (on the rom selector screen?)
- system messages, draw them somewhere else and make them legible.
- custom background for rom selector
- haptic feedback on touchscreen controls?
- options from rom selector (separate from menu; just have some way to change them, like sound, before launching).
- improve d-pad
- other orientations for touchscreen
- autoframeskip support! (toggle)
Known issues
- Poor performance in GBA. Try disabling sound (press '*'/orange+z)
- Audio doesn't seem to be fully disabled (you won't hear anything, but Pulseaudio is still doing a little work)
- Notifications always appear as if in landscape
- @ Turbo key can have keys bound to it, causing turbo AND the bound key to go at the same time.
- screenshots are messed up (This is already fixed, will be released in next version)
Changelog
- 1.1.1
- Skin support! Thanks to VincentLaw, zsoc, crzisme, and nights0223 for their work!
- Support for turbo/capture bindings in custom controls!
- 1.1.0
- New ARM assembly implementation of emulated instructions. (small speed boost, about 5% on average in GBA games)
- touchscreen controls!
- NOTE: just touching the screen (regardless of touch controls enabled) slows things down. I'm working on why, but it seems to be the same code that draws the ripple. This is a known issue.
- toggle is '+' (orange+w)
- 0 (orange+@) will rotate the window for those used to the old layout/keyboard controls.
- new 'autosave' feature (toggle enabled with '&' (orange+a))
- saves to a special state when you quit, when you load the rom resumes there immediately
- zip file support
- options are now saved across sessions (orientation, mute, displaying emulation speed, etc)
- rom selector strips file extensions, and cleans up rom names
- rom selector doesn't show hidden files
- 1.0.6
- Fixed crash when creating custom configs (permissions issue)
- 1.0.5
- Fixed saving issues
- Added ability to create custom keybindings (see wiki)
- Removed annoying battery messages
- Updated icon (thanks Spyral!) (might need to restart to see it)
- Fixed name for hopefully better word-wrap in launcher
- 1.0.4
- Remove dependence on upstart, should fix problem with VBA not launching.
- backported sound fixes for (slight) speed, also added code to hopefully fix freezing on pause
- save/load state support
- jump-to-letter functionality in rom selector for better management of large libraries
- sort roms case insensitively
- Remove dependence on upstart, should fix problem with VBA not launching.
- 1.0.3 Added toggle for displaying emulation speed to help compatability reports
- 1.0.2 Small metadata fix.
- 1.0.1 Small performance boost, public release!
- 1.0.0 Initial release (testing feed). Reimplemented rendering engine, rom selector.
Compatibility List
This is a list of games and how well they run.
PLEASE include a version number (on rom selector) when adding entries!
To see the emulation speed percentage, hit orange+s while playing (as of 1.0.3).
Gameboy/Gameboy Color
All GB/GBC Games should be compatible (99.9%) at 100% Speed, please just report those NOT working.
Title | Works | Version | Notes |
Legend of Zelda Oracle of Ages | YES | 1.0.0 | |
Legend of Zelda Oracle of Seasons | YES | 1.0.0 | |
Zelda DX | YES | 1.0.0 | |
Bugs Bunny and Lolla Bunny: Operation Carrots | YES | 1.0.3 | |
The Lion King: SImba's Mighty Adventure | YES | 1.0.3 |
Gameboy Advance
Orange: Not Playable/Very Slow
Yellow: Semi-Playable
Green: Playable
Title | Speed | VBA Version | Notes | |
---|---|---|---|---|
Sound | No Sound | |||
Advance Wars | 48% | 68% | 1.0.3 | Very Playable without Sound! |
Astro Boy - Omega Factor | 50% | 75% | 1.0.4 | |
Backyard Football | 35% | 55% | 1.0.3 | Menus work near 100% but gameplay is slow. |
Breath of Fire II | 60-67% | 80-100% | 1.0.3 | Runs at 100% walking around. Battles haven't been tested. |
Castlevania - Aria of Sorrow | 56% | 80% | 1.0.4 | Very Playable without Sound! |
Chu Chu Rocket! | 97% | 100% | 1.0.4 | Plays perfekt with or without sound :) |
Double Dragon Advanced | 90-100% | 100% | 1.01 | Plays well even with sound on |
Duke Nukem 3D Advanced | 40% | 50% | 1.0.4 | |
Drill Dozer | 47% | 60% | 1.0.4 | |
Final Fantasy Tactics Advance | 40% | 60% | 1.0.3 | Semi-Playable without Sound |
Fire Emblem | 60% | 90-100% | 1.0.3 | Takes a bit to load. Extremely Playable without Sound! |
Fire Emblem: The Sacred Stones | 60-70% | 90-100% | 1.0.3 | Extremely Playable without Sound! |
F-Zero - GP Legend | 43% | 55% | 1.0.3 | |
Golden Sun: The Lost Age | 35% | 50% | 1.0.3 | Semi-Playable without sound if you have a lot patience. |
Gunstar Super Heroes | 44% | 65% | 1.0.4 | playable without sound |
Harvest Moon - Friends of Mineral Town | 60% | 95% | 1.0.3 | |
Iridion II | 43% | 57% | 1.0.3 | |
Kirby and the Amazing Mirror | 50-65% | 80-100% | 1.1.1 | Usually is 86% without sound. It is very responsive and works flawlessly. |
Kuru Kuru Kururin | 40% | 65% | 1.0.3 | |
Lord of the Rings, Return of the King | 45% | 63% | 1.0.3 | Playable, but a little slow. |
Mario & Luigi - Superstar Saga | 65-70% | 80-100% | 1.0.3 | Menu 100% with Sound ;), ingame mostly fullspeed without. |
Mario Kart - Super Circuit | 44% | 64% | 1.0.3 | Time Trial without Sound is almost Fullspeed (95%)! |
Metal Slug Advance | 48% | 68% | 1.0.3 | |
Metroid Fusion | 68% | 92% | 1.0.3 | |
Mortal Kombat Advance | 50% | 70% | 1.0.3 | Playable without sound |
Ninja Five-0 | 57% | 90% | 1.0.3 | Runs very good without Sound |
PocketNES - NES Emulator | 60% | 80% | 1.0.3 | |
Pokemon - Ruby | 60% | 80-90% | 1.0.3 | Playable without sound |
Pokemon - Fire Red | 47% | 64% | 1.0.3 | A little slow to actually play, but bearable I guess |
Pokemon - Leaf Green | 46% | 63% | 1.0.3 | Error Loading Savegame, but still works. |
Rayman Advance | 53% | 75% | 1.0.3 | Without sound very playable! |
R-Type 3 | 70% | 90-100% | 1.0.3 | |
SMA2 - Super Mario World | 45% | 62% | 1.0.3 | |
SMA3 - Yoshi's Island | 43% | 58% | 1.0.3 | |
SMA4 - Mario Bros. 3 | 51% | 72% | 1.0.3 | Takes a bit time to Load. |
Sonic Advance 1 | 60% | 85% | 1.0.3 | |
Sonic Advance 2 | 55% | 80% | 1.0.3 | |
Sonic Advance 3 | 49% | 72% | 1.0.3 | too slow for sonic |
Super Ghouls'n Ghosts | 48% | 69% | 1.0.3 | |
Tactics Ogre | 90% | 95% | 1.0.3 | Does not save, runs pretty well without sound. |
V-Rally 3 | 37% | 48% | 1.0.3 | |
Wario Land 4 | 60% | 85% | 1.0.3 | |
Wario Ware Inc. | 60% | 70-80% | 1.0.3 | |
Zelda - A Link to the Past | 45% | 62% | 1.0.3 | Slow but Playable! |
Zelda - The Minish Cap | 50% | 85% | 1.0.3 | |
Zooo | 55% | 90% | 1.0.3 |
Free Roms
There are several places where you can get free homebrew games for the GB and GBA that are 100% legal to download and try on the emulator.
The best source for homebrew games for any console is http://www.pdroms.org but there are several other homebrew sites around that offer something similar such as this site specifically for gameboy advance: http://www.gameboy-advance-roms.info/
Here is a small list of free games that are worth trying, if you have more add them to the list!
GBA
If the downloaded game has a ".bin" extension just rename it to ".gba"Title | Speed | VBA Version | Link | |
---|---|---|---|---|
Sound | No Sound | |||
Anguna | 80% | 100% | 1.0.3 | http://www.pdroms.de/files/1724/ |
Another World | 60% | 85% | 1.0.3 | http://www.foxysofts.com/index.php?l=content/gba/anworld.inc |
Arkanoid Clone | 70% | 100% | 1.0.3 | http://www.playeradvance.org/forum/showthread.php?t=4039 |
BulletGBA | 80% | 100% | 1.0.4 | http://pqrs.org/gba/bulletgba/ |
Bust-A-Move Clone | 100% | 100% | 1.0.3 | http://www.russprince.com/gba/ |
Dangerous XMAS | 95% | 100% | 1.0.3 | http://www.rickdangerous.co.uk/rickxmas.htm |
Hergs Solitaire | 100% | 100% | 1.0.3 | http://www.pdroms.de/files/1317/ |
The Last Seal | % | % | 1.0.3 | http://www.pdroms.de/files/895/ |
Motocross Challange | 58% | 80% | 1.0.3 | http://www.pdroms.de/files/495/ |