Gebea is a plugin-based Gameboy Advance emulator for x86/Win32 computers. It is written in x86 assembly, C and Euphoria.


2006-02-15
CPU: Fixed crashes when using SWIs in Thumb mode
GPU: Fixed some luma effect bugs
GPU: Rotoscale BGs are now drawn regardless of the color mode bit in BGCNT
GPU: Fixed some OBJ bugs
MMU: Fixed VRAM mirroring for 8-bit reads

2006-02-02
CPU: Optimized Thumb emulation. Also minor speed improvements in ARM emulation.
CPU: Fixed various bugs.
GPU: Fixed a number of OBJ-related bugs.
MMU: Added the missing DMA0 channel.
MMU: Fixed some IRQ quirks.
..And probably some other things I've forgot about.

2005-01-31
CPU: Fixed some barrel shifter special cases in both ARM and Thumb mode
GPU: Fixed some BG/OBJ tile flipping issues
GPU: Added clipping of rotoscaled OBJs
GPU: Fixed a bug in the BG layer sorting
GPU: Fixed a few IRQ-related bugs
GPU: Fixed transparencies for 16x16 color BGs
GPU: Fixed rendering of left-most tile for text BGs
MMU: Added support for timer interrupts and cascading timers
MMU: Added support for DMA interrupts
MMU: Added support for fixed address DMA
MMU: Writes to the interrupt request flag register should now work properly
MMU: Fixed 32-bit reads from the key input register
GUI: Layer enabling/disabling in the GPU settings dialogue now work correctly
GUI: Added support for zipped roms

2005-01-17
CPU: Fixed some dataproc instructions writing to r15
CPU: Fixed LSR#32 and ASR#32
CPU: Fixed r15 for dataproc instructions with register-specified shift
CPU: Fixed flags for long multiplies
CPU: Fixed the carry flag for logical operations with zero-amount immediate shifts
CPU: SWI now also works in ARM mode
GPU: Added support for text BGs larger than 256x256
GPU: Added correct mapping of OBJ data for both 1D and 2D mode
GPU: Added OBJ rotation and scaling
GPU: Fixed scrolling for 16x16 color BGs
GPU: OBJs are now rendered in reverse order (OAM entry 0 is drawn last)

2004-10-16
CPU: Now switching to ARM mode before calling the System ROM IRQ handler
CPU: Fixed carry input for SBC/RSC instructions
CPU: Fixed a few LDRH/STRH instructions and added some missing ones
CPU: Fixed Thumb LSR/ASR
CPU: Fixed Thumb ADD SP,#imm
CPU: Added UMLAL/SMLAL
CPU: Added SWI (only a few functions are supported)
GPU: Added rotation/scaling on BGs in mode 1 and 2
GPU: Fixed BG2 rotation/scaling in mode 4 and 5
GPU: Fixed some color errors when the OpenGL renderer is used
MMU: Added support for DMA on hblank/vblank
MMU: The DMA enable flag is now reset after non-repeating transfers
MMU: All keys are now emulated (D-pad, start, select, A, B, L, R)

2004-10-13
CPU: Carry output from the shifter should now be latched properly for ALU operations
CPU: Fixed a bug in Thumb ADD/SUB Rn/#Offset3
CPU: Added SWP instructions
CPU: Fixed flag updates for MUL instructions
GPU: Added optional OpenGL rendering
MMU: Fixed reads from scrolling registers
GUI: Fixed a bug that would cause the entire program to freeze after a certain number of cpu cycles had been emulated

2004-10-04
CPU: General speed improvements by relocation of jump tables
CPU: Added UMULL/SMULL
GPU: Fixed a bug in the OBJ rendering code that could cause random crashes
GPU: Fixed rendering of 16x16 color BGs
GPU: Added BG2 rotation and scaling in mode 4
GPU: Added color effects (alpha blend, luma add/sub) for text BGs
GPU: The emulator will check for MMX support, which is required. SSE2 will be used if available
MMU: Added the system ROM area (0000-3FFF)
MMU: Added mirroring of some memory areas
ALL: Added interrupt support (vblank, hblank and key interrupts are emulated). Writes to IF are not properly handled at the moment
ALL: Released the source code of the emulator

2004-09-26
GPU: Added OBJ support
GPU: Added mode 1 and 2 (text BGs only). All four BGs are now supported in mode 0. BGs are sorted based on priority, but OBJs are always drawn last
GPU: Added scrolling for text BGs. Works only in 256-color mode at the moment
GPU: Fixed a bug in the mode 5 scanline renderer
GPU: Added a 2x scaling option in the configuration dialog

2004-09-17
CPU: Changed flag updates for instructions only affecting N and Z
CPU: All unsigned LDRH instructions now set the upper 16 bits to zero
CPU: r15 is pc+12 when used as an operand in a dataproc instruction with register-specified shift
CPU: r15 is pc+12 when used as the source register in an STR/STRH instruction
CPU: Fixed the carry flag for a bunch of instructions
CPU: Added ROR#0 (RRX)
CPU: Fixed initial state of flags
CPU: Fixed LDR instruction with r15 as Rd
GPU: Fixed the mode 3 scanline renderer
GPU: Added mode 5 support, with rotation and scaling
MMU: Added timer support (timer 2 and 3, prescalar mode)

2004-09-12
CPU: Fixed HI/LS flag for some instructions
CPU: Fixed flags affected by Thumb MUL
CPU: Fixed flags affected by Thumb NEG
CPU: Fixed flags affected by Thumb hi register instructions
CPU: Fixed Thumb LDSH Rd,[Rb,Ro]
CPU: Fixed offset calculation for Thumb load/store with immediate offset
GUI: Added a ROM info dialog

2004-09-11
CPU: Fixed Thumb ADD/SUB Rd,Rn/#Offset3
CPU: Fixed Thumb long branch with link, which was off by 2 for LR
CPU: Fixed carry flag for instructions that use the barrel shifter
CPU: Added some missing LDM/STM instructions
CPU: Added some missing LDRH/STRH instructions
MMU: Fixed out-of-bounds DMA transfers
MMU: Fixed key input