fix mem domains
This commit is contained in:
parent
7afb24b5af
commit
406b76a023
Binary file not shown.
Binary file not shown.
|
@ -528,47 +528,41 @@ EXPORT bool Unserialize(u8* buf, u32 sz)
|
||||||
return root->unserialize(s);
|
return root->unserialize(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAYBE_ADD_MEMORY_DOMAIN(mem, name, flags) do { \
|
#define ADD_MEMORY_DOMAIN(mem, name, flags) do { \
|
||||||
if (ares::Nintendo64::mem.data) \
|
m[i].Data = ares::Nintendo64::mem.data; \
|
||||||
{ \
|
m[i].Name = name; \
|
||||||
m[i].Data = ares::Nintendo64::mem.data; \
|
m[i].Size = ares::Nintendo64::mem.size; \
|
||||||
m[i].Name = name; \
|
m[i].Flags = flags | MEMORYAREA_FLAGS_YUGEENDIAN | MEMORYAREA_FLAGS_SWAPPED | MEMORYAREA_FLAGS_WORDSIZE4 | MEMORYAREA_FLAGS_WRITABLE; \
|
||||||
m[i].Size = ares::Nintendo64::mem.size; \
|
i++; \
|
||||||
m[i].Flags = flags | MEMORYAREA_FLAGS_YUGEENDIAN | MEMORYAREA_FLAGS_WORDSIZE4 | MEMORYAREA_FLAGS_WRITABLE; \
|
|
||||||
i++; \
|
|
||||||
} \
|
|
||||||
} while (0) \
|
} while (0) \
|
||||||
|
|
||||||
#define MAYBE_ADD_MEMPAK_DOMAIN(num) do { \
|
#define ADD_MEMPAK_DOMAIN(num) do { \
|
||||||
if (auto c = (ares::Nintendo64::Gamepad*)ares::Nintendo64::controllerPort##num.device.data()) \
|
if (auto c = (ares::Nintendo64::Gamepad*)ares::Nintendo64::controllerPort##num.device.data()) \
|
||||||
{ \
|
{ \
|
||||||
if (c->ram.data) \
|
m[i].Data = c->ram.data; \
|
||||||
{ \
|
m[i].Name = "MEMPAK " #num; \
|
||||||
m[i].Data = c->ram.data; \
|
m[i].Size = c->ram.size; \
|
||||||
m[i].Name = "MEMPAK " #num; \
|
m[i].Flags = MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE | MEMORYAREA_FLAGS_YUGEENDIAN | MEMORYAREA_FLAGS_SWAPPED | MEMORYAREA_FLAGS_WORDSIZE4 | MEMORYAREA_FLAGS_WRITABLE; \
|
||||||
m[i].Size = c->ram.size; \
|
i++; \
|
||||||
m[i].Flags = MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE | MEMORYAREA_FLAGS_YUGEENDIAN | MEMORYAREA_FLAGS_WORDSIZE4 | MEMORYAREA_FLAGS_WRITABLE; \
|
|
||||||
i++; \
|
|
||||||
} \
|
|
||||||
} \
|
} \
|
||||||
} while (0) \
|
} while (0) \
|
||||||
|
|
||||||
EXPORT void GetMemoryAreas(MemoryArea *m)
|
EXPORT void GetMemoryAreas(MemoryArea *m)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(rdram.ram, "RDRAM", MEMORYAREA_FLAGS_PRIMARY);
|
ADD_MEMORY_DOMAIN(rdram.ram, "RDRAM", MEMORYAREA_FLAGS_PRIMARY);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(cartridge.rom, "ROM", 0);
|
ADD_MEMORY_DOMAIN(cartridge.rom, "ROM", 0);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(pi.rom, "PI ROM", 0);
|
ADD_MEMORY_DOMAIN(pi.rom, "PI ROM", 0);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(pi.ram, "PI RAM", 0);
|
ADD_MEMORY_DOMAIN(pi.ram, "PI RAM", 0);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(rsp.dmem, "RSP DMEM", 0);
|
ADD_MEMORY_DOMAIN(rsp.dmem, "RSP DMEM", 0);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(rsp.imem, "RSP IMEM", 0);
|
ADD_MEMORY_DOMAIN(rsp.imem, "RSP IMEM", 0);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(cartridge.ram, "SRAM", MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE);
|
ADD_MEMORY_DOMAIN(cartridge.ram, "SRAM", MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(cartridge.eeprom, "EEPROM", MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE);
|
ADD_MEMORY_DOMAIN(cartridge.eeprom, "EEPROM", MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE);
|
||||||
MAYBE_ADD_MEMORY_DOMAIN(cartridge.flash, "FLASH", MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE);
|
ADD_MEMORY_DOMAIN(cartridge.flash, "FLASH", MEMORYAREA_FLAGS_ONEFILLED | MEMORYAREA_FLAGS_SAVERAMMABLE);
|
||||||
MAYBE_ADD_MEMPAK_DOMAIN(1);
|
ADD_MEMPAK_DOMAIN(1);
|
||||||
MAYBE_ADD_MEMPAK_DOMAIN(2);
|
ADD_MEMPAK_DOMAIN(2);
|
||||||
MAYBE_ADD_MEMPAK_DOMAIN(3);
|
ADD_MEMPAK_DOMAIN(3);
|
||||||
MAYBE_ADD_MEMPAK_DOMAIN(4);
|
ADD_MEMPAK_DOMAIN(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fixme: this mismatches the c# side due to some re-ordering c# is doing for some reason
|
// fixme: this mismatches the c# side due to some re-ordering c# is doing for some reason
|
||||||
|
|
|
@ -99,7 +99,6 @@ auto System::unload() -> void {
|
||||||
vulkan.unload();
|
vulkan.unload();
|
||||||
#endif
|
#endif
|
||||||
cartridgeSlot.unload();
|
cartridgeSlot.unload();
|
||||||
puts("unloading port 1");
|
|
||||||
controllerPort1.unload();
|
controllerPort1.unload();
|
||||||
controllerPort2.unload();
|
controllerPort2.unload();
|
||||||
controllerPort3.unload();
|
controllerPort3.unload();
|
||||||
|
|
Loading…
Reference in New Issue