Skip to content

Commit

Permalink
- Add mram.bin and mram_cached.bin.
Browse files Browse the repository at this point in the history
  • Loading branch information
Extrems committed Feb 13, 2025
1 parent dc44d41 commit c16655e
Showing 1 changed file with 28 additions and 4 deletions.
32 changes: 28 additions & 4 deletions cube/swiss/source/devices/system/deviceHandler-SYS.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ s32 read_rom_aram(file_handle* file, void* buffer, u32 length);
s32 write_rom_aram(file_handle* file, const void* buffer, u32 length);
s32 read_rom_aram_expansion(file_handle* file, void* buffer, u32 length);
s32 write_rom_aram_expansion(file_handle* file, const void* buffer, u32 length);
s32 read_rom_mram(file_handle* file, void* buffer, u32 length);
s32 read_rom_mram_cached(file_handle* file, void* buffer, u32 length);
s32 read_rom_void(file_handle* file, void* buffer, u32 length);
s32 write_rom_void(file_handle* file, const void* buffer, u32 length);

Expand All @@ -48,6 +50,8 @@ enum rom_types
ROM_ARAM,
ROM_ARAM_INTERNAL,
ROM_ARAM_EXPANSION,
ROM_MRAM,
ROM_MRAM_CACHED,
NUM_ROMS
};

Expand All @@ -67,7 +71,9 @@ static char* rom_names[] =
"/sram.bin",
"/aram.bin",
"/aram_internal.bin",
"/aram_expansion.bin"
"/aram_expansion.bin",
"/mram.bin",
"/mram_cached.bin"
};

static int rom_sizes[] =
Expand All @@ -86,7 +92,9 @@ static int rom_sizes[] =
64,
16 * 1024 * 1024,
16 * 1024 * 1024,
0
0,
24 * 1024 * 1024,
24 * 1024 * 1024
};

static s32 (*read_rom[])(file_handle* file, void* buffer, u32 length) =
Expand All @@ -105,7 +113,9 @@ static s32 (*read_rom[])(file_handle* file, void* buffer, u32 length) =
read_rom_sram,
read_rom_aram,
read_rom_aram,
read_rom_aram_expansion
read_rom_aram_expansion,
read_rom_mram,
read_rom_mram_cached
};

static s32 (*write_rom[])(file_handle* file, const void* buffer, u32 length) =
Expand All @@ -124,7 +134,9 @@ static s32 (*write_rom[])(file_handle* file, const void* buffer, u32 length) =
write_rom_sram,
write_rom_aram,
write_rom_aram,
write_rom_aram_expansion
write_rom_aram_expansion,
write_rom_void,
write_rom_void
};

file_handle initial_SYS =
Expand Down Expand Up @@ -350,6 +362,16 @@ s32 write_rom_aram_expansion(file_handle* file, const void* buffer, u32 length)
return length;
}

s32 read_rom_mram(file_handle* file, void* buffer, u32 length) {
memcpy(buffer, MEM_PHYSICAL_TO_K1(file->offset), length);
return length;
}

s32 read_rom_mram_cached(file_handle* file, void* buffer, u32 length) {
memcpy(buffer, MEM_PHYSICAL_TO_K0(file->offset), length);
return length;
}

s32 read_rom_void(file_handle* file, void* buffer, u32 length) {
DCZeroRange(buffer, length);
return 0;
Expand Down Expand Up @@ -382,6 +404,8 @@ s32 deviceHandler_SYS_init(file_handle* file) {
rom_sizes[ROM_ARAM] = AR_GetSize();
rom_sizes[ROM_ARAM_INTERNAL] = AR_GetInternalSize();
rom_sizes[ROM_ARAM_EXPANSION] = rom_sizes[ROM_ARAM] - rom_sizes[ROM_ARAM_INTERNAL];
rom_sizes[ROM_MRAM] = SYS_GetPhysicalMemSize();
rom_sizes[ROM_MRAM_CACHED] = SYS_GetSimulatedMemSize();
return 0;
}

Expand Down

0 comments on commit c16655e

Please sign in to comment.