Megamouse
d05d803f5e
patches: use more std::move
2024-08-15 09:35:58 +02:00
Megamouse
76c0df849a
patches: improve error logging: add file paths to all errors
2024-08-14 20:21:55 +02:00
Megamouse
4051988403
Qt/patches: improve value validation
2024-08-14 20:21:55 +02:00
Megamouse
59c58aa3cf
fix some warnings
2023-12-30 19:07:35 +01:00
Eladash
e79fc867c5
Patches: Add savable breakpoints patch type
2023-09-26 11:06:01 +03:00
Megamouse
f199ad7a42
patches: Improve location logging for invalid note sequence
2023-08-12 14:43:47 +02:00
Megamouse
d119cf6e96
Qt6 port
2023-07-31 20:03:24 +03:00
oltolm
bc40b61ef1
rename fs::stat to fs::get_stat
2023-07-25 12:15:08 +03:00
Eladash
95fb7859d2
Fixup patches
2023-07-24 17:07:15 +03:00
Megamouse
3381144d2e
Patches: improve location logging of some invalid nodes
2023-07-13 08:40:19 +02:00
Megamouse
a19883f875
Patches: do not allow empty patch names
2023-07-13 08:40:19 +02:00
Megamouse
02bac61c9c
Patches: validate yml patch offset values
2023-07-13 08:40:19 +02:00
Eladash
083b4f0d3b
Patches: Fix potential RPCS3 crashes due to invalid patches
2023-07-13 07:38:46 +03:00
Eladash
554b27a82a
PPU LLVM: Implement SELF precompilation
...
Do not use PS3 memory for precompilation.
2023-06-28 18:34:33 +03:00
Megamouse
cc145eaf2e
patches: fix move_file/hide_file error
2023-03-04 19:18:36 +01:00
Eladash
382a7c94a2
Patches: Virtual move/remove game files patches
2023-03-03 20:56:11 +01:00
Megamouse
f0c8f6d47b
patch_manager: check config values before applying them
2023-02-22 01:17:36 +01:00
Megamouse
a29dc3893f
patch_manager: change wording
2023-02-22 01:17:36 +01:00
Megamouse
c6f392bf6c
patch_manager: allow multiple dynamic values
2023-02-22 01:17:36 +01:00
Megamouse
f2ded2fdb7
patch_manager: Add dropdown labels
2023-02-22 01:17:36 +01:00
Megamouse
080737fd1f
patch_manager: add more dynamic to dynamic patches
2023-02-22 01:17:36 +01:00
Megamouse
1040757556
patch_manager: add ability to add dynamic patches
2023-02-22 01:17:36 +01:00
Margen67
5bb89328d0
Remove whitespace
2023-02-15 08:58:02 +01:00
Megamouse
9b7eaf5117
Improve error logging
2023-01-09 21:06:51 +01:00
Eladash
7df093c94b
Make it work with LLVM
...
Allow multiple entries for a single code.
2022-12-09 21:16:05 +03:00
Eladash
f572e29a13
PPU: Add new patch function for SONIC 06
2022-12-09 21:16:05 +03:00
Nekotekina
6ff6a4989a
Implement at32() util
...
Works like .at() but uses source location for "exception".
2022-09-26 18:04:15 +03:00
Eladash
64399d45c1
vm: Make falloc return value bool
...
Allow to check properly for the success of 0 address allocation.
2022-06-22 21:01:37 +03:00
Timo654
afae58b231
Interpret negative values in game patches
2022-04-18 17:01:19 +03:00
Megamouse
b04bd5fa74
patch_manager: check if address has hex format
2022-04-12 10:21:21 +02:00
Megamouse
4dfb47cdd9
Patch manager: check for invalid value node
2022-04-09 21:26:06 +02:00
Megamouse
499fe3e218
Patch manager: add node location to patch errors
2022-04-09 21:26:06 +02:00
Nekotekina
e3e6fb5489
Don't use vm::preallocated flag in patch enclave allocs
2021-12-26 14:40:21 +03:00
Eladash
75e66ab5e0
Make pad and patches config savinng atomic
2021-10-10 09:34:50 +02: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
Megamouse
129ade2f73
System: only init fxo objects if a game is started
...
The progress_dialog and patch system aren't needed unless a game is started.
Before, they were both initialized everytime we added a single game to the game list or even when simply started RPCS3.
This both means that a thread was needlessly idling all the time and even worse: The patch.yml was read countless times when we didn't need it.
2021-09-17 22:45:14 +02:00
Eladash
50ad7ba1f6
vm: Fix vm::unmap
...
* Make vm::unmap atomic, squash the memory unmapping process inside this function while still using the same VM mutex ownership.
* Make vm::unmap not fail due to random vm::get calls, shared_ptr reference count is no longer a condition.
* Fix sys_mmapper_free_address spuriously failing with EBUSY due to random vm::get calls.
* Fix sys_vm_unmap race condition due to non-atomic vm::unmap.
* Add an optional verification block ptr arg to vm::unmap, used by patches.
2021-09-13 20:53:34 +03:00
Eladash
f98595bee5
Patches/PPU: Add jump_link patch type
2021-09-10 11:46:39 +03:00
Eladash
fafefb2cf5
Fixup No.3 after #10779
2021-09-10 11:46:39 +03:00
Megamouse
3c0681ad6d
Qt: patch creator
2021-09-04 10:39:32 +02: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
ddb042148d
Patches/LLVM: Implement Complex Patches Support
2021-08-26 23:04:32 +03:00
Eladash
7fdbadf645
patch_manager: Prefer specific patches over global patches
2021-08-09 18:12:17 +02:00
Nekotekina
5724d2d4c7
Simplify umax
...
Add operator less and conversion operator.
2021-04-29 12:21:12 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
629d608d4f
Patch engine: add bd32, bd64 and utf8 patch types
...
bd32 is the same as be32 with a hint it's not executable.
utf8 is NOT null-terminated string, null can be added manually.
2021-02-12 21:43:30 +03:00
Eladash
e26ae9899c
Reimplement/fix PRX patches
2021-02-12 15:27:59 +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