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
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
- 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.
* Using be_t in CellGcmControl, CellGcmConfig, CellGcmContextData and
CellGcmTileInfo.
* Fixed wrong names in Emu/SysCalls/Modules/sceNp.cpp
* Fixed ConLog's mount info strings in System.cpp
* replace GetThreadID with std::this_thread.getId()
* name all anonymous structs and unions that contain non-trivially constructable objects
* made default constructor for big endian type noexcept to make it work with std::atomic
* move instantiated specialized template function members ouside of the class definition to comply with the standard
* added default instantiation for template parameter "=nullptr"
* used the C++11 standardized thread_local instead of the __declspec(thread)
* added transitional definitions to bridge the microsoft specific calls (compare and exchange and aligned alloc)
* removed cyclic dependency between Emulator->CPUThreadManager->CPUThread->SMutex->Emulator->...
* fixed some instances of indentation by space instead of tabs
* surrounded some unused code with an #if 0 block to make sure it doesn't compile
- Added drafts for event flag emulation;
- Implemented memory locking/unlocking;
- Refactored common SC_Memory objects;
- Implemented VM (virtual memory) syscalls;
- Improved cellGameBootCheck;
- Added more dummy values to cellVideoOutGetDeviceInfo;
- Mapped functions sys_mmapper_allocate_memory and sys_mmapper_map_memory to sysPrxForUser;
- Mapped syscalls 341 and 342 (duplicates of 324 and 325) to sys_memory_container_create and sys_memory_container_destroy;
Improved PKG installation routine:
- Allow immediate game booting;
- Fixed and improved game folder path handling.
SELF decrypter improved:
The files 'scetool.exe' and 'zlib1.dll' are no longer needed. Everything
needed is now included in the rpsc3 project. So the only thing you need
in order to load SELF files are the keys. More information about this
matter in my last commit: c1565e55
Warning for devs! There is a lot of spaghetti code in /scetool/. I
fucked up things a bit while trying to include scetool in rpcs3. There
is a lot of unused code there and I need to make sure that everything is
working properly. In any case, the code seems to work stable so
end-users shouldn't be worried about this warning. ;-)
'About...' dialog added:
Well, I have nothing more to say here. I wish you all a nice day!
This SELF decryption feature is not portable and its code looks really
ugly. It is experimental and is meant to save time to developers when
doing tests with SELF files. Besides that, it works (under Windows). :-)
How to use it:
1. Place "scetool.exe" (and "zlib1.dll") into the main rpcs3 folder.
2. Obtain a LEGAL copy of the SELF decryption keys and place them in a
folder named "data" next to the main executable in a format that is
readable for "scetool.exe". That is, following files should be present:
data/keys
data/ldr_curves
data/vsh_curves
(See screenshot in the comments)
NOTE: These are the steps to enable SELF decryption and it applies to
future commits regarding this matter. We do NOT take any responsibility
about the way you obtain the keys or (until we include SELF decryption
into our code) the actions "scetool.exe" (or "zlib1.dll") perform.
*Implemented 'cellMouse*' functions from 'sys_io' module, which are part
of the libmouse library.
* Added corresponding entries in the 'Config > Settings' menu to change
the handler of the mouse. Supported handlers: Windows, Null.
* cellGifDec: Fixed some errors and added support for RGBA color.
(Remember: The mouse support is very experimental)
* Implemented 'cellKb*' functions from 'sys_io' module, which are part
of the libkb library.
* Added corresponding entries in the 'Config > Settings' menu to change
the handler of the keyboard. Supported handlers: Windows, Null.
INFO: This keyboard library is *very* experimental and I am aware of
some bugs. There will be improvements soon.