* Add new error types and descriptions.
* Do not crash on missing 0x100 and 0x300 PUP file entries.
* Report an error on missing PUP package inner files.
* Fix overflow in file-size against header check.
* Move all header errors to pup_object class.
* Move verbose error descriptions to pup_object class.
* Minor optimizations.
* Fix race condition in PUP installation abortion.
* Fix freezes of emulator in case the PUP installation failed due to filesystem errors.
* Use fs::create_path as opposed to fs::create_dir as it is can create upper directories in case they are missing and is better in error handling.
* Report TAR errors on failure to create directories.
* Fix pup_object constructor to not crash on invalid PUP file header. (report an error)
* Fix pup_object::validate_hashes to not crash on invalid PUP file entries. (report an error)
* Do not call Qt functions inside a named_thread because it is wrong.
* Add PUP loader
* Add .tar loader and update .pup loader
* Add extract method + offset to TAR loader
Also adds error checking + operator bool overload
* Add firmware decryption keys to key vault
* Initial seperation of SELFDecrypter
This seperates SELFDecrypter into itself and SCEDecrypter.
SCEDecrypter contains the logic to decrypt any file with an SCE Header.
SELFDecrypter inherits from SCEDecrypter and contains the code
specifically to do with ELF. DecryptData could be deduplicated more.
* Add "Install Firmware" option to tools menu
* SCEDecrypter: put each segment in own file
Also, const-correctness, adjusted buffer size and better error handling
* More SELFDecrypter refactoring
* Compile fix
* Add messageboxes to firmware install
* Add progress bar to firmware install