same shit with Import Savefile

This commit is contained in:
Arisotura
2024-10-25 10:52:47 +02:00
parent 8b6628b070
commit 979f1ed615
3 changed files with 38 additions and 21 deletions

View File

@ -1483,23 +1483,17 @@ void MainWindow::onUndoStateLoad()
void MainWindow::onImportSavefile()
{
emuThread->emuPause();
QString path = QFileDialog::getOpenFileName(this,
"Select savefile",
globalCfg.GetQString("LastROMFolder"),
"Savefiles (*.sav *.bin *.dsv);;Any file (*.*)");
if (path.isEmpty())
{
emuThread->emuUnpause();
return;
}
Platform::FileHandle* f = Platform::OpenFile(path.toStdString(), Platform::FileMode::Read);
if (!f)
if (!Platform::FileExists(path.toStdString()))
{
QMessageBox::critical(this, "melonDS", "Could not open the given savefile.");
emuThread->emuUnpause();
return;
}
@ -1510,24 +1504,15 @@ void MainWindow::onImportSavefile()
"The emulation will be reset and the current savefile overwritten.",
QMessageBox::Ok, QMessageBox::Cancel) != QMessageBox::Ok)
{
emuThread->emuUnpause();
return;
}
emuInstance->reset();
}
u32 len = FileLength(f);
std::unique_ptr<u8[]> data = std::make_unique<u8[]>(len);
Platform::FileRewind(f);
Platform::FileRead(data.get(), len, 1, f);
assert(emuInstance->nds != nullptr);
emuInstance->nds->SetNDSSave(data.get(), len);
CloseFile(f);
emuThread->emuUnpause();
if (!emuThread->importSavefile(path))
{
QMessageBox::critical(this, "melonDS", "Could not import the given savefile.");
return;
}
}
void MainWindow::onQuit()