aboutsummaryrefslogtreecommitdiff
path: root/src/NDS.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/NDS.h')
-rw-r--r--src/NDS.h93
1 files changed, 17 insertions, 76 deletions
diff --git a/src/NDS.h b/src/NDS.h
index 2a6a819..ce0e8b2 100644
--- a/src/NDS.h
+++ b/src/NDS.h
@@ -87,77 +87,15 @@ typedef struct
} Timer;
-enum
-{
- Region9_Void = 0,
-
- Region9_BIOS,
-
- Region9_ICache,
- Region9_DCache,
- Region9_ITCM,
- Region9_DTCM,
-
- Region9_MainRAM,
- Region9_SharedWRAM,
-
- Region9_IO,
-
- Region9_Palette,
- Region9_VRAM_ABG,
- Region9_VRAM_BBG,
- Region9_VRAM_AOBJ,
- Region9_VRAM_BOBJ,
- Region9_VRAM_LCDC,
- Region9_OAM,
-
- Region9_GBAROM,
- Region9_GBARAM,
-
- Region9_MAX
-};
-
-enum
-{
- Region7_Void = 0,
-
- Region7_BIOS,
-
- Region7_MainRAM,
- Region7_SharedWRAM,
- Region7_ARM7WRAM,
-
- Region7_IO,
- Region7_Wifi0,
- Region7_Wifi1,
-
- Region7_VRAM,
-
- Region7_GBAROM,
- Region7_GBARAM,
-
- Region7_MAX
-};
-
-typedef struct
-{
- u8 BusType; // 0=32bit 1=16bit 2=8bit/GBARAM 3=ARM9/internal
- u8 DelayS; // baseline sequential access delay
- u8 DelayN; // baseline nonsequential access delay
- u8 _pad;
-
-} RegionTimings;
-
typedef struct
{
- int Region;
u8* Mem;
u32 Mask;
} MemRegion;
-extern u8 ARM9MemTimings[Region9_MAX+1][4];
-extern u8 ARM7MemTimings[Region7_MAX+1][4];
+extern u8 ARM9MemTimings[0x100000][4];
+extern u8 ARM7MemTimings[0x20000][4];
// hax
extern u32 IME[2];
@@ -185,6 +123,9 @@ void Stop();
bool DoSavestate(Savestate* file);
+void SetARM9RegionTimings(u32 addrstart, u32 addrend, int buswidth, int nonseq, int seq);
+void SetARM7RegionTimings(u32 addrstart, u32 addrend, int buswidth, int nonseq, int seq);
+
bool LoadROM(const char* path, const char* sram, bool direct);
void LoadBIOS();
void SetupDirectBoot();
@@ -224,21 +165,21 @@ void StopDMAs(u32 cpu, u32 mode);
void RunTimingCriticalDevices(u32 cpu, s32 cycles);
-int ARM9Read8(u32 addr, u32* val);
-int ARM9Read16(u32 addr, u32* val);
-int ARM9Read32(u32 addr, u32* val);
-int ARM9Write8(u32 addr, u8 val);
-int ARM9Write16(u32 addr, u16 val);
-int ARM9Write32(u32 addr, u32 val);
+u8 ARM9Read8(u32 addr);
+u16 ARM9Read16(u32 addr);
+u32 ARM9Read32(u32 addr);
+void ARM9Write8(u32 addr, u8 val);
+void ARM9Write16(u32 addr, u16 val);
+void ARM9Write32(u32 addr, u32 val);
bool ARM9GetMemRegion(u32 addr, bool write, MemRegion* region);
-int ARM7Read8(u32 addr, u32* val);
-int ARM7Read16(u32 addr, u32* val);
-int ARM7Read32(u32 addr, u32* val);
-int ARM7Write8(u32 addr, u8 val);
-int ARM7Write16(u32 addr, u16 val);
-int ARM7Write32(u32 addr, u32 val);
+u8 ARM7Read8(u32 addr);
+u16 ARM7Read16(u32 addr);
+u32 ARM7Read32(u32 addr);
+void ARM7Write8(u32 addr, u8 val);
+void ARM7Write16(u32 addr, u16 val);
+void ARM7Write32(u32 addr, u32 val);
bool ARM7GetMemRegion(u32 addr, bool write, MemRegion* region);