Eladash
493e57837b
SPU: Fix extremely rare bug of GETLLAR ( #9011 )
2020-10-03 09:31:28 +01:00
Nekotekina
ee00fdb61b
fs: improve handling root mountpoint
...
Path such as simply "/" falls into this category.
2020-10-02 14:37:58 +03:00
Nekotekina
9b22661c19
fs: improve mountpoint detection
...
Properly handle . and .. path components in mountpoint detection.
Remove app_home mountpoint and use mountpoint from argv[0] instead.
Add dev_root mountpoint for special purposes.
2020-10-02 12:32:35 +03:00
Eladash
56cebd99c2
SPU: Simplify logging of MFC commands ( #9004 )
2020-10-01 19:52:39 +03:00
Eladash
04c3d8d1bb
Set max PPU threads to 100
2020-10-01 19:51:56 +03:00
Eladash
7fdf3dd760
cellSpurs: Add CellSpursJobOpcode definitions
2020-10-01 18:16:13 +03:00
Eladash
1f28bee86a
cellSpurs: Add error codes formatting (unused)
2020-10-01 18:16:13 +03:00
Eladash
aed560b630
Implemnt various HLE CellSpurs functions
2020-10-01 18:16:13 +03:00
Eladash
871b15f6e1
PPU: fixup for Accurate 128-byte reservations ( #8998 )
2020-10-01 18:15:07 +03:00
Megamouse
531eb04fd7
cellGameSetParamString: fix string sizes
2020-09-29 08:44:25 +02:00
Eladash
f4ca6f02a1
PPU: Implement support for 128-byte reservations coherency
2020-09-28 22:34:42 +03:00
Eladash
3f7eba19c8
PPU: Upgrade reservations to 8-byte always
2020-09-28 22:34:42 +03:00
Eladash
09cddc84be
SPU/PPU: Implement Atomic Cache Line Stores
2020-09-27 20:09:21 +03:00
Eladash
f22348a9f9
sys_memory: Improve sys_memory_get_page_attribute for stack
2020-09-26 21:48:12 +03:00
Eladash
83d71519e0
Implement HLE sys_config stack allocation
2020-09-26 21:48:12 +03:00
Eladash
0f67c68993
sys_mmapper: return ENOMEM on memory greater than UINT32_MAX ( #8982 )
2020-09-26 18:06:06 +01:00
Eladash
b79d236bfa
cellSearch: use std::hash ( #8981 )
2020-09-26 17:28:19 +01:00
Eladash
6164b3d2e2
Compilation fix
2020-09-24 21:00:23 +03:00
Eladash
c806da51f8
Implement cellGameDeleteGameData ( #8962 )
2020-09-24 20:13:19 +03:00
Eladash
183aa31319
cellSysCache: Global hdd1 lock
...
Take advantage of recursive locking.
2020-09-24 18:06:51 +03:00
Eladash
7b3c0a69f3
kernel-explorer: Implement Filesystem Destcriptors information
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
Bevan Weiss
53212ba7a9
Core: Add date/time offset capability for console time
...
Provides a setting which can be applied per game, and allows for a custom date/time to be set.
The console time will then apply this as an offset to the computer wallclock.
This allows for games which look at the console time to determine their gameplay to be adjusted.
2020-09-23 21:15:45 +02:00
Eladash
3372409590
cellGameContentPermit: Fix missing PARAM.SFO writeback ( #8934 )
2020-09-23 20:35:06 +03:00
Eladash
5a049322ed
HLE: Always return empty paths if game content does not exist in cellGameContentPermit
2020-09-23 20:24:21 +03:00
Eladash
bfa78870cb
SPU: Fix unregistered channels in RCHCNT
...
Shouldn't throw exception on realhw.
2020-09-22 19:47:47 +03:00
Eladash
ad37259ccc
SPU: Implement many missing channel counts
2020-09-22 19:47:47 +03:00
Eladash
418968d974
sceNpTrophy: Add logging of commSign
2020-09-22 19:46:52 +03:00
Eladash
89905bc1c4
sceNpTrophyRegisterContext: Implement SCE_NP_TROPHY_STATUS_NOT_INSTALLED
2020-09-22 19:46:52 +03:00
Eladash
cf61198fe3
HLE: Implement ERROR_BROKEN in cellGameDataCheck ( #8945 )
2020-09-22 10:30:31 +02:00
Megamouse
0b42cf06f8
sceNpTrophyCreateContext: improve commId logging
2020-09-21 15:32:02 +02:00
Megamouse
4c4be331f5
HLE: Fix sceNpTrophyCreateContext
...
fixes #7431 Soldner-X
Assuming that a SceNpCommunicationId should have a format like "TEST12345", then there is no need to delete termination characters after we already created a truncated string with 9 characters + null terminator.
The current behaviour does not work at all, because in case that we actually have a non-null termination character, deleteTerminateChar will step over the last x chars in the already truncated ID until it forcefully finds a character of its liking. eg. term='2': "TEST12345" => "TEST1" => "TEST1_00"
2020-09-21 15:32:02 +02:00
Eladash
75c3fdcb6f
Fix cellGameBootCheck PARAM.SFO reads
2020-09-21 06:36:34 +03:00
Eladash
5ac6f090fc
Fix cellGamePatchCheck ( #8933 )
2020-09-19 19:38:22 +01:00
Eladash
0d183a24be
cellFs: Rewrite cellFsGetFreeSize
2020-09-19 13:53:04 +01:00
Eladash
a21790b992
sys_fs: Fix sys_fs_disk_free
2020-09-19 13:53:04 +01:00
Eladash
762ceaf87e
sys_fs: Do not expose real hard drive available space!!!!!!!!!!!!!
2020-09-19 13:53:04 +01:00
Eladash
2620a51cc9
cellSaveData: Minor fix
2020-09-19 13:53:04 +01:00
Eladash
f1e8739608
Always reset size in cellGameGetSizeKB
...
Reversed.
2020-09-19 13:53:04 +01:00
Eladash
b31a0115b2
cellFsStat Improvements
2020-09-19 13:53:04 +01:00
Eladash
ed032dc985
cellGame: Improvements
2020-09-19 13:53:04 +01:00
Eladash
c436ef0c6f
SPU: Implement channels 70, 71, add naming for channel 69 ( #8932 )
2020-09-19 13:08:35 +01:00
eladash
36ac68b436
SPU: Implement events channel count, minor interrupts fixes
2020-09-18 21:57:24 +03:00
Eladash
a52a16807f
PPU: Use SEQ-CST memory barrier in reservation load
2020-09-15 11:20:17 +02:00
Megamouse
a2da187615
HLE: localize most - if not all - exposed strings
2020-09-14 18:24:18 +02:00
Eladash
3206378ae6
sys_spu: Fix overexecution of cpu_return()
2020-09-12 22:11:40 +03:00
Eladash
7ce790f369
SPU: Use ASM for AVX2 coompilation instead of intrinsics
2020-09-12 18:49:49 +03:00
Eladash
5db1427923
cellGame: Implement cellHddGameCheck2
2020-09-12 11:00:24 +02:00
Eladash
81eceb1728
cellSysUtil: Implement CELL_SYSUTIL_SYSTEMPARAM_ID_LICENSE_AREA
2020-09-12 11:00:24 +02:00
Megamouse
639650c65a
Add more defines to cellSysutil
2020-09-12 09:56:51 +02:00
Eladash
9ff0b460a2
SPU: Make PUTLLUC LR event accurate
2020-09-11 09:02:18 +02:00
Eladash
4f0125a0e9
SPU: Remove "Accurate PUTLLUC" setting (always accurate)
2020-09-11 09:02:18 +02:00
Eladash
d489b02fc1
PPU: Do not allow unaligned/unmapped reservation addresses
2020-09-10 13:35:57 +02:00
RipleyTom
676fed7cfc
Only bind 3658 with RPCN
2020-09-09 23:56:25 +02:00
RipleyTom
d9d354c981
Makes DNS processing more consistent
2020-09-09 23:56:25 +02:00
Eladash
1e4655aef6
SPU: Remove STOP 0x0 hack ( #8873 )
2020-09-09 11:36:04 +01:00
Ani
22dc2947b3
hle: Implement ID_CURRENT_USER_HAS_NP_ACCOUNT ( #8864 )
2020-09-08 15:12:47 +01:00
Eladash
43fce92aa9
PPU: reduce LARX logging level to warning
2020-09-08 15:23:55 +02:00
Megamouse
fee96ec92d
fix some warnings
2020-09-08 12:05:51 +02:00
Eladash
9134388f94
sys_process: Implement exitspawn error checking
2020-09-08 07:36:36 +02:00
RipleyTom
10820fa135
Implement sceNpSignaling & signaling improvements ( #8836 )
2020-09-07 22:50:17 +01:00
Eladash
2f3e0044f1
PPU: Cleanup & unify reservation loads ( #8849 )
2020-09-07 22:06:09 +01:00
Eladash
5060c779da
SPU: Use unaligned instructions in mov_rdata_avx (MSVC) ( #8851 )
2020-09-07 21:32:44 +01:00
Eladash
abc715bc5c
SPU: Make PUT transfers use SEQ-CST ordering on Accurate DMA ( #8844 )
2020-09-06 12:09:14 +01:00
Eladash
2688081656
SPU: Use unaligned AVX instructions for cmp_data_avx
2020-09-06 07:51:12 +03:00
Eladash
e4abd3dc5a
SPU: Do not ignore pending PUT tranfers just becase GET may not be cache-line atomic
...
This is not the proper way to emulate non-atomic GET tranfers, as it makes it seems as if PUT atomic tranfers arent atomic. (TODO)
Incomplete GET cache line accesses still do not verify data though.
2020-09-05 22:23:55 +03:00
Eladash
c7a185d4e7
SPU: Fix not acuiring reservation locks on DMA with more than one cache line (Accurate DMA)
2020-09-05 22:23:55 +03:00
Eladash
4ffc58a8ce
SPU: Cleanup for Accurate PUTLLUC
...
Should no longer affect GET commands because Accurate DMA is available for this functionality.
2020-09-04 10:20:44 +02:00
Eladash
c5c9ea1b21
SPU: Make GET's full and aligned cache line accesses atomic with Accurate DMA
2020-09-04 10:20:44 +02:00
Eladash
73d23eb6e6
SPU: Implement Accurate DMA ( #8822 )
2020-09-02 23:58:29 +02:00
Eladash
6952be5ce4
Debugger: Replace SPU register perefix '$' with 'r'
2020-08-28 20:44:13 +02:00
RipleyTom
4317291827
tcp_timeout_monitor deadlock fix ( #8783 )
2020-08-28 01:06:01 +01:00
Nekotekina
bd40430d2b
Fix some warnng in lv2.cpp
2020-08-28 01:54:39 +03:00
Nekotekina
ebc4a0188a
Restore some code
2020-08-28 01:54:39 +03:00
Eladash
019d2d5dcf
Implement HLE cellSpursAddUrgentCommand
2020-08-27 23:52:37 +01:00
Eladash
17f7f329a8
Log PRX segment end for usage with kernel explorer
2020-08-27 23:52:37 +01:00
Eladash
933737e8f0
PPU: log LR in HLE functions
2020-08-27 23:52:37 +01:00
Eladash
47b545282e
SPU: Fix events ACK, minor optimizations ( #8771 )
2020-08-27 21:36:54 +01:00
RipleyTom
190822c2b2
RPCN Client ( #8663 )
2020-08-27 20:47:04 +01:00
Eladash
c099bb817f
Debugger: Disable PPU address redirection
...
It causes more confusion than it helps.
2020-08-25 17:43:07 +02:00
Eladash
7fe98d8d66
Debugger: Add missing PPU stack register checks
2020-08-25 17:43:07 +02:00
Eladash
3ce7fd7894
Debugger: Fix instructions editor
2020-08-25 17:43:07 +02:00
Eladash
c5aebe4564
Debugger: Implement PPU SLWI, SRWI, SLDI mnemonics
2020-08-24 02:10:51 +03:00
Eladash
841b8fad38
SPU: Fix timer events
2020-08-24 01:57:32 +03:00
Bevan Weiss
ab0df0a0f5
Support for Namco GCon3 gun ( #8757 )
...
This gun now works (passes calibration) in Time Crisis 4.
2020-08-22 15:41:08 +02:00
Eladash
edc09e22b4
PSF: Avoid redundent string copies in psf::array/string/get_string ( #8707 )
2020-08-21 23:55:17 +01:00
Eladash
4a40ef6a19
Debugger: Use Signed Hexadecimal formatting ( #8751 )
2020-08-20 22:07:31 +01:00
Eladash
19500ac9ad
Fix truncation warning in sys_cond.cpp
2020-08-17 17:36:27 +01:00
Eladash
995cb8125e
SPU LLVM: Improve approx FCGT ( #8728 )
2020-08-14 19:33:35 +01:00
Whatcookie
9e4f43f4d1
SPU LLVM: Add icelake optimized paths for SHUFB ( #8712 )
2020-08-13 15:00:56 +01:00
Eladash
8cdfe5952a
SPU/PPU LLVM: Improve 0 addend FMA detection ( #8709 )
2020-08-13 04:13:08 +03:00
Eladash
0f8ca1f7c5
SPU: Implement RSX accurate reservations on TSX ( #8721 )
2020-08-13 00:00:37 +01:00
Whatcookie
4ce2ad54a8
PPU LLVM: Use VPERM2B to emulate VPERM ( #8704 )
...
- The VPERM2B instructions are a match of VPERM's behavior, besides operating in reverse byte order
2020-08-09 01:50:26 +01:00
Eladash
0c85d4c0d0
cellSaveData: Fix loss of "BLIST" and files' information in PARAM.SFO ( #8706 )
2020-08-08 23:40:47 +01:00
Eladash
57471f8c94
SPU LLVM: Fix signed zeroes handling on Accurate xfloat
2020-08-08 22:21:22 +01:00
Eladash
7e11855330
SPU/PPU LLVM: Fix FMA signed zeroes handling
2020-08-08 22:21:22 +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
Bevan Weiss
eee5e812f7
Fix for incorrect assignment of ghlguitar
...
found_ghltar was potentially being overwritten if multiple USB devices were present
2020-08-06 12:01:21 +02:00
Bevan Weiss
eb5ae94c24
sys_usbd tidy ups
...
Tidy up fake transfer iterator handling. erase invalidates all iterators including the current iterator (i.e. 'it'), given precedence ordering this was UB prior to C++17. Splitting out to use return iterator from erase seems cleaner.
Also added some additional info to usb debug message to potentially help with #8666 , and used the atomic (dev_counter) less often
2020-08-06 12:01:21 +02:00
Eladash
70fb5712e5
PPU interpreters: Fix VMAXFP NaN and signed zeroes handling
2020-08-03 15:43:00 +01:00
Eladash
6a51c27fde
PPU LLVM: Fix VMAXFP, VMINFP NaN handling
2020-08-03 15:43:00 +01:00
Eladash
17f965c171
lv2: Minor fix of "unspecific ppu" path of _sys_lwcond_signal
2020-08-03 02:57:20 +03:00
Eladash
dd497625a5
PPU LLVM: Fix constant folding of BitCast
2020-07-30 17:06:24 +01:00
Eladash
f6764767f6
SPU/PPU LLVM: Fix cpu_translator::get_const_vector<v128>()
2020-07-30 17:06:24 +01:00
Eladash
e52dd9dc6f
SPU: Implement SYS_SPU_THREAD_OPTION_DEC_SYNC_TB_ENABLE ( #8657 )
2020-07-30 14:01:25 +01:00
Eladash
82068cf802
SPU: Fix spu_thread::cpu_stop() missed executions ( #8656 )
2020-07-30 10:07:18 +01:00
Eladash
21a1072117
SPU LLVM: Minor cleanup after #8559
2020-07-29 03:32:21 +03:00
Bevan Weiss
609182b131
Update cellAudio to use float constants instead of doubles
...
Another simple Clang recommendation
2020-07-26 17:23:02 +03:00
Malcolm Jestadt
a9d0ffcac1
SPU LLVM: Avoid additional endian swapping
...
- Avoid additional endian swapping with the ROTQBY and ROTQBYBI instructions
- ROTQBYI is left out intentionally, since it caused worse codegen
2020-07-26 11:36:50 +01:00
Malcolm Jestadt
824be77bba
SPU LLVM: Avoid redundant endian swapping
...
- PSHUFB operates in reverse byte order from SHUFB, so we can take advantage of that to swap endianness without additional transformations in some situations
2020-07-26 11:36:50 +01:00
Whatcookie
9f829b375a
SPU/PPU LLVM: Optimize VSEL/SELB with constant mask ( #8559 )
2020-07-25 17:59:35 +01:00
Eladash
da44d5f10d
PPU: Fix DIVW, DIVWU, MULHW, MULLW, MULHWU when op.rc is set ( #8630 )
2020-07-25 17:13:58 +01:00
Eladash
917069e31a
PPU Precise/LLVM: Support NJ modes ( #8617 )
2020-07-25 07:41:41 +01:00
Eladash
3354c800d7
SPU/PPU LLVM: Improve expressions matching ( #8620 )
2020-07-24 16:53:48 +01:00
Megamouse
bb3ac62126
cellMic: use s32 consistently
2020-07-24 14:47:10 +02:00
Megamouse
6e25fea16a
use not_an_error in sys_spinlock_trylock
2020-07-24 14:47:10 +02:00
Megamouse
5e7c6853c2
fix truncation warnings
2020-07-24 14:47:10 +02:00
Megamouse
f76a011ba0
fix sceNpCommerce2CreateCtx log message
2020-07-24 14:47:10 +02:00
Megamouse
d854a39500
add a gazillion more error_code
2020-07-24 14:47:10 +02:00
Megamouse
a00ebacef3
cellFont: add error_code
2020-07-24 14:47:10 +02:00
Megamouse
c2f4244c4d
cellMic: error_code, random cleanup and stubbing
2020-07-24 14:47:10 +02:00
Megamouse
7437c324c6
cellMusic: add error_code
2020-07-24 14:47:10 +02:00
Eladash
54b87b6dbb
cellSaveData: Increase sleep time
2020-07-23 13:45:58 +03:00
Eladash
a029a94c73
SPU: Use waitable atomics for SPU channels interface
2020-07-23 13:45:58 +03:00
illusion
3157a10428
move executable hash log level to success
2020-07-22 10:51:19 +02:00
Eladash
f8d2d8ca11
SPU/Windows: Fix LS memory mirrors
...
This is a workaround but this is because of how utils::shm works on Windows path.
2020-07-19 17:58:49 +03:00
Eladash
c37bc3c55c
SPU: Make spu_thread::offset private
2020-07-19 17:58:49 +03:00
Malcolm Jestadt
6cc0fe4221
SPU LLVM: Avoid negative clamping when the input is known to be positive
2020-07-19 17:56:59 +03:00
Eladash
af1ceb1151
SPU LLVM: LS Memory Mirrors (Optimize loads/stores)
2020-07-18 02:01:33 +03:00
Eladash
282b00674a
SPU LLVM: Optimize non-constant Tag Update requests
2020-07-10 02:52:02 +03:00
Eladash
235d12aa6b
SPU MFC: Never clear tag status in WrTagUpdate
2020-07-10 02:52:02 +03:00
Eladash
5d1fc546a8
SPU MFC: Fix MFC_WrTagUpdate channel count
...
Always report available, in realhw this is just a hint if the previous tag update hasnt been checked yet by the MFC, avoiding blocking writes and allowing the SPU to execute some code while it processes the previous update request.
Except for MFC_TAG_UPDATE_IMMEDIATE, where it also waits for MFC to process it.
2020-07-10 02:52:02 +03:00
Eladash
eb993781ef
RawSPU: Log MMIO access
2020-07-09 23:24:47 +03:00
Eladash
84470c34db
SPU: Disable PUTLLC NOP transfers detection on TSX path
2020-07-09 03:17:35 +01:00
Eladash
f8dbfa1d1e
SPU: Implement GETLLAR polling detection
2020-07-09 03:17:35 +01:00
Eladash
d9750e8f9f
SPU/PPU reservations: Optimizations for reservation locks and check_state() (non-TSX)
2020-07-09 03:17:35 +01:00
Megamouse
53b95fea19
audio: rename audio channels to audio downmix
...
The setting does not actually define the channels themselves, only the downmix option that the PS3 provides.
Channels might be changed seperately in the future.
2020-07-08 21:11:23 +02:00
Megamouse
e2fd4e46f7
Only reboot audio if a relevant setting changed
2020-07-08 21:11:23 +02:00
Megamouse
20d6664dc1
Try to make most audio configs dynamic
2020-07-08 21:11:23 +02:00
Megamouse
bb0aaea92d
cellAudio: implement downmix to 5.1
2020-07-08 21:11:23 +02:00
Megamouse
5fae1b3637
HLE: fix sceNpDrmGetTimelimit invalid param error
2020-07-07 09:43:32 +02:00
Derrik Touve
cb08c53f2f
sys_net: Use np_handler dns if possible for sys_net_infoctl ( #8557 )
...
Without this, cellHttpSendRequest will use the hardcoded dns 192.168.1.1, which won't work if you're not on that network.
2020-07-07 08:25:29 +02:00
Eladash
dc25a3fa2a
PPU debugger: Show stack address of each function
2020-07-06 18:58:16 +02:00
Eladash
c98ec4d014
PPU debugger: Fix functions stack bounds check
2020-07-06 18:58:16 +02:00
Eladash
72337f2678
SPU LLVM: Fix barrier commands enqueuing
2020-07-02 22:46:02 +03:00
Megamouse
5269b69bc5
cellAudio: use downmix formula based on documentation
2020-06-29 09:06:36 +02:00
Eladash
2483cc6f8d
Fix race in Crypto/unedat.cpp, Make NPDRM keys usage atomic
2020-06-28 23:26:10 +01:00
Eladash
97717defa5
Remove devKlic/rifKey reset
2020-06-28 23:26:10 +01:00
Eladash
2c93fecd8b
SPU: Use named constants for MFC tag updates
2020-06-27 20:42:41 +01:00
Eladash
20fcc6530f
SPU LLVM: Fix WRCH instruction to WrTagUpd
2020-06-27 20:42:41 +01:00
Eladash
9cb4402c16
Make error_code::value member private
2020-06-27 09:02:55 +01:00
Eladash
f29589e5cf
SPU debugger: Add atomic status and tag update channels information
2020-06-27 07:04:37 +01:00
Eladash
d7842b7de2
SPU LLVM: Fix WRCH instruction to WrTagMask
2020-06-27 07:04:37 +01:00
Megamouse
76faaf43f7
Input: Use global variables for pad modifications
2020-06-26 04:42:52 +02:00
Eladash
ab9cdc70ad
cellSaveData: Emulate PPU processing of auto/list post-fixed callback
2020-06-25 19:50:33 +03:00
Eladash
e45d37073a
debugger: Shortend SPU/PPU thread names
2020-06-24 17:44:06 +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
Eladash
3ee1d8aed1
fixup
2020-06-18 06:47:07 +03:00
Eladash
5c6dae498b
SPU LLVM: Avoid bad optimization in FCGT
2020-06-18 06:47:07 +03:00
Eladash
731d4330fe
v128: A few optimizations ( #8432 )
2020-06-15 17:24:04 +03:00
Eladash
5777a1d426
SPU: Implement EBUSY error on non-empty mailbox (sys_spu_thread_send_event/sys_event_flag_set_bit)
...
Write into inbound mailbox under mutex.
2020-06-15 17:08:57 +03:00
Eladash
5fda9a4efb
sus_lwcond_signal_all: use protocol specified in lwmutex
...
Trying to fix a nearly impossible corner case.
2020-06-15 17:08:57 +03:00
Eladash
c15b5f1eca
SPU: Move check_state() outside of mutex scope
...
Can result in a deadlock in some cases, cpu flags are checked after this function as well anyways.
2020-06-15 17:08:57 +03:00
Eladash
314dc4c5de
sys_cond: Fix spurious EBUSY in sys_cond_destroy
...
Increment waiters count inside IDM's mutex lock scope.
2020-06-15 17:08:57 +03:00
Eladash
a0f0f58fc5
sys_event_queue: Fix IPC support
2020-06-15 17:08:57 +03:00
Eladash
92b7c56f29
sys_cond/mutex: Fix race between sys_cond_create and sys_mutex, Fix IPC support in sys_cond/mutex
2020-06-15 17:08:57 +03:00
Eladash
88a0e0fe2d
cellAudio: Minor fixup
2020-06-14 18:45:46 +01:00
Eladash
5430892052
sys_vm: Limit total process vsize to 256MB ( #8431 )
2020-06-14 15:27:34 +01:00
Eladash
ff04cd6d69
cellAudio: Fix event queue attachment
2020-06-14 02:31:23 +03:00
Eladash
aa4fdff82c
Fix lv2_obj::name64 regression
2020-06-14 02:25:29 +03:00
Eladash
e1f8573c68
sys_net: Fix sys_net_bnet_setsockopt page faults
2020-06-12 22:39:13 +03:00
Eladash
4bc157881d
sys_net: Stub sys_net_infoctl command 9
2020-06-12 22:39:13 +03:00
Eladash
f0d526411c
IDM: Implement idm::clear<typename>
2020-06-12 22:12:36 +03:00
Eladash
6892399699
kernel_explorer: More Improvements
2020-06-12 09:28:23 +02:00
Eladash
b9cb181691
sys_memory: Improve allocation/deallocation syscalls
2020-06-11 20:03:32 +03:00
Eladash
0bf8f2a527
PPU interpreters: Fix VRFIM, VRFIN, VRFIP, VRFIZ
2020-06-11 14:31:38 +03:00
Eladash
c36c425fb9
kernel explorer: Improvements
2020-06-08 05:46:36 +03:00
Nekotekina
3d7c38ff9d
Remove lambda in sys_net_bnet_poll
2020-06-07 22:44:07 +03:00
Nekotekina
5d27f1c732
PPU: implement VNMSUBFP (precise variant)
2020-06-07 22:44:07 +03:00
Nekotekina
3b8e7d0967
Implement v128::fma32f
2020-06-07 22:44:07 +03:00
Malcolm Jestadt
dcf5c06d6d
SPU LLVM: Optimize FM when op.ra == op.rb
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
8357523ec0
SPU LLVM: Additional FCGT optimizations
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
39149fd84d
SPU LLVM: Partial revert for FM/FMA changes and other improvements
...
- Revert changes to FM and FMA instructions
- Allow non accurate/approx FMA family instructions to use native FMA
- Minor optimization for FMA ops with a constant 0 multiply
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
289c594187
SPU LLVM: Fix theoretical issue with FCGT optimizations
2020-06-06 22:27:48 +03:00
Megamouse
1cb4fb9c50
stub cellPngEnc
2020-06-04 23:13:40 +03:00
Megamouse
413f87b737
Add error_code to cellPngDec
2020-06-04 23:13:40 +03:00
Megamouse
8a8edb1b62
stub sceNpCommerce2
2020-06-04 23:13:40 +03:00
Megamouse
caa1324457
stub sceNpTus
2020-06-04 23:13:40 +03:00
Megamouse
41eb6d4461
cellAudio improvements
...
- use CELL_AUDIO_BLOCK_32 where possible
- use CELL_AUDIO_BLOCK_SAMPLES where possible
- remove redundant logging
- return CELL_AUDIO_ERROR_AUDIOSYSTEM in cellAudioGetPortConfig (probably unreachable code anyway)
- return CELL_AUDIO_ERROR_PORT_OPEN in cellAudioPortOpen
- stub cellAudioSetPersonalDevice cellAudioUnsetPersonalDevice and cellAudioMiscSetAccessoryVolume
2020-06-04 23:09:47 +03:00
sampletext32
437f374bae
Fix some checks
2020-06-04 19:48:08 +03:00
Ani
9657b3f1d4
Fix sys_net_bnet_poll regression ( #8337 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2020-06-04 17:30:11 +01:00
Malcolm Jestadt
c601374b1f
SPU LLVM: Use clamping helpers for FMA32x4 and FM
2020-06-01 21:39:28 +03:00
Nekotekina
938ca90a02
Improve Stop Watchdog
...
Prevent termination if PPU LLVM compilation is in progress.
2020-06-01 02:27:33 +03:00
Nekotekina
1507a59786
SPU LLVM: fix spu_cache dependency
...
Should fix possible crash on exit.
2020-05-31 21:54:04 +03:00
Eladash
675fde69aa
Avoid copying std::shared_ptr in sys_semaphore
2020-05-31 21:02:52 +03:00
Megamouse
99895471ae
cellAudio: make master volume dynamic
2020-05-31 07:37:59 +02:00
Eladash
f0cdd8ace6
PPU: Implement PPU Traps Stubbing option
2020-05-27 22:39:29 +03:00
Nekotekina
8e9d2fa70e
SPU LLVM: implement get_segment_base()
...
Fake function used to compute 32-bit offset of local functions.
2020-05-27 18:53:09 +03:00
Nekotekina
abf9a08ee3
Fix warnings
2020-05-27 18:41:17 +03:00
Eladash
865180e63e
sys_mmapper: Fix possible memory leak on error of create_lv2_shm
2020-05-24 19:24:07 +03:00
Eladash
3265772ae4
idm: Implement creation/destruction invalidation counter
...
* "Ensures" newely created IDs won't have the same ID as old destroyed objects for lv2_obj. (256 tries cycle)
Similar to how the kernel implements it.
2020-05-24 19:24:07 +03:00
Mrlinkwii
68bee397eb
Update cellSpurs.h
2020-05-22 22:19:04 +03:00
Eladash
81749f4353
SPU/PPU disasm: replace unknown instructions message with question marks
2020-05-22 17:37:22 +03:00
Eladash
7c3166a0c6
SPU MFC: Fix MFC_WrListStallAck on interpreters
2020-05-20 22:55:30 +03:00
Eladash
4405f46aec
SPU MFC: Fix SN interrupts
2020-05-20 22:55:30 +03:00
Eladash
81684919f5
SPU MFC: Implement MFC_SDCRZ_CMD
2020-05-20 22:55:30 +03:00
sampletext32
1a8fb61373
Fix some misspells
...
Note: in main.cpp there are many dirs similar to Program Files, so tip should be appropriate.
2020-05-20 22:53:24 +03:00
Malcolm Jestadt
c47d04fd2f
SPU: Optimize FCGT
...
- Optimize FCGT to a single signed integer comparison when possible
- Add is_spu_float_zero helper
2020-05-20 21:55:01 +03:00
Eladash
201d54ee08
PPU interpreters: Implement AltiVec NaNs precedence and data preservation
2020-05-18 00:35:06 +03:00
Eladash
377e2ce3e8
rsx: Write 4-byte long data to all semaphores ( #8246 )
...
* rsx: Write 4-byte long data to all semaphores
2020-05-17 17:48:35 +03:00
Eladash
a2653532ef
SPU reservations (TSX): Remove wait flag in PUTQLLUC
2020-05-17 14:20:21 +03:00
Eladash
8a0425570c
rsx: Fix data written to RSX semaphores and the initial data of them ( #8235 )
2020-05-16 09:55:56 +01:00
Nekotekina
7824419bbf
Remove std::rotr usage for now
...
It seems to be missing on some std implementations.
2020-05-14 21:42:44 +03:00
Eladash
61f43d78df
SPU: Minor cleanup of exception in stop_and_signal
2020-05-14 16:58:50 +01:00
Eladash
54dd9f4eae
sys_spu: Fix sys_spu_thread_group_terminate vs sys_spu_thread_group_exit race on values
2020-05-14 16:58:50 +01:00
Eladash
91d06a9729
SPU LLVM: fixup after #8175 ( #8214 )
...
Mask out RESULT cmd bit, do not create unbound branch blocks. (non-TSX)
2020-05-14 13:34:14 +01:00
Nick Renieris
b1fb5b6239
Emu/Config: Add option for accurate PPU LLVM vector NaNs
...
Turned off by default.
2020-05-14 11:14:28 +01:00
Nick Renieris
20d8d38e53
PPU Interpreter: Accurate vector instruction NaNs
...
Tested with https://github.com/RPCS3/ps3autotests/tree/master/tests/cpu/ppu_vpu .
This commit gets us from 2746 to 353 different lines compared to realhw.
2020-05-14 11:14:28 +01:00
Nick Renieris
78ac2a86bb
PPU LLVM: Accurate vector instruction NaNs
...
Tested with https://github.com/RPCS3/ps3autotests/tree/master/tests/cpu/ppu_vpu ,
results in that test improved by about half.
2020-05-14 11:14:28 +01:00
Eladash
7680466e0d
Minor EFAULT fix in sys_semaphore_get_value/sys_event_flag_get
...
ESRCH preceeds EFAULT in both syscalls.
2020-05-13 19:36:44 +03:00
Eladash
9266507e4c
SPU: Implement spu_channel_(4_)t::try_read
2020-05-13 19:36:44 +03:00
Eladash
8cca113ef4
sys_spu: Add short sleep in sys_spu_thread_group_terminate
2020-05-13 19:36:44 +03:00
Eladash
7ff25588f4
sys_spu: Minor cleanup of group termination process
2020-05-13 19:36:44 +03:00
Eladash
5c4c8f4539
PPU: Use optimized reservation waiting for reservation load (non-TSX)
2020-05-13 16:53:59 +03:00
Eladash
12f0278808
SPU LLVM: Improve MFC transfers recompilation for non-TSX
2020-05-13 11:10:13 +01:00
Eladash
525453794f
SPU/PPU reservations: Optimizations part 1
...
- Implement vm::reservation_trylock, optimized locking on reservation stores with no waiting. Always fail if reservation lock bitsa are set.
- Make SPU accurate GET transfers on non-TSX not modify reservation lock bits.
- Add some optimization regarding to unmodified data reservations writes.
2020-05-13 11:10:13 +01:00
Megamouse
eb5ec211c2
Input: remember registered ldd controllers
...
- Don't reset ldd pads when saving a pad config
- Prevent configuration of registered ldd pads in the gui while ingame
2020-05-13 11:17:58 +02:00
Eladash
f95b81574f
sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes ( #8182 )
...
* sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes
* SPU: Wait for all threads to have error codes if exited by sys_spu_thread_exit
On last thread in group to run.
* sys_spu: Fix sys_spu_thread_group_start
* fixup ad fix sys_spu_thread_group_terminate
idk why "- !group->running" was put in the first place but its probably no longer relevant due to other changes and was causing other issues such as not always waiting for last SPU thread to set group state to INITIALIZED.
2020-05-11 21:24:04 +03:00
Eladash
bd61347b21
sys_spu: reset group exit status in sys_spu_thread_group_start
2020-05-10 03:46:11 +01:00
Eladash
09797c3584
sys_spu: Improve sys_spu_thread_get_exit_status
2020-05-10 03:46:11 +01:00
Nekotekina
e1042bc631
Get rid of "module" keyword
...
Workaround some intellisense problems.
2020-05-06 18:20:11 +03:00
Nekotekina
907adc817e
Fix some warnings (GCC)
2020-05-05 21:55:22 +03:00
Eladash
1bd6cb2105
SPU/PPU debugger: use ':' instead of '='
2020-05-05 13:46:26 +03:00
Eladash
edde748519
sys_event_queue: Fix forced event queue destruction
...
Add missing last existence check at sys_spu_thread_(try)receive_event and lv2_event_queue::send.
2020-05-04 01:10:19 +03:00
Eladash
37ce7056ac
lv2: Minor optimization for "awake all" threads in sleep queue
2020-05-04 01:10:19 +03:00
Eladash
b84b8f4db4
sys_cond_signal_all: Use SYS_SYNC_PRIORITY protocol to signal threads
2020-05-04 01:10:19 +03:00
Eladash
72bef8dd7f
PPU: Clear reservation on context switch
...
Ensure that only 2 PPU reservations exist at maximum at a time.
2020-05-02 14:57:38 +03:00
Eladash
0e6937a359
SPU GETLLAR: Don't use loop detection for TSX
2020-05-02 14:57:38 +03:00
Malcolm Jestadt
c1bd154bcd
SPU: Optimize FMA ops with 0 addend
2020-05-01 17:52:10 +03:00
Eladash
2b75df22d9
sys_event_queue: Fix ports disconnection after queue destruction
2020-04-30 18:58:42 +03:00
Eladash
37110098c7
cellAudioOut Improvements
2020-04-30 15:45:20 +03:00
Nekotekina
19acf260d8
SPU DMA: Fix PUTLLUC (TSX)
...
Prevent edge case of missing store.
2020-04-29 15:40:41 +03:00
Eladash
f4f0fb88b1
kernel explorer: Add more information about SPU/PPU threads
2020-04-29 15:32:16 +03:00
Eladash
dd6825a7bd
Fix sys_ppu_thread_start error checking, fix rare bug in sys_ppu_thread_create
...
* Correct error code to EBUSY.
* lv2_obj::awake was called even when EBSUY should be returned.
* Fix sys_ppu_thread_create for a newly created thread with the same id as ppu_thread::id_base. (can happen if main thread exited before its creation)
2020-04-29 08:58:09 +03:00
Eladash
c1dc6838fa
Fix sys_ppu_thread_get_priority page faults
2020-04-29 07:57:47 +03:00
Eladash
69f82a7311
Make spu_mfc_cmd fmt properly show stalled commands
2020-04-29 07:47:49 +03:00
Eladash
791ec95313
sys_rwlock: Do not allow SYS_SYNC_PRIORITY_INHERIT
2020-04-29 05:56:47 +03:00
Eladash
954e3f6e6c
Fixup for cpu_flag::pause state check after #8114
2020-04-29 05:56:47 +03:00
Nekotekina
689419b0ca
Remove test_stopped() check from ppu_load_acquire_reservation
...
Fixes warning.
2020-04-29 00:09:40 +03:00
Eladash
a505d87565
Partial revert of 3be687cd18
2020-04-28 20:20:19 +03:00
Nekotekina
790fd9ce14
SPU DMA: implement cmp_rdata_avx
...
Use technique similar to mov_rdata_avx with inline assembly.
2020-04-28 17:58:26 +03:00
Eladash
7da8ba5c15
Wait for SPU event to be received in sys_spu_thread_group_exit
...
Also use atomic check for group->run_state outside the mutex,
explicitly forbid group termination while we are waiting for an event to be received.
2020-04-28 14:58:17 +03:00
Eladash
a9c18964b6
Add missing cpu state check sys_spu_thread_receive_event
2020-04-28 14:58:17 +03:00
Eladash
fe7933b0d2
Make ESTAT consistent in sys_spu_thread_group_terminate
2020-04-28 14:58:17 +03:00
Eladash
9506676223
SPU debugger: dump Stall Stat and SRR0
2020-04-28 14:27:40 +03:00
Eladash
7d7909149f
SPU: Detect reservation spinning loop
2020-04-28 14:27:40 +03:00
Eladash
3be687cd18
PPU: Fix LWARX/LDARX on TSX path
2020-04-28 14:27:40 +03:00
Eladash
e423128a32
SPU: New GETLLAR technique
2020-04-28 14:27:40 +03:00
Nekotekina
3ec73b651e
SPU DMA: more tuning for mov_rdata_avx
...
Avoid unaligned stores.
Prefer asm path if __AVX2__ is not set.
Don't emit vzeroupper if __AVX__ is set.
2020-04-27 18:05:52 +03:00
Nekotekina
4f71c570bd
SPU DMA: disable memcpy path
...
Due to update of the alternative path (SSE/AVX)
2020-04-26 22:36:55 +03:00
Nekotekina
8ae2554505
Implement mov_rdata_avx
2020-04-26 22:36:45 +03:00
Nekotekina
58ba6d68bb
Don't use std::popcount (workaround)
...
It seems MSVC uses POPCNT instruction when compiling for SSE2.
2020-04-25 18:01:39 +03:00
scribam
3fd3bd7ca1
spu: Add some "if constexpr"
2020-04-25 14:56:47 +03:00
Megamouse
e4cb9ef7cd
cellpad: add pclass_profile flags
2020-04-25 10:17:48 +02:00
Megamouse
4e6d95c5b8
Qt/input/cellpad: enable product choice
2020-04-25 10:17:48 +02:00
Eladash
256c74def2
sys_rsx: Fix error code instead of success on invalid context
2020-04-23 14:01:04 +03:00
Eladash
c48ccc6f3c
sys_rsx: Fix zcull bind error checking regression
2020-04-23 14:01:04 +03:00
Eladash
8c747bf0a2
sys_rsx: More error checks for ZCULL area binding
...
And clamp zcull offset to 256MB, it's unknown if only the error check clamps or it is clamped entirely.
2020-04-21 16:18:32 +01:00
Eladash
dbce10d0e3
PPU LLVM: Fix rounding regression of FNMADDS, FNMSUBS ( #8066 )
...
* PPU LLVM: Fix rounding regression of FNMADDS, FNMSUBS
2020-04-19 20:55:26 +01:00
rxys
5101bc189e
Fix FMA copypasta ( #8060 )
2020-04-19 19:17:19 +01:00
Eladash
5960de2e20
PPUAnalyzer: Check if TOC from OPD is a valid address
2020-04-19 10:56:42 +01:00
Eladash
1cb3bf6dab
Minor fixup for unimplemented syscall args dump
2020-04-19 10:56:42 +01:00
Eladash
0bf73ba0bc
PPU debugger: report functions on registers display
2020-04-19 10:56:42 +01:00
Eladash
368bd7cf02
PPU debugger: read 32-bit pointer instead of 64-bit
...
PPU ABI supports only 32-bit pointers in userland, also fix it to use super ptr.
2020-04-19 10:56:42 +01:00
Eladash
83c7f6f149
debugger: Rephrase "Current function" to "In function"
...
Takes less space which makes actual function name display a bit nicer.
Also the meaning is clearer.
2020-04-19 10:56:42 +01:00
Eladash
6210507a37
sys_rsx: Fix tiles on MAIN memory error checking
2020-04-18 10:20:03 +03:00
Eladash
06d4505992
sceNp: Override k_licensee for PE game category
...
Co-Authored-By: AniLeo <ani-leo@outlook.com>
2020-04-17 11:41:50 +01:00
Eladash
a3f2dfa232
sys_isolated_spu
2020-04-17 11:41:50 +01:00
Eladash
921b1aadfb
lv2: Log all arguments of unimplemented syscalls
2020-04-17 11:41:50 +01: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
Eladash
8cb1f4fe26
liblv2 HLE: Fix spu_elf_info loader for SCE SPU images ( #8045 )
2020-04-15 21:19:46 +01:00
Nekotekina
074b9f94db
Fix regression in SPU ASMJIT
...
Incorrect arithmetics.
2020-04-15 12:19:15 +03:00
Nekotekina
b1b67a13c6
Revert "Replace rotate utils with std::rotl" (partial)
...
This reverts commit 4d8bfe328b .
2020-04-14 19:45:53 +03:00
Eladash
bc3b70c338
Fix ppu_rotate_mask
2020-04-14 19:10:30 +03:00
Eladash
63be05d5d3
minor ppu fixup
...
does not affect anything except consistency.
2020-04-14 17:09:58 +03:00
Eladash
ec1e82bc9d
SPU debugger: Implement blocking functions dumping
2020-04-14 17:09:58 +03:00
scribam
f37adc4188
Add fallthrough attribute
2020-04-14 17:06:58 +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
2dcc3255b2
Fix sys_net_bnet_sendto ( #8026 )
2020-04-13 18:49:12 +01:00
JohnHolmesII
a8a83c9724
cellRtc: Extend before shift, per decompiled output
2020-04-13 14:37:11 +03:00
JohnHolmesII
f0b1c8302a
Fix order of operations warning
2020-04-13 14:37:11 +03:00
Eladash
c8b8cafeec
PPU: Merge reservations store functions into one
2020-04-13 14:34:37 +03:00
RipleyTom
791c0da236
Add Disney Portal to passthroughs ( #8022 )
2020-04-13 11:49:42 +01:00
Eladash
b45d836b89
sys_net: Fix sys_net_bnet_bind page faults
...
+ EINVAL checks
2020-04-13 04:34:10 +01:00
Eladash
8f32d44635
sys_net: Fix sys_net_bnet_sendto
2020-04-13 04:34:10 +01:00
Eladash
9fb30f130a
sys_net: Fix sys_net_bnet_getsockopt
...
+ EINVAL checks
2020-04-13 04:34:10 +01:00
Eladash
d91d420981
sys_net: EINVAL check in sys_net_bnet_listen
2020-04-13 04:34:10 +01:00
Eladash
442035c251
sys_net: EINVAL checks in sys_net_bnet_accept
2020-04-13 04:34:10 +01:00
Eladash
063902728b
sys_net: EINVAL checks in sys_net_bnet_recvfrom
2020-04-13 04:34:10 +01:00
Eladash
60a63fa4b6
sys_net: Fix sys_net_bnet_getsockname page faults
...
+ EINVAL checks
2020-04-13 04:34:10 +01:00
Eladash
7399a3f1e9
sys_net: Fix sys_net_bnet_getpeername page faults
...
+ EINVAL checks
2020-04-13 04:34:10 +01:00
Eladash
c4f6968aae
sys_net: Fix sys_net_bnet_connect page faults
...
+ EINVAL checks
2020-04-13 04:34:10 +01:00
Eladash
00957ca4bf
sys_net: Fix sys_net_bnet_select page faults
2020-04-13 04:34:10 +01:00
Eladash
179a9b3bf0
sys_net: Fix sys_net_bnet_poll page faults
2020-04-13 04:34:10 +01:00
Eladash
cb14805d78
rsx fp/vp analyzers: Fix strict type aliasing and improve codegen
2020-04-12 16:48:43 +03:00
Eladash
ae1ff1e96d
ppu exec loader: Log TLS image information
2020-04-12 10:30:38 +01:00
Eladash
bb950cbb3b
vm: Fix possible IDM deadlock with Page Fault Notifications (partial)
2020-04-12 10:30:38 +01:00
Whatcookie
6b0f7a8f55
PPU LLVM: Optimize altivec FMA with 0 addend ( #8013 )
...
- When VMADDFP and VNMSUBFP are used with a constant addend of 0, they can be simplified into a single floating multiply
2020-04-12 09:52:21 +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
Eladash
e407018bb5
rsx: Write ref+get atomically
...
May contribute to better FIFO synchronization in some cases.
2020-04-11 21:21:15 +03:00
Eladash
ff74c241c7
rsx: Fix get_optimal_blit_target_properties for local memory
2020-04-11 21:21:15 +03:00
Eladash
d69bec8f59
rsx: Fix vblank thread stop regression
2020-04-11 21:21:15 +03:00
Eladash
504ba8d824
rsx: Fix grammer issue (binded -> bound)
2020-04-11 21:21:15 +03:00
Eladash
8228fa1ece
sys_rsx: Warn if RSX is not idle during crucial points
2020-04-11 21:21:15 +03:00
Eladash
1f9f455801
sys_rsx: Implement error checks for Zcull/Tiles binding
...
* Check zcull/tiles offset if bigger than max MAIN/LOCAL size.
* Check memory mapping of offset if location is MAIN.
* Check pitch/size for 0 as coming from hw tests.
* In addition: fix 'bound' check of tiles, seem to rely on the bits location is in.
* Add locks for zcull/tiles/displaybuffer binding.
2020-04-11 21:21:15 +03:00
Eladash
5ba26e247b
sys_rsx: Implement LLE cellGcmSysGetLastVBlankTime
2020-04-11 21:21:15 +03:00
Eladash
d451a0b7b7
SPU LLVM: Improve FNMS
...
Should be more accurate with postive/negative zero inputs according to docs while being more optimized.
TODO: Check SPU precise interptreter.
2020-04-09 17:27:14 +03:00
Eladash
158b24ec25
SPU LLVM: Add accurate double-precision FMA support
2020-04-09 17:27:14 +03:00
Nekotekina
1b68f90e42
Tweak TSC calibration
...
Round to 3 digits after dot (count in MHz).
2020-04-09 16:23:33 +03:00
clienthax
765b14a8ba
Implement cellRtc HLE ( #7933 )
2020-04-09 15:54:41 +03:00
Eladash
cce946f10e
spu: typo fix
2020-04-08 19:23:13 +03:00
Eladash
c948c9305c
sys_ppu_thread_create: read function descriptor immediately and save it
2020-04-08 19:23:13 +03:00
Eladash
c0f4fb6e35
SPU debugger: dump reservation address
2020-04-08 14:35:44 +03:00
Eladash
cc8f024c6c
Fixup ppu/spu_thread::dump_all()
2020-04-08 14:35:44 +03:00
Eladash
995fa63f4c
sys_rsx: Fixup after #7978
2020-04-08 11:33:26 +03:00
Eladash
f7536bbce0
sys_rsx: Fix gcm events spam
...
In realhw the events are only sent if they are masked in driver_info->handlers as well.
2020-04-07 20:43:28 +03:00
Eladash
3f48450408
sys_rsx: Minor atomicity fixes
2020-04-07 20:43:28 +03:00
Víctor "IlDucci
a38d2461c9
Linguistic changes ( #7917 )
2020-04-07 17:10:04 +02: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
Nekotekina
7939160178
Shorten SPU LLVM Worker name to SPUW.#
...
For debugging.
2020-04-07 15:55:30 +03:00
Nekotekina
3eabec0030
SPU: Fix SPU Precise interpreter
2020-04-07 15:42:27 +03:00
Eladash
8f3ad8b81a
Fix cellGameDataCheckCreate2 error broken check ( #7976 )
2020-04-07 14:03:03 +03:00
Megamouse
b1fdbc7fcc
Move some format functions
2020-04-06 20:59:58 +02:00
Silent
fd09dde911
cellSearch: Change search state before invoking callbacks
2020-04-05 16:35:56 +03:00
Eladash
dc5cdb3bb4
sys_ppu_thread: reduce global memory stats after thread creation
2020-04-05 15:23:09 +03:00
RipleyTom
f33373ca1b
Add Lego Dimensions Portal to usb passthroughs
2020-04-05 14:23:54 +03:00
Nekotekina
ae140a1ac9
SPU LLVM: improve stack mirror format in Mega mode
...
Store first instruction for additional validation.
Should fix some problems.
I didn't touch ASMJIT.
2020-04-04 21:40:42 +03:00
Nekotekina
8053d2602a
SPU LLVM: implement bisect helper (debugging tool)
...
Added two new settings: SPU LLVM Lower/Upper Bound
By manipulating values, conditionally avoid compiling programs.
It uses hash of the programs (64-bit start hash of SHA-1).
Programs which aren't compiled run with interpreter.
2020-04-04 21:38:40 +03:00
Nekotekina
18dbd788e6
SPU DisAsm: fix disasm for BINZ and similar instruction
2020-04-04 21:38:40 +03:00
Nekotekina
a53d0d50b3
SPU LLVM: add alternative ROTQBY implementation
...
Used if SSSE3 is not available (exec_rotqby).
2020-04-04 21:38:40 +03:00
Nekotekina
f05e24e8e8
SPU LLVM: make LS loads/stores volatile
...
Fixes PS1 classics and possibly something else.
2020-04-04 21:38:40 +03:00
Eladash
0b24b09a06
sys_fs: Lock dev_hdd1 mount point at cellSysCacheClear
2020-04-04 19:36:16 +01:00
Eladash
a178374052
sys_fs: Limit NPDRM FDs to 16
...
Co-Authored-By: Silent <cookieplmonster@users.noreply.github.com>
2020-04-04 19:36:16 +01:00
Eladash
63080c22a3
Fix ppu_thread::dump_callstack()
2020-04-04 00:06:51 +03:00
Eladash
55baaea8e7
liblv2 HLE: Fix sys_lwcond_signal mode 3
2020-04-03 19:42:25 +03:00
Eladash
13820d6802
SPU debugger: Show channels data
2020-04-03 18:37:21 +03:00
Eladash
0beea91d5e
Minor debugger fixups
2020-04-03 18:37:21 +03:00
Eladash
3f559cd86e
Fix sys_cond_destroy ( #7931 )
...
Dereference cond count in sys_cond_destroy
2020-04-03 12:45:59 +03:00
Nick Renieris
6cbb12e5cd
PPUThread: String & hex previews for register pointers in register dump
2020-04-03 01:36:35 +01:00
Nick Renieris
1231274e0f
CPUThread: Split dump() info to separate methods
2020-04-03 01:36:35 +01:00
Eladash
92f821aeb1
PPU LLVM: Add FMA accuracy setting ( #7874 )
...
* PPU LLVM : Match PS3 for the instructions fmadd, fmadds, fmsub, fmsubs, fnmadd, fnmadds, fnmsub, fnmsubs
Co-authored-by: doesthisusername <yfirestorm@gmail.com>
2020-03-31 20:01:10 +03:00
Eladash
fdd7f0645d
Some typos ( #7908 )
...
* sys_lwcond: replace writer lock with reader lock
* sys_rsx: Typo fix
* sys_net: Fixup for buffer reading
2020-03-31 16:44:50 +03:00
Eladash
29be815302
rsx: Implement DECR memory layout ( #7906 )
2020-03-31 05:12:30 +01:00
Eladash
1510505b30
Fix sys_rwlock_wlock timeout event
2020-03-30 14:22:15 +03:00
Eladash
019aae8bec
sys_net: Fix access violation handling ( #7901 )
...
Should fix page faults notifications on unmapped menory on Gran Turismo 5.
2020-03-30 05:53:17 +01: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
dcc269128f
SPU LLVM: runtime multithreaded compilation
...
Active for CPU with 12 or more threads.
2020-03-28 17:17:51 +03:00
Nekotekina
9db088e17b
SPU LLVM: log hash in some places
2020-03-28 17:17:51 +03:00
Eladash
66bd8308d9
lv2: Wait for rescheduling before confirming timeouts ( #7875 )
2020-03-28 03:16:59 +00:00
AniLeo
c00ee7ed5b
hle: cellSysutilNpEula
...
Add missing function names and stub all functions
Co-Authored-By: Eladash <elad3356p@gmail.com>
Co-Authored-By: Eladash <elad3356p@gmail.com>
2020-03-27 15:26:28 +03:00
Eladash
36d8553f9c
liblv2 HLE: Fix entryx of start/stop prx functions
2020-03-26 17:52:45 +03:00
Eladash
7ed570dc4a
PPU LLVM: Add relocation 5 for ADDIS
...
+ Add some more for u16 relocations (4, 5, 6), simplify logic.
2020-03-26 17:52:45 +03:00
Nekotekina
fa29c5aa94
ppu_iname: refactor to use actual strings
2020-03-26 15:28:41 +03:00
Nekotekina
8d1a9dce91
spu_iname: refactor to use actual strings
2020-03-26 15:26:55 +03:00
Eladash
453478c98b
PPU LLVM: Log unsupported relocation opcode
2020-03-26 15:22:45 +03:00
Eladash
ccc7cb7994
Log IDs of loaded prx modules
2020-03-26 15:22:45 +03:00
Eladash
150d1bcdd5
sys_prx_unload_module: Implement CELL_PRX_ERROR_NOT_REMOVABLE
2020-03-25 16:22:47 +03:00
Eladash
e1f2f3f081
sys_prx: Improve sys_prx_start/stop_module
...
* Add missing error codes, "internal" errors are ones which are not reachable from liblv2.sprx functions
* Implement SYS_PRX_NO_RESIDENT (unloading module) for _sys_prx_start_module.
2020-03-25 16:22:47 +03:00
Eladash
717dd1625c
sys_prx: Implement sys_prx_get_module_list
2020-03-25 16:22:47 +03:00
Nekotekina
471db3219d
Finalize constexpr ppu_decoder<> thing
...
Move SSSE3 checks to runtime in PPUInterpreter.cpp
2020-03-25 11:18:48 +03:00
Nekotekina
1ceb779a38
Make ppu_decoder<> objects constexpr (partial)
2020-03-24 13:46:46 +03:00
Nekotekina
a936533eb1
Make spu_decoder<> objects constexpr
2020-03-24 12:18:37 +03:00
Eladash
eb1de04ca8
_sys_lwmutex_lock: log new case of ESRCH
2020-03-23 23:18:21 +03:00
Eladash
2aff36647a
Make sceNpDrmProcessExitSpawn(2) execute sys_game calls correctly
2020-03-23 23:18:21 +03:00
Eladash
52360b3f98
liblv2 HLE: Fix sys_lwmutex_lock assertation
2020-03-23 21:37:37 +03:00
Eladash
08e66ab14c
Minor warning fixes
2020-03-23 21:37:37 +03:00
Eladash
3de41bfea7
_sys_lwcond_signal: Make mode 3 respect ordering of the sleep queue
2020-03-23 21:37:37 +03:00
Megamouse
1537f505a5
cellGem: fix move_handler::mouse left click
2020-03-23 15:10:01 +03:00
Nekotekina
5ebc538d7e
Workaround for VS 16.5
...
Strange codegen bug didn't promote s32 to u64.
2020-03-23 14:48:49 +03:00
Eladash
537f175f52
Another fixup after #7826
2020-03-23 11:54:19 +03:00
Eladash
017ef5a94e
Minor fixup after #7826
2020-03-23 10:59:51 +03:00
Eladash
cccc32fa9d
sys_lwmutex/lwcond: track lwcond waiters ( #7826 )
...
In lwmutex destroy syscall, wait for pending waiters.
2020-03-23 10:30:17 +03:00
Emmanuel Gil Peyrot
425e032a62
SPU: Copy with memcpy() instead of hand-rolled SSE2
...
In some very unscientific benchmark:
spu_thread::do_dma_transfer() was taking 2.27% of my CPU before, now
0.07%, while __memmove_avx_unaligned_erms() was taking 1.47% and now
2.88%, which added makes about 0.8% saved.
2020-03-22 15:51:03 +03:00
Nekotekina
e606130262
Memoize and print r3-r6 under Current function in the ppu_thread::dump()
2020-03-22 14:13:52 +03:00
Eladash
dc839e1784
lv2: Do not lose r3 data on syscalls
...
Allows to get the ID of the lv2 sync objects in the debugger by looking at r3's content.
2020-03-22 12:41:02 +03:00
Eladash
01cafc042d
cellSaveData: Ensure savedata_context members are 16-byte aligned
...
I saw stvx v128{0} (aligned 16-bytes store) usage on the first 16-bytes of CellSaveDataCBResult before funcStat in fw.
Also I saw 4 stw of u32{0} on it as well before funcFile, funcFixed and funcList.
So just add the resets for result before all callbacks, and make all
members of savedata_ontext 16 -byte aligned in case there are more
members guaranteed to be aligned.
2020-03-21 19:05:20 +03:00
Eladash
ceaee0ec68
cellSaveData: Clear traces of setList setup from setBuf->buf, add missing memset
...
* Always memset 0 setBuf->buf (to bufSize) before funcStat if the direcory is not new.
* Always memset 0 setBuf->buf (to bufSize) if listGet->dirNum became non-zero (listGet->dirListNum can be zero yet memset still occurs) .
* Clear traces of setList setup before funcStat (after funcFixed/List, only if listGet->dirNum != 0, callback can hack this value and prevent the memset).
2020-03-21 19:05:20 +03:00
Eladash
b6a288d383
cellSaveData: Skip directory items in savedata_get_list_item
2020-03-21 19:05:20 +03:00
Eladash
ae14eb0747
Minor fix of cellUserInfoGetStat
...
stat == nullptr is allowed, fix invalid id error code.
2020-03-21 19:05:20 +03:00
Eladash
be0e586671
cellSaveData: Add error checks for cellSaveData(User)GetListItem
2020-03-21 19:05:20 +03:00
Eladash
66916df4ae
cellSaveData: Set listSet->focusPosition to LISTHEAD by default
2020-03-21 19:05:20 +03:00
Eladash
fae46bf194
cellSaveData: Add CELL_SAVEDATA_ERROR_NOUSER
2020-03-21 19:05:20 +03:00
Eladash
e1cb827488
PPU Precise: Fix FMADDS, FMSUBS, FNMSUBS, FNMADDS
2020-03-21 16:32:09 +03:00
Eladash
3a36b713ce
Dont spam syscalls stats if emu is paused
2020-03-21 16:31:18 +03:00
Megamouse
f1127f1894
overlays: implement osk panels
2020-03-19 21:10:08 +01:00
Eladash
1dbb5422a2
Avoid a segfault when reading ppu stack contents in debuggers
...
TODO: lock vm mutex.
2020-03-19 14:18:05 +03:00
Eladash
7139c4fbab
Fix bug introduced by #7797
2020-03-19 07:22:05 +03:00
Malcolm Jestadt
0bfdc1f62e
PPU LLVM: Improve VMADDFP and VNMSUBFP
...
- Use native FMA to emulate VMADDFP, with a fallback for processors that don't support FMA
- Use native FMA to emulate VNMSUBFP as well, but note that it differs from the emulated path with regards to negative zero
2020-03-19 06:47:16 +03:00
Eladash
b11e8f8b8d
Minor fix of sys_ppu_thread_yield return value
...
Account for a special case where threads were rotated but no context
switch was made.
2020-03-19 06:45:14 +03:00
Eladash
7be35315da
Fix lv2 sys_lwcond/sys_lwmutex kernel explorer names
2020-03-19 06:45:14 +03:00
Nekotekina
6a2571d0e1
SPU: print current chunk hash in dump
2020-03-18 18:28:46 +03:00
Eladash
03a6d67c6c
Log sys_lwmutex/sys_lwcond names as strings
...
Use std::string_view instead of creating a temporary NTS string when reading object name.
2020-03-17 18:22:13 +03:00
Eladash
a9f492b605
sys_spu: Fix oops in sys_raw_spu_destroy after #7782
...
'id' is not the idm id, also explicitly join the thread so a situation where the thread is still active and communicating other threads (e.g via MMIO or MFC) yet its ID is removed won't happen. (logic breakage, destroyed thread can't be active)
2020-03-17 18:22:13 +03:00
Eladash
664d606123
Add return value of sys_ppu_thread_yield
2020-03-17 18:22:13 +03:00
Eladash
00d25a191b
lv2: Uncomment sys_ppu_thread_stop/restart
2020-03-17 18:22:13 +03:00
Eladash
3566faabd9
Add missing lv2_obj::sleep when joining interrupt thread
2020-03-16 21:06:33 +03:00
Eladash
7e224c5585
cellVdecClose: Followup fix to #7663
...
Avoid executing sys_interrupt_thread_disestablish on different ppu thread with the same ID.
2020-03-16 21:06:33 +03:00
Eladash
9e14e835e7
Fix sys_raw_spu_destroy
2020-03-16 21:06:33 +03:00
Nekotekina
45389dca51
PPU: minor fix for ppu_join_status::max
...
Don't treat it as special "invalid" value.
2020-03-14 20:36:56 +03:00
Eladash
4e6934c9dc
Minor idm::remove_verify usage optimization in sys_interrupty.cpp
...
Avoid copying a shared ptr, create a weak ptr instead.
2020-03-14 19:26:37 +02:00
Eladash
74c05ec5ee
PPU Disasm: Fix non-link extended BCCTR forms
2020-03-14 19:26:22 +02:00
Eladash
83a2204f87
PPU Disasm: Fixup BCCTR after #7775
2020-03-14 18:30:14 +02:00
Eladash
c16124f0d9
idm: Fix minor race in cellVdecClose, sys_raw_spu_destroy...
...
Because of racing removal of IDs vs the shared pointer owned object
2020-03-14 18:30:14 +02:00
Eladash
efe6e1eb0a
sys_ppu_thread: Make PPU id removal after exit atomic with descheduling
...
* Make PPU id removal after exit atomic with descheduling
* Make joining thread scheduling atomic with thread exit sleep.
* Update sys_ppu_thread_stop/restart.
* Add idm::remove_verify.
2020-03-14 18:30:14 +02:00
Eladash
c3d36940c7
cellSaveData: do not allow to read/write/delete system files in funcFile
...
Return param error 70 as realhw in this case.
2020-03-14 16:12:18 +03:00
Eladash
ff341fe597
PPU Disasm: Fix branches spacing
...
Null terminator was added at the end which prevented proper spacing.
2020-03-14 16:12:18 +03:00
Eladash
db71d4852a
cellSaveData: Fix adding file entries to PARAM.SFO on error
2020-03-14 16:12:18 +03:00
Eladash
88ee198d78
cellSaveData: return ERROR_FAILURE on funcFile deletion failures
2020-03-14 16:12:18 +03:00
Eladash
5d78d81c00
cellSaveData: Filter directory lists to allowed savedata directories
...
Filters "." and "..", as well as possible wrong directories added by the user.
2020-03-13 22:43:27 +03:00
Eladash
b21b4faca8
cellSaveData: Fixed savedata lock after fmt::throw_exception
2020-03-13 22:43:27 +03:00
Eladash
d58f52ff31
cellSaveData: Add some listSet error checks
...
* Check listSet->fixedListNum.
* Check listSet->fixedList for nullptr and its directory items names.
* Check listSet->focusDirName for nullptr and directory name.
* Check listSet->newData->iconPosition.
* Check listSet->newData->dirName for nullptr and directory string.
* Check statSet->setParam->parental_level for old sdk.
* Return an error if listSet->focusPosition is NEWDATA and listSet->newData is nullptr.
* Simplify savedata directory list selection.
2020-03-13 22:43:27 +03:00
Eladash
54af8ec544
cellSaveData: funcFile fixes
...
* Allow '_' at filenames start and extension.
* Check if reading offset is valid, fix error code to CELL_SAVEDATA_ERROR_FAILURE.
* Don't create empty file on error of write ops.
* Don't allow "." and ".." filenames on funcFile, return CELL_SAVEDATA_ERROR_BROKEN.
2020-03-13 22:43:27 +03:00
Eladash
fdf47f43d8
cellSaveData: refactor param error 70 checks
...
Also extend the check to check empty name.
2020-03-13 22:43:27 +03:00
Nekotekina
04dedb17eb
Disable exception handling.
...
Use -fno-exceptions in cmake.
On MSVC, enable _HAS_EXCEPTION=0.
Cleanup throw/catch from the source.
Create yaml.cpp enclave because it needs exception to work.
Disable thread_local optimizations in logs.cpp (TODO).
Implement cpu_counter for cpu_threads (moved globals).
2020-03-12 16:03:08 +03:00
Megamouse
3ea94c286b
input/overlays: fix premature pad interception removal
...
shader compilation and trophy notifications shouldn't cancel the pad interception during proper dialogs
2020-03-10 19:04:32 +01:00
Bird Egop
4e25daffa6
Explicitly rename has_512 into has_avx512 ( #7751 )
2020-03-10 19:21:00 +03:00
Eladash
af7cdcb5c7
Add forgotten error check in sys_spu_thread_group_connect_event
2020-03-09 16:07:14 +03:00
Nekotekina
9dca2887d8
Fixup for Emu.Pause()
...
Remove some reduntant calls.
Don't pause on unknown sys_fs_fcntl operation.
2020-03-08 22:03:16 +03:00
Eladash
5692c3de04
Fix sceNpUtilCmpNpId
2020-03-08 12:49:34 +03:00
Eladash
892f74d762
rsx: Improve frame-limiter ( #7723 )
...
* rsx: Improve frame-limiter accuracy
* lv2: Improve lv2_obj::wait_timeout response time for aborting threads
* rsx: Make stretch to display area setting dynamic
* rsx: Redefine 'auto' frame limiter to obey vblank rate
* rsx: Make frame limiter setting dynamic
* rsx: Make frame-limiter compatible with dynamic changes
2020-03-08 01:11:35 +03:00
Eladash
deb6bd3e25
Atomic sys_prx_load_module_list error checks
2020-03-07 22:03:38 +03:00
kd-11
6e3406b3f5
video: Allow selection of 3D stereo resolutions
2020-03-07 16:58:35 +03:00
Nekotekina
e4a81b1d13
Move Log.h to util/logs.hpp
2020-03-07 12:29:23 +03:00
Nekotekina
a166d3680e
Don't throw on invalid whence (return fs::error::einval)
2020-03-07 11:52:54 +03:00
Eladash
1669e95870
Implement lv2_file::open()
...
Return accurate error codes in prx_load_module, sys_spu_image_open and overlay_load_module.
2020-03-06 21:16:46 +03: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
0a41999818
PPU LLVM: fix regression from warning fixes
...
Forgot that negative power is used here.
2020-03-05 11:07:40 +03:00
Megamouse
21b6495aaa
Fix ui and sys_net warnings
2020-03-04 22:28:05 +01:00
Nekotekina Aux1
250736ece5
Fix warnings in emucore
2020-03-04 21:23:34 +03:00
RipleyTom
f1f5c91386
Fake PSN ( #7516 )
2020-03-04 13:55:35 +00:00
Nekotekina
bdbc7b5f1d
PPU: use named_thread_group to compile modules
...
Improves internal logic by not using too many threads.
2020-03-04 14:10:38 +03:00
Nekotekina
5b0476e772
Update LLVM to new llvm-mirror (LLVM 11)
...
Use clang-cl to build LLVM on Windows.
2020-03-03 18:33:02 +03:00
Nekotekina
68f50c7035
Fix ppu_syscall_usage thread waiting
...
Fixed 10s hang on exit
2020-03-03 18:33:02 +03:00
Eladash
5c3d417b35
Fix cellGameDataCheck's game data creation with PARAM.SFO set/get
2020-03-03 18:31:43 +03:00
Nekotekina
01db83bc36
SPU LLVM: Rewrite fma32x4 to match FM and older asmjit stuff
2020-03-03 11:31:20 +03:00
Eladash
de1774d8f2
cellSaveData: fix doneGet->sizeKB ( #7674 )
...
* cellSaveData: fix doneGet->sizeKB
* [⚠️ ] Warning: beware of typos [⚠️ ]
2020-03-03 11:24:49 +03:00
Nekotekina
3105b21909
Print PPU Syscall Usage Stats
...
* Every 10 seconds
* On normal exit
2020-03-02 20:48:20 +03:00
Nekotekina
bd234a7668
sys_ppu: another fixup
2020-03-02 10:35:54 +03:00
Nekotekina
c7fa4e2375
Fixup
2020-03-01 22:40:48 +03:00
Nekotekina
6ee9153329
sys_ppu_thread: fixing detached threads
2020-03-01 22:29:03 +03:00
kd-11
582c98359e
videoOut: Resolve 'auto' aspect ratio
...
- 'Auto' is not an actual aspect ratio, just a dont-care flag to set the
display to the best fit aspect ratio.
Decay this option into a proper ratio for cellVideoOutGetState to
return legal values.
2020-03-01 20:10:11 +03:00
Eladash
7dfd50d5cc
cellSaveData: followup to #7652
2020-03-01 20:09:46 +03:00
Nekotekina
b05b16aedc
sys_ppu: Hotfix for detached threads
2020-03-01 18:30:16 +03:00
Eladash
ffd5a9e91c
cellSaveData: Add some error checks for fixedSet, fileSet params
2020-03-01 10:56:41 +02:00
kd-11
14aebeac58
video-out: Allow applications to successfully change display resolution
...
- Avoids a situation where a game configures output correctly but gets back bogus information later when querying.
- Should fix games being broken at some resolutions but not others.
2020-03-01 00:16:52 +03:00
Eladash
655f7ce8a2
cellSaveData: Add null funcStat check
...
it's ordered specially for some functions
2020-03-01 00:14:45 +03:00
Eladash
c11074a128
RawSPU: fix race condition in RunCntl stop request
2020-02-29 21:54:54 +03:00
InvoxiPlayGames
ef6854ca46
sys_usbd: Guitar Hero Live controller emulation ( #7336 )
...
* Initial GHLtar emulation
* Add GHLtar to CMakeLists and VS project, zero the buffer and remove unused header values
* Fix coding style issues and include headers
* Remove redundant if, improve code formatting
* Remove needless includes
Co-authored-by: Ivan <Nekotekina@users.noreply.github.com>
2020-02-29 21:40:44 +03:00
Eladash
50f51be06a
Improve sys_timer_get_information ( #7638 )
...
* Improve sys_timer_get_information
* sys_timer_disconnect_event_queue sets STATE_STOP regardless of port connection status.
* sys_timer_get_information sets 0 for period and next_expire if the timer is stopped.
* Fix two minor races in lv2_timer thread
* If the timer thread is about to fire an event of queue x, then another thread disconnects the queue, then restarts the timer and connects the event queue, then the timer thread sends an event - event data combination (source, data1, data2, next) may be inaccurate.
* If the timer thread is about to send an event (periodically), then another thread stops the timer and starts it again with sys_timer_start_periodic_absolute, timer.expire in info->timer_state in sys_timer_get_information may be inaccurate.
2020-02-29 17:15:25 +03:00
Nekotekina
f72971f19f
Implement named_thread_group
2020-02-29 16:55:25 +03:00
Eladash
5a73943be6
Fix sys_timer_destroy
...
Also some cleanup.
2020-02-29 13:06:14 +03:00
Eladash
34a0c3f488
cellSaveData: Add error param 72, 73 checks for file write ops
2020-02-29 13:06:14 +03:00
Eladash
8762f2a588
Use more starts_with
2020-02-29 13:06:14 +03:00
Eladash
d7dd4897f8
Allow 0x30000000 > addr >= 0x2000000 ppu loader exec allocations (workaround)
2020-02-29 13:06:14 +03:00
Nekotekina
a84077f174
sys_ss: use BCryptGenRandom on Win32
2020-02-29 12:15:42 +03:00
Nekotekina
490f58ff3c
Try to purge thread_state::detached
...
It's rarely necessary, but can cause unexpected problems.
2020-02-28 21:11:13 +03:00
Eladash
05bb6e1545
Improve sceNpDrmVerifyUpgradeLicense(2), sceNpDrmIsAvailable(2)
...
* sceNpDrmVerifyUpgradeLicense(2): copied string from content_id is 47 chars in length at max, is no null term was found it forces string termiation.
* sceNpDrmIsAvailable(2): Same with drm path just that it's 256 chars at max.
2020-02-28 19:10:39 +03:00
Nekotekina
65eeee0f4c
Remove cancerous lf_value<>
...
Replace thread names (generic, PPU, SPU) with new shared pointers.
Devirtualize cpu_thread::get_name (used in single case).
2020-02-28 18:54:46 +03:00
Eladash
30f7c81cc5
cellSaveData: Implement/Fix param error 22 for funcFile, funcDone, funcFixed and funcList
2020-02-28 16:47:51 +01: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
Eladash
0eabfdcadd
cellSavedata: reset padding of g_savedata_context
2020-02-27 22:31:31 +03:00
Eladash
d86241bbcd
cellSaveData: reset fileSet and fileGet->reserved everytime
2020-02-27 22:31:31 +03:00
Eladash
42a0512c66
cellSaveData: Avoid passing vm pointer to native API
2020-02-27 22:31:31 +03:00
Eladash
556aba46b5
cellSaveData: do not fail on empty directory
2020-02-27 22:31:31 +03:00
Megamouse
ee46ad1ca9
move overlays code to headers
2020-02-26 23:43:18 +01:00
gamerforEA
762c106e19
sys_prx_.cpp: Fix RAII locks usage (without local variables they destroyed immediately after construction)
2020-02-27 00:38:55 +03:00
gamerforEA
93552a5958
Apply some Clang-Tidy fixes
2020-02-27 00:38:55 +03:00
Eladash
4d3cdca7f6
Stub sys_spu_thread_group_set_cooperative_victims and syscall_253
2020-02-26 18:17:13 +00:00
Eladash
0d4f8ca234
fs: Make fs::get_dir_size able to report an error
2020-02-26 18:17:13 +00:00
Megamouse
2341749485
overlays: add overlay_osk.h
2020-02-25 21:57:49 +03:00
Nekotekina
b59bb16fad
Threads: removed outdated on_abort detection deemed unnecessary
...
May cause regressions.
2020-02-25 15:48:25 +03:00
Megamouse
f7666f44da
Untangle GUI and input includes
2020-02-24 16:31:01 +01:00
Nekotekina
1dc2eb1cc8
Avoid deprecated av_register_all with version check.
2020-02-23 20:58:02 +03:00
Emmanuel Gil Peyrot
1a702de9e4
cellVdec: replace deprecated ffmpeg function
...
avcodec_decode_video2() is deprecated, now replaced with
avcodec_send_packet() and avcodec_receive_frame().
2020-02-23 20:21:59 +03:00
Nekotekina
f1241c572c
Fix some deprecation warnings (plunder cellAdec btw)
2020-02-23 20:21:59 +03:00
JohnHolmesII
9b7d28b5dd
cellSaveData.cpp: Use ref instead of copy
2020-02-23 09:38:04 +03:00
JohnHolmesII
479a64c4e8
Remove some inline compiler pragmas
2020-02-23 09:38:04 +03:00
AniLeo
fa3fde7a29
hle: Fix cellAvconfExt function registrations
...
Co-authored-by: Clienthax <clienthax@gmail.com>
2020-02-22 17:27:58 +03:00
AniLeo
3aa293a7a3
hle: cellAuthDialog
...
Basic RE of cellAuthDialog, stubs functions
2020-02-22 16:03:14 +03:00
Nekotekina
96be40bf30
Implement cellMsgDialog closing thread
...
Fixing deprecation warning.
2020-02-22 15:17:02 +03:00
Eladash
24d3e2b2b8
cellGameDataCheckCreate(2): More improvements
...
* IsNewData is false only if PARAM.SFO exists.
* Don't create directory on error (setParam == nullptr && isNewData).
* Return CELL_GAMEDATA_ERROR_BROKEN if PARAM.SFO exists on target directory yet is not from GD category.
2020-02-21 21:15:55 +03:00
Nekotekina
5e75a0c497
Disable cotire on travis
...
Make some workarounds for clang because it poorly supports -Wold-style-cast
2020-02-21 17:03:54 +03:00
Nekotekina
972e0ab31d
Remove -Wno-reorder and make it an error
2020-02-21 15:20:34 +03:00
Eladash
54f2c27ba0
cellGameDataCheckCreate(2): Set nullptr in setParam
...
* setParam is nullptr by default.
* if setParam is null and it's new data, return error code.
2020-02-21 14:49:45 +03:00
Eladash
0ba1f8f4ef
Fix cellDiscGameGetBootDiscInfo on error
...
* Always set first dword to 0, other bytes are untouched,
2020-02-21 14:49:45 +03:00
Eladash
4d7e53d7a0
cellGameDataCheckCreate(2): Check dirName
2020-02-21 14:49:45 +03:00
Eladash
0c757222cb
Minor improvements to sys_ss_random_number_generator
...
* Replace CELL_EABORT with exception.
* Improve error codes a bit.
* pkg_id == 1 should not return an error if root permission is present.
* Avoid passing vm pointers to native API, use temp buffer instead.
2020-02-21 14:49:45 +03:00
Eladash
dd85e733d3
Fixup for #7304
2020-02-20 20:31:56 +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
Eladash
6de91a1691
HLE cellGcmSys: Make IOTable accurate
...
Affects cellGcmAddressToOffset when using addresses above 0xC0000000
2020-02-19 18:11:30 +00:00
Eladash
1aa11440e0
HLE cellGcmSys: Make cellGcmUnmapEaIoAddress accurate
2020-02-19 18:11:30 +00:00
Eladash
df8d0cde4a
RSX/SPU: Accurate reservation access
2020-02-19 18:11:30 +00:00
Eladash
f02b4801b2
Fix max SPURS threads regression
2020-02-18 19:20:40 +00:00
Eladash
727d783959
RawSPU: protect NPC from writes/reads in running state
2020-02-18 18:09:10 +00:00
Eladash
fad8b38b28
sys_spu: protect sys_spu_image members in kernel mode
...
Save relevant info in idm, set sys_spu_image segs and nsegs members to 0.
2020-02-18 18:09:10 +00:00
Nekotekina
8a176de6a1
Restore -Wenum-compare and fix some [=] warnings
2020-02-18 17:37:30 +03:00
Nekotekina
c48ceafc15
sys_sync.h: fix warning (signed prio)
2020-02-18 14:53:23 +03:00
Nekotekina
ee6494c14b
Use strcpy_trync in cellAvConfExt.cpp (silence warnings)
2020-02-18 14:53:23 +03:00
Nekotekina
f08c778d2c
Use more starts_with/ends_with.
...
Remove ends_with global func.
2020-02-18 14:53:23 +03:00
Nekotekina
244e74ebe2
Try to ignore some annoying warning (seems CIB)
2020-02-17 20:56:03 +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
Eladash
c1bdaccd8c
sceNpTrophyRegisterContext: Fix off by one progress callbacks count
2020-02-15 23:32:29 +01:00
Eladash
4421831c8b
sceNpTrophyRegisterContext: Fix values passed to first callback
2020-02-15 23:32:29 +01:00
Eladash
d03804b523
Fix sceNpTrophyGetTrophyInfo
...
* Only writeback data on success.
* Fix a typo on error code of invalid trophy ID.
2020-02-15 23:32:29 +01:00
Eladash
299af768e8
HLE cellGcmSys: Make cellGcmAddressToOffset accurate
2020-02-15 14:07:52 +03:00
Eladash
04e0bf2eff
Whitespace fix after #7087
...
Was this close to enter programmers' hell.
2020-02-15 11:37:13 +03:00
Eladash
cdda19c79f
Fix recursive locking in sceNpTrophyUnlockTrophy
2020-02-15 10:41:15 +03:00
Eladash
fa9330d0e0
Log returned reqspace in sceNpTrophyGetRequiredDiskSpace
2020-02-15 10:41:15 +03:00
Eladash
ddeb39d8de
HLE cellGcmSys: Fix unmapping
2020-02-14 17:11:26 +03:00
Eladash
78c49e7331
cellSearch: another memory access fix
2020-02-12 20:02:18 +03:00
Eladash
9760053c8c
cellSearch: Fix id memory access ( #7476 )
2020-02-12 18:17:45 +03:00
Silent
3006b003c4
Implement links as a cellSearch specific concept
...
Linking in VFS is done only from cellSearchPrepareFile and works
by mounting virtual files to host FS files
2020-02-12 12:49:02 +03:00
Silent
e30637351e
Move SearchState to a fxo object so it resets with emulation
2020-02-12 12:49:02 +03:00
Silent
d2b83c69bb
cellSearch updates from Brolijah
...
Co-authored-by: Brolijah <brolijahrh@gmail.com>
2020-02-12 12:49:02 +03:00
Eladash
bdab26ec09
rsx: rewrite io mappings
...
Along with some with fixes to cellGcmSys HLE.
2020-02-10 21:39:39 +00:00
RipleyTom
98f91457bf
Small sys_usbd changes
2020-02-10 21:47:48 +03:00
Nekotekina
4bc431ec31
Silence deprecation warning (implicit capture of this on [=])
2020-02-10 14:47:12 +03:00
Eladash
80eff58950
cellAudio: Implement cellAudioSet/RemoveNotifyEventQueueEx
2020-02-09 12:31:55 +00:00
Eladash
1915fe75a4
VSH: Stubs
2020-02-08 23:07:03 +03:00
Eladash
9d1bb60ad7
cellGcm HLE: fix cellGcmMapMainMemory
...
Fix arguments order, softcode RsxReports::report offset.
2020-02-08 22:18:56 +03:00
Eladash
629eddfb9f
sceNpTrophy: Implement SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED
2020-02-08 11:11:59 +00:00
Eladash
1f94c8f272
sceNpTrophyGetGameProgress Fix
2020-02-08 11:11:59 +00:00
eladash
f901846acb
RawSPU: execute MFC proxy cmd after reading CMDStatus
...
Implement MFC proxy argument sequence checking.
2020-02-06 20:43:38 +00:00
Eladash
37513b1898
SPU reservations: Do not access violate under vm::writer_lock
...
TODO: Throw exception when encountering page faults notification enabled memory
2020-02-06 00:27:17 +00:00
Eladash
f8b3c48af7
sys_spu: Implement proper SPU group flags ( #7320 )
...
* sys_spu: Implement proper SPU group flags
2020-02-05 20:46:05 +00:00
Eladash
049e392a97
Make preferred spu threads dynamically adjustable
2020-02-05 10:06:07 +00:00
Nekotekina
c0f80cfe7a
Use attributes for LIKELY/UNLIKELY
...
Remove LIKELY/UNLIKELY macro.
2020-02-05 10:42:34 +03:00
Eladash
49e11b7cfd
cellVdecQueryAttrEx: Add some error checks for MPEG2
2020-02-05 05:01:07 +00:00
Eladash
6a32ceaab5
cellVdecQueryAttrEx: Add workaround for codec specific info
2020-02-05 05:01:07 +00:00
Eladash
acc7320cae
Fix cellVdecGetPicItem
...
Fix potential overflow, race condition and correctness fixes for picInfo_addr
2020-02-05 05:01:07 +00:00
Eladash
e9e8f0c5b7
cellGame: report not found sfo params
2020-02-04 18:29:52 +03:00
Eladash
cb52ee0a4d
cellGame: report fs::remove_all failure
2020-02-04 18:29:52 +03:00
Eladash
4488312e81
Avoid out of memory with cellGameGetParamString
2020-02-04 18:29:52 +03:00
Nekotekina
f9a8efe406
SPU LLVM: gisable NewGVN pass
...
It goes into an endless loop with memory leak for some reason.
2020-02-03 11:16:03 +03:00
Eladash
e57c01907e
cellVdec: Improve cellVdecQuery and cellVdecOpen
2020-02-02 09:01:32 +03:00
InvoxiPlayGames
c1180d76dd
sys_usbd: Fix bug preventing multiple USB devices
2020-02-01 12:34:42 +03:00
Nekotekina
6dfd97f0b6
Modernize SPU logging (spu_log variable) and remove log legacy
...
Remove legacy macro (LOG_ERROR, etc)
2020-02-01 11:52:52 +03:00
Nekotekina
327bb2d8f0
Modernize PPU logging (ppu_log variable)
2020-02-01 11:52:24 +03:00
Nekotekina
21f7b0ff0f
Remove HLE log channel
2020-02-01 11:52:24 +03:00
Nekotekina
15391f45d0
Modernize RSX logging (rsx_log variable)
2020-02-01 11:52:22 +03:00
Nekotekina
3eca2d5d6c
Remove legacy LOADER log channel
2020-02-01 07:49:38 +03:00
Nekotekina
1d0f359406
logs: add more log channels instead of GENERAL
2020-01-31 16:44:48 +03:00
Nekotekina
007a7a5859
Fixup for LOG system.
...
Register all channels at program initialization and allow duplicates.
2020-01-31 12:09:52 +03:00
Eladash
92466165f6
Increase Maximum Vblank Rate and Clocks Scale
...
Allow x30 times the speed of vblank rate + clocks scale of original PS3.
In theory a 60 fps limit game which scales frame limit perfectly with vblank rate can be played at up to 1800 fps with this change.
And:
* Fixed lv2 sleep with Clocks Scaling
* Make these settings dynamicaly adjustable.
* Avoid code duplication
2020-01-29 21:42:41 +01:00
Malcolm Jestadt
ad8988afd3
Embedded SPU elf patching
...
- PS3 games include both PPU and SPU code in their PPU executables, so to make patching games that make use of the same SPU libraries easier, we add a system to find and patch them.
- Patches for this system still use SPU LS (Local Storage) addresses despite the fact that we aren't loading anything into SPU LS at this time. The patches are checked against each segment and patched in place.
2020-01-28 02:13:37 +03:00
Ivan
7f07b79c04
Partial revert of #7180
...
PC is PS
2020-01-27 07:05:18 +03:00
RipleyTom
610a6a1404
Increases number of buffers when buffering
2020-01-27 02:13:30 +00:00
Eladash
a7aef22754
ppu: Log SELF header information and CIA of caller HLE functions
2020-01-27 01:21:40 +00:00
Eladash
4e0070f16d
Log sys_spu thread group and thread names
...
Also safely read thread name after relevant error checks passed.
2020-01-26 20:32:10 +00:00
Eladash
7ae679adbe
Fix logging of ppu name in sys_ppu_thread_create/rename
2020-01-26 20:32:10 +00:00
Eladash
d481c3c7fd
cellGameGet/SetParamString: Implement CELL_GAME_ERROR_NOTSUPPORTED
2020-01-26 20:32:10 +00:00
Eladash
a9162a3f57
SPU LLVM: Improve approximate FCMGT
2020-01-26 18:37:07 +00:00
Eladash
e4ba096190
VSH: sys_mmapper
...
* Implement syscalls sys_mmapper_allocate_shared_memory_ext, sys_mmapper_allocate_shared_memory_from_container_ext.
* Implement multi-process shared memory allocations.
2020-01-24 20:08:30 +00:00
Eladash
46df58b662
sys_usbd: Add error_code
2020-01-24 19:25:52 +00:00
Eladash
95ed2ef62e
cellGcm HLE: Add error_code
2020-01-24 19:25:52 +00:00
Megamouse
3f076d63e3
HLE: add error checks to cellAudioInGetDeviceInfo
2020-01-23 10:50:55 +01:00
Megamouse
3e8a5c6395
HLE: add some more constants
2020-01-23 10:50:55 +01:00
Megamouse
18f167ddd0
HLE: Fix error checks in cellAudioInRegisterDevice
2020-01-23 10:50:55 +01:00
Maksim Derbasov
1abdee242a
small improvement ( #7288 )
...
* small improvement
* comments addressed
Co-authored-by: kd-11 <15904127+kd-11@users.noreply.github.com>
2020-01-22 12:28:48 +00:00
Eladash
949cfa7fdb
Fix cellVdecSetFrameRate error check
2020-01-21 16:45:41 +03:00
Eladash
fe381b8581
SPU: Add SPU LS to debugger
2020-01-21 16:45:41 +03:00
Eladash
160ddcf86b
SPU: Minor FREST bugfix
2020-01-21 16:45:41 +03:00
Eladash
f05a3da964
Fix lv2_file::op_write regression
2020-01-21 16:45:41 +03:00
Nekotekina
ddda09607d
SPU: fixup for STOP 0w0
2020-01-21 16:32:00 +03:00
Eladash
9993df9b8b
RawSPU: fix race between spu start and stop
...
This race could lead to spu status bits indicate RUNNING status, but cpu state being stopped.
Fix it by making sure cpu state is set before spu status.
2020-01-21 14:08:39 +03:00
Nekotekina
98a8eeaac2
SPU: properly support STOP 0x0 instruction
2020-01-20 23:40:10 +03:00
Nekotekina
3617f12a1e
sys_fs: avoid possible out of memory on file reads/writes
...
Use fixed-sized intermediate buffer.
2020-01-20 16:00:20 +03:00
Nekotekina
63f67c88cc
sys_fs: better stub sys_fs_fcntl(0xc0000006)
...
This syscall does something to classify filesystems by mountpoint.
2020-01-20 16:00:20 +03:00
Nekotekina
1b1b804d7e
sys_fs: add /dev_flash mountpoint
2020-01-20 16:00:20 +03:00
Nekotekina
55cb96ab3b
sys_fs: fix CELL_EIO condition in cellFsReadWithOffset
2020-01-20 16:00:20 +03:00
Megamouse
5ef3465f65
cellVdec: (experimental) allow AV_PIX_FMT_YUVJ420P
2020-01-20 00:33:25 +01:00
Megamouse
9a27cc9442
cellVdec: improve error checks
2020-01-20 00:33:25 +01:00
Megamouse
4dbad6cce6
fix some random warnings
2020-01-19 16:38:17 +01:00
Eladash
b07b5c9005
Fix sys_spu_thread_initialize for attr->name_len is 0 and attr->name is not null
...
If name_len is 0 name is empty, in any other case name is not empty (attr->name == nullptr isn't allowed in this case).
Check name_len and option for invalid values as fw.
2020-01-18 18:46:13 +03:00
Eladash
9d15083c61
Fix sys_ppu_thread_create/rename thread name range
2020-01-18 18:46:13 +03:00
Eladash
14b99d9e8b
Write nread/nwrite in cellFsWrite/Read regardless of error checks
2020-01-18 15:56:05 +03:00
Nekotekina
e2512e78b6
sys_fs: always close locked file in sys_fs_close
...
Syscall returns EBUSY but succeeds nevertheless.
2020-01-17 00:24:07 +03:00
Nekotekina
a005090d3d
sys_fs: use constant in sys_fs_disk_free
2020-01-17 00:24:07 +03:00
Eladash
c9b0f0e734
SPU: Fix FREST
2020-01-16 23:42:50 +03:00
Eladash
9084209cfc
Update cellVdecSetFrameRate error checking
2020-01-15 23:29:32 +01:00
Eladash
1ccb3c4492
rsx: Verify local memory offset
2020-01-15 13:23:56 +03:00
Eladash
01035d35bd
sys_process: Fix sys_process_get_id, add error_code ( #7246 )
2020-01-14 21:32:41 +03:00
Megamouse
be2d225d96
sceNpTrophy: deny unlocking of platinum trophies
2020-01-13 22:50:05 +01:00
Eladash
765bd6b6c6
SPU: Optimize gpr reset for MSVC
2020-01-11 22:56:46 +03:00
Nekotekina
aeed349a99
sys_fs: adjust permissions for /dev_bdvd
...
Remove write permissions returned by stat, fstat, etc.
Also make sys_fs_open return CELL_EPERM on write attempt.
2020-01-11 04:48:42 +03:00
Nekotekina
8447d75dda
sys_fs: improve sys_fs_lsn_lock
...
It appears it does nothing only on /dev_hdd0 or /host_root (HOSTFS).
2020-01-11 03:44:52 +03:00
Nekotekina
fc6356a74c
sys_fs: adjust /dev_bdvd block size
...
From test.
2020-01-11 03:05:26 +03:00
Nekotekina
87cd653c6e
sys_fs: improve sys_fs_disk_free
...
Fix error codes and arg checks.
2020-01-11 01:10:50 +03:00
Nekotekina
7e35fd54a8
sys_fs: improve sys_fs_fcntl(0xc0000002)
...
Always obtain free space on /dev_hdd0.
2020-01-11 01:09:30 +03:00
Nekotekina
582ee80552
sys_fs: correct block size for /dev_hdd1
2020-01-10 05:24:43 +03:00
Nekotekina
0b4b87f069
sys_fs: fix sys_fs_get_block_size
...
Don't check file existence on /dev_hdd0.
Relax check on some mountpoints.
Fix CELL_EISDIR error condition.
2020-01-10 05:19:18 +03:00
Nekotekina
a8e1afa0af
sys_net: fix sys_net_bnet_select arg check (nfds)
2020-01-10 03:21:27 +03:00
Eladash
71df5044fc
sys_vm_get_statistics: Write timestamp
2020-01-09 20:43:03 +00:00
RipleyTom
4a5559ee65
Add buzz controllers to usb whitelist
2020-01-09 07:51:16 +00:00
Nekotekina
7523416a12
sys_fs: return CELL_ENOTSUP in sys_fs_fcntl(0xc0000006)
2020-01-09 04:15:20 +03:00
Nekotekina
9075208c80
sys_fs: fix logging in sys_fs_get_block_size
2020-01-09 04:15:20 +03:00
Nekotekina
d477889763
sys_fs: fix mountpoint detection
2020-01-09 04:15:20 +03:00
Nekotekina
f5cb147f8d
sys_fs: improve sys_fs_get_block_size values
...
Affected other syscalls:
sys_fs_fget_block_size
sys_fs_stat
sys_fs_fstat
sys_fs_fcntl (cellFsGetDirectoryEntries, cellFsGetFreeSize)
For default values:
Return sector_size = 512.
Return 4th arg = 512.
Fod /dev_bdvd:
Sector size = 2048.
Block size = 2048.
2020-01-07 23:16:17 +03:00
Nekotekina
63e669c0cf
sys_fs: fix sys_fs_fget_block_size
...
Return flags via last argument.
2020-01-07 21:55:19 +03:00
Nekotekina
9c54305e10
sys_fs: disable sys_fs_lsn_lock/unlock
...
According to test, nothing seems to happen.
Disable CELL_EBUSY errors associated with Stream Support API.
2020-01-07 21:55:19 +03:00
Nekotekina
f3d52de429
sys_fs: Adjust flags of /app_home mountpoint
2020-01-07 21:55:19 +03:00
kd-11
ad845861be
video: Remove pointless aspect ratio option
...
- The auto option is used when requesting the system is works like a
"dont care" specifier to tell the system to use what settings have been
passed in by HDMI EDID or the user TV type setting. Since this option
simulates the "TV type setting", auto makes no sense and is also not
something you can select on a PS3.
- Also adds a few missing checks.
2020-01-07 15:56:54 +03:00
Nekotekina
55f9a56e45
Fix sys_tty_write (UTF-8 encoding of literals)
2020-01-06 23:23:04 +03:00
Megamouse
632cc79c54
cellGame: add more checks
2020-01-06 10:47:13 +01:00
Megamouse
e7845357e2
sceNpTrophy: unlock platinum trophies
2020-01-05 19:47:31 +01:00
Nekotekina
4450ae0c7a
sys_fs: fix CELL_FS_O_APPEND emulation
...
Don't use fs::append (not capable of).
Fix sys_fs_ftruncate (remove wrong workaround).
2020-01-05 18:15:55 +03:00
Nekotekina
9fc0aec066
sys_fs_stat: fix split file handling
...
Allow single-file case (consistently with sys_fs_open)
2020-01-05 18:15:55 +03:00
Nekotekina
bed2d558a6
sys_fs: implement CELL_EROFS error
...
Implement lv2_mp_flag::read_only.
Currently only /dev_bdvd is affected.
2020-01-05 18:15:55 +03:00
Nekotekina
d5f0957558
Implement lv2_fs_mount_point with mount point flags
...
Implement some actual mount points
Implement lv2_mp_flag::no_uid_gid
2020-01-05 18:15:43 +03:00
Eladash
872be25ed1
cellFs: Fix cellFsLseek with negative whence
2020-01-04 22:38:53 +03:00
Eladash
9d2c9e5d62
cellFs: Improve cellFsGetDirectoryEntries
2020-01-04 22:38:53 +03:00
Nekotekina
28fb0d1741
Fix lv2_fs_object::name
...
Recreate path from actual decoded components.
2020-01-04 21:44:03 +03:00
Nekotekina
691a57a4da
Add BOM to sys_tty.cpp
2020-01-04 01:32:21 +03:00
Megamouse
b3ad89cc8b
cellSaveData: remove duplicate yield
2020-01-03 14:22:40 +01:00
Megamouse
c9aee27d48
VK: remove unused init function declaration
2020-01-03 14:22:40 +01:00
Megamouse
7af2ebb6f4
cellSaveData: use errDialog to skip error dialogs
2020-01-02 05:49:03 +01:00
Eladash
4c20881f8f
Fixup after #6933 ( #7166 )
...
* fixup
* Get rid of obsolute arg in lv2_obj::awake
* nvm ill do this later
* Typo fix of the decade
2020-01-01 17:38:05 +00:00
Eladash
7cc6881a57
Implement sceNpTrophyTerm resources deallocation
...
- Implement sceNpTrophyAbortHandle, if handle is aborted an error code will be returned on its usage.
- Free context & handles in sceNpTrophyTerm.
- Return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT on invalid context & handles ids.
- Implement id resource shortage error checking.
- Check negative sceNpTrophyGetTrophyInfo trophy id.
- Minor error checking fix for sceNpTrophySetSoundLevel
2019-12-31 22:32:23 +03:00
Eladash
71c4a2a15f
Silence some log messages
2019-12-31 22:27:27 +03:00
Eladash
9690854e58
Some cleanup
...
* Prefer default initializer over std::memset 0 when possible and more readable.
* Use std::format in trophy files name obtaining.
* Use vm::ptr<>::operator bool() instead of comparing vm::ptr to vm::null or using addr().
* Add a few std::memset calls in hle where it matters (or in some places just to document an actual firmware memcpy call).
2019-12-31 22:27:27 +03:00
Eladash
c2eb9a583d
Implement ps3 application root flags detection
2019-12-31 22:22:06 +03:00
Eladash
b30be0fbc1
Update cellVoiceCreatePort syntax
2019-12-31 19:05:06 +03:00
Eladash
9958a83d10
Make spu_channel_4_t::clear() atomic
...
By removing separate value3 write, fixes a rare race introduced by #6917 .
2019-12-31 19:05:06 +03:00
Eladash
3257552227
Minor spu_channel_4_t optimization
2019-12-31 19:05:06 +03:00
Eladash
ec9622b513
Fix ppu_patch invalid address check
2019-12-31 18:57:14 +03:00
Eladash
8427af8886
Implement runtime PPU executable code modification via Cheat Manager
2019-12-31 18:57:14 +03:00
Megamouse
93a6e9e4e4
Improve cellImeJp ( #7014 )
...
* HLE: add error_code and definitions for cellImeJp
* HLE: add function parameters to cellImeJp
* HLE: improve cellImeJp
* HLE: further improve cellImeJp
* HLE: simplify cellImeJp
2019-12-31 16:02:10 +01:00
Megamouse
a5c5927468
cellSaveData: only show dialogs in fixed functions
2019-12-31 14:15:43 +01:00
Eladash
3e80727f8e
Allow unimplemented HLE functions detection by bot
2019-12-30 23:48:39 +03:00
Eladash
b59a825e48
Minor fixup after #6894
2019-12-30 23:46:45 +03:00
Eladash
45cff1219c
Allow sys_raw_spu_create_tag to be called more than once
2019-12-30 23:46:45 +03:00
Eladash
923cd7ad72
SPU LLVM: rewrite comparison on non-xfloat path of CFLTU, CFLTS
...
CFLTU on non-xfloat path is accurate as xfloat path now.
* Also optimize FCTIW like FCTIWZ (PPU)
2019-12-30 22:20:34 +03:00
Nekotekina
ef8872c0d7
sys_net: fix sys_net_bnet_connect on Windows
...
Properly write is_connecting variable.
2019-12-29 21:53:43 +03:00
Nekotekina
01b1b21efd
sys_net: add a workaround for WSAPoll with timeout
...
Don't call WSAPoll with empty socket list.
2019-12-29 21:24:13 +03:00
Megamouse
45dc5d9b02
cellSaveData: improve ppu schedule during dialogs
2019-12-29 14:22:58 +01:00
Megamouse
c4b4ce46b8
cellSaveData: don't pause apps during dialogs
2019-12-29 14:22:58 +01:00
Megamouse
0b78404337
cellSaveData: get confirmation if not CELL_SAVEDATA_OPTION_NOCONFIRM
2019-12-29 01:19:04 +01:00
Megamouse
ff0089bc6f
cellSaveData: add more constants
2019-12-29 01:19:04 +01:00
Megamouse
bb7848f6e5
cellSaveData: add error dialog to callback result errors
2019-12-29 01:19:04 +01:00
Megamouse
47da907366
cellSaveData: add confirmation dialog for save data interactions
2019-12-29 01:19:04 +01:00
Megamouse
ef6f565dbd
silence some annoying warnings
2019-12-28 15:40:57 +01:00
Nekotekina
70e26eeb45
LLVM: compress PPU cache
...
Compress PPU modules to .gz (backward compatible with uncompressed cache)
2019-12-27 23:12:16 +03:00
Megamouse
e83dfedff9
stub cellRemotePlay and cellResc and cellStorage
2019-12-24 11:54:32 +01:00
Nekotekina
abe2cc196a
sys_net: fixup for race condition
...
Don't reset is_connecting without checking correctness.
Also cleanup dead WIN32 code.
2019-12-23 22:39:18 +03:00
RipleyTom
90e4fe23c5
WSAPoll workaround
2019-12-23 22:31:09 +03:00
linkmauve
e9c5c6e6bf
Move input to its own directory ( #7126 )
2019-12-22 17:39:42 +01:00
Eladash
c65bb0d267
Avoid shifting by greater/equal than max bits values in ppu_rotate_mask
2019-12-22 04:35:57 +03:00
Markus Stockhausen
a36f0497ce
Improve approximate xfloat
...
- Disable denormals for SPU threads
- Add clamping helpers
2019-12-22 01:26:34 +03:00
Nekotekina
3b46c9cb6a
SPU LLVM: use FMA with approx xfloat when available
...
Emulate FMA with double precision if unsupported natively.
2019-12-21 17:53:34 +03:00
Eladash
db4041e079
Implement rounded_div
...
Round-to-nearest integral based division, optimized for unsigned integral.
Used in sceNpTrophyGetGameProgress.
Do not allow signed values for aligned_div(), align().
2019-12-20 14:47:04 +03:00
Eladash
6dd4003154
Fix cellNetCtlNetStartDialogUnloadAsync
2019-12-20 10:20:32 +01:00
Megamouse
7fcef227af
sceNpTrophy: minor optimizations
2019-12-19 18:15:22 +01:00
Eladash
8d955cfb8c
Hotfix sceNpTrophyGetTrophyUnlockState
2019-12-18 13:07:55 +01:00
Eladash
e380a8c279
Fix sceNpTrophyGetGameProgress ( #7103 )
...
* Fix sceNpTrophyGetGameProgress
Was missing multiplication by 100.
* apply requested changes
* Enforce round-to-nearest rounding mode
2019-12-17 22:43:00 +00:00
Eladash
3efd5f360c
PPU DisAsm: Again
2019-12-15 19:55:23 +03:00
Jayveer
364ba95d26
Updated sys_net to use WSAPoll on win32 as this fixes connection issues
...
in Metal Gear Online. Also aligns with implementations on non win32
platforms
2019-12-13 21:52:29 +03:00
Nekotekina
321f7e7197
Fix missing-braces warnings
2019-12-13 03:21:43 +03:00
Nekotekina
69e81da57b
Fix some warnings
2019-12-13 02:08:52 +03:00
Megamouse
038694ae28
cellGem: add some explanatory comments
2019-12-10 23:20:13 +01:00
Megamouse
691c7cde67
cellGem: cleanup some spacings
2019-12-10 23:20:13 +01:00
Zangetsu38
af8ebc76e2
Modules/cellGem: Implement pos, quat and handle_pos in Gemstate for mouse.
...
Modules/cellGem: Fix name for gem_image_state.
Modules/cellGem: Implement projectiion(x/y) in gem_image_State for mouse.
Modules/cellGem: Add cross, triangle, circle and start with use middle click for mouse.
Modules/cellGem: Refactor global code.
Modules/cellGem: fix some warning with initializing value.
2019-12-10 23:20:13 +01:00
VelocityRa
ac2b0c9752
PSMove: Rudimentary mouse emulation.
2019-12-10 23:20:13 +01:00
Eladash
6a4ba9d562
Fix warning about truncation
2019-12-07 10:22:11 +01:00
Eladash
a5b3b0df40
sceNpBasicAddBlockListEntry: Add connection check
2019-12-07 10:22:11 +01:00
Eladash
963d5fb981
sceNpBasicAddPlayersHistory(Async) fixes
...
* Check if count == 0.
* u64 typos fixed.
* description won't be checked if null.
* Check each npid provided, not only the first.
2019-12-07 10:22:11 +01:00
Eladash
5142d7c011
Minor fixup after #7068
2019-12-06 19:59:29 +03:00
Eladash
5631382623
sys_spu: Fix SPU Thread Id
...
* Removed wrong code in sys_spu_thread_group_terminate.
* SPU Thread ID is accurate, including 5th thread id "rule".
* Fixed possible use-after-free access of spu_thread::group member.
* RawSPU ID management simplified.
2019-12-06 19:59:29 +03:00
Eladash
e050dcbc52
Move size write in cellGamePatchCheck
2019-12-05 23:31:46 +03:00
Eladash
98970884c8
Make sys_tty accurate in release console mode, message saving in log
2019-12-05 23:31:46 +03:00
Eladash
401813f962
Revert part of #7044
...
oops.
2019-12-05 23:31:46 +03:00
Eladash
a2c69e4a2e
sys_spu_thread_group_dis/connect_event Improvements
2019-12-05 23:31:46 +03:00
Nekotekina
835892aa51
C-style cast cleanup VII
2019-12-05 02:10:15 +03:00
Nekotekina
185c067d5b
C-style cast cleanup V
2019-12-03 17:23:00 +03:00
Megamouse
46ca39ec4d
Add Emu.HasGui() to properly hide Qt dialogs in no-gui mode
2019-12-03 09:12:51 +01:00
Megamouse
d73f04da13
cellSaveData: avoid nullptr if there is no dialog
2019-12-03 07:59:10 +01:00
Nekotekina
bf11a28fb5
C-style cast cleanup IV
2019-12-01 22:12:33 +03:00
Eladash
d45fbc331c
Fix error checking of cellGameContentPermit
2019-12-01 21:11:43 +03:00
Eladash
1a6e8e20dc
cellGameBootCheck Improvements
...
* size->sysSizeKB returns 4kb. (hw tested, unknown if in different situations this value changes)
* Return CELL_GAME_ERROR_BROKEN on failure to init. (hw tested)
* Write to dirName only when type is HDD game. (REd)
* Don't write to *size on errors, make it happen after *attributes and *type writes. (REd)
2019-12-01 21:11:43 +03:00
Eladash
37c220af72
Fix sceNpTrophyRegisterContext hack
2019-12-01 21:11:43 +03:00
Nekotekina
28eacc616a
C-style cast cleanup III
2019-12-01 00:32:44 +03:00
Nekotekina
ad9c9f0183
C-style cast cleanup II
2019-11-30 18:17:45 +03:00
Nekotekina
5b9df53c13
C-style cast cleanup (partial)
...
Replace C-style casts with C++ casts.
2019-11-29 00:35:23 +03:00
Eladash
8bd52c9843
Fix sys_spu_thread_un/bind_queue queue existence check
2019-11-28 01:54:45 +03:00
Eladash
9cc3838e49
Fix possible division by zero in sys_spu_thread_write/read_ls
2019-11-28 01:54:45 +03:00
Eladash
b8220ec12f
Stub sys_spu_thread_group_log
2019-11-28 01:54:45 +03:00
Eladash
038c6bb234
Avoid calling lv2_obj::sleep sequantially in sceNpTrophyRegisterContext
...
Also fix a correctness issue with queued.
2019-11-27 21:41:40 +01:00
Eladash
3b06214f88
Decrease memory stats in cellGemInit if needed
...
Also:
* fix state reset of cellGem
* Check max_connect == 0 in cellGemInit
2019-11-27 21:41:40 +01:00
Eladash
b5f6b27f86
cellSysutilGetSystemParamString improvements
...
- Check bufsize, must match to max string length
- Add missing cases for ParamId 0x1008, 0x1011, 0x1012, 0x1024
- Set actual current username in buffer on id == ID_CURRENT_USERNAME
2019-11-26 20:21:33 +00:00
Nekotekina
2290c389d6
vm: implement vm::try_access, vm::ptr::try_read/write
2019-11-26 00:12:45 +03:00
Nekotekina
1b9a3e6077
SPU: internal refactoring, add spu_program
...
Use struct (spu_program) instead of std::vector<u32>.
2019-11-26 00:01:38 +03:00
Nekotekina
4caf747729
SPU LLVM: detect mpy32 pattern
2019-11-26 00:01:38 +03:00
Eladash
70ace4bb83
Fix cellAudioCreateNotifyEventQueue queue depth
...
TODO: global sdk value used is set in cellAudioInit, which means sdk var value is 0 before it's initialization, currently safely set queue size to 8 in this case.
2019-11-25 09:04:56 +00:00
Eladash
17ae70b935
Implement cellAudioCreateNotifyEventQueueEx
2019-11-25 09:04:56 +00:00
Eladash
40db205f5d
Fix cellVoiceCreatePort
2019-11-25 09:04:56 +00:00
Eladash
1233c48d92
cellAudio: Implement event source
2019-11-25 09:04:56 +00:00
Eladash
f4ac8a2e0c
cellVoice: Fix NOT_INIT checks, implement 0 event source handling
2019-11-25 09:04:56 +00:00
Eladash
c9066e7236
cellVoice Update
...
* Use shared lock wherever possible.
* Fix cellVoiceSetVolume.
* Fix error logging of cellVoiceCreateNotifyEventQueue, cellAudioCreateNotifyEventQueue
2019-11-25 09:04:56 +00:00
Eladash
fd433779bb
sys_prx: Tiny improvement
2019-11-25 09:04:56 +00:00
Nekotekina
f31233b822
sys_net: don't report SYS_NET_EWOULDBLOCK in blocking syscalls
2019-11-22 18:56:40 +03:00
Nekotekina
5c55d4f2fe
sys_net: format both negative and positive sys_net_error values
2019-11-22 18:56:13 +03:00
Eladash
6ad8b0a443
sys_net: Add error_code
2019-11-21 22:51:22 +03:00
Eladash
8d5ef2c7b9
Clamp volume in cellAudioAdd/2c/6c/Data
...
Same as firmware, NaN and Inf are flushed to zero.
2019-11-20 21:58:43 +03:00
Markus Stockhausen
cd6b6c8a4f
Lightweight putllc() for non-TSX if no data changed
...
This replaces the totally messed up PR #6728
Some games make heavy use of getllar() & putllc() without even changing data.
In this case avoid unneccesary heavy locking of the PPU threads on non-TSX
hosts.
2019-11-19 18:10:29 +03:00
Megamouse
2152a77005
HLE: stub cellCrossController some more
2019-11-18 23:42:49 +01:00
Megamouse
41505117a7
HLE: stub cellCelpEnc and cellCelp8Enc
2019-11-18 23:42:49 +01:00
Megamouse
ca59ab59e9
HLE: add even more error_code
2019-11-18 23:42:49 +01:00
Nekotekina
db4e201fee
SPU LLVM: use updateGlobalMapping instead of addGlobalMapping
...
...Where appropriate.
Fix to incorrect addGlobalMapping usage.
Also use clearAllGlobalMappings at compilation start.
2019-11-17 22:15:59 +03:00
Nekotekina
f30b81f8b0
SPU LLVM: change patchpoint name generation
...
Allow 2 or more patchpoint from a single address.
2019-11-17 22:07:08 +03:00
Megamouse
0b28f0fa14
HLE: add more error_code
2019-11-16 10:38:56 +01:00
Eladash
0f2adab05f
Disallow NaN in cellVideoOutSetGamma
2019-11-16 11:21:10 +03:00
Eladash
610463a425
cellSysutilGetSystemParamInt(ID_PAD_RUMBLE) changed to return ON status
2019-11-15 20:17:51 +01:00
Eladash
da12969898
cellSysUtil: Add a few CELL_SYSUTIL_ERROR_VALUE checks
2019-11-15 20:17:51 +01:00
Eladash
894658f14c
cellSysutil: Log error code
2019-11-15 20:17:51 +01:00
Eladash
25382a7dae
Restore cellPadSetActDirect's reserved error check
2019-11-15 20:17:51 +01:00
Nekotekina
abbf3c4d16
SPU LLVM: add SPU profiling to compilation thread
...
Run another thread to collect profile data from SPU threads.
Use this data to prioritize compiling hot spot SPU blocks.
Implement stx::init_mutex::wait_for_initialized() helper.
2019-11-11 23:13:13 +03:00
Eladash
a21d7def33
SPU: Don't break blocks on DSYNC instruction in Safe mode ( #6731 )
2019-11-11 23:12:21 +03:00
Eladash
3f3ce53c67
Fix string length check in cellGameThemeInstall
...
vm::ptr::size() returns sizeof type instead.
2019-11-10 14:32:15 +03:00
Eladash
e8cc9d1f52
Loader: Fix default sdk version
...
Note: sdk version checks are unsigned checks, such value results in always true.
2019-11-10 14:32:15 +03:00
Eladash
1986944c61
Implement sysutil_check_name_string
...
* Fully implement 3, 4, 16 and 17 error checks of cellSaveData.
* cellSysCacheMount restrict characters in ID.
* cellHddGameCheck restricts characters in dirName.
2019-11-10 14:32:15 +03:00
Nekotekina
a83cbf63c6
Remove gsl::finally only use
2019-11-09 19:30:06 +01:00
Nekotekina
6ea02c23a0
Fix SSSE3 usage in PPUInterpreter.cpp
...
Fixup
2019-11-09 20:39:56 +03:00
Nekotekina
1cca00ec3a
Fix SSSE3 usage in PPUThread.cpp
...
Remove legacy ifdefs, allow SSSE3 usage in AppImages.
2019-11-09 20:10:59 +03:00
Nekotekina
191675bf31
Remove gsl::finally only use
2019-11-09 19:11:01 +03:00
Nekotekina
0d629743ca
cellSysCache: poison opened cache files on cache clear
...
Make opened files return CELL_EIO after cache clear.
2019-11-09 14:50:41 +03:00
Nekotekina
73ee6abb0f
cellSysCache: return /dev_hdd1 root
...
It simplifies internal logic a little.
2019-11-09 14:43:19 +03:00
Nekotekina
e0bc276205
cellSysCache: keep mounted /dev_hdd1 after exitspawn
2019-11-09 14:43:19 +03:00
Nekotekina
ccac9d4777
Remove throwing and catching cpu_flag::stop
...
Since there is spu_runtime::g_escape function now.
2019-11-08 19:27:11 +03:00
Nekotekina
587ae17aa2
Simplify fmt::throw_exception
...
Gradual exception deprecation: disallow choosing exception type.
However, the function itself can remain here forever.
2019-11-08 19:27:11 +03:00
Eladash
af0bd7136d
PPU Disasm: Fix RC OE enabled instructions view
2019-11-07 14:09:23 +03:00
Nekotekina
03b9ee27c5
Virtualize cellSysCache
...
Allows caches from multiple games to coexist.
Also change the way of handling cache IDs (file-less).
2019-11-06 14:12:43 +03:00
Nekotekina
da135fbfcc
SPU LLVM: Disable "special" branch patchpoints
2019-11-04 22:52:03 +03:00
Eladash
7475be99ab
lv2: Check ipc_key value if object is process shared
2019-11-03 14:59:47 +03:00
eladash
33fe0fdd6b
Add missng check for key in cellAudioSetNotifyEventQueue
...
key is checked once according to hw test.
2019-11-03 14:59:47 +03:00
Eladash
f41f5054f7
sys_spu Fixup after #6864
2019-10-29 23:13:16 +03:00
Eladash
b99992d570
sys_spu: Fix SNR and Inbound Mailbox state reset
...
Also remove bugged ESTAT check at sys_spu_thread_write_spu_mb.
2019-10-29 18:34:28 +03:00
Eladash
739f68271f
SPU LLVM: fix MFC CMD enqueuing
2019-10-29 18:16:08 +03:00
Eladash
f88a135b5b
Fix lv2_config_service_event event id reset
2019-10-29 18:15:26 +03:00
Eladash
114b9498bf
Remove unjustified use of idm::import_existing in sys_config
2019-10-29 18:15:26 +03:00
Eladash
8b6383b489
lv2: Correct alignment of some attributes structs
2019-10-29 18:15:41 +03:00
Eladash
3e4cbf67f6
sys_rwlock_wlock: Fix typo
2019-10-29 18:15:26 +03:00
Hula Hoop
200ec5c4b3
Super-important PR ( #6900 )
...
* Fix capitalisation errors and typos
* Oops
2019-10-28 17:44:44 +03:00
Eladash
65e47490c4
cellSysCacheClear/Mount() improved
...
Clear() error checking simplified a bit
Mount() now clears cache if ID was changed from last or NULL specified.
Implemented vfs::host::remove_all():
Clear() now uses vfs::host::remove_all() to match behaviour on Windows with ps3
2019-10-27 15:56:16 +03:00
Nekotekina
83f253636a
SPU LLVM: verbose patchpoints in "giga table"
2019-10-27 13:04:05 +03:00
Nekotekina
16edb5bdd0
SPU Analyser: don't compile on "analyser failed"
2019-10-27 13:04:05 +03:00
Nekotekina
5f00b32867
SPU: fixup for duplicates in recompilers
...
Fixup for the edge case.
2019-10-27 13:04:05 +03:00
Nekotekina
37dbbce194
SPU LLVM: Enable "Giga table" in Mega mode
...
Was previously only enabled in Giga mode.
Also fill the table with branch patchpoints.
2019-10-27 13:04:05 +03:00
Nekotekina
8c28c4e8ec
SPU: Make recompilers lock-free.
2019-10-26 23:33:18 +03:00
Nekotekina
9ac6ef6494
SPU: cleanup former OOM handling
...
Remove cpu_flag::jit_return.
It's obsolete now, and worked only in SPU ASMJIT anyway.
2019-10-26 21:24:12 +03:00
MSuih
f3ed26e9db
Small warnings cleanup ( #6671 )
...
* Ignore more warnings
These are intentional
* Signed/unsigned mismatch when comparing
* Explictly cast values
* Intentionally discard a nodiscard value
* Change ppu_tid to u32
* Do not use POSIX function name on Windows
* Qt: Use horizontalAdvance instead of width
* Change progress variables to u32
2019-10-25 13:32:21 +03:00
arabek
63a0b97dd1
Normalize audio when downmixing to avoid clipping ( #6867 )
...
* Normalize audio when downmixing to avoid clipping
Idea came from this topic:
https://hydrogenaud.io/index.php?topic=104214.msg855199#msg855199
Fixes very loud audio in Motorstorm (and probably other games
when playing over headphones/stereo speakers with
Downmix to Stereo option enabled)
2019-10-25 12:56:47 +03:00
Marin Baron
4599d58413
Fix debug build gcc/clang linker.
...
Create temporary variable to resolve undefined reference.
[ 98%] Linking CXX executable ../bin/rpcs3
/usr/bin/ld : Emu/librpcs3_emu.a(sys_vm.cpp.o) : dans la fonction « sys_vm_t::~sys_vm_t() » :
/mnt/raid/Git/rpcs3/rpcs3/Emu/Cell/lv2/sys_vm.cpp:21 : référence indéfinie vers « id_manager::id_traits<sys_vm_t, void>::invalid »
collect2: erreur: ld a retourné le statut de sortie 1
make[2]: *** [rpcs3/CMakeFiles/rpcs3.dir/build.make:426: bin/rpcs3] Error 1
2019-10-24 14:34:38 +03:00
JohnHolmesII
0842724f94
Update cellVoice.cpp
...
Caused warnings. Not sure what the actual intention was, this may need to be inverted.
This commit assumes that erase() returning 0 is a sign that deletion
failed, or that there was corruption. There should be a port there.
2019-10-24 14:19:52 +03:00
Nekotekina
6e19881b82
Update LLVM (10)
2019-10-23 16:01:14 +03:00
Emmanuel Gil Peyrot
9d1b7af2eb
Avoid std::move() for copy elision
...
This could disable zero-copy optimisations, which is the opposite of
what we want.
2019-10-22 16:11:43 +03:00
Eladash
586fe11e22
Fix cellGcm HLE regression
...
Also correct flags.
2019-10-22 13:45:09 +03:00
Nekotekina
b329bb604c
SPU LLVM: implemented asynchronous compilation
...
Implemented interpreter-based pre-recompiler.
Interpreter functions are build with SPU LLVM.
2019-10-21 19:29:34 +03:00
Eladash
cbecbc264e
cellGcm: Fix driver_info->memory_size
...
based hw test
2019-10-21 15:31:45 +03:00
eladash
730e9cde84
sys_rsx: Improve allocations and error checks
...
* allow sys_rsx_device_map to be called twice: in this case the DEVICE address retrived from the previous call returned
* Add ENOMEM checks for sys_rsx_memory_allocate and sys_rsx_context_allocate
* add EINVAL check for sys_rsx_context_allocate if memory handle is not found
* Separate sys_rsx_device_map allocation from sys_rsx_context_allocate's
* Implement sys_rsx_memory_free; used by cellGcmInit upon failure
* Added context_id checks
* Throw if sys_rsx_context_allocate was called twice.
2019-10-21 15:31:45 +03:00
Eladash
c16319f959
PPU Precise: Fix fused float ops misaccuracy by using fma
...
Also cleanup add64_flags, remove redundent copy of s_ppu_itype.
2019-10-20 20:58:31 +03:00
Eladash
79a3a7ce4c
Add exception for sys_usbd_initialize
2019-10-20 15:28:26 +01:00
Eladash
a1e7cdf1e9
Forcefully awake waiters in sys_usbd_finalize
...
This is a no-op from cellUsbd side but happens on lv2 side as well.
2019-10-20 15:28:26 +01:00
Eladash
d90696be90
sys_usbd Tiny update
2019-10-20 15:28:26 +01:00
Eladash
6c2307fb96
cellVoice: Initial Implementation
...
Implement system service events, error checking and some functions.
2019-10-20 15:16:53 +01:00
Eladash
fa73175754
sceNpBasicGetEvent error checks improved
2019-10-20 14:56:44 +01:00
Eladash
d9a97d8674
sceNpUtil Improvements
2019-10-20 14:56:44 +01:00
Megamouse
0ef7ad129d
cellNetCtl: improve param checks
2019-10-19 19:20:18 +02:00
Megamouse
e6aeb7ecb9
stub cellKey2Char
2019-10-19 19:13:33 +02:00
Megamouse
0bad56da67
cellScreenshot: initial implementation
2019-10-17 21:24:25 +02:00
Megamouse
60f3ed7607
stub cellSsl
2019-10-17 20:32:33 +02:00
Nekotekina
00895862e1
Fix sys_vm_t destructor
...
It's not a destructor's job to free vm like this.
2019-10-17 19:57:29 +03:00
eladash
95752607ea
sys_spu: Don't reset snr config at group_start()
...
Also first check for EINVAL in sys_spu_thread_set_spu_cfg
2019-10-16 21:11:29 +03:00
Eladash
6dd96d3db9
Fixes for cellUserInfoGetList
...
- Don't allow all args to be nullptr at once.
- Fill listBuf with zeroes for unwritten entries
- Fix userId set in listBuf
Similarly to what the firmware does
2019-10-16 21:11:29 +03:00
Eladash
47c3d945aa
spu/ppu-diasm: Fixup for #6772 , #6722
2019-10-16 21:11:29 +03:00
Nekotekina
0fe46934de
Fix "SPU Interpreter (fast)"
...
Regression after #6770
2019-10-16 14:20:35 +03:00
Eladash
4ed2c7b594
error checking bugfix for sceNpTrophyCreateContext
...
options = 1 is allowed.
2019-10-16 00:50:58 +03:00
Eladash
b03c2fc856
sys_cond_wait: Fix mutex acquire when signaling thread didnt pass ownership immediatly
2019-10-16 00:50:58 +03:00
Eladash
ab02c56725
sceNpTrophyRegisterContext verbose logging in TROPHY_ERROR_ILLEGAL_UPDATE error
...
Also use safer checking when creating trophy ctxt dir
2019-10-16 00:50:58 +03:00
Eladash
80b4ac23e5
spu disasm: Show interrupts status modifiers on indirect branches
...
That's how the assembler represents it as well.
2019-10-16 00:50:58 +03:00
Nekotekina
eafbc77c0d
SPU LLVM: Always use linux-gnu target triple (affects Windows)
...
Unify internal code generation to make better use of GHC calling convention.
Ideally, it would just work on Windows as well, but some random bug appeared.
This bug was causing freezes on SPU LLVM compilation.
This commit desperately attempts to workaround it.
2019-10-15 18:04:50 +03:00
Nekotekina
c69fe0f664
SPU Profiler preview
...
Add option "SPU Profiler" (disabled by default).
Works only with SPU recompilers.
Results are flushed on pausing.
2019-10-15 17:42:57 +03:00
Malcolm Jestadt
1a9e06d3c6
Linux: Change default Sleep Timers accuracy to host
...
- This doesn't change existing configs
- Also sets the host_min_quantum to the true value
- Restores lost TODO: comment
2019-10-15 00:32:31 +03:00
Eladash
7e08fff91d
ppu disasm: Improve CR bits manipulation instructions formatting
2019-10-14 20:44:23 +03:00
Eladash
3910b2465e
Fix unknown BCLR forms formatting
2019-10-14 20:44:23 +03:00
Eladash
75ee668922
Log fs::g_tls_error on ACCESS_ERROR errors
2019-10-14 20:44:23 +03:00
Nekotekina
076a80d71e
Random space fixes
2019-10-14 19:42:35 +03:00
Eladash
1e303e9f97
ppu disasm: Implement BCLR's, BCCTR's and BC's extended mnemonics
...
Also:
BCCTR cr bit is now shown as cr(bit/4)[bit % 4]
BLRL is now shown properly
BDN?Z[TF](LR?)L?A? branches are now implemented.
2019-10-14 13:54:56 +01:00
Eladash
5978b1f28f
ppu disasm: Fix AA BC formatting
2019-10-14 13:54:56 +01:00
Eladash
1d07c40aa5
Fix state reset in cellMic, cellAudio, cellCamera ( #6761 )
2019-10-13 19:26:11 +03:00
Nekotekina
ac712bf4e3
lf_queue: remove explicit notify(), notify in push() instead
...
Should be cheap enough now if there are no waiters.
2019-10-12 22:45:17 +03:00
Nekotekina
5624b001ae
lf_queue: add range-for support (endless loop with waiting)
2019-10-12 22:37:52 +03:00
Nekotekina
16dd72b3e3
Replace some uses of Emu.IsStopped()
...
Poll thread state instead.
2019-10-12 21:12:47 +03:00
Nekotekina
49e96b39dd
[SPU, TSX] Fix reservation corruption in PUTLLC
...
Change reservation locking logic.
2019-10-12 15:41:24 +03:00
Megamouse
07022fd3b6
stub cellVoice
2019-10-12 10:16:01 +02:00
Eladash
0172e097f7
Fix cellCameraInit (camera_handler::null)
2019-10-11 21:55:10 +02:00
Eladash
5cc12ef22e
cellCamera: Log error code
2019-10-11 21:55:10 +02:00
plappermaul
925f2ce02f
Use Linux timers for sleeps up to 1ms ( #6697 )
...
* Use Linux timers for sleeps up to 1ms (v3)
The current sleep timer implementation basically offers two variants. Either
wait the specified time exactly with a condition variable (as host) or use a
combination of it with a thread yielding busy loop afterwards (usleep timer).
While the second one is very precise it consumes CPU loops for each wait call
below 50us. Games like Bomberman Ultra spam 30us waits and the emulator hogs
low power CPUs. Switching to host mode reduces CPU consumption but gives a
~50us penalty for each wait call. Thus extending all sleeps by a factor of
more than two.
The following bugfix tries to improve the system timer for Linux by using
Linux native timers for small wait calls below 1ms. This has two effects.
- Host wait setting has much less wait overhead
- usleep wait setting produces lower CPU overhead
2019-10-09 20:03:34 +03:00
Nekotekina
8f604ddded
Fix log format misuse
...
Harden log channel methods against non-constant string.
2019-10-09 02:14:52 +03:00
Nekotekina
a29d4150df
GDB Server: fix and cleanup
...
Move source files to Emu/GDB.cpp, GDB.h
Remove "WITH_GDB" option, enable GDB Server by default.
Change class name to gdb_thread.
Alias for external access gdb_server.
Change config option name to "GDB Server"
Bind on 127.0.0.1 by default.
2019-10-09 00:11:44 +03:00
Nekotekina
9d4de51cb6
Use g_fxo for network thread
...
Minor refactoring
2019-10-08 23:12:54 +03:00
Eladash
0f3c5f9e5a
Fix verification failure on Emu.Stop() at sys_cond_wait
2019-10-08 23:12:34 +03:00
Eladash
af417c93d0
cellGemUpdateStart/Finish error checking improved
...
* camera_frame = NULL is now checked for CELL_GEM_NO_VIDEO (applied both on start and finish)
* camera_frame = NULL on Start() still starts the update
* Implemented NOT_FINISHED/STARTED
All of those were reversed and hw tested.
2019-10-08 23:12:34 +03:00
Megamouse
278050f8d0
add cellPadFilter functions
2019-10-08 08:21:30 +02:00
Megamouse
29c77132cb
add error code to cellPadInfoPressMode and cellPadInfoSensorMode
2019-10-08 08:21:30 +02:00
Megamouse
f8c6cc2476
cellMic: add some params
...
makes me wonder if dev_num should always be s32
2019-10-08 08:21:30 +02:00
Eladash
36de3d4f4c
sys_gpio Cleanup
2019-10-08 02:52:33 +03:00
Eladash
c2278fb879
spu: Mask SRR0 at write
2019-10-08 02:52:33 +03:00
Megamouse
3455d76970
cellPadGetData: clear buttons if input is ignored but not intercepted.
...
needed in Hotline Miami and NinJa Gaiden Sigma, fixes Gran Turismo 6 regression
2019-10-07 19:25:50 +02:00
Megamouse
d402507be2
cellOskDialog: add some param checks
2019-10-07 19:25:50 +02:00
Nekotekina
239f53568c
SPU: optimize function dispatch in trampolines
...
Add a top-level hashtable
2019-10-06 16:03:38 +03:00
Nekotekina
8031180373
Add dummy alert param to thread_ctrl::wait API
2019-10-06 16:03:10 +03:00
Eladash
9e929a25d4
rsx: Default initailize zcull reports padding
2019-10-05 15:00:50 +03:00
Eladash
08e674aa28
sys_cond fixes ( #6584 )
...
* sys_cond fixes
sys_cond_wait is now signaled atomically (regression fix)
Fix a corner case with sys_cond_wait and sys_cond_destroy EBSUY check (waiter count was inaccurate if thread is not the owner of mutex)
Add not about EBUSY corner case (TODO)
* Fix inconcistency in sys_cond_destroy and ETIMEDOUT
.. event at sys_cond_wait regarding waiters count.
Now waiters count is properly connected to the mutex owner actions after ETIMEDOUT in sys_cond_wait.
2019-10-03 23:05:34 +03:00
Eladash
286d62d09c
sceNp2Init: use u32 in poolsize
2019-10-02 01:52:42 +01:00
Eladash
b9b879c3d3
Bugfix for sceNpUtilCmpNpId
...
Fix checking bounds, use memcmp
Fix result store on sceNpUtilCmpNpIdInOrder
2019-09-28 16:02:55 +03:00
Nekotekina
bd1a24b894
Tidy endianness support (se_t) implementation
...
Move se_t and se_storage to util/endian.hpp
Use single template instead of two specializations.
Add minor optimization for MSVC.
Remove v128 dependency.
Try to enable intrinsics for unaligned data.
Fix minor bug in u16/u32/u64 specializations.
2019-09-28 15:39:50 +03:00
Eladash
feabe71183
SPU: Rewrite BGX
2019-09-28 03:42:22 +03:00
Eladash
e315b39822
SPU: Rewrite CGX
2019-09-28 03:42:22 +03:00
Eladash
d0503dc937
SCE_NP_ERROR_OFFLINE logging disabled
2019-09-28 03:16:01 +03:00
Eladash
7f725e0655
sys_rsx: Format special sys_rsx invalid param error, warning fixes
2019-09-28 03:16:01 +03:00
Nekotekina
57f2189b1a
cellSaveData: fix VFS escape usage
2019-09-27 19:04:16 +03:00
Nekotekina
465b16e786
Finally remove fxm from IdManager
2019-09-26 23:26:36 +03:00
Nekotekina
c065a21b74
cellMsgDialog: use g_fxo
2019-09-26 23:26:36 +03:00
Nekotekina
3c72069ae6
cellOskDialog: use g_fxo
2019-09-26 23:26:36 +03:00
Nekotekina
a6edcca6e6
Use g_fxo for spu_cache
2019-09-26 23:26:36 +03:00
Nekotekina
b48cdc2260
Use g_fxo for global ppu_module instance
...
Also fix autonomous PRX/SPU loading sequence.
2019-09-26 23:26:36 +03:00
Nekotekina
240b4a8bd8
cellGameData: use g_fxo for content_permission
2019-09-26 23:26:36 +03:00
Nekotekina
ccf9543b44
Improve vfs::host::unlink on Windows (for sys_fs_rmdir)
...
Possibly fixes sys_fs_rmdir and other cases of directory removal.
Make sure the directory with deleted files always becomes empty.
For this purpose, temp files are moved to the root of the device.
2019-09-25 18:47:38 +03:00
Nekotekina
cd843bda6e
cellSaveData: always commit changes on error in funcFile loop
...
Make sure the changes which are already done are written.
2019-09-25 18:47:38 +03:00
Nekotekina
f841b47b6b
cellSaveData: add auto maintenance routine in Emu.Init()
...
This routine:
1) Removes junk backup directories
2) Fixes interrupted save data process in edge case
This case can happen if emu terminates between two atomic renames.
Also use directory renaming technique for delete op.
Also rewrite recreate operation to be part of atomic process.
2019-09-25 18:47:38 +03:00
RipleyTom
e0d501124f
Only free the list if libusb_get_device_list succeeded
2019-09-25 01:07:04 +03:00
RipleyTom
4de301a961
Implement sys_usbd_event_port_send
2019-09-24 09:18:33 +02:00
JohnHolmesII
c62a667fb1
Fix null pointer check (clang warnings)
2019-09-24 09:11:50 +02:00
Nekotekina
feee3838eb
Revert "Revert "Remove shared_cond and simplify reservation waiting""
...
This reverts commit b70c08a2e8 .
2019-09-24 05:01:00 +03:00
Nekotekina
40fcd457bf
cellSaveData fixup
2019-09-23 03:15:41 +03:00
Eladash
2494091353
cellSaveData: Log param error code ( #6587 )
2019-09-23 03:07:23 +03:00
Eladash
718491c56d
ppu disasm: Improve BC formatting
2019-09-23 02:35:56 +03:00
Eladash
2c47e39f08
ppu disasm: Improve disassembly of BCTR and LWSYNC
2019-09-23 02:35:56 +03:00
Megamouse
88388f1efc
sceNpSns: add more logging
2019-09-22 10:16:55 +02:00
Megamouse
2dc71cfe51
sceNpTrophy: add errors from RE
2019-09-22 10:16:55 +02:00
Nekotekina
e7d67f9732
Fix unwanted statichle_handler init
2019-09-21 03:59:43 +03:00
Megamouse
caef52e3b3
Input: don't intercept pads after system dialogs, but still ignore input
2019-09-20 22:12:40 +02:00
Megamouse
571bb914f5
cellPad: fix out of bounds warning
2019-09-20 22:12:40 +02:00
Megamouse
7193d407b9
Input: Remove unused flush member
2019-09-20 22:12:40 +02:00
kd-11
2c76f47eec
rsx: Restructure flip code and frame scoping
...
- Add an explicit frame scope marker tied in with the queue_prepare command
Since queue_prepare is emitted at the end of a frame, it can be used as end-of-frame in games that emit this
- If this command is not emitted, fifo flatenner and frameskip will not work
2019-09-19 23:10:09 +03:00
Eladash
c50119aefa
Fix sceNp2Init
2019-09-19 08:26:29 +02:00
Nekotekina
538a5cc9d8
Silence skylander message
2019-09-19 02:16:14 +03:00
Nekotekina
4b19e55fcc
Use g_fxo for cellKb, cellMouse
...
Use init_mutex
2019-09-19 02:16:14 +03:00
Nekotekina
353a7ff8e6
cellCamera: use g_fxo
2019-09-19 02:16:14 +03:00
Nekotekina
a4951ec407
Use g_fxo for global lv2_memory_container
2019-09-18 21:24:04 +03:00
RipleyTom
7e2bb0fd1f
Adds initialization checks back in sys_usbd
2019-09-18 21:19:40 +03:00
Nekotekina
3eba0f4523
sys_usbd: use g_fxo
2019-09-17 15:23:40 +03:00
Nekotekina
7e2edc2232
sys_usbd: rearrange includes
2019-09-17 15:10:58 +03:00
Nekotekina
c2fe2ac4a4
cellMic: use g_fxo
2019-09-17 02:46:34 +03:00
Nekotekina
36a528067c
cellAudio: use g_fxo
2019-09-17 02:46:34 +03:00
Nekotekina
76314520ef
cellAudio: use vm::gvar to allocate working memory
2019-09-17 02:46:34 +03:00
Nekotekina
584174d371
vm::gvar: add array support
2019-09-17 02:46:34 +03:00
RipleyTom
2b8890b193
CellPadLdd functions implementation
2019-09-17 01:17:48 +03:00
RipleyTom
e98c7f4e1a
sys_usbd implementation
2019-09-17 01:17:48 +03:00
Nekotekina
b70c08a2e8
Revert "Remove shared_cond and simplify reservation waiting"
...
This reverts commit 0a96497e13 .
2019-09-14 00:02:48 +03:00
Nekotekina
2fc8844315
atomic.hpp: add atomic wait mask support
2019-09-13 15:53:34 +03:00
Megamouse
32a4c2242b
sceNp: fixups
2019-09-13 06:18:49 +02:00
Nekotekina
0a96497e13
Remove shared_cond and simplify reservation waiting
...
Use atomic wait for reservations
Cleanup some obsolete code
2019-09-10 19:25:39 +03:00
Nekotekina
d13ff285d1
Rewrite cond_variable to use waitable atomics
...
Increase max_timeout and fix max_timeout usage
2019-09-10 19:25:39 +03:00
Nekotekina
b91661ae71
Remove timeout support from lf_queue::wait
...
Add notify method and use atomic wait
2019-09-10 19:25:39 +03:00
Wojtek Arabczyk
cb66d05693
Fix warnings in rpcs3/Emu/Cell/Modules/sceNp.cpp
2019-09-09 19:16:02 +03:00
Megamouse
aa262889f2
cellVdec: add error_code
2019-09-08 20:54:43 +03:00
Megamouse
6aacec4694
cellMouse: add error_code
2019-09-08 20:54:43 +03:00
Megamouse
c111209639
cellGem: add error_code
2019-09-08 20:54:43 +03:00
Nekotekina
693d54553c
Fix compilation
2019-09-08 19:26:10 +03:00
Megamouse
cb00b71c4b
sceNp: add error_code and some param checks ( #6416 )
...
* sceNp: add error_code and basic implementations
* sceNp: and fix some structs
* sceNpSns: improvements
* sceNpUtil: improvements
* sceNpTus: improvements
2019-09-08 18:36:10 +03:00
Nekotekina
0c69b7da8f
Fix ppu_interpreter::MTFSFI
...
Out of bounds error.
2019-09-08 14:50:50 +03:00
Megamouse
cddc045c69
cellPad: disable reserved bit check in cellPadSetActDirect
2019-09-08 08:49:15 +02:00
Nekotekina
d0db7ca6bd
cellSaveData fixup ( #6393 )
...
Increase entry max size
2019-09-05 14:49:03 +03:00
RipleyTom
8de1239132
Simulate BSD FS for file order presentation in savedata
2019-09-05 03:01:46 +03:00
isJuhn
aaae437ca3
PPUInterpreter.cpp: remove SSE4.1 requirement in FCTIWZ, FCTID and FCTIDZ
2019-09-04 14:05:33 +03:00
isJuhn
08c12f4c00
File.cpp: add rounding_alignment argument to get_dir_size to allow GetSizeKB functions to report size more accurately
2019-09-03 03:19:49 +03:00
Nekotekina
a5be410e3f
[noexcept] Don't throw on unimplemented HLE functions.
...
Getting rid of exceptions.
2019-09-02 14:43:31 +03:00
Nekotekina
81a110f346
Fix system time wraparound
...
Implement utils::udiv128, utils::div128
2019-08-30 22:02:25 +03:00
Nekotekina
b3f5d6d85b
Put lv2_obj::awake calls under mutex
2019-08-29 02:44:12 +03:00
Nekotekina
9672ad53cd
Fix SPRX building on AppImage builds
2019-08-27 17:25:55 +03:00
Nekotekina
b6b7d7b48c
sys_cond_wait fixup
2019-08-27 15:38:18 +03:00
Nekotekina
ec8c5453bc
Fix sys_cond_wait
...
Schedule PPU thread before relocking.
Don't lock mutex in notify functions.
2019-08-27 15:13:01 +03:00
Nekotekina
fd839243ec
Revert PR 6405
2019-08-27 14:05:38 +03:00