// load backuped ram / rom images
FILEIO* fio = new FILEIO();
- if(fio->Fopen(emu->bios_path(_T("DRAM.BIN")), FILEIO_READ_BINARY)) {
+ if(fio->Fopen(create_local_path(_T("DRAM.BIN")), FILEIO_READ_BINARY)) {
fio->Fread(ram, sizeof(ram), 1);
fio->Fclose();
}
- if(fio->Fopen(emu->bios_path(_T("SYS.ROM")), FILEIO_READ_BINARY)) {
+ if(fio->Fopen(create_local_path(_T("SYS.ROM")), FILEIO_READ_BINARY)) {
fio->Fread(sys, sizeof(sys), 1);
fio->Fclose();
}
{
// save battery backuped ram
FILEIO* fio = new FILEIO();
- if(fio->Fopen(emu->bios_path(_T("DRAM.BIN")), FILEIO_WRITE_BINARY)) {
+ if(fio->Fopen(create_local_path(_T("DRAM.BIN")), FILEIO_WRITE_BINARY)) {
fio->Fwrite(ram, sizeof(ram), 1);
fio->Fclose();
}
set_bank(0);
}
-void MEMORY::write_data8(uint32 addr, uint32 data)
+void MEMORY::write_data8(uint32_t addr, uint32_t data)
{
addr &= 0xffff;
wbank[(addr >> 13) & 7][addr & 0x1fff] = data;
}
-uint32 MEMORY::read_data8(uint32 addr)
+uint32_t MEMORY::read_data8(uint32_t addr)
{
addr &= 0xffff;
return rbank[(addr >> 13) & 7][addr & 0x1fff];
}
-void MEMORY::write_signal(int id, uint32 data, uint32 mask)
+void MEMORY::write_signal(int id, uint32_t data, uint32_t mask)
{
set_bank(data);
}
-void MEMORY::set_bank(uint32 val)
+void MEMORY::set_bank(uint32_t val)
{
if(val & 1) {
SET_BANK(0x0000, 0xffff, ram, ram);
#define STATE_VERSION 1
+#include "../../statesub.h"
+
+void MEMORY::decl_state()
+{
+ enter_decl_state(STATE_VERSION);
+
+ DECL_STATE_ENTRY_1D_ARRAY(ram, sizeof(ram));
+ DECL_STATE_ENTRY_UINT8(bank);
+
+ leave_decl_state();
+}
+
void MEMORY::save_state(FILEIO* state_fio)
{
- state_fio->FputUint32(STATE_VERSION);
- state_fio->FputInt32(this_device_id);
+ if(state_entry != NULL) {
+ state_entry->save_state(state_fio);
+ }
+// state_fio->FputUint32(STATE_VERSION);
+// state_fio->FputInt32(this_device_id);
- state_fio->Fwrite(ram, sizeof(ram), 1);
- state_fio->FputUint8(bank);
+// state_fio->Fwrite(ram, sizeof(ram), 1);
+// state_fio->FputUint8(bank);
}
bool MEMORY::load_state(FILEIO* state_fio)
{
- if(state_fio->FgetUint32() != STATE_VERSION) {
- return false;
+ bool mb = false;
+ if(state_entry != NULL) {
+ mb = state_entry->load_state(state_fio);
}
- if(state_fio->FgetInt32() != this_device_id) {
+ if(!mb) {
return false;
}
- state_fio->Fread(ram, sizeof(ram), 1);
- bank = state_fio->FgetUint8();
+// if(state_fio->FgetUint32() != STATE_VERSION) {
+// return false;
+// }
+// if(state_fio->FgetInt32() != this_device_id) {
+// return false;
+// }
+// state_fio->Fread(ram, sizeof(ram), 1);
+// bank = state_fio->FgetUint8();
// post process
set_bank(bank);