Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
H
 HBlank, PPU
I
 Idle
 Initialize
 InsertCartridge, GBA
 Interrupt, CPU
L
 LoadBios, GBA
M
 main
 MainWindow, MainWindow
 Memory, Memory
O
 OAMSprites, OAMSprites
 OverflowTimer, timer_data
P
 pack_rgb, PPU
 Palette, Palettes
 Parse, Breakpoint
 PPU, PPU
R
 Read16, Memory
 Read32, Memory
 Read8, Memory
 render_bg_textmode, PPU
 render_bg_textmode_tile4, PPU
 render_bg_textmode_tile8, PPU
 render_mode0, PPU
 render_mode1, PPU
 render_mode2, PPU
 render_mode3, PPU
 render_mode4, PPU
 render_mode5, PPU
 render_objsprites, PPU
 render_sprite, PPU
 render_sprite_fixed, PPU
 render_sprite_rotscale, PPU
 Resize, DebuggerInterface
S
 SetAccessAddr, Memory
 SetAddFlags, CPU
 SetAddFlagsByVal, CPU
 SetGPRegisterValue, CPU
 SetPC, CPU
 SetRedrawAll, DebuggerInterface
 SetSubFlags, CPU
 SetSubFlagsByVal, CPU
 SetToReloadValue, timer_data
 SoftwareInterrupt, CPU
 Start, GBA
 StartDebug, GBA
 StartDisasm, GBA
 SWI_CpuFastSet, CPU
 SWI_CpuSet, CPU
T
 Timers, timer_data
 ToString, Breakpoint
 TransferIncrementAddresses, dma_data
inline void HBlank()
Generates a HBlank interrupt if the environment allows that.
inline bool Idle()
This is the main function of DMAChannels.
inline void Idle(int cyclesCount)
Performs idle operations on timers.
void Initialize()
Set the cpu to a starting state
void Initialize()
Initializes ncurses and the windows fields in the interface.
int Initialize(int screenMultiplier = 1)
Initializes a window and opengl with its vbs and shaders
bool InsertCartridge(char *fileName)
Fills the ROM memory reading data from a file.
inline void Interrupt(int code)
Writes to the IF Register the interrupt code.
bool LoadBios(char *filename)
Loads the bios into its memory space (0x00000000-0x02000000) reading data from a file.
int main(int argc,
char **argv)
Entry Point of the application
MainWindow(PPU *p,
Memory *m)
Memory()
Builds memory.
OAMSprites(Memory *mem)
Builds our oamsprites object.
inline void OverflowTimer(int index)
Performs overflow operation on timer (generates irq if enabled, restarts with reload value, increments successive if countup is enabled).
inline uint16_t pack_rgb(int r,
int g,
int b)
Packs 3 channels into a 16 bit RGBA_5_5_5_1 format integer.
Palettes(Memory *mem)
Builds the Palettes object.
bool Parse(char *str)
Parses a condition string.
PPU(Memory *mem,
CPU *cpu,
Palettes *pal,
OAMSprites *spr)
Builds a PPU.
inline uint16_t Read16(uint32_t addr)
Reads 16 bit at the given emulated address.
inline uint32_t Read32(uint32_t addr)
Reads 32 bit at the given emulated address.
inline uint8_t Read8(uint32_t addr)
Reads 8 bit at the given emulated address.
inline void render_bg_textmode(PPU *ppu,
uint16_t bgcnt,
uint16_t bghofs,
uint16_t bgvofs,
uint16_t *outBuffer)
Renders a background in text mode.
inline void render_bg_textmode_tile4(PPU *ppu,
uint16_t bgcnt,
uint16_t bghofs,
uint16_t bgvofs,
uint16_t *outBuffer)
Renders a background with 16/16 palettes/color mode.
inline void render_bg_textmode_tile8(PPU *ppu,
uint16_t bgcnt,
uint16_t bghofs,
uint16_t bgvofs,
uint16_t *outBuffer)
Renders a background with 256/1 colors/palette mode.
void render_mode0(PPU *ppu,
unsigned char *outBuffer)
Renders a background with rendering mode 0.
void render_mode1(PPU *ppu,
unsigned char *outBuffer)
UNIMPLEMENTED.
void render_mode2(PPU *ppu,
unsigned char *outBuffer)
UNIMPLEMENTED.
void render_mode3(PPU *ppu,
unsigned char *outBuffer)
UNIMPLEMENTED.
void render_mode4(PPU *ppu,
unsigned char *outBuffer)
Renders a background with rendering mode 4.
void render_mode5(PPU *ppu,
unsigned char *outBuffer)
UNIMPLEMENTED.
inline void render_objsprites(PPU *ppu,
void *tilesMem)
Renders all the sprites of the ppu into its sprites buffer PPU.buffer_obj.
inline void render_sprite(PPU *ppu,
OAMSprite *sprite,
void *tilesMem)
Renders a sprite (into sprites buffer).
inline void render_sprite_fixed(PPU *ppu,
OAMSprite *sprite,
void *tilesMem)
Renders a sprite (into sprites buffer) that has rotation/scale disabled.
inline void render_sprite_rotscale(PPU *ppu,
OAMSprite *sprite,
void *tilesMem)
Renders a sprite (into sprites buffer) that has rotation/scale enabled.
void Resize()
Resizes windows to fill the available area.
inline void SetAccessAddr(uint32_t addr)
Sets last access zone according to the address.
inline void SetAddFlags(int op1,
int op2,
int destinationID)
Sets the correct flags after an addition.
inline void SetAddFlagsByVal(int op1,
int op2,
uint32_t val)
Sets the correct flags after an addition.
inline void SetGPRegisterValue(int regid,
uint32_t val)
Set the value of a register in current Mode.
inline void SetPC(uint32_t val)
Sets the program counter.
void SetRedrawAll()
Sets the right flags to make a full refresh happen at the next Draw call.
inline void SetSubFlags(int op1,
int op2,
int destinationID)
Sets the correct flags after a subtraction.
inline void SetSubFlagsByVal(int op1,
int op2,
uint32_t val)
Sets the correct flags after a subtraction.
inline void SetToReloadValue(int index)
Sets a timer to its reload value.
inline void SoftwareInterrupt(uint8_t id,
int pcOff)
Generates a Software Interrupt.
void Start()
Starts GBA execution.
void StartDebug()
Starts GBA execution with a debugger (slower than Start).
void StartDisasm()
Old OBSOLETE function.
inline void SWI_CpuFastSet()
Fastly executes Software Interrupt 0xC (CpuFastSet).
inline void SWI_CpuSet()
Fastly executes Software Interrupt 0xB (CpuSet).
Timers(Memory *mem,
CPU *cpu)
Builds the timers handler utility.
void ToString(char *str)
Makes the Break Rule readable by putting it into a string.
inline void TransferIncrementAddresses(int chan,
int sz)
Increment the addresses following the control register rules.
Close