1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 18:53:28 +01:00
Commit Graph

1603 Commits

Author SHA1 Message Date
Megamouse
cc145eaf2e patches: fix move_file/hide_file error 2023-03-04 19:18:36 +01:00
Megamouse
92ae57c9ee Windows: log more descriptive errors 2023-03-04 18:34:56 +01:00
Eladash
382a7c94a2 Patches: Virtual move/remove game files patches 2023-03-03 20:56:11 +01:00
Megamouse
e46dba43ad config: try to fix float locale issues 2023-02-25 11:23:07 +01:00
Megamouse
afad96a52a Qt: try to fix QString::toDouble locale nonsense 2023-02-25 11:23:07 +01:00
kd-11
7db6594358 rsx/overlays: Use lf_queue for a lock-free stack implementation 2023-02-24 00:46:53 +03:00
Megamouse
ccb7528a59 fix some warnings 2023-02-22 23:57:20 +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
9375e255e1 overlays: add pages to home menu 2023-02-09 20:36:35 +01:00
Jan Beich
3eaa29e7c2 Thread: silence -Wsign-compare on FreeBSD aarch64
Utilities/Thread.cpp:1805:48: error: comparison of integers of different signs: 'uptr' (aka 'unsigned long') and '__register_t' (aka 'long') [-Werror,-Wsign-compare]
        const bool is_executing = uptr(info->si_addr) == RIP(context);
                                  ~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~
2023-01-19 18:49:06 +03:00
brian218
d2dc57585c sys_fs: Improved sys_fs_fcntl(0xc0000015&0xc000001c) 2023-01-18 08:09:35 +01:00
kd-11
439bdde849 rsx: Fix printing of expected values 2023-01-11 16:48:53 +03:00
Megamouse
9b7eaf5117 Improve error logging 2023-01-09 21:06:51 +01:00
Elad Ashkenazi
382a27cb2f
Allow to cancel dir size calculation (#13134) 2022-12-30 09:34:35 +01:00
Nekotekina
eeda958f33 fs: fix read/read_at/write (Unix)
It's known that too huge read can require multiple syscalls.
2022-12-29 16:19:54 +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
Megamouse
96c6dc01eb Qt: Implement config check in Utilities and log viewer 2022-12-22 09:09:51 +01:00
Elad Ashkenazi
baa2768a69 StrUtil.h: Prevent an overflow in strcpy_trunc 2022-12-17 19:55:16 +01:00
kd-11
04fb86556a rsx: Fix surface metadata life-cycle
- Beware of clone operations. Blindly inheriting the parent's metadata is wrong.
- It is possible, especially when reusing a pre-existing slice, that the parent and child info has diverged
2022-12-17 20:16:58 +03:00
Eladash
8980fc5524 rsx: Fix exceptions 2022-12-17 14:27:20 +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
kd-11
0aaa40cd53 ux: Update vcredist links and optionally disable help text from error dialog 2022-12-06 20:46:35 +01:00
Megamouse
a6b44ea1bb Qt: support fatal error as htmk 2022-12-06 20:46:35 +01:00
Elad Ashkenazi
ad3ea966cb
Add RPCS3/games/ for automatic games detection, support PSN games outside HDD0 (#12982)
* SFO: Do not load PARAM.SFO with illegal TITLE_ID
* Add support for PSN games outside HDD0
* Add RPCS3/games/ for automatic game detection
2022-12-02 13:18:07 +03:00
Eladash
e9e139c364 logs improvements
* Do not use unsafe pointer arithmetics exceeding existing memory. (exceeding m_fptr)
* Properly use the enire 32MB of the buffer, previously only 16MB were used for cuncurrent access.
* Fix a bug occurring after attempting to push 1TB (40 bits).
* Flush the log before hitting a debugging breakpoint.
2022-11-28 18:52:11 +03:00
Eladash
8b934abcf2 Improve error_code, make HDD1 errors be warnings 2022-11-26 16:33:47 +03:00
Nekotekina
bf388e5428 cfmt/StrFmt: support s128 formatting (untested) 2022-11-26 09:30:11 +03:00
Eladash
b57ab74ee7 cfg: Partial support for case-insensitivity for true-false settings 2022-11-05 10:36:46 +01:00
Eladash
0113224cb6 cfg: Implement float config entry
Add missing string empty checks
2022-10-24 00:10:37 +02:00
Nekotekina
6ff6a4989a Implement at32() util
Works like .at() but uses source location for "exception".
2022-09-26 18:04:15 +03:00
Nekotekina
a604394b20 BufferUtils: fix regression on AVX path
primitive_restart_impl::upload_untouched was broken.
Bug in vec_broadcast_gpr on AVX path.
2022-09-24 17:23:12 +03:00
Nekotekina
b49a1f27eb Warning fixes 2022-09-17 16:35:02 +03:00
Nekotekina
a9437d69ab simd_builder: fixups
Fix resetting vmask in reduce() step.
Fix AVX-512 loads in vec_load_unaligned().
Fix bzhi reg size in build_look().
2022-09-08 18:12:15 +03:00
Nekotekina
5d91caebe9 Linux: delete /tmp/perf.map on exit 2022-09-08 16:56:06 +03:00
Nekotekina
82258915da BufferUtils: rewrite remaining intrinsic code with simd_builder 2022-09-07 17:59:07 +03:00
Nekotekina
11a1f090d3 BufferUtils: simd_builder refactoring
Some simplifications implemented.
2022-09-07 17:59:07 +03:00
Elad Ashkenazi
b7599c0f30 Update Thread.cpp 2022-08-31 22:19:05 +03:00
Elad Ashkenazi
d8494ef1ae Update Thread.cpp 2022-08-31 22:19:05 +03:00
Elad Ashkenazi
727b32e886 RawSPU: Do not assume GPU memory fault on SPU MMIO 2022-08-31 22:19:05 +03:00
Nekotekina
80f0741103 simd_builder: fix constant locations 2022-08-29 14:32:56 +03:00
Nekotekina
e28707055b Implement simd_builder for x86
ASMJIT-based tool for building vectorized loops (such as ones in BufferUtils.cpp)
2022-08-28 18:38:52 +03:00
Eladash
daf43989fc Thread.h: Improve thread abort performance 2022-08-25 23:54:56 +03:00
Eladash
506b9deec5 Savestates/SPU LLVM: Improve saving performance 2022-08-25 23:54:56 +03:00
Eladash
ddba30988b vm: Attempt to not remove cpu_flag::wait flag during access violation 2022-08-21 15:02:01 +03:00
Eladash
1dd1062be1 PPU LLVM: Fix HLE function injection 2022-08-21 15:02:01 +03:00
kd-11
edb39039dd Fix linux build 2022-08-14 23:53:50 +03:00
kd-11
1244044647 util: Provide stack-trace utilities 2022-08-14 23:53:50 +03:00
Eladash
2ec039365f shared_mutex: Optimize busy-waiting by detecting waiters and try to steal the notifying bit
Add an unused has_waiters() method.
2022-08-07 20:23:54 +03:00
Eladash
26e731b487 LV2: Re-add dropped optimization by previous commit
Currently only for lock-free syscalls.
2022-08-07 20:23:54 +03:00
Megamouse
934e7b614c cellPhotoExport/cellVideoExport: fix filenames 2022-08-02 01:43:23 +02:00
kd-11
35ef19cfc8 gl: Refactor the rest of GLHelpers 2022-07-13 02:09:58 +03:00
Nekotekina
786510a937 Use gettid() on Linux, don't use std:🧵:id
pthread_self() returns a large opaque pointer which is harder to use.
2022-07-10 12:22:28 +03:00
Vestrel
98b730c806
Audio: device switching and channel count detection (#12246) 2022-07-08 17:13:38 +02:00
Nekotekina
4b787b22c8 Implement FN (lambda shortener)
Useful for some higher order functions.
Allows to make short lambdas even shorter.
2022-07-08 14:47:41 +03:00
Eladash
5f8f9e33f1 RSX/Savestates: Replace GCM hack with a proper fix 2022-07-08 12:57:43 +03:00
kd-11
fddb6a31a7 Use utils::c_page_size 2022-07-04 22:35:05 +03:00
kd-11
278ae7763a Use better macro notation 2022-07-04 22:35:05 +03:00
kd-11
5cafaef0a9 Aarch64 fixes for RSX 2022-07-04 22:35:05 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation (#10478) 2022-07-04 16:02:17 +03:00
Eladash
cf0fcf5a2a SPU: Implement execution wake-up delay 2022-06-28 19:54:25 +03:00
Eladash
149c593d89 Make fs::get_parent_dir/fs::pending_file use string_view as argument 2022-06-27 15:03:39 +03:00
Eladash
5e01ffdfd8 Debugger: Optimize cpu_thread::dump_regs()
Reuse string buffer. Copies and reallocations are expensive with such large strings.
2022-06-23 22:41:32 +02: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
sguo35
d2614d01fd [ppu] fix a macOS arm64 regression
Always override the LLVM triple to prevent linking errors.
2022-06-20 15:08:27 +03:00
Ivan
c2190f71ca
SPU/PPU LLVM: fix triple setup (regression fix) (#12228) 2022-06-14 18:13:43 +03:00
Jeff Guo
cefc37a553
PPU LLVM arm64+macOS port (#12115)
* BufferUtils: use naive function pointer on Apple arm64

Use naive function pointer on Apple arm64 because ASLR breaks asmjit.
See BufferUtils.cpp comment for explanation on why this happens and how
to fix if you want to use asmjit.

* build-macos: fix source maps for Mac

Tell Qt not to strip debug symbols when we're in debug or relwithdebinfo
modes.

* LLVM PPU: fix aarch64 on macOS

Force MachO on macOS to fix LLVM being unable to patch relocations
during codegen. Adds Aarch64 NEON intrinsics for x86 intrinsics used by
PPUTranslator/Recompiler.

* virtual memory: use 16k pages on aarch64 macOS

Temporary hack to get things working by using 16k pages instead of 4k
pages in VM emulation.

* PPU/SPU: fix NEON intrinsics and compilation for arm64 macOS

Fixes some intrinsics usage and patches usages of asmjit to properly
emit absolute jmps so ASLR doesn't cause out of bounds rel jumps. Also
patches the SPU recompiler to properly work on arm64 by telling LLVM to
target arm64.

* virtual memory: fix W^X toggles on macOS aarch64

Fixes W^X on macOS aarch64 by setting all JIT mmap'd regions to default
to RW mode. For both SPU and PPU execution threads, when initialization
finishes we toggle to RX mode. This exploits Apple's per-thread setting
for RW/RX to let us be technically compliant with the OS's W^X
    enforcement while not needing to actually separate the memory
    allocated for code/data.

* PPU: implement aarch64 specific functions

Implements ppu_gateway for arm64 and patches LLVM initialization to use
the correct triple. Adds some fixes for macOS W^X JIT restrictions when
entering/exiting JITed code.

* PPU: Mark rpcs3 calls as non-tail

Strictly speaking, rpcs3 JIT -> C++ calls are not tail calls. If you
call a function inside e.g. an L2 syscall, it will clobber LR on arm64
and subtly break returns in emulated code. Only JIT -> JIT "calls"
should be tail.

* macOS/arm64: compatibility fixes

* vm: patch virtual memory for arm64 macOS

Tag mmap calls with MAP_JIT to allow W^X on macOS. Fix mmap calls to
existing mmap'd addresses that were tagged with MAP_JIT on macOS. Fix
memory unmapping on 16K page machines with a hack to mark "unmapped"
pages as RW.

* PPU: remove wrong comment

* PPU: fix a merge regression

* vm: remove 16k page hacks

* PPU: formatting fixes

* PPU: fix arm64 null function assembly

* ppu: clean up arch-specific instructions
2022-06-14 15:28:38 +03:00
Elad Ashkenazi
1738b38536
vm_native.cpp: Use Windows 10 memory mapping API (the correct API) 2022-06-10 14:27:02 +03:00
Elad Ashkenazi
9bb7e8d614
rsx: Implement atomic FIFO fetching (stability improvement) (non-default setting) (#12107) 2022-06-04 15:35:06 +03:00
Eladash
1088375b38 Wipe clean VSH's temporary directory of choice at boot 2022-05-21 10:57:12 +03:00
Megamouse
072c289f5e Qt: add new vfs usb tab 2022-05-10 19:39:35 +02:00
Megamouse
b888a6ba37 VFS: Add device_info to vfs config 2022-05-10 19:39:35 +02:00
Megamouse
9a93b150f0 input: properly log hid_error (strfmt wchar_t) 2022-05-07 17:12:31 +02:00
Vestrel
d1e468fefb
sys_rsxaudio: Initial implementation (#11907) 2022-05-05 15:47:44 +02:00
Eladash
3dda72e47f SPU: Cache reservation memory direct access handle (optimization) 2022-05-04 20:28:55 +03:00
Eladash
f9a62667cf SPU/PPU Loader: Implement linker/PS3 compiler executable files loading 2022-05-03 20:47:36 +03:00
Nekotekina
5c1f79ab26 vm: remove g_mutex, use g_range_lock instead
Simplification and performance improvements.
2022-05-02 10:29:28 +03:00
Megamouse
e52386ccfb Log: ensure fmt 2022-04-24 19:11:34 +02:00
Jan Beich
f04655c814 Thread: define how to access PC on BSD aarch64 after 580bd2b25e
Utilities/Thread.cpp:1799:51: error: no member named 'pc' in '__mcontext'
        const bool is_executing = uptr(info->si_addr) == RIP(context);
                                                         ^~~~~~~~~~~~
Utilities/Thread.cpp:1800:62: error: no member named 'pc' in '__mcontext'
        const u32 insn = is_executing ? 0 : *reinterpret_cast<u32*>(RIP(context));
                                                                    ^~~~~~~~~~~~
Utilities/Thread.cpp:1836:90: error: no member named 'pc' in '__mcontext'
        std::string msg = fmt::format("Segfault %s location %p at %p.\n", cause, info->si_addr, RIP(context));
                                                                                                ^~~~~~~~~~~~
Utilities/Thread.cpp:1229:46: note: expanded from macro 'RIP'
 #define RIP(context) ((context)->uc_mcontext.pc)
                       ~~~~~~~~~~~~~~~~~~~~~~ ^

Based on https://github.com/mozilla/gecko-dev/commit/480b73c38c73
2022-04-24 15:40:33 +03:00
sguo35
e761b3235c macos: fix build for arm64
Adds arm64 branches to some x86 specific code and modifies some casting
logic to make Clang happy
2022-04-18 17:53:54 +03:00
Timo654
afae58b231 Interpret negative values in game patches 2022-04-18 17:01:19 +03:00
Megamouse
21f744e218 windows: fix git version script release check
Hopefully
2022-04-15 00:45:51 +02:00
Megamouse
3c231ee9b7 windows: adjust git version script to cirrus ci 2022-04-14 23:16:40 +02:00
Megamouse
3d31e2f2a9 test 2022-04-14 18:37:34 +02:00
Megamouse
8516e9da70 Add git fallback to git-version-gen.cmd
%ProgramFiles% points to the x86 folder on cirrus, but git only exists in Program Files
2022-04-14 13:35:59 +02: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
Megamouse
ee98f577e2 sceNpTrophyGetTrophyIcon: SCE_NP_TROPHY_ERROR_HIDDEN
And prevent some possible segfaults
2022-03-31 23:02:35 +02:00
Nekotekina
0a617a05d0 PPU: correct behaviour under external debugger
May require setting "Assume External Debugger" to true.
2022-03-26 23:09:20 +03:00
kd-11
9a2d4fe46b rsx: Relocatable transform constants 2022-03-26 16:10:18 +03:00
Megamouse
e58906cb4d cpu_stats: fmt::win_error_to_string 2022-03-16 22:20:23 +01:00
Megamouse
7a1a4541c0 StrFmt: print src_loc error as string 2022-03-16 22:20:23 +01:00
Megamouse
a4c4548c3a input: add enumeration threads for each hid_pad_handler
There was a roughly 60 ms lag for each hid handler every 2 seconds. (sucks if you use all 3 hid handlers)
2022-02-01 19:28:04 +01:00