In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Visual Boy Advance GX"

From WiiBrew
Jump to navigation Jump to search
(Palette editing instructions)
Line 19: Line 19:
 
* Rotation sensors, Solar sensors, and Rumble support
 
* Rotation sensors, Solar sensors, and Rumble support
 
* Optional special Wii controls built-in for some games
 
* Optional special Wii controls built-in for some games
 +
* Editable 14-colour palettes for monochrome Gameboy games
 
* SRAM and State saving
 
* SRAM and State saving
 
* IPS/UPS/PPF patch support
 
* IPS/UPS/PPF patch support

Revision as of 09:32, 31 May 2009

Visual Boy Advance GX
Vbagx-logo.png
General
Author(s)Tantric, Carl Kenner
TypeHandheld emulator
Version2.0.3
Links
Download
Discussion
Source
Downloadable via the Homebrew Browser
Peripherals
Wiimote4.svg SensorBar.svg Nunchuck alternative.svg ClassicController.svg GameCube Controller USB Keyboard USB Mouse DVD Loads files from SDHC cards in the Front SD slot USB mass storage device SD Gecko GameCube Memory Card 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, Gamecube controller, Mouse and Keyboard 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/PPF patch support
  • Custom controller configurations
  • SD, USB, DVD, SMB, GC Memory Card, Zip, and 7z support
  • Compatiblity based on VBA-M r847
  • 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.
  • Launch the emulator using your Loader.

Loading Games

From DVD

  • ROMs can be burned to a DVD-/+R (4.7GB max size & ISO 9660 file format) but you need to install DVDx on your Wii.

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/PPF)

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:\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.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