Commit graph

286 commits

Author SHA1 Message Date
Nekotekina 3ecba8e57f Fix #2397 2017-02-16 17:14:29 +03:00
Cornee Traas 458dbbd15d PS3UPDAT.PUP installer (#2386)
* 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
2017-02-16 10:15:00 +08:00
Ani 63169d7679 Nekotekina: Fix loading nonexistent libs
Nekotekina's fix for preventing loading nonexistent libs
2017-02-15 02:47:54 +03:00
Nekotekina e8bfce4ebd decrypt_self() function
Fixed SPU self decryption
Fixed PSV debug self load
2017-02-11 21:36:48 +03:00
Cornee Traas fe23e0cc6e Un-malloc Crypto 2017-01-27 00:38:58 +03:00
Nekotekina 9232ddf0ab Minor changes 2017-01-25 04:43:12 +03:00
Ivan fbf8231642 PKG Installer fix (#2268)
Fix homebrew pkg
2017-01-21 16:06:28 +03:00
Nekotekina 5a36c57c57 Formatting system improved
`unveil<>` renamed to `fmt_unveil<>`, now packs args to u64 imitating va_args
`bijective...` removed, `cfg::enum_entry` now uses formatting system
`fmt_class_string<>` added, providing type-specific "%s" handler function
Added `fmt::append`, removed `fmt::narrow` (too obscure)
Utilities/cfmt.h: C-style format template function (WIP)
Minor formatting fixes and cleanup
2016-08-04 21:34:00 +03:00
Ivan da7472fe81 Optimizations (#1680)
* Optimizations

1) Some headers simplified for better compilation time
2) Some templates simplified for smaller executable size
3) Eliminate std::future to fix compilation for mingw64
4) PKG installation can be cancelled now
5) cellGame fixes
6) XAudio2 fix for mingw64
7) PPUInterpreter bug fixed (Clang)

* any_pod<> implemented

Aliases: any16, any32, any64
rsx::make_command fixed
2016-04-25 13:49:12 +03:00
Nekotekina b85fc50854 Partial commit: Crypto 2016-04-15 19:22:41 +03:00
mpm11011 617a488a0a Change size to u64 2016-03-19 21:48:56 -04:00
mpm11011 e7fc5228d5 MakeELF: Replaced wx streams with zlib functions 2016-03-18 23:36:08 -04:00
Nekotekina 960668ecf1 For #1355
offsetof() eliminated
OFFSET_32, SIZE_32, ALIGN_32 used
2016-01-14 19:07:27 +03:00
Nekotekina 8464ab6a23 Fixes (#1432)
/dev_bdvd/, rap file loading fix
2016-01-14 19:07:24 +03:00
Nekotekina 38531459df Logging system rewritten
GUI doesn't freeze anymore
Some things simplified
2016-01-13 18:54:57 +03:00
Nekotekina b3e3c68f15 File utility improved
+ minor fixes
2016-01-13 14:12:04 +03:00
Nekotekina 3ed603074c Changes done by [DH] rewritten
Added rsx_program_decompiler submodule
Added fs::dir iterator
Added fmt::match
2015-12-22 23:11:20 +03:00
Nekotekina a4db58f5f2 Added fs::file_ptr, fom::rewrite, cleanup 2015-11-14 20:26:40 +03:00
Raul Tambre 5d5a4f804b Replace most returns with CHECK_ASSERTION
Also fix some Seek methods return types being unsigned, while returning
negative errors.

Added the CHECK_ASSERTION macro checks in a couple more places.

Simplified CHECK_ASSERTION macro usage.
2015-11-09 07:42:04 +02:00
Raul Tambre 9c2f48cd1d More defect fixes, added some error codes 2015-11-09 07:39:50 +02:00
Raul Tambre fac9d74344 Lots of defect fixes 2015-11-09 07:39:50 +02:00
Nekotekina a974ee009e vm::var improved, cleanup
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00
Nekotekina 4e62ec7458 PKG Installer fixed, u128 improved 2015-09-22 13:28:32 +03:00
Nekotekina ce494f8847 fmt::by_value, fmt::Format removed 2015-08-24 21:22:42 +03:00
Nekotekina 73b108765e fs:: const renaming, fs::g_tls_error stub 2015-08-24 21:22:39 +03:00
Nekotekina 8b3c250702 PKG decryption without the intermediate 2015-08-24 21:22:28 +03:00
Nekotekina 9923f96431 Added PSP PKG support 2015-08-24 21:22:21 +03:00
Raul Tambre 14897b23b7 Minor formatting 2015-07-26 16:44:55 +03:00
Nekotekina 39f836b495 re32/se32/... macro eliminated, some fixes 2015-07-10 04:31:09 +03:00
Nekotekina ef6f9f6ded be_t constructor implemented, make() eliminated
be_t enums are forbidden, le_t improved, some operators cleaned.
2015-07-10 04:31:07 +03:00
Nekotekina 78fdcf75e7 Attribute macro changed
__forceinline -> force_inline
__noinline -> never_inline
printf_alike(x,y) added
2015-05-28 18:14:22 +03:00
Hykem d18d19870f Merge pull request #1062 from Nekotekina/master
SPURecompiler improved
2015-04-25 19:32:47 +01:00
Nekotekina 5d6d058965 Fix 2015-04-25 01:18:12 +03:00
Nekotekina 74b3580b69 rfile_t renamed 2015-04-25 00:38:11 +03:00
Nekotekina fbc268e993 rFileName removed 2015-04-23 19:58:37 +03:00
Nekotekina 56c64c8045 VFS::CreatePath fixed, bugfixes 2015-04-20 18:53:31 +03:00
Nekotekina 3b26031692 Bugfix 2015-04-20 01:26:28 +03:00
Nekotekina ab405901ee wxFile removed (rFile -> rfile_t) 2015-04-19 16:19:24 +03:00
luxsie 0f1bb8545d Tab to Space. 2015-04-18 03:12:25 +08:00
luxsie 900389d857 CppCheck: Tried to classify and marked some lines that weird. 2015-04-10 20:13:25 +08:00
Nekotekina 6d1c9f2764 Some warnings fixed 2015-01-25 19:23:24 +03:00
Nekotekina f1f51521f4 PKG installer fixed 2015-01-13 20:38:32 +03:00
Nekotekina fe86869f37 Fix 2015-01-13 03:10:39 +03:00
Nekotekina 7372583cab Compilation fix 3 2015-01-12 23:37:29 +03:00
Nekotekina e40347dd53 Compilation fix 2 2015-01-12 22:31:11 +03:00
Nekotekina 27cfdc897b PKG installer improved
Now it doesn't attempt to delete existing directory and overwrites only
existing files. It should fix installing updates.
2015-01-04 19:44:54 +03:00
DHrpcs3 969cf67ba8 Implemented frame limiter
Some errors in unpkg replaced with warnings
2014-12-21 22:42:15 +02:00
DHrpcs3 598d929aba Implemented LLE Modules Manager (draft)
Improved loader core.
Implemented *_thread wrappers.
Minor fixes.
Temporary disabled ELF Compiler & DisAsm frame.
2014-11-19 16:16:30 +02:00
Nekotekina 6b0857dcff Conflicts fixed 2014-10-02 16:19:52 +04:00
Hykem faeedf1355 Fixed compilation errors. 2014-10-01 15:15:04 +01:00
Hykem 6d6c1a9672 Updated the Crypto Engine:
- Fixed several bugs in unedat;
- Improved EDAT/SDAT file decryption.
2014-10-01 14:57:44 +01:00
Nekotekina 66000240ac vm::atomic update, be_t update
1) MakeFromLE replaced with make(), MakeFromBE removed. Compiler seems
to be able to optimize it anyway.
2) be_t<> conversion operator temporarily replaced with conversion
through LE because it can't work with all possible numeric conversions
(float<>int for example)
2014-09-20 03:16:11 +04:00
Nekotekina 597d07bf24 Small refactoring 2014-09-15 02:17:24 +04:00
Arkaran99 7dafb164e8 Remove unused include and very small refactoring.
Unused include in unself.h, ELF.h.
New line after an if to enable debugging.
Rewrite strange boolean expression in ELF.cpp.
2014-09-13 20:38:18 +02:00
Arkaran99 1e60319be2 Fix compile errors in Debug - MemLeak.
Add rpcs3/define_new_memleakdetect.h to save and replace new operator with Visual Studio Memory Leak Detection's operator.
Add rpcs3/restore_new.h to restore new operator to a previous saved state.
2014-09-07 10:43:25 +02:00
Lioncash 82840282fb Core: Apply const to some functions 2014-08-31 16:12:09 -04:00
Nekotekina 61c4a88ab4 rFile.h, Thread.h, IdManager.h includes moved 2014-08-25 18:56:13 +04:00
Nekotekina b005ee3cda Log include fixes 2014-08-23 18:51:51 +04:00
Sacha e8525a6f14 More rFile cleanups and fixes.
Was using fileExists/dirExists before when really should have just been exists. File or Dir doesn't matter and would only create false negatives.
Current working directory shouldn't really be used at all. This is just the folder the application is run from (not even where the .exe resides).
Some of the infos required by vfsLocalDir such as executable may not be portable. Not sure of their intended function as they are never used.
2014-08-01 04:20:00 +10:00
raven02 ebec856a36 EDAT: list the edat files name 2014-07-30 05:45:23 +08:00
Alexandro Sánchez Bach 3689560617 Minor fixes and changes 2014-07-23 20:36:57 +02:00
Nekotekina 74914c5916 be_t<> constructor elimination 2014-07-18 20:55:26 +04:00
Sacha 6e06fdf638 Stdafx: Major header cleanup 2014-07-12 16:33:04 +10:00
Peter Tissen 95f1a0e645 use only one set of logging macros instead of two and don't use free() as a function name 2014-06-27 15:28:17 +02:00
Peter Tissen 21da317453 Logging system rework
* use one central unified log with channels/priorities ad-hoc listener registration and de-registration
* disable buffering by default
* add multi-threaded ringbuffer implementation
* use buffered listener for the gui (using the ringbuffer)
2014-06-26 17:34:28 +02:00
raven02 0ed518a85d Add EDAT_FLAG_0x3C/0x3D 2014-06-26 00:11:10 +08:00
raven02 eb7128bcc1 Log error when flag 0x3c/0x3d EDAT files detected 2014-06-26 00:10:17 +08:00
Peter Tissen c37905e465 initial start to eliminate static func init, not compilable atm
move module initialization into a module manager, still has some issues like stopping not working and debug crashing

add #idef 0 to modules that aren't in the windows project

don't double initialize and don't de-initialize for now, since many modules don't expect it and it leads to many errors

remove duplicate module lists for empty modules and implemented ones, make Module non-copyable but movable

add secondary project, no real use for it now

add some memleak config to the emucore and add asmjit path to rpcs3

small rebase error fixed to get it to compile again

add filters for emucore

re-add the module manager and static file

WIP commit, linker errors abound

some more abstraction layer stuff

fix the remaining linker errors, re-enable platform specific mouse, pad and keyboard handlers

rebasing

fix memset undefined and re() usage of se_t before declaration

Add wxGUI define by default for cmake builds

fix copy constructors of Datetime header

fix copy constructors of other wx interface classes

remove static declarations of global variables

make wxGLCanvas constructor non-ambiguous even with wx2.8. compat mode, fix wrong std::exception constructor calls

remove duplicate definition for FromUTF8 and ToUTF8

temp changes
2014-06-08 23:16:06 +02:00
Peter Tissen 40add8f9a2 Seperate ConLog.h and ConLogFrame.h (for now only seperate headers)
make precompiled header slimmer under Linux to increase CI and dev-machine build-times

make sure unused modules don't compile
add unused modules to the VS project to easier keep track of them
2014-06-06 02:50:22 +02:00
Unknown W. Brackets 2fdefc4fb5 Fix some int/ptr comparisons. 2014-04-28 07:43:06 -07:00
Bigpet eea3aa9729 This is squashed commit from the follwing commits:
* various changes to make it compile with clang

* don't compile recompiler on linux yet but make the CMake build include asmjit already

* add experimental travis bot

* modify yml to match

* try to build and install wxWidgets, since it's not in the travis repo

* use newer cmake version for travis

* add keys with sudo

* use sudo for all apt- commands

* Add additional dependencies

* use version approriate gcc flags for c++11

* try clang, gcc too old

* set c++0x flag for clang

* use gcc 4.8

* use gcc 4.8 and add the repo for it

* use gcc 4.8 even for clang to get newer headers

* fix ambiguous conversions

* add lz from hykem and more explicit conversions from be for x86

* more switch disambiguation

* more switch disambiguation

* add additional unigned int casts to deal with be_t conversion ambiguity

* remove unnecessary clang flag

* add lz.cpp to vcxproj and cast to u32 instead of unsigned int

* correct temporaray #ifdefs
2014-04-27 00:41:46 +02:00
Bigpet 25c3aa8e19 fixes to get llvm to compile (excepti for utils.cpp, that'll get fixed
later)

Eradicate the Array almost everywhere, some usages like Stack still
remains
2014-04-12 12:06:52 +02:00
Peter Tissen d65968b41d unify line endings to shut up VS 2014-04-12 11:42:20 +02:00
Peter Tissen 4066950975 Various warning fixes and devirtualization
* Remove ArrayString
* devirtualize GetCount and SetCount, they're no longer needed
* set storage duration of fmt::placeholder to extern to be consistent
* make length unsigned and the return value of sprintf signed
* remove dead code "s.Close()" is never reached
* devirtualize WrteToLog()
* devirtualize Ini functions
2014-04-08 19:41:47 +02:00
Alexandro Sánchez Bach bc095322c3 Merge pull request #153 from Bigpet/wxString_exorcism
wxString exorcism
2014-04-01 18:25:33 +02:00
Peter Tissen 8ac226ae69 replace all instances of wxString with std::string in all cases not
directly involved in either the GUI or other wxWidget classes like wxFile
2014-04-01 16:23:03 +02:00
lioncash c4b64c8d9f Fix variable typos in unedat.cpp
Also fixed possible uninitialized variable usage. Initializes length to zero.
2014-03-31 08:59:52 -04:00
lioncash e47e37a8d2 Fix some memory leaks in unedat.cpp. 2014-03-31 08:56:24 -04:00
darkf 61d0e4ee54 Rename xor to xor_ to allow build to continue in compliant compilers 2014-03-31 00:55:27 -07:00
Hykem 196c2ffe5b Updated the crypto engine:
- Updated AES and SHA-1 source code;
- Fixed a few code warnings;
- Implemented EDAT/SDAT decryption.

Started SPURS implementation:
- Added an internal SPURSManager class draft;
- Added several drafts for cellSpurs functions.

Implemented key.edat decryption in sceNpDrmIsAvailable:
- NOTE: Currently, the decrypted key.edat is stored under dev_hdd1/titleID and the user must replace this file in dev_hdd0. This behavior will change in the future as it's currently intended for controlled testing only.
2014-03-30 21:09:49 +01:00
nohbdy d533572ee9 Minor code and memory initialization fixes
* Explicitly initialize member variables in SELFDecrypter, MemInfo, and
VirtualMemoryBlock
* Zero out memory used for counter/nonce in aes-ctr
* Fix use of a ControlInfo pointer after it is added to an Array via
Array::Move (which makes it an invalid pointer) in
SELFDecrypter::LoadHeaders
2014-03-27 22:16:14 -05:00
Alexandro Sánchez Bach 8204deaae6 Minor changes
* Fixed some forgotten `!` in cellFsGetFreeSize.
* Fixed VSUM2SWS opcode.
* Added cellNetCtl to the project.
* Implemented cellNetCtlGetState.
2014-03-04 15:40:15 +01:00
Aishou d32025ae3c more fixes... 2014-03-04 09:37:28 +01:00
Aishou 354cf24302 fix gcc compile... 2014-03-03 14:51:54 +01:00
Alexandro Sánchez Bach 05db17b2b0 Fixed x64 compilation errors & cellFsGetFreeSize 2014-03-03 14:16:42 +01:00
Hykem a1adc6cdaa First installment of RPCS3's custom crypto engine:
- Removed all scetool dependencies;
- Implemented a key vault to manage PS3 keys internally;
- Implemented SELF decryption;
- Improved PKG handling.

Notes:
- NPDRM SELF files (EBOOT.BIN) can also be decrypted. A valid matching RAP file must be placed under the dev_usb000 folder.
- The source code is considerably commented and several debugging functions were also added in order to aid anyone who wishes to contribute to the engine.
2014-03-03 04:48:07 +00:00