fix mem domains

This commit is contained in:
CasualPokePlayer 2022-02-17 02:48:40 -08:00
parent 7afb24b5af
commit 406b76a023
4 changed files with 25 additions and 32 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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();