Eladash
b875a86e1d
PRX: export functions on start()
2022-11-09 02:28:12 +03:00
Eladash
0a35a62235
sys_prx: Make PPU imports/exports thread-safe
2022-11-09 02:28:12 +03:00
Eladash
af8c871411
Add origin PRX names for log messages
2022-10-02 20:03:27 +03:00
Nekotekina
6ff6a4989a
Implement at32() util
...
Works like .at() but uses source location for "exception".
2022-09-26 18:04:15 +03:00
Nekotekina
b49a1f27eb
Warning fixes
2022-09-17 16:35:02 +03:00
Eladash
92514e33bb
Avoid reservation notifications in liblv2.sprx
2022-09-13 11:21:01 +03:00
Eladash
4ac59875af
ppu: add some debug information
2022-09-12 15:04:23 +03:00
Eladash
d36cf71a2d
Savestates: Fix PPU analysis when patches are applied
2022-08-21 15:02:01 +03:00
Eladash
983bfa2088
Savestates: Decryption of executable fix
2022-07-08 12:57:43 +03:00
Eladash
c8c035eeef
Regression fix
2022-07-06 20:07:09 +02:00
Eladash
f546e5a8ef
VM/Savestates: Replace bugged read-only block optimization
2022-07-06 19:43:25 +03:00
Eladash
d6cf167d52
Savestates: Minor optimization of size
2022-07-05 08:25:36 +02:00
Eladash
72c14994f0
Savestates: Fix memory containers initialization (invalidates old savestates)
2022-07-05 08:25:36 +02:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation ( #10478 )
2022-07-04 16:02:17 +03:00
isJuhn
4262794668
Implement PINE IPC Server
2022-06-19 17:56:50 +02:00
RipleyTom
da6434a65a
Implements sys_fs_fcntl 0xC0000008 & 0xC000001A ( #11957 )
2022-06-11 13:12:42 +01:00
Eladash
1f5ce4f619
Loader: Fix out-of-bounds access of string
...
There was no need to manually align size, it only creates a bug with memcpy usage.
2022-05-13 19:53:48 +03:00
Eladash
524da5dc54
LV2: Memory state post-exitspawn fixes
...
* Fix memory capacity if SDK version of the following executable differs from the original process'.
* Keep user memory containers, they are not freed at exitspawn!
Hw test 4bf60023ee
2022-05-13 13:15:07 +03:00
Eladash
63669000ab
PPU Loader Fix removing writablity permission for RSX/SPU writable segments
2022-05-04 12:03:10 +03:00
Eladash
f9a62667cf
SPU/PPU Loader: Implement linker/PS3 compiler executable files loading
2022-05-03 20:47:36 +03:00
Eladash
5eeb79ffa1
Fix forced HLE injection
2022-05-01 09:21:49 +02:00
Nekotekina
14951d8713
Fix abuse of fs::pending_file
...
Debug dumps don't fall into category which needs atomic rewrite.
2022-01-24 22:39:01 +03: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
ab50e5483e
GUI Utilities: Implement instruction search, PPU/SPU disasm improvements ( #10968 )
...
* GUI Utilities: Implement instruction search in PS3 memory
* String Searcher: Case insensitive search
* PPU DisAsm: Comment constants with ORI
* PPU DisAsm: Add 64-bit constant support
* SPU/PPU DisAsm: Print CELL errors in disasm
* PPU DisAsm: Constant comparison support
2021-10-12 23:12:30 +03:00
Eladash
65c9cd99cd
Patches/PPU: Implement HLE/LLE/With-TOC function call patches
...
Example patches:
[ jumpf, 0x12340, "cellGcmSys:cellGcmSetFlip"] // Places a call to cellGcmSetFlip at 0x12340
[ jumpf, 0x12340, "cellGcmSys:0xDC09357E"] // Same, using FNID
[ jumpf, 0x12340, 0x2345678 ] # Function OPD based call eading OPD at 0x2345678
2021-09-26 20:49:57 +03:00
Eladash
f98595bee5
Patches/PPU: Add jump_link patch type
2021-09-10 11:46:39 +03:00
Nekotekina
ad6a72e369
Fixup for #10779
2021-09-01 14:38:20 +03:00
Eladash
b40ed5bdb7
Patches/PPU: Extend and improve patching capabilities (code allocations, jumps to any address) ( #10779 )
...
* Patches/PPU: Implement dynamic code allocation + Any-Address jump patches
Also fix deallocation path of fixed allocation patches.
2021-09-01 13:38:17 +03:00
Eladash
a0c1b250b6
Fix HLE LWMutex setting - Implement dynamic initialization of HLE functions
2021-07-31 21:47:22 +03:00
Megamouse
bb9c063e80
Remove unused ppu_initialize declaration
2021-07-29 10:18:20 +02:00
Eladash
c84e5489f2
vsh.self: Fix execution on default settings ( #10586 )
2021-07-20 00:36:32 +02:00
Eladash
b087d79a08
PPU debugger: Implement function names at the starting instruction
2021-07-18 13:23:18 +02:00
clienthax
9c5c4457b6
Stub libfs_utility_init to bypass FSCK checks by vsh.
2021-07-17 18:56:07 +02:00
Eladash
f103004aa0
sys_prx/overlay: Fix disambiguator of module names opened by FD ( #10340 )
...
Don't append zero offset.
2021-05-26 23:38:17 +03:00
Nekotekina
160b131de3
types.hpp: implement smin, smax, amin, amax
...
Rewritten the following global utility constants:
`umax` returns max number, restricted to unsigned.
`smax` returns max signed number, restricted to integrals.
`smin` returns min signed number, restricted to signed.
`amin` returns smin or zero, less restricted.
`amax` returns smax or umax, less restricted.
Fix operators == and <=> for synthesized rel-ops.
2021-05-22 12:10:57 +03:00
Eladash
57cd4ff3c6
Move HLE table address to FXO ( #10284 )
2021-05-17 14:22:27 +03:00
Eladash
daa53b77cf
Simplify named_thread construction
2021-05-01 18:08:03 +03:00
Megamouse
41b68ef353
some more constants
2021-04-23 22:02:52 +02:00
Nekotekina
0c9c481cee
Use requires syntax in more places
...
Change style in some places.
2021-04-19 16:51:40 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Eladash
32116086b3
Implement _sys_prx_register_module loading imports/exports functionality
2021-04-03 17:23:40 +03:00
Eladash
878da3b474
Implement get_cellos_appname()
...
Identifying vsh.self and possibly other operating system executables in the future.
2021-04-03 17:23:40 +03:00
Eladash
1e71deb0db
rsx: Compile shaders when CELL is not running
2021-03-30 11:13:47 +03:00
Eladash
cfa2d4aaa8
Loader: Log FNID of imported/exported functions
2021-03-11 15:23:58 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
xddxd
df338f0552
Move sys_crashdump to it's own file and make it a module itself
2021-03-08 22:57:35 +03:00
Nekotekina
52fe86b56c
fixed_typemap.hpp: make it a bit fool-proof
...
Require objects to be non-copyable (move is still allowed).
2021-03-02 21:58:49 +03:00
Nekotekina
ea5e837bd6
fixed_typemap.hpp: return reference
2021-03-02 16:08:14 +03:00
Eladash
9ccf39b27f
Atomic SPU LS capture writes
2021-02-23 11:29:23 +03:00
Eladash
f009d36811
Update log messages of PPU/SPU hashes and patches applied
2021-02-14 09:35:42 +01:00
Eladash
423cc1685c
PPU LLVM: Reduce PRX/OVL compilation memory usage a little
2021-02-13 13:05:41 +03:00
Eladash
e26ae9899c
Reimplement/fix PRX patches
2021-02-12 15:27:59 +03:00
Nekotekina
9e9a55df46
PPU LLVM: compile instructions from patches
...
For now, only as a single instruction at a time.
2021-02-07 11:02:31 +03:00
Nekotekina
9463238490
PPU Analyser: minor fixups for end pointer
...
Add more sanity checks for sections.
Remove some redundancy.
2021-02-07 11:02:31 +03:00
Nekotekina
b7ff2ecffb
Patch system: export some info for future use
...
For now it's just a list of addresses.
For now it's not used (just a stub).
2021-02-07 11:02:31 +03:00
Nekotekina
08aaae7999
PPU LLVM: workaround patch handling
...
Try to address #9704
2021-02-02 10:33:13 +03:00
Nekotekina
58eef983e2
PPU Analyser: fix constraints for all elfs.
...
Added for main executable and OVLs.
Forgot to use it not just for SPRX.
2021-02-01 19:14:24 +03:00
Nekotekina
0c034ad7de
PPU LLVM: upgrade to GHC call conv
...
Get rid of some global variables.
Implement ppu_escape (unused yet).
Bump PPU cache version to v4.
2021-02-01 11:30:50 +03:00
Nekotekina
d5f16ce272
PPU Analyser: better constraints for SPRX
2021-02-01 11:30:50 +03:00
Nekotekina
f9ee8978ff
PPU LLVM: improve analyser
...
Compile possibly executable holes between detected functions.
Add unused "PPU LLVM Greedy Mode" option (for future updates).
Add "nounwind" attribute to compiled functions (reduces size).
2021-02-01 11:30:50 +03:00
Eladash
82c86ed2f7
Implement standalone OVL (overlay) loading mode
...
* Allow to load OVL alone.
* Add error checks in ppu_load_exec(), do not crash on error.
* Fix crash on exit from standalone PRX mode, allow kernel explorer to work with it as well for the added OVL mode.
2021-01-31 15:47:05 +03:00
Eladash
e3b3b0cda7
PPU LLVM: Precompile all executable (PRX, MSELF, overlay) code at startup ( #9680 )
...
* Precompile LLVM cache at startup of games, like the GUI "Create PPU Cache" option.
* Allow OVL (overlay) precompilation as well (used by certain games).
Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-01-30 16:08:22 +03:00
Nekotekina
db8e6fe7a7
Enable -Wunused-variable
2021-01-12 14:34:14 +03:00
Eladash
951fe3491e
PS3 Loader: Fix sections memorizing
2021-01-06 23:21:38 +03:00
Nekotekina
eec11bfba9
Move align helpers to util/asm.hpp
...
Also add some files:
GLTextureCache.cpp
VKTextureCache.cpp
2020-12-18 18:07:42 +03:00
Nekotekina
fb29933d3d
Add usz alias for std::size_t
2020-12-18 12:23:53 +03:00
Eladash
bfe1a8673a
PPU: Allow HLE execution from pure instruction decoder type interpreter
2020-12-15 11:18:51 +03:00
Eladash
7eb16e13bb
PRX loader: Fix libfs_155.sprx loading
...
Fix relocations' segments referencing when there are "empty" (memsize=0) LOAD segments.
2020-12-15 11:16:45 +03:00
Eladash
e5603fec1e
Firmware libraries settings overhaul
2020-12-13 21:52:24 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +03:00
Nekotekina
5d934c8759
Improve narrow() and size32() with src_loc detection
2020-12-09 16:26:20 +03:00
Nekotekina
e055d16b2c
Replace verify() with ensure() with auto src location.
...
Expression ensure(x) returns x.
Using comma operator removed.
2020-12-09 15:43:38 +03:00
Eladash
2602be426f
Allow emulation to work without firmware ( #9367 )
...
* Allow emulation to work without firmware
* Fix HLE prx path detection.
* Fix manual list loading bugs.
* Fix HLE gcm
* GUI: Fix fonts search
* GUI: Hardcode sprx list
Do not depend on /dev_flash/sys/external/ contents.
2020-12-07 20:10:34 +03:00
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
Nekotekina
1c99a2e7fb
vm: add map_self() method to utils::shm
...
Add complementary unmap_self() method.
Move VirtualMemory to util/vm.hpp
Minor associated include cleanup.
Move asm.h to util/asm.hpp
2020-11-08 16:43:15 +03:00
Megamouse
2cee26c3e7
Cleanup some includes
2020-10-31 11:53:46 +01:00
Eladash
b998852385
LV2: cleanup syscall table ( #9106 )
...
Remove old ppu_get_syscall_name from PPUFunction.cpp for deduplication.
2020-10-21 10:04:34 +03:00
Eladash
953663e00b
Fix ppu_execute<Func> for HLE functions
2020-10-16 22:48:02 +03:00
Eladash
59be63167f
Prettify SPU image name of dumped images
2020-10-07 01:12:45 +03:00
Eladash
983547af7e
SPU: Embedded PRX/overlay image patching and dumping
2020-10-06 13:06:25 +03:00
Eladash
17f7f329a8
Log PRX segment end for usage with kernel explorer
2020-08-27 23:52:37 +01:00
Bevan Weiss
ada6db2df4
Replace ppu_module_manager Function Static with Class Static variable (static module map) ( #8669 )
...
* Replace ppu_module_manager Function Static with Class Static
Makes for a slightly 'cleaner' interface in my opinion, may also assist with adding thread read/write concurrency support in future if ever required (have left that out of this commit to match existing function).
Very slight performance improvements were seen in representative testing.
https://quick-bench.com/q/GMbgeNc-mZc21aqOKCofnbzPZvg
I didn't investigate whether static initialisation of the static_modules might actually be possible here, perhaps there's a way to do a constexpr / consteval of this.
* Fix up for old style cast syntax..
* Fixups from PR comments
Plus remove spurious type_traits include (from me) not picked up in previous PR
* Remove old code
* Update rpcs3/Emu/Cell/PPUModule.h
Co-authored-by: Eladash <elad3356p@gmail.com>
* Fix naming of static variable
Co-authored-by: Eladash <elad3356p@gmail.com>
2020-08-06 12:34:08 +02:00
illusion
3157a10428
move executable hash log level to success
2020-07-22 10:51:19 +02:00
Eladash
e45d37073a
debugger: Shortend SPU/PPU thread names
2020-06-24 17:44:06 +02:00
Nekotekina
e1042bc631
Get rid of "module" keyword
...
Workaround some intellisense problems.
2020-05-06 18:20:11 +03:00
Eladash
ae1ff1e96d
ppu exec loader: Log TLS image information
2020-04-12 10:30:38 +01:00
Megamouse
b1fdbc7fcc
Move some format functions
2020-04-06 20:59:58 +02:00
Eladash
dc5cdb3bb4
sys_ppu_thread: reduce global memory stats after thread creation
2020-04-05 15:23:09 +03:00
Whatcookie
cc100f4008
Fix alignment on embedded spu elf searching ( #7894 )
...
- They are actually 128 byte (1024 bit) aligned.
2020-03-29 03:54:45 +01:00
Nekotekina
acd50eefaf
Try to use designated initializers
2020-03-06 09:42:49 +03:00
Eladash
f6cf36f6a7
Fix _sys_prx_get_module_info p0pt->filename writing with 0 size
2020-03-05 18:28:56 +03:00
Nekotekina Aux1
250736ece5
Fix warnings in emucore
2020-03-04 21:23:34 +03:00
Eladash
d7dd4897f8
Allow 0x30000000 > addr >= 0x2000000 ppu loader exec allocations (workaround)
2020-02-29 13:06:14 +03:00
Ivan
e133c7a7dc
Merge pull request #7506 from elad335/patch-1
...
PPU exec/ovlm ldr: restrict allocations
2020-02-27 22:55:30 +03:00
gamerforEA
93552a5958
Apply some Clang-Tidy fixes
2020-02-27 00:38:55 +03:00
AniLeo
3aa293a7a3
hle: cellAuthDialog
...
Basic RE of cellAuthDialog, stubs functions
2020-02-22 16:03:14 +03:00
Nekotekina
92e3eaf3ff
Fix signed-unsigned comparisons and mark warning as error (part 2).
2020-02-19 22:54:58 +03:00
Nekotekina
771eff273b
First part of fixing sign-compare warning (inside be_t).
2020-02-19 22:54:58 +03:00
Megamouse
fe75311be2
move config structs to own files and clean up some headers
2020-02-17 15:08:17 +03:00
Eladash
812d03894b
PPU exec/ovlm ldr: restrict allocations
2020-02-16 22:48:23 +02:00