Nekotekina
15efb73aae
Add assert in build_function_asm to not ignore errors
2020-10-17 21:55:22 +03:00
Nekotekina
3d980a9f66
Reimplement ASMJIT runtime
...
Try to emplace generated code in lower address area.
Protect generated code from writing.
2020-10-17 21:25:43 +03:00
Nekotekina
b57a9c31f0
Implement utils::tx_start (for TSX)
...
Implement utils::tx_abort helper.
2020-10-12 15:20:24 +03:00
Nekotekina
f2d2a6b605
JIT cleanup for PPU LLVM
...
Remove MemoryManager3 as unnecessary.
Rewrite MemoryManager1 to use its own 512M reservations.
Disabled unwind info registration on all platforms.
Use 64-bit executable pointers under vm::g_exec_addr area.
Stop relying on deploying PPU LLVM objects in first 2G of address space.
Implement jit_module_manager, protect its data with mutex.
2020-10-11 17:22:28 +03:00
Eladash
3c935f7834
SPU: Fix minor segfaults ( #9015 )
...
SPU: Remove "RawSPU Not Found" exception.
Fix edge case in access violation handler.
2020-10-11 14:59:18 +03:00
Nekotekina
050c3e1d6b
Rewrite cpu_thread::suspend_all
...
Now it's a function of higher order.
Make only one thread do the hard work of thread pausing.
2020-10-10 13:58:48 +03:00
Eladash
c628147521
cellSpurs: Implement more HLE functions (part 1)
2020-10-07 01:12:21 +03:00
Megamouse
5226076676
Emu: use vulkan as default renderer
2020-10-01 09:19:13 +02:00
Eladash
8ad36e2526
Fix fs::delim type, fix "." and ".." processing in fs::get_parent_dir ( #8975 )
...
* Fix fs::delim type
* Fix fs::get_parent_dir: "." and ".." processing
2020-09-26 19:18:32 +01:00
Eladash
3b11f22062
MSVC bug workaround
2020-09-25 13:26:08 +03:00
Eladash
6b11d82dd0
Win32 FS: Always use FILE_SHARE_DELETE
2020-09-24 18:06:51 +03:00
Eladash
d0f1b29b39
Win32 FS: Fix fs::utime for directories
2020-09-24 18:06:51 +03:00
Eladash
b8fa6fb4c4
Win32 FS: Rewrite (fix) vfs::host::rename
2020-09-24 18:06:51 +03:00
Eladash
3a96d99187
sceNpTrophyRegisterContext: Atomically create trophy data
2020-09-22 19:46:52 +03:00
Megamouse
511e9920c2
patch_engine: Apply patch when APP_VER is unknown
2020-09-21 11:59:57 +02:00
Eladash
9031c5a6e0
Win32 FS: Fix fs::stat for drives
2020-09-21 06:35:42 +03:00
Eladash
fe9c61fe73
atomic.hpp: Fix atomic_storage_futex::raw_notify
2020-09-12 22:11:40 +03:00
Eladash
b48c036636
Fix bitfield operator &=
2020-09-10 19:04:53 +02:00
Megamouse
44371dedd9
fix fs::copy_file on linux
2020-09-10 06:58:44 +02:00
Megamouse
fb62c297fa
patch_manager: log g_tls_error
2020-09-10 06:58:44 +02:00
Eladash
8c8048f037
Win32 FS: Use FindFirstFileExW in fs::stat, fs::exists, fs::is_dir, fs::is_file
...
Co-Authored-By: Bevan Weiss <bevanweiss@users.noreply.github.com>
2020-09-09 21:57:01 +02:00
Megamouse
46e8b4f561
patch_manager: add download button
2020-09-09 20:34:17 +02:00
RipleyTom
10820fa135
Implement sceNpSignaling & signaling improvements ( #8836 )
2020-09-07 22:50:17 +01:00
RipleyTom
190822c2b2
RPCN Client ( #8663 )
2020-08-27 20:47:04 +01:00
Eladash
25dee4a78e
Fix bitops test
2020-08-17 17:36:27 +01:00
Bevan Weiss
01d3585bf3
Bring back the non-compliant define, but version limited
...
As noted, we've done something we shouldn't have with MSVC compiler specific defines. But to avoid breaking the MSVC build environment, leave this define in there until the MSVC version when it is actually exposed by the compiler itself (v16.8).
2020-08-14 18:34:34 +01:00
Bevan Weiss
a11afe05bf
MSVC changes
...
Add support for compilation on x64 toolchain (x86 cl.exe was running out of heap space in vm.cpp)
Also took the opportunity to change compile optimisation from /Ox to /O2, as /O2 provides better optimisation than does /Ox
Also, we shouldn't be explicitely setting compiler tool defines (__cpp_lib_bitops), so remove that from types.h
2020-08-14 18:34:34 +01:00
Malcolm Jestadt
f188589685
Utils: Add detection for Icelake-client tier AVX-512
...
- Implies support for everything that Skylake-X supports as well as AVX512IFMA, AVX512VBMI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, AVX512VPCLMULQDQ, AVX512GFNI, AVX512VAES
2020-08-08 00:33:22 +02:00
Megamouse
47040be3ad
cheat_manager: improve parser errors
2020-07-29 13:18:33 +02:00
Megamouse
d0bb9d2b62
cheat_manager: move cheats.yml to patches folder
2020-07-29 13:18:33 +02:00
Bevan Weiss
c5d39ace2b
Update types.h to fix static_cast test ( #8627 )
...
Trivial fix up to resolve invalid is_constructible test (To,To) to match desired (To,From)
2020-07-25 09:46:47 +01:00
Eladash
a029a94c73
SPU: Use waitable atomics for SPU channels interface
2020-07-23 13:45:58 +03:00
Eladash
0d8152cd4e
SPU/Linux: Ensure aligned 64k allocations in utils::memory_reserve
2020-07-19 17:58:49 +03:00
Eladash
c37bc3c55c
SPU: Make spu_thread::offset private
2020-07-19 17:58:49 +03:00
Eladash
c1a80b8146
Minor fixup after #8501
2020-07-16 21:52:08 +03:00
Eladash
58e2465369
Make std::bit_cast hack-implementation constexpr in simple cases
2020-07-14 12:14:44 +03:00
illusion
60f05fdbf3
move applied patch log level to success
2020-07-13 22:33:03 +02:00
Megamouse
55e907385b
patch_manager: warning for incompatible patches ( #8535 )
...
* patch_manager: warning for incompatible patches
This will open a warning dialog whenever the patch manager is opened and incompatible patches are detected.
* Apply suggestions from code review
Co-authored-by: Bird Egop <sampletext32@bk.ru>
Co-authored-by: Bird Egop <sampletext32@bk.ru>
2020-06-30 21:35:15 +02:00
Megamouse
6742fad753
patch_manager: fix import, use constants as keys
...
And improve import logging again
2020-06-30 00:45:17 +02:00
Megamouse
c6190fa95d
patch_manager: improve import logging
...
imported_patch.yml has to be the latest version too
2020-06-29 23:56:27 +02:00
Megamouse
98eb0cd3f2
patch_manager: fix legacy patches again
2020-06-29 23:56:27 +02:00
Megamouse
541e20cbec
patch_manager: allow Notes as sequence
2020-06-29 23:56:27 +02:00
Megamouse
a5368d766a
patch_manager: prefer specific > global (per hash)
2020-06-29 23:56:27 +02:00
Megamouse
cf2e2a0511
patch_manager: one patch per group across hashes
2020-06-29 23:56:27 +02:00
Megamouse
3a17eefde7
patch_manager: restrict All serials to All titles
2020-06-29 23:56:27 +02:00
Megamouse
c72a6f8e6f
patch_manager: prefer serial patches over All
2020-06-29 23:56:27 +02:00
Megamouse
6a486d3402
patch_manager: only apply one patch per group
...
So far this was purely handled in the GUI
2020-06-29 23:56:27 +02:00
Megamouse
e43db24b2c
patch_manager: add All override
...
All can now be used as a key for title, serial and/or app version.
If you check a patch for all ... then the patch will be applied regardless of what's checked for the game specifically, because we do not save 'Unchecked' patches.
2020-06-29 23:56:27 +02:00
Megamouse
12dded403f
patch_manager: implement serials and app_versions
2020-06-29 23:56:27 +02:00
Eladash
d9e3f0ccfa
types.h: Fix ASSUME macro side-effects mismatch between compilers
2020-06-29 03:10:05 +01:00
Eladash
2483cc6f8d
Fix race in Crypto/unedat.cpp, Make NPDRM keys usage atomic
2020-06-28 23:26:10 +01:00
Eladash
9cb4402c16
Make error_code::value member private
2020-06-27 09:02:55 +01:00
Megamouse
abec850379
patch_manager: add hash to applied log message
2020-06-24 15:31:55 +02:00
Megamouse
431e0eb30c
patch_manager: fix missing config path
2020-06-24 15:31:55 +02:00
Megamouse
5affc459a2
patch manager: Allow partial patch file import
2020-06-21 15:48:30 +02:00
Megamouse
cd4ed11700
patch manager: Add patch removal to context menu
...
Also avoid saving empty patch maps
2020-06-21 15:48:30 +02:00
Megamouse
fd2cd84555
patch manager: Skip lower patch_versions
2020-06-21 15:48:30 +02:00
Megamouse
bf978ac8ca
patch manager: properly check patch versions
...
Also abort patch import of lower patch versions
2020-06-21 15:48:30 +02:00
Megamouse
d3c6472c0f
patch manager: replace Version and Title keys
...
With Patch Version and Game Title
2020-06-21 15:48:30 +02:00
Megamouse
1c7a318413
patch manager: move try catch block to yaml.cpp
2020-06-21 15:48:30 +02:00
Megamouse
591624b96c
patch manager: avoid patch import inconsistencies
...
Save the original patch value instead of the interpreted value
2020-06-21 15:48:30 +02:00
Megamouse
2323cd2a2d
patch manager: move title + serials to patch level
...
Also bump patch file version to 1.1
2020-06-21 15:48:30 +02:00
Megamouse
cc5c89539b
patch manager: improve error handling
...
There shouldn't be much left that can crash this thing
2020-06-21 15:48:30 +02:00
Megamouse
a7ee059419
patch manager: import patches
2020-06-21 15:48:30 +02:00
Eladash
d86c9a2549
sys_mmapper: rewrite page fault thread notifications
...
* Fix a corner case where SPU thread has the same ID as a PPU thread.
* Fix a potential deadlock on Emu.Stop() while sending event in EBUSY loop.
* Thread specific notifications.
2020-06-18 20:13:54 +03:00
RipleyTom
3d3c91d654
std header guard in BEType.h ( #8448 )
2020-06-16 01:06:15 +01:00
Eladash
731d4330fe
v128: A few optimizations ( #8432 )
2020-06-15 17:24:04 +03:00
Malcolm Jestadt
746615a937
Fix embedded spu elf patching
2020-06-13 23:18:44 +02:00
Megamouse
22b1cc765a
patch manager: hotfix for legacy patches
...
Assignment of invalid YAML nodes is not possible after all
2020-06-11 22:23:02 +02:00
Megamouse
4a03f06175
patch manager: add checkbox for "enable legacy"
2020-06-11 16:31:49 +02:00
Megamouse
2dca8d84e1
patch manager
2020-06-11 13:15:25 +02:00
Nekotekina
3b8e7d0967
Implement v128::fma32f
2020-06-07 22:44:07 +03:00
Eladash
f0cdd8ace6
PPU: Implement PPU Traps Stubbing option
2020-05-27 22:39:29 +03:00
Eladash
b8f86eb78d
SPU: Fix page faults notifications
2020-05-23 00:48:28 +03:00
Nekotekina
ae519200ed
Implement std::countl_zero and friends
...
Trying to fix macos build.
2020-05-18 00:51:57 +03:00
Eladash
201d54ee08
PPU interpreters: Implement AltiVec NaNs precedence and data preservation
2020-05-18 00:35:06 +03:00
Nekotekina
e1042bc631
Get rid of "module" keyword
...
Workaround some intellisense problems.
2020-05-06 18:20:11 +03:00
Nekotekina
a6f0b1b532
Fix get_thread_affinity_mask (Linux/BSD)
...
Uninitialized variable (facepalm).
2020-05-05 21:44:32 +03:00
MSuih
b18dcd7660
Add fs::error for when disk is full
2020-05-02 14:54:41 +03:00
Nekotekina
31035608ee
Use utils::get_cpu_brand when applicable
2020-05-01 22:00:57 +03:00
Nekotekina
f6200ba635
Implement thread_ctrl::get_process_affinity_mask()
2020-05-01 22:00:56 +03:00
Eladash
0db91aa56b
Fix address_range start_length() constructor
...
Fixes an underflow when constructing start_length(0, 0).
2020-04-29 06:47:35 +03:00
Nekotekina
d66bdf1653
TSC calibration improvements
...
Bind main thread to a single core for calibration.
Issue RDTSC after clock probing, may improve accuracy.
2020-04-29 00:09:40 +03:00
Nekotekina
76294beae1
Implement thread_ctrl::get_thread_affinity_mask()
2020-04-29 00:09:40 +03:00
Nekotekina
c7fe8567b8
Experimental squashing of reservation memory area.
...
Enables trivial synchronization between shared mem.
Reduces memory usage, but potentially degrades performance.
Rename an overload of vm::passive_lock to vm::range_lock.
2020-04-16 02:25:43 +03:00
Nekotekina
b1b67a13c6
Revert "Replace rotate utils with std::rotl" (partial)
...
This reverts commit 4d8bfe328b .
2020-04-14 19:45:53 +03:00
Nekotekina
4d8bfe328b
Replace rotate utils with std::rotl
...
More include cleanup.
2020-04-14 16:05:58 +03:00
Nekotekina
f72af2973d
Replace utils::popcnt32 with std::popcount
...
Cleanup includes.
2020-04-14 16:05:58 +03:00
Nekotekina
032e7c0491
Replace utils::cntlz{32,64} with std::countl_zero
2020-04-14 16:05:58 +03:00
Nekotekina
d0c199d455
Replace utils::cnttz{32,64} with std::countr_{zero,one}
...
Make #include <bit> mandatory.
2020-04-14 16:05:58 +03:00
Eladash
926e0467cf
Another ::as_rvalue fixup
2020-04-13 04:34:10 +01:00
sampletext32
c69691f19b
Fix various explicitness, laziness, hard codes
2020-04-12 17:29:42 +03:00
Eladash
cb14805d78
rsx fp/vp analyzers: Fix strict type aliasing and improve codegen
2020-04-12 16:48:43 +03:00
Eladash
c3a4e57efe
Reduce log level of page fault notifications
...
Log current hle function.
2020-04-12 10:30:38 +01:00
Eladash
8e61c65c0d
Fixup ::as_rvalue
2020-04-11 22:55:55 +03:00
Eladash
141d62fbf9
Implement ::as_rvalue
2020-04-11 21:58:36 +03:00
Nekotekina
1b68f90e42
Tweak TSC calibration
...
Round to 3 digits after dot (count in MHz).
2020-04-09 16:23:33 +03:00
Nekotekina
6c8d844ec5
PPU LLVM: fix crash on damaged cache files
2020-04-07 16:51:35 +03:00
Nekotekina
91d80aa7b9
Implement jit_compiler::check
...
Instead of checking file existence (because file may be damaged).
2020-04-07 16:09:47 +03:00
Eladash
5834a466cd
Fix utils::get_tsc_freq() ( #7974 )
...
Use magic static for once-initialization
2020-04-07 11:02:12 +03:00