1# gba-core 2 3Emulation core for the Game Boy Advance. 4 5This system contains the following components: 6* ARM7TDMI CPU clocked at ~16.77 MHz 7 * Implements the 32-bit ARMv4T instruction set (ARMv4 + Thumb) 8* PPU (picture processing unit) 9 * 240x160 LCD display 10 * RGB555 color with up to 512 colors onscreen simultaneously (256 BG + 256 sprite) 11 * 4 background layers, 2 of which support rotation/scaling 12 * Up to 128 sprites per frame, with sprites ranging in size from 8x8 pixels to 64x64 13 * Supports sprite rotation/scaling 14 * Bitmap graphics modes that display pixels directly from a frame buffer in VRAM 15 * Supports a mosaic filter for both backgrounds and sprites 16 * Supports alpha blending between different layers 17 * 96 KB of VRAM for storing tile data, tile maps, and bitmap mode frame buffers 18 * 1 KB of palette RAM 19 * 1 KB of OAM (object attribute memory) for storing the sprite table 20* APU (audio processing unit) 21 * 1-bit PWM output at ~16.77 MHz 22 * PWM sample resolution ranging from 9-bit samples at 32768 Hz to 6-bit samples at 262144 Hz (most games use 8-bit at 65536 Hz) 23 * Two 8-bit PCM channels (Direct Sound) 24 * Four PSG channels, which are slightly modified versions of the four Game Boy Color APU channels 25 * Two pulse generators, one with frequency sweep support 26 * Custom wave channel that plays 4-bit PCM samples in a loop of either 32 samples or 64 samples 27 * Pseudorandom noise generator 28* 288 KB of working RAM, split into 32 KB of fast RAM (IWRAM) and 256 KB of slow RAM (EWRAM) 29* 4 hardware timers driven by the CPU clock, with configurable prescalers and intervals 30 * 2 of these timers can be used to control the sample rate of the APU's Direct Sound channels 31* 4 DMA channels 32* Game Pak prefetch hardware to speed up code executing out of cartridge ROM 33* Support for cartridges with up to 32 MB of ROM 34* 16 KB builtin BIOS ROM