troglodyte f3a0d0abc4 gui-qt: don't crash when deleting an archive locked by another process (#3956)
* gui-qt: don't crash on install file delete failures

when you install a .zip, .vpk, .pkg, or firmware .pup and tick the matching "delete after install" option, vita3k tries to remove the installer file from disk. the archive and pkg dialogs use the throwing fs::remove overload, which raises a filesystem_error when the file is locked by another process. since the call runs inside a qt slot, the exception escapes into the qt event loop and the whole emulator goes down with it.

the firmware dialog uses QFile::remove instead, which returns a bool that the code was ignoring, so a locked firmware file silently stuck around with no feedback to the user.

leaving the installer open in something like 7-zip while installing is enough to trigger either case.

this swaps fs::remove for the non-throwing error_code overload in the archive and pkg dialogs, and checks the bool from QFile::remove in the firmware dialog. anything that could not be removed gets shown in a warning so the user knows what stuck around, and the install itself still finishes normally.

* gui-qt: route firmware drops through the install dialog

dropping a .pup onto the main window used to run install_pup inline with a bare QProgressDialog and its own success/failure handling, bypassing FirmwareInstallDialog entirely. that path duplicated the progress UI and never offered the "delete firmware file after install?" option that the menu-triggered flow exposes.

route the drop through FirmwareInstallDialog instead, matching the existing .pkg and .vpk drop routing right next to it. this adds a constructor that takes a pre-supplied firmware path so the dialog skips its file picker when invoked from a drop.

dropped firmware installs now share the threaded progress UI, the warning when the file is locked, and the optional cleanup checkbox with the menu trigger.
2026-05-23 13:06:55 -04:00
2021-06-16 15:12:10 +09:00
2023-04-06 23:04:05 +02:00
2026-05-22 20:43:59 -04:00
2026-05-22 20:43:59 -04:00
2026-05-18 11:38:20 -03:00
2026-05-13 17:58:56 -04:00
2026-05-22 20:43:59 -04:00
2021-04-18 00:25:38 +02:00
2026-05-20 20:06:57 -04:00
2026-05-13 17:58:56 -04:00
2026-05-13 17:58:56 -04:00
2026-05-20 20:06:57 -04:00
2019-04-23 08:22:56 +07:00
2026-05-13 17:58:56 -04:00
2026-05-21 10:50:42 -04:00
2026-05-20 20:06:57 -04:00
2026-05-21 10:50:42 -04:00
2018-01-28 09:07:32 +00:00
2023-02-27 18:38:35 +01:00
2025-09-12 17:44:26 +02:00
2026-05-21 10:50:42 -04:00

Vita3K

C/C++ CI Release Vita3K discord server

Introduction

Vita3K is an experimental PlayStation Vita emulator for Windows, Linux, macOS and Android.

Compatibility

The emulator currently runs most homebrew programs and commercial games.

Persona 4 Golden by Atlus A Rose in the Twilight by Nippon Ichi Software
Persona 4 Golden screenshot A Rose in the Twilight screenshot
Alone with You by Benjamin Rivers VA-11 HALL-A by Sukeban Games
Alone with You screenshot VA-11 HALL-A screenshot
Fruit Ninja by Halfbrick Studios Jetpack Joyride by Halfbrick Studios
Fruit Ninja Screenshot Jetpack Joyride Screenshot

License

Vita3K is licensed under the GPLv2 license. This is largely dictated by external dependencies, most notably Unicorn.

Downloads

You can download the latest builds from here.

Building

Please see building.md.

Running

Check our quickstart guide to make sure your computer meets the minimum requirements to run Vita3K.
Don't forget to have your graphics driver up to date and to install the Visual C++ 2015-2022 Redistributable if you are a Windows user.

Bugs and issues

The project is in an early stage, so please be mindful when opening new issues. Expect crashes, glitches, low compatibility and poor performance.

Thanks

Thanks go out to people who offered advice or otherwise made this project possible, such as Davee, korruptor, Rinnegatamante, ScHlAuChi, Simon Kilroy, TheFlow, xerpi, xyz, Yifan Lu and many others.

Donations

ko-fi
Thank you to the supporters and to all those who support us on our ko-fi.

  • Among them, those who subscribed to the Nibble Tier and upper: j0hnnybrav0, Mored4u, TacoOblivion, Undeadbob and uplush

Note

The purpose of this emulator is not to enable illegal activity. You can dump games from a Vita by using NoNpDrm or FAGDec. You can get homebrew programs from VitaDB.

PlayStation, PlayStation Vita and PlayStation Network are all registered trademarks of Sony Interactive Entertainment Inc. This emulator is not related to or endorsed by Sony, or derived from confidential materials belonging to Sony.

S
Description
Experimental PlayStation Vita emulator
Readme 144 MiB
Languages
C++ 63.1%
cpp 25.4%
Kotlin 8.5%
Java 1.4%
CMake 0.8%
Other 0.8%