Game Boy Advance (GBA) (Japanese:ゲームボーイアドバンス) is a handheld video game console from Nintendo.
This successor to the popular Game Boy can run almost all legacy GB software (that is, software developed for Game Boy and Game Boy Color machines) and new software developed for the more advanced capabilities of the system. It has hardware support for simple 2D operations using graphical elements called sprites. It can scale, rotate, sum-blend, and alpha-blend sprites against a background (with one alpha value for the whole screen, not the alpha-blending of image edges you see in the PNG format), and it can change the scaling and rotation of sprites and the background on each scanline to give a pseudo-3D effect.
It has a custom 32-bit 16.8 Mhz ARM processor based on a RISC architecture, which is much more compatible with the C programming language than the 8-bit Z80 compatible processor used in older Game Boy models. The ARM processor can run both 32-bit ARM and 16-bit "Thumb" instruction set encodings. The system also contains an 8.4 Mhz Z80 compatible processor to provide support for legacy GB software; however, both processors cannot be active at the same time.
The LCD display is capable of a maximum of 240x160 pixels in 15 bit color (32768 colors). This display includes more pixels than Game Boy's 160x144; when playing legacy games, the user can press the L or R button to switch the display between 160x144 with a black border and scaling to 240x144 pixels. Early games had very dark color palettes because the display in the development kits was much brighter than the one in the production units; the production display has a gamma value of 4. Newer titles use gamma correction in their palettes.
The GBA's picture generator has six display modes (three tiled and three bitmap) and 96 KB of dedicated RAM. In tiled display modes, the system can manage four pixel-to-pixel layers, two pixel-to-pixel layers and one affine layer, or two affine layers, and it uses 64 KB of RAM for tile and map data and 32 KB for sprite cel data. In bitmap modes, it can display one large 16-bit bitmap, two 8-bit bitmaps (with page flipping), or one small 16-bit bitmap (with page flipping), and it uses 80 KB of RAM for tile and map data and 16 KiB for sprite cel data. In all modes, it can show up to 128 sprites (individually controllable small moving objects) of 8x8 up to 64x64 pixels in either 4-bit or 8-bit indexed color. Each sprite can be drawn using either direct pixel mapping or affine mapping; it's possible to fit more direct sprites on a scanline.
The interface from the GBA unit to the ROM cartridge includes only a 24-bit address bus multiplexed with a 16-bit data bus. (Mattel's Intellivision console had previously used a multiplexed bus.) This setup limits the directly addressable memory to 16 binary megawords (that is, 256 binary megabits or 32 binary megabytes), but bankswitching hardware on the cartridge can extend this by controlling the ROM's upper address lines from software, effectively switching other parts of the ROM into the GBA's address space. Still, as of 2003, no published GBA titles have such bankswitching hardware because 32 MiB of ROM is still too expensive for the price point at which most GBA games are sold.
The GBA also has a serial port for connecting to other GBA units in a setup similar to a token ring network over a bus physical topology. A GBA can also receive 256KB of bootstrap code through the port, even when no cartridge is present (sometimes known as multiboot or netboot). This is used for multiplayer GBA connections, where multiple GBAs can play with only one cartridge; one GBA with a cartridge sends boot code to the other cartridge-less GBAs. The serial port can (with a suitable cable) also connect to a standard RS-232 serial port for debugging purposes and (hypothetically) Internet play, although a TCP/IP stack has yet to be implemented on the GBA.
By early 2002, hardware became readily available for moving user code onto GBA hardware. For example, as of December 2001, a flash memory cartridge plus writing hardware could be had for less than $200200 US, and a $50 device emulates a netbooting master. By April 2003, the prices had come down to under $100 for the flash cartridge and writer and $30 for the boot cable. Because of this, a homebrew software development community has sprung up; see ( http://www.gbadev.org ). Nintendo, however, has a history of viewing such devices as piracy tools, since they can be used to copy cartridges containing copyrighted software. In February of 2002, Nintendo began sending threatening letters to some United States resellers of such devices. Previous lawsuits had banned the importation of similar devices for the 8-bit Game Boy.
In early 2003, the Game Boy Advance received an upgrade. Nintendo implemented an internal light, a lithium ion battery (similar to that of most mobile phones), as well as a folding case approximately half the size of the GBA. Nintendo removed the headphone jack, which had previously been on all GB models. This folding case design is presumably to protect the screen. The new model is called the Game Boy Advance SP, in which SP stands for Special Project. Nintendo moved away from a statement made before the original Game Boy Advance was released, in which they stated that the Game Boy Advance would not have an internal light or a rechargeable battery due to cost issues. Because of technological advances since the original model came out, it was possible to adapt the new version to include an internal light and a rechargeable battery and yet launch at the same price the original had launched at in 2001 ($99.99).
In mid-2003 it became possible to play Game Boy Advance games on a TV. Nintendo released the Game Boy Player for the GameCube which allows the GameCube to play Game Boy Advance games. The unit connects to the bottom of the GameCube.