Commit graph

258 commits

Author SHA1 Message Date
Eladash
8057773c4f Fix decrypt_binaries_t::done() 2023-08-03 16:19:55 +03:00
Eladash
eecadab387 Implement fs::file::get_id()
File descripor ID with 2 provided ways to compare between them:
1. is_mirror_of():
 Test if identical:
  For example: when LHS writes one byte to a file at X offset, RHS file be able to read that exact byte at X offset)

2. is_coherent_with():
 Test if both files point to the same file:
  For example: if a file descriptor pointing to the complete file exists and is being truncated to 0 bytes from non-
  -zero size state: this has to affect both RHS and LHS files.
2023-07-17 08:09:09 +03:00
Megamouse
43cfb3cd10 ecdsa: tiny optimization for key and curve 2023-07-16 09:32:39 +02:00
Megamouse
de15c9746f ecdsa: clean up some code 2023-07-16 09:32:39 +02:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows 2023-07-11 21:40:30 +03:00
Megamouse
d662a39a12 PPUAnalyser: fix std::move nonsense 2023-06-14 11:05:00 +03:00
Eladash
c0e97b4e96 Qt: Improve PS3 Binaries Decryption tool 2023-06-11 00:40:14 +02:00
brian218
ad22cf5051 unself.cpp: Always reset the old SELF header information before loading 2023-06-08 18:18:57 +02:00
Eladash
636bde6343 Logs: Fix trailing space, nbsp and unintended character 2023-06-06 09:48:27 +02:00
Megamouse
500f7901ac unself: rename SCEVersionInfo to version_header 2023-04-21 17:56:25 +02:00
Megamouse
5fb716fc21 unself: rename SectionInfo to segment_ext_header 2023-04-21 17:56:25 +02:00
Megamouse
31ef970f23 unself: some more documentation 2023-04-21 17:56:25 +02:00
Megamouse
a770eaf500 unself: rename AppInfo to program_identification_header 2023-04-21 17:56:25 +02:00
Megamouse
e171f3af41 unself: rename SelfHeader to ext_hdr 2023-04-21 17:56:25 +02:00
Megamouse
6d7d3fff6d Improve some decryption log messages 2023-03-05 02:55:59 +01:00
Megamouse
fc21ece784 pkg install: return correct error if possible. Add more early outs and skip workers on error, 2023-03-02 23:27:20 +01:00
Margen67
5bb89328d0 Remove whitespace 2023-02-15 08:58:02 +01:00
Megamouse
13ef4c1236 Clarify unknown type log message 2023-02-05 09:36:56 +01:00
Megamouse
68dd25a4a5 Replace std::filesystem::u8path with TODO 2023-02-05 09:36:56 +01:00
Megamouse
2372116acc Improve logging during package installations 2023-02-05 09:36:56 +01:00
Megamouse
12fa7c41f6 Qt: more package install fixes
- Clean directories if fill_path fails
- Fix check_target_app_version when installing multiple packages (compromise: no more optimized singular file installs for now)
2023-01-11 19:26:13 +01:00
Megamouse
fc85ed8730 Qt: fix some package install cancellation issues
- Abort installation if any thread has errors
- Only clean the directories of packages that actually had errors
- Additionally clean the directories of packages that were cancelled before they could finish
- Clear boot path in case of error or cancelation
- Propagate result to caller
- Skip success message if the installation was canceled
2023-01-11 19:26:13 +01:00
Megamouse
65f10ff840 package_reader: fix some warnings 2023-01-11 19:26:13 +01:00
Elad Ashkenazi
7c2d6f8a23
PKG: Pack multiple PKGs into fast+efficient install (#13147) 2023-01-03 15:31:39 +03:00
Elad Ashkenazi
3250c16cdc
Restrict package installation to 1 thread
It is possible that a package contains the same file multiple times.
This leads to possible corruption or installation failure when they are extracted on different threads.
(easy to reproduce with DeS)
2022-12-30 21:10:23 +01:00
Eladash
02f35383bd PKG: Implement Multi-threaded installation 2022-12-30 17:48:14 +03:00
Eladash
1d5fef4930 PKG: Create directories first 2022-12-30 17:48:14 +03:00
Eladash
dddea008e9 unedat.cpp: Remove outdated lock 2022-12-30 17:48:14 +03:00
Elad Ashkenazi
dd8ec8f09e PKG install hotfix 2022-12-30 17:48:14 +03:00
Nekotekina
2f9cac8d18 fs: implement file::read_at
Reads from the given offset; does not seek; thread-safe.
2022-12-29 16:19:54 +03:00
Eladash
0d126afb1f PKG: Ask to user if he wants to install game shortcut on PKG installation 2022-12-09 12:20:57 +03:00
Megamouse
5dbadccd7f Log PSF path on error 2022-11-27 22:07:15 +01:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation (#10478) 2022-07-04 16:02:17 +03:00
Megamouse
8e667e69f6 initial cellGameThemeInstall and cellGameThemeInstallFromBuffer 2022-06-07 07:37:30 +02:00
RipleyTom
8b6f68abcf fix: parsing bug in read_metadata 2022-05-29 22:36:30 +02:00
Megamouse
5ae9de4e3b CLI: add decrypt option 2022-05-11 21:13:20 +02:00
NicknineTheEagle
1df47352cc Implemented sceNpDrmGetTimelimit 2022-05-10 23:24:00 +02:00
NicknineTheEagle
e4225cbab8 Fixed duplicate prefix in SELF log 2022-05-10 23:24:00 +02:00
NicknineTheEagle
83ca7654b1 Return NPD header in verify_npdrm_self_headers and VerifyEDATHeaderWithKLicense 2022-05-10 23:24:00 +02:00
NicknineTheEagle
8065dbc2e7 Unified NPD header in unedat.h 2022-05-10 23:24:00 +02:00
Nekotekina
580bd2b25e Initial Linux Aarch64 support
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
*   (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
Eladash
ef0bee9228 aes.cpp: Use secured memory resetting 2022-01-12 03:37:39 +03:00
clienthax
6f9adbd162 Debug SPRX check 2021-12-10 14:23:26 +01:00
Eladash
cfe08de951
Account empty EDAT (#11146)
* Improve sys_fs_open logging
2021-11-14 02:15:27 +03:00
Eladash
c49ebba648 Fixes of PS3 filesystem EDAT/SDAT handling
* Return EFSSPEIFIC if encountered corrupted EDAT or an unmatched key in sys_fs_open and sys_fs_read.
* Fix validate_dev_klic() for license-free EDAT.
* Fix EDATADecrypter::ReadData() for when size + pos > file_size but pos < file_size.
* Try to save up to 16 decryption keys. Educated guess based on NPDRM file descriptors count llimit.
* Return LICENCE_NOT_FOUND if needed RAP file is not found in sceNpDrmIsAvailable.
* Check additional sys_fs_open errors for sceNpDrmOpen. (EISDIR, ENOTMOUNTED)
2021-11-04 21:32:15 +03:00
Eladash
63f16d7a46 GUI Utilities: Implement PS3 SDAT/EDAT decryption 2021-10-02 11:29:01 +02:00
Eladash
65e9388f00 Update unpkg.cpp 2021-09-30 21:33:28 +03:00
Eladash
056d43eca7 PKG: Simplify files management 2021-09-30 20:48:47 +03:00
Eladash
4237039d53 sys_fs: Fix SDATA/EDATA file-stat 2021-09-22 14:57:16 +03:00
AniLeo
1f8f428a59 unpkg: Don't append title ID to license packages 2021-09-18 18:20:55 +01:00