rlm@1: #ifndef VBA_GB_GLOBALS_H rlm@1: #define VBA_GB_GLOBALS_H rlm@1: rlm@1: #if _MSC_VER > 1000 rlm@1: #pragma once rlm@1: #endif // _MSC_VER > 1000 rlm@1: rlm@1: #include "../Port.h" rlm@1: rlm@1: extern int32 gbRomSizeMask; rlm@1: extern int32 gbRomSize; rlm@1: extern int32 gbRamSize; rlm@1: extern int32 gbRamSizeMask; rlm@1: rlm@1: extern u8 * gbRom; rlm@1: extern u8 * gbRam; rlm@1: extern u8 * gbVram; rlm@1: extern u8 * gbWram; rlm@1: extern u8 * gbMemory; rlm@1: extern u16 *gbLineBuffer; rlm@1: rlm@1: extern u8 *gbMemoryMap[16]; rlm@1: rlm@1: inline u8 gbReadMemoryQuick(u16 address) rlm@1: { rlm@1: extern int32 gbEchoRAMFixOn; rlm@1: if (gbEchoRAMFixOn) rlm@1: { rlm@1: if (address >= 0xe000 && address < 0xfe00) rlm@1: { rlm@1: address -= 0x2000; rlm@1: } rlm@1: } rlm@1: return gbMemoryMap[address>>12][address&0xfff]; rlm@1: } rlm@1: rlm@1: inline void gbWriteMemoryQuick(u16 address, u8 value) rlm@1: { rlm@1: extern int32 gbEchoRAMFixOn; rlm@1: if (gbEchoRAMFixOn) rlm@1: { rlm@1: if (address >= 0xe000 && address < 0xfe00) rlm@1: { rlm@1: address -= 0x2000; rlm@1: } rlm@1: } rlm@1: gbMemoryMap[address>>12][address&0xfff] = value; rlm@1: } rlm@1: rlm@1: inline u8 gbReadROMQuick(u32 address) rlm@1: { rlm@1: return gbRom[address]; rlm@1: } rlm@1: rlm@1: extern int32 gbFrameSkip; rlm@1: extern u16 gbColorFilter[32768]; rlm@1: extern int32 gbColorOption; rlm@1: extern int32 gbPaletteOption; rlm@1: extern int32 gbEmulatorType; rlm@1: extern int32 gbBorderOn; rlm@1: extern int32 gbBorderAutomatic; rlm@1: extern int32 gbCgbMode; rlm@1: extern int32 gbSgbMode; rlm@1: extern int32 gbWindowLine; rlm@1: extern int32 gbSpeed; rlm@1: extern u8 gbBgp[4]; rlm@1: extern u8 gbObp0[4]; rlm@1: extern u8 gbObp1[4]; rlm@1: extern u16 gbPalette[128]; rlm@1: rlm@1: extern u8 register_LCDC; rlm@1: extern u8 register_LY; rlm@1: extern u8 register_SCY; rlm@1: extern u8 register_SCX; rlm@1: extern u8 register_WY; rlm@1: extern u8 register_WX; rlm@1: extern u8 register_VBK; rlm@1: rlm@1: extern int emulating; rlm@1: rlm@1: extern int32 gbBorderLineSkip; rlm@1: extern int32 gbBorderRowSkip; rlm@1: extern int32 gbBorderColumnSkip; rlm@1: extern int32 gbDmaTicks; rlm@1: rlm@1: extern bool8 useOldFrameTiming; rlm@1: extern bool8 gbNullInputHackEnabled; rlm@1: extern bool8 gbNullInputHackTempEnabled; rlm@1: rlm@1: extern void gbRenderLine(); rlm@1: extern void gbDrawSprites(); rlm@1: rlm@1: extern u8 (*gbSerialFunction)(u8); rlm@1: rlm@1: #endif // VBA_GB_GLOBALS_H