--- nono/vm/sram.cpp 2026/04/29 17:05:28 1.1.1.13 +++ nono/vm/sram.cpp 2026/04/29 17:05:42 1.1.1.15 @@ -40,10 +40,6 @@ SRAMDevice::~SRAMDevice() bool SRAMDevice::Init() { - if (inherited::Init() == false) { - return false; - } - // SRAM ファイルをオープン。 if (gMainApp.GetVMDir().empty()) { // Human68k モードで VM ディレクトリ指定がなければ、ダミーを用意。 @@ -57,7 +53,13 @@ SRAMDevice::Init() memcpy(mem, &InitialData[0], InitialData.size()); } else { filename = gMainApp.GetVMDir() + "SRAM.DAT"; - file.reset(new MappedFile()); + try { + file.reset(new MappedFile()); + } catch (...) { } + if ((bool)file == false) { + warnx("Failed to initialize MappedFile at %s", __method__); + return false; + } file->SetFilename(filename); file->SetDispname(string_format("SRAM \"%s\"", filename.c_str())); mem = file->OpenCreate(sramsize); @@ -99,7 +101,7 @@ SRAMDevice::SyncRAMSize() } } - uint32 ramsize = GetMainRAMDevice()->GetSize(); + uint32 ramsize = (uint32)GetMainRAMDevice()->GetSize(); // 値が違う時だけ表示したいので一旦読み出して比較 uint32 cursize; @@ -111,7 +113,6 @@ SRAMDevice::SyncRAMSize() if (gMainApp.GetVMDir().empty()) { // Human68k モードで -c のない時は表示不要。ダミー SRAM なので。 } else { - // ここは Init() なので putmsg() は使えない warnx("SRAM: Update ramsize %uMB", ramsize / 1024 / 1024); }