mirror of https://github.com/bsnes-emu/bsnes.git
19 lines
985 B
C++
19 lines
985 B
C++
auto Program::loadState(uint slot) -> bool {
|
|
if(!emulator->loaded()) return false;
|
|
string location = {Location::notsuffix(superNintendo.location), ".bs", slot};
|
|
if(!file::exists(location)) return showMessage({"Slot ", slot, " state does not exist"}), false;
|
|
auto memory = file::read(location);
|
|
serializer s{memory.data(), memory.size()};
|
|
if(!emulator->unserialize(s)) return showMessage({"Slot ", slot, " state is incompatible"}), false;
|
|
return showMessage({"Loaded state from slot ", slot}), true;
|
|
}
|
|
|
|
auto Program::saveState(uint slot) -> bool {
|
|
if(!emulator->loaded()) return false;
|
|
string location = {Location::notsuffix(superNintendo.location), ".bs", slot};
|
|
serializer s = emulator->serialize();
|
|
if(!s.size()) return showMessage({"Failed to save state to slot ", slot}), false;
|
|
if(!file::write(location, s.data(), s.size())) return showMessage({"Unable to write state to slot ", slot}), false;
|
|
return showMessage({"Saved state to slot ", slot}), true;
|
|
}
|