mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-07-04 23:31:19 +01:00
yuzu: main: Ensure enough space is available for RomFS dumping
This warns the user if there isn't enough free space to dump the entire RomFS to disk. It requires at least the size of the extracted RomFS + 1 GiB as a buffer of free space.
This commit is contained in:
parent
fbb170857f
commit
fa2aac1bf5
1 changed files with 12 additions and 0 deletions
|
@ -1946,6 +1946,18 @@ void GMainWindow::OnGameListDumpRomFS(u64 program_id, const std::string& game_pa
|
||||||
const auto full = res == selections.constFirst();
|
const auto full = res == selections.constFirst();
|
||||||
const auto entry_size = CalculateRomFSEntrySize(extracted, full);
|
const auto entry_size = CalculateRomFSEntrySize(extracted, full);
|
||||||
|
|
||||||
|
// The minimum required space is the size of the extracted RomFS + 1 GiB
|
||||||
|
const auto minimum_free_space = extracted->GetSize() + 0x40000000;
|
||||||
|
|
||||||
|
if (full && Common::FS::GetFreeSpaceSize(path) < minimum_free_space) {
|
||||||
|
QMessageBox::warning(this, tr("RomFS Extraction Failed!"),
|
||||||
|
tr("There is not enough free space at %1 to extract the RomFS. Please "
|
||||||
|
"free up space or select a different dump directory at "
|
||||||
|
"Emulation > Configure > System > Filesystem > Dump Root")
|
||||||
|
.arg(QString::fromStdString(path)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QProgressDialog progress(tr("Extracting RomFS..."), tr("Cancel"), 0,
|
QProgressDialog progress(tr("Extracting RomFS..."), tr("Cancel"), 0,
|
||||||
static_cast<s32>(entry_size), this);
|
static_cast<s32>(entry_size), this);
|
||||||
progress.setWindowModality(Qt::WindowModal);
|
progress.setWindowModality(Qt::WindowModal);
|
||||||
|
|
Loading…
Reference in a new issue