Visual Boy Advance GX

From WiiBrew
Jump to: navigation, search
Visual Boy Advance GX
Vbagx-logo.png
General
Author(s)Tantric
Contributor(s)Carl Kenner
TypeHandheld emulator
Version2.2.8
Links
Download
Discussion
Source
Downloadable via the Homebrew Browser
Peripherals
Wiimote4.svg SensorBar.svg Nunchuck alternative.svg ClassicController.svg GameCube Controller DVD Loads files from SDHC cards in the Front SD slot USB mass storage device Local WiFi Internet

Visual Boy Advance GX is a Game Boy Advance / Game Boy emulator for the Wii based on VBA-M. The GUI is powered by libwiigui.

Features

  • Wiimote, Nunchuk, Classic, and Gamecube controller support
  • Rotation sensors, Solar sensors, and Rumble support
  • Optional special Wii controls built-in for some games
  • Editable 14-colour palettes for monochrome Gameboy games
  • SRAM and State saving
  • IPS/UPS patch support
  • Custom controller configurations
  • SD, USB, DVD, SMB, Zip, and 7z support
  • Compatiblity based on VBA-M r927
  • MEM2 ROM Storage for fast access
  • Auto frame skip for those core heavy games
  • Turbo speed, video zooming, widescreen, and unfiltered video options

Notes from the Developer

  • Speed could still use some improvement. If anyone can make the code more efficient, knows PPC assembly, or can make it faster in any way, let me know.

Installation

  • If you are using the Homebrew Channel just copy the apps directory from the archive to the root of your SD card. If you are using another loader use the executables/vbagx_wii.dol.
  • ROMs & saves files should be stored in /vbagx/roms and /vbagx/saves on the root of your SD card or USB flash drive. You can copy the vbagx directory from the archive to your support drive. Your ROMs must be in ".gb", ".gbc" or ".gba" format. To be clear, there will be 2 "vbagx" folders. One in your apps folder, and one on the SD root.
  • Launch the emulator using your Loader.

Wii Channel

wilsoff and MrNick666 were gracious enough to create an official Wii Channel. You can find it on the Downloads page.

Prerequisites

  • You must have IOS58 to use this channel. Either upgrade to System Menu 4.3, or use the IOS58 Installer.
  • You must have Homebrew Channel 1.0.8+ running on IOS58 to run the installer. If HBC is not using IOS58, reinstall it.
  • This channel tries load /apps/vbagx/boot.dol from SD or USB. You must have Visual Boy Advance GX installed in one of these locations.

Installation

  1. Copy the installer files to your SD/USB device
  2. Launch the installer from HBC
  3. Click Install
  4. Done!

Loading Games

From DVD

  • ROMs can be burned to a DVD-/+R (4.7GB max size & ISO 9660 file format).

From Network (using SMB)

Using the emulator via network requires that your Wii is configured for your wireless network, and that you've set up a file share. You must provide a username, password, share name, and IP address to log in to the file server (in settings.xml). This XML file is created for you upon first loading the emulator and entering/exiting Preferences. Here's an example snippet for your XML configuration file:

<section name="Network" description="Network Settings">
   <setting name="smbip" value="192.168.4.19" description="Share Computer IP" />
   <setting name="smbshare" value="wiifiles" description="Share Name" />
   <setting name="smbuser" value="yourusername" description="Share Username" />
   <setting name="smbpwd" value="yourpassword" description="Share Password" />
</section>

Also be sure to mirror the required directory structure within your share folder, or change the LoadFolder and SaveFolder values in the XML file. See the tinysmb page for additional information and troubleshooting.

Language Patches (IPS/UPS)

IPS files must be placed in the same folder as the ROM you are loading, and named identically to the ROM name, except with a IPS extension. They will be loaded automatically upon loading the game.

Patches can be used to colourise a monochrome gameboy game, or to translate a game into your language, or to stop the game from needing special hardware. Search the internet for patches. Many games have been translated by fans. They can be in IPS or UPS format. You don't need to patch anything yourself. Just put the IPS or UPS file in the /vbagx/roms folder along with the rom itself. The patch must have the same name as the rom. Patches can not be put inside the ZIP file. If a rom is zipped, you might need to check inside the zip for the actual rom filename.

You must not use patched versions of Boktai roms! (Except for the translation patch for Boktai 3, which is highly recommended). The patches are for old emulators that don't support the solar sensor. VBA GX and NO$GBA support the solar sensor natively, and the patch will stop them from working.

You must also not use patched versions of WarioWare Twisted, Kirby's Tilt n Tumble, or Yoshi's Universal Gravitation (Topsy Turvy). The original roms are fully supported, and the patch will stop them from working.

Editing Palettes

Games for Gameboy Advance, Gameboy Color, and Super Gameboy, are already in colour, and changing palettes for these games will have no effect. Unfortunately, some Super Gameboy games are programmed in greyscale and that can't be changed yet.

Monochrome games for the original Gameboy had four shades of grey. But with VBA-Wii you can define your own colour palettes for these games.

VBA Wii comes with palettes for these games: Alleyway, Baseball, Duck Tales, Kid Icarus, Magnetic Soccer, Malibu Beach Volleyball, Marble Madness, Metroid 2 (not DX), Mortal Kombat, Mortal Kombat II, Mortal Kombat 3, Mr. Do!, The Simpsons: Bart and the Beanstalk, Super Mario Land, Tennis, Tetris, and TMNT: Fall of the Foot Clan

Other games will use a default palette of green background, white status bar, red sprites and blue sprites. This palette makes palette editing easier, but isn't all that suitable for most games. You should usually either edit the palette for these games, or switch to black and white mode. Or you can edit the default palette by manually editing the "sd:\apps\vbagx\palette.xml" file.

To switch between black and white and palette mode, start a game, go to the HOME menu, choose "Game Settings", choose "Video", and click on "Colorize Mono GB". The game "Megaman 1" will always be in black and white, to prevent flashing.

To edit the palette for the current game, go to the HOME menu, choose "Game Settings", choose "Video", and click on "Choose Palette" to go to the Palette Editor.

After editing the palette, the palette might appear screwed up in the game until the game changes palettes. To fix that, you might need to save the game and then start the game again, or you might need to press start to pause or go to the menu, then press start again, or you might need to try moving your sprite to the far left side of the screen.

Palette Editor

The colours are divided into 4 columns, which are arranged by brightness.

The first column is the background. The bottom "background" colour is used for both the background tiles, and also for parts of the screen not covered by background tiles or any sprites. Sometimes the background can go in front of some sprites, and in those cases the bottom background colour is transparent.

The second column is the "window". Usually that means the status bar and HUD, but it's sometimes used for other things, for example in Mortal Kombat 1, the entire game screen except the status bar is the window. VBA Wii is the only Gameboy emulator that lets you change the window colours, in other emulators the window uses the background colours.

The third column, "OBJ", is for sprites that use palette 0. Sprites only have 3 colours, because one is always transparent. Games can choose which three of the four brightness levels will be used (that's why there are two sprite palettes). In the editor it's assumed that the first three brightness levels will be chosen. When the game chooses different brightness levels, some of those colours will be brightened or darkened in-game. Black is assumed to be 10% brightness, while dark grey is assumed to be 40% brightness. That means half the time, the colour you choose for OBJ 2 will appear 4 times darker in-game, so you might need to make it very bright. Other colours also will appear at different brightnesses, but not by a factor of 4.

The fourth column "SPR", is for sprites that use palette 1. It has the same issues as specified above. VBA on other platforms uses the same colours for both palette 0 and palette 1, but VBA Wii lets you change them separately. Palette 1 is often used for some monsters, or for when your character takes damage, or for making collectible items flash.

Clicking on any colour will pop up a colour editor window. You change a colour by choosing how much red, green, and blue are mixed together. You can only go up or down 8 at a time. It is in hexadecimal, which means it goes up to F instead of up to 9. F means 15.

  • red+green+blue = white
  • red+green = yellow
  • two parts red, one part green = orange
  • dark orange is brown, especially if you mix in a bit of blue
  • red+blue = magenta (pinkish purple)
  • two parts blue, one part red = purple
  • two parts red, one part blue = hot pink
  • green+blue = cyan (bright blue/green)
  • two parts blue, one part green = light blue
  • To make a colour paler, mix in a little bit of all the other colours

Clicking on the "load / save" button will save the palette changes. Unless you are worried about a power failure, this is unnecessary, since they are saved automatically when you close. This button will have more features in the next version.

The palette will be saved whenever you close the editor window.

As mentioned above, after editing the palette, the palette might appear screwed up in the game until the game changes palettes. To fix that, you might need to save the game and then start the game again, or you might need to press start to pause or go to the menu, then press start again, or you might need to try moving your sprite to the far left side of the screen.

palette.xml

Once the emulator has created the palette.xml file (by playing a mono game), you can edit it manually to change the palettes. This might be quicker and easier than editing inside the emulator. It also lets you edit the default palette to something more suitable. And it lets you set some games to play in Black and White mode.

You can, and should, share your palette.xml with other users if you have made palettes for other games.

Game names in the palette.xml file are based on the ROM's internal name, not the filename. That means you only have to set the palette once even if you have several files for different regions. It also means you can use other people's xml files without worrying what they named their ROMs. If you need to know the game's internal name, you can check in VBA-M on the PC, or some websites will tell you, or you can just start editing the palette in the emulator and then it will be added to the XML file for you.

When "use" is set to "1" that means that game will be in palette mode. When "use" is set to "0", that means that game will always be in black and white mode.

Colours are specified in hexadecimal, in the format: 0xRRGGBB. FF is the brightest, 80 is half brightness, 00 is black. VBA-Wii only uses 15-bit colour, so the last digit will be rounded down to either 8 or 0. But if palette support is ported to other platforms, then they might not be rounded on those platforms.

Controls

In Menu

GameCube Controller Wiimote.svg WiimoteHorizontal.svg Wiimote.svg+Nunchuck alternative.svg ClassicController.svg Action
Gamecube D-Pad Up / Gamecube D-Pad Down or GameCube Control Stick Wiimote D-Pad Up / Wiimote D-Pad Down Wiimote D-Pad Up / Wiimote D-Pad Down Wiimote D-Pad Up / Wiimote D-Pad Down or Nunchuck Control Stick or Nunchuck C Button Classic D-Pad Up / Classic D-Pad Down or Classic Left Control Stick Move through the Menu
Gamecube D-Pad Left / Gamecube D-Pad Right or GameCube Control Stick Wiimote D-Pad Left / Wiimote D-Pad Right Wiimote D-Pad Left / Wiimote D-Pad Right Wiimote D-Pad Left / Wiimote D-Pad Right or Nunchuck Control Stick Classic D-Pad Left / Classic D-Pad Right or Classic Left Control Stick Page up / page down
Gamecube A Button Wiimote A Button Wiimote 2 Button Wiimote A Button Classic a Button Select menu item, change setting
Gamecube B Button Wiimote B Button Wiimote 1 Button Wiimote B Button Classic b Button Swap between list box and buttons
Wiimote HOME Button Wiimote HOME Button Wiimote HOME Button Classic HOME Button Exit (main menu), return to game (game menu)

Keyboard and mouse don't work in the menu yet, only in-game.

In Game (by default)

The controls can be changed in "Controller Configuration" menu.

GameCube Controller WiimoteHorizontal.svg Wiimote.svg+Nunchuck alternative.svg ClassicController.svg Action
GameCube D-Pad or GameCube Control Stick Wiimote D-Pad Wiimote D-Pad or Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GBA DPad
Gamecube A Button Wiimote 2 Button Nunchuck Z Button Classic b Button A
Gamecube B Button Wiimote 1 Button Nunchuck C Button Classic y Button B
GameCube L Trigger Wiimote B Button Wiimote 2 Button Classic L Trigger L
GameCube R Trigger Wiimote A Button Wiimote 1 Button Classic R Trigger R
GameCube Z Button Wiimote - Button Wiimote - Button Classic - Button SELECT
GameCube START Button Wiimote + Button Wiimote + Button Classic + Button START
Left Gamecube C Control Stick Wiimote HOME Button Wiimote HOME Button Classic HOME Button Emulator menu
Gamecube C Control Stick Right Wiimote A Button+Wiimote B Button Wiimote A Button+Wiimote B Button Classic Right Control Stick Right Turbo Mode
Gamecube C Control Stick Up/Down Classic Right Control Stick Up/Down Zoom In/Out

Match Wii Controls

Special Wii controls exist for many games. See link for more details.

Changelog

2.2.8 - July 29, 2012

  • Fixed lag with GameCube controllers

2.2.7 - July 7, 2012

  • Fixed PAL support

2.2.6 - July 6, 2012

  • Support for newer Wiimotes
  • Fixed missing audio channel bug (eg: in Mario & Luigi: Superstar Saga)
  • Improved controller behavior - allow two directions to be pressed simultaneously
  • Compiled with devkitPPC r26 and libogc 1.8.11

2.2.5 - May 15, 2011

  • Added Turkish translation

2.2.4 - March 23, 2011

  • Fixed browser regressions with stability and speed

2.2.3 - March 19, 2011

  • Improved USB and controller compatibility (recompiled with latest libogc)
  • Enabled SMB on GameCube (thanks Extrems!)
  • Added Catalan translation
  • Translation updates

2.2.2 - October 7, 2010

  • Fixed "blank listing" issue for SMB
  • Improved USB compatibility and speed
  • Added Portuguese and Brazilian Portuguese translations
  • Channel updated (improved USB compatibility)
  • Other minor changes

2.2.1 - August 14, 2010

  • IOS 202 support removed
  • USB 2.0 support via IOS 58 added - requires that IOS58 be pre-installed
  • DVD support via AHBPROT - requires latest HBC

2.2.0 - July 22, 2010

  • Fixed broken auto-update

2.1.9 - July 20, 2010

  • Reverted USB2 changes

2.1.8 - July 14, 2010

  • Ability to use both USB ports (requires updated IOS 202 - WARNING: older versions of IOS 202 are NO LONGER supported)
  • Hide non-ROM files
  • Other minor improvements

2.1.7 - June 20, 2010

  • USB improvements
  • GameCube improvements - audio, SD Gecko, show thumbnails for saves
  • Other minor changes

2.1.6 - May 19, 2010

  • DVD support fixed
  • Fixed some potential hangs when returning to menu
  • Video/audio code changes
  • Fixed scrolling text bug
  • Other minor changes

2.1.5 - April 9, 2010

  • Fix auto-save bug

2.1.4 - April 9, 2010

  • Fixed issue with saves (GBA) and snapshots (GB)
  • Most 3rd party controllers should work now (you're welcome!)
  • Translation updates (German and Dutch)
  • Other minor changes

2.1.3 - March 30, 2010

  • Fixed ROM allocation. Should solve some unexplained crashes
  • Numerous performance optimizations (thanks dancinninja!)
  • DVD / USB 2.0 support via IOS 202. DVDx support has been dropped. It is highly recommended to install IOS 202 via the included installer
  • Multi-language support (only French translation is fully complete)
  • Thank you to everyone who submitted translations
  • SMB improvements/bug fixes
  • Minor video & input performance optimizations
  • Disabling rumble now also disables in-game rumbling
  • Fixed saving of GB screen position adjustment

2.1.2 - December 23, 2009

  • Numerous core optimizations (thanks dancinninjac!)
  • File browser now scrolls down to the last game when returning to browser
  • Auto update for those using USB now works
  • Fixed scrollbar up/down buttons
  • Minor optimizations

2.1.1 - December 7, 2009

  • Save state corruption issues fixed

2.1.0 - December 2, 2009

  • Fixed SMB (for real this time!)

2.0.9 - November 30, 2009

  • Fixed SMB
  • Added separate horizontal/vertical zoom options, and separate GB/GBA ones
  • Improved scrolling timing - the more you scroll, the fast it goes
  • Fixed reset button on Wii console - now you can reset multiple times
  • APU optimization (dancinninjac)
  • Minor code optimizations
  • Reduce memory fragmentation - fixes out of memory crashes

2.0.8 - October 7, 2009

  • Revamped filebrowser and file I/O
  • Fixed MBC2 saving/loading
  • Fixed some GB-Z80 instructions
  • DVD loading in GameCube should work now (untested and unsupported)
  • Many, many other bug fixes

2.0.7 - September 16, 2009

  • Text rendering corrections
  • SMB improvements
  • Built with latest libraries
  • Video mode switching now works properly
  • Other minor bugfixes and cleanup

2.0.6 - July 22, 2009

  • Fixed "No game saves found." message when there are actually saves.
  • Fixed shift key on keyboard
  • Text scrolling works again
  • Change default prompt window selection to "Cancel" button

2.0.5 - July 9, 2009

  • Faster SMB/USB browsing
  • Last browsed folder is now remembered
  • Fixed controller mapping reset button
  • Fixed no sound on GameCube version
  • Directory names are no longer altered
  • Preferences now only saved on exit
  • Fixed on-screen keyboard glitches
  • SRAM auto-saved on power-off from within a game
  • Prevent 7z lockups, better 7z error messages

2.0.4 - June 30, 2009

  • Fixed auto-update
  • Increased file browser listing to 10 entries, decreased font size
  • Added text scrolling on file browser
  • Added reset button for controller mappings
  • Settings are now loaded from USB when loading the app from USB on HBC
  • Fixed menu crashes caused by ogg player bugs
  • Fixed memory card saving verification bug
  • Fixed game savebrowser bugs
  • Miscellaneous code cleanup/corrections

2.0.3 - May 30, 2009

  • Fixed SD/USB corruption bug
  • SMB works again
  • GUI bugs fixed, GUI behavioral improvements
  • GB Palette editing
  • More built-in palettes
  • Palettes now fade to white correctly instead of getting brighter
  • Can now turn off palette colorizing
  • Workaround for palette issue on Mega Man I GB - palette disabled
  • Star Wars, TMNT, Lord Of The Rings, Castlevania Wii Controls
  • Fix for WarioWare startup - Nunchuk C button or Wii Remote B button will now make calibration easy by locking the gyroscope.
  • Fixed issues with constant rumbling

2.0.2 - May 26, 2009

  • Improved stability
  • Fixed broken SDHC from HBC 1.0.2 update
  • Fixed issues with returning to menu from in-game
  • Add option to disable rumble
  • Auto-determines if HBC is present - returns to Wii menu otherwise
  • Unfiltered mode fixed
  • Miscellaneous bugfixes

2.0.1 - April 30, 2009

  • Multiple state saves now working
  • Built with more stable libogc/libfat
  • Fixed settings saving glitches
  • Fixed Mortal Kombat GameCube controller bug
  • Fixed Zelda DX palette bug
  • Fixed Harry Potter 1-3 keyboard bug

2.0.0 - April 27, 2009

  • New GX-based menu, with a completely redesigned layout. Has Wiimote IR support, sounds, graphics, animation effects, and more
  • Thanks to the3seashells for designing some top-notch artwork, to Peter de Man for composing the music, and a special thanks to shagkur for fixing libogc bugs that would have otherwise prevented the release
  • Onscreen keyboard for changing save/load folders and network settings
  • Menu configuration options (configurable exit button, wiimote orientation, volumes)
  • New save manager, allowing multiple saves and save browsing. Shows screenshots for Snapshot saves, and save dates/times
  • Added video shifting option
  • Added video mode selection (recommended to leave on Automatic)
  • ROM filenames are now displayed shortened by removing unnecessary characters from name
  • USB Mouse support (buttons only)
  • Keyboard shift key bug fixed
  • Built-in 14 colour palettes for some monochrome gameboy games (Magnetic Soccer, Malibu Beach Volleyball, Marble Madness, Metroid 2, Mortal Kombat, Mortal Kombat II, Mortal Kombat 3, Mr. Do!)
  • Rumble works in GBC games designed for rumble cartridges but shipped without rumble cartridges, such as Disney's Tarzan for GBC
  • Improved Mortal Kombat Wii Controls
  • Mortal Kombat games now have many extra characters to choose
  • Wii Controls for more Teenage Mutant Ninja Turtles games
  • Improved Lego Star Wars controls
  • Boktai menu now tells you when there can't be sun because it is night
  • Zelda cheat button removed
  • Minor bug fixes

1.0.9 - April 7, 2009

  • Gamecube controller should no longer rumble constantly

1.0.8 - April 6, 2009

  • "Match Wii Game" controls option! Games that have a Wii equivalent can be played using the controls for that Wii game. For example all Zelda games can be played with Twilight Princess controls.
  • Rotation/Tilt sensor games all work
  • Solar sensors (Boktai 1/2/3)
  • Rumble (except for games that rely on Gameboy Player)
  • Keyboard
  • PAL support, finally!
  • New scaling options, choose how much stretching you want
  • Colourised games now partially work but still have distortion
  • "Corvette" no longer has a screwed up palette (but still crashes)
  • Triggers net reconnection on SMB failure
  • Source code refactored, and project file added

1.0.7 - January 27, 2009

  • Updated to VBA-M r847
  • Corrected sound interpolation
  • Faster SD/USB - new read-ahead cache
  • Removed trigger of back to menu for Classic Controller right joystick
  • Fixed a bug with reading files < 2048 bytes
  • Fixed GBA games on GameCube
  • Fixed homebrew GBA games on GameCube
  • Fixed some memory leaks, buffer overflows, etc
  • Code cleanup, other general bugfixes

1.0.6 - December 24, 2008

  • Fixed save state saving bug
  • Fixed unstable SD card access
  • Proper SD/USB hotswap (Wii only)
  • Auto-update feature (Wii only)
  • Rewritten SMB access - speed boost, NTLM now supported (Wii only)
  • Improved file access code
  • Resetting preferences now resets controls
  • Minor bug fixes

1.0.5 - November 19, 2008

  • SDHC works now
  • Frameskipping tweaks
  • Fixed snapshot loading issue
  • Full widescreen support
  • Changed scaling
  • Zooming fixed (thanks eke-eke!)
  • PAL timing changes - EURGB60 mode forced
  • Wii - Added console/remote power button support
  • Wii - Added reset button support (resets game)
  • Wii - Settings file is now named settings.xml and is stored in the same folder as the DOL (eg: /apps/vbagx/settings.xml)
  • GameCube - Added DVD motor off option
  • GameCube - Fixed GBA loading issue

1.0.4 - October 28, 2008

  • Complete port of VBA-M - now uses blaarg's new audio core, latest GB core
  • Frameskipping improvements
  • Sound processing improved - L-R channel reversal corrected, skipping fixed
  • Saving problems fixed, game compatibility improved
  • IPS/UPS/PPF patch support
  • SD/USB hot-swapping!
  • SDHC support
  • Zoom setting saved
  • Widescreen correction option
  • GameCube support is back, including Qoob support!

1.0.3 - October 15, 2008

  • New timing / frameskip algorithm - should (hopefully) work 100% better!
  • Performance improvements - video threading, PPC core partly activated
  • Video zooming option
  • Unfiltered video option
  • 7z support
  • Loading progress bars added

1.0.2 - October 6, 2008

  • New core! The core is now a custom combination of VBA-M and VBA 1.72
  • Added DVD, SMB, ZIP, GameCube MC support
  • Faster USB/SD speeds
  • Screen alignment and flickering problems fixed
  • 128K save support added
  • Better emulation speeds. Should now be nearly full speed all the time for most games.
  • Turbo speed feature. Mapped to right C-stick (classic controller & Gamecube controller), and A+B for wiimote
  • Controller mapping preferences bug fixed. Your preferences will reset automatically to correct any problems in your preferences file
  • Many other tweaks behind the scenes

1.0.1 - September 18, 2008

  • GBA games now run at full speed
  • Menu improvements, with spiffy new background - thanks brakken!
  • Fixed L/R buttons - they work now

1.0.0 - September 16, 2008

  • Now compiles with devkitpro r15
  • One makefile to make all versions
  • Complete rewrite based on code from SNES9x GX
  • Now has a menu! ROM selector, preferences, controller mapping, etc
  • Wiimote, Nunchuk, and Classic controller support
  • Button mapping for all controller types
  • Full support for SD and USB
  • Load/save preference selector. ROMs, saves, and preferences are saved/loaded according to these
  • 'Auto' settings for save/load - attempts to automatically determine your load/save device(s) - SD, USB
  • Preferences are loaded and saved in XML format. You can open VBAGX.xml edit all settings, including some not available within the program
Personal tools
Resources
Community