Eladash
3d8d9ef61c
Threads.cpp: Fix infinite looping
2023-06-02 08:54:46 +03:00
Megamouse
f96a0ce9d2
Trophies: Add more sanity checks to pugixml backend
2023-05-30 19:11:57 +02:00
Megamouse
cb1b71bc57
Qt: fix emulated button reset
2023-05-25 20:37:15 +02:00
Eladash
f031cd9b42
Take advantage of WIN10 Thread Name API
2023-05-24 20:39:51 +02:00
Megamouse
f5c48a00b4
Fix log message
2023-05-18 09:15:49 +02:00
Dark
24dde5d42b
Implement support for emulating Rock Band 3's MIDI Pro Adapter
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2023-05-17 22:59:44 +02:00
oltolm
b7b87096d8
fix: make ASAN work on Windows
2023-05-06 10:17:58 +02:00
brian218
6a41b22a1b
sys_fs: Further implemented cellFsArcadeHddSerialNumber (0xc0000007)
2023-05-06 10:26:37 +03:00
Ivan Chikish
3cf8c629fa
X86 SigHandler: Add support for BEXTR instruction
...
BEXTR is emitted for znver CPUs in recent LLVM.
2023-05-05 18:03:50 +03:00
Megamouse
ad5a62b62d
Loader: split add_only into own function
...
The new code does not require any modifications apart from loading vfs
2023-04-28 17:16:04 +02:00
kd-11
b060165817
jit: Fix vec_cmp_eq<u32>
...
- Emit pcmpeqd instead of the incorrect pcmpeqw
2023-04-15 12:16:15 +03:00
Eladash
79d09d02ed
Add savestate buttons to home menu
2023-04-13 20:46:37 +02:00
Ivan Chikish
06b0e35fb9
Update to LLVM 16.0.1
...
Fix Zen4+ AVX-512 detection
2023-04-11 12:13:09 +03:00
Ivan Chikish
fb88e1c1c9
Update to LLVM 16.0.0, switch to upstream LLVM
2023-04-06 10:19:31 +03:00
RipleyTom
0f45a8c180
Fix inaccuracies pointed out by PVS-Studio
2023-03-25 08:45:30 +01:00
RipleyTom
c98158b460
Add buf_to_hexstring
2023-03-18 01:51:35 +01:00
oltolm
520524285a
llvm: update code to new API ( #13500 )
...
* llvm: update code to new API
* llvm: remove OLDLLVM define
2023-03-11 01:57:21 +03:00
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