Commit graph

1800 commits

Author SHA1 Message Date
eladash 4db79c458d Fix cellSysCacheMount error checking 2018-07-05 16:36:57 +04:00
eladash 24699f0f96 Fix cellSysCacheClear 2018-07-05 16:36:57 +04:00
eladash 3b64e0fb3f Fix cache directory 2018-07-05 16:36:57 +04:00
isJuhn 3d8223fccc Fix LLVM STW reservation update 2018-07-02 15:19:50 +04:00
Ofek 5d3b0e7352 Fix cellGameDataCheckCreate2 (#4832)
* Fix cellGameDataCheckCreate2
2018-07-01 23:07:21 +01:00
Jake e2c288ff8a trophy: zero out data before setting 2018-06-24 14:29:41 +04:00
Jake edeb858138 loader: ignore invalid index_value and allow relative reloc 10 2018-06-24 14:29:41 +04:00
eladash b3a933ba84 cellgcm: fix regression 2018-06-24 10:57:30 +03:00
eladash b456955688 rsx: fix hardcoded rsx allocation address 2018-06-24 10:57:30 +03:00
isJuhn 83f096c435 Add conditional reservation update to STW 2018-06-23 23:13:34 +04:00
Nekotekina 6229b3ca8d Fixes for booting PS1 games 2018-06-23 17:30:16 +03:00
clienthax 8b449ce76c PS1 Classics 2018-06-23 16:34:19 +04:00
Nekotekina cd92d9bcdf Fix SPU ASMJIT for SSE2 CPUs 2018-06-23 08:46:50 +03:00
Megamouse 4464951c77 cellVdec: add more detail to the logging 2018-06-22 22:30:02 +04:00
Nekotekina 81e5f3b7f2 Remove /dev_flash/ configuration
Simplify code by using root config location for /dev_flash/
Hide Emu.GetEmuDir() function due to the risk of misuse
2018-06-22 14:14:29 +03:00
Nekotekina e4da284176 SPU: analyser v4 and fixes
Build SPU cache after PPU, fix mixing progress
SPU ASMJIT: add support for Giga mode
SPU ASMJIT: use the same spu.log location as SPU LLVM
SPU: improve spu.log disasm
SPU: improve trampolines, unify with SPU ASMJIT
SPU: decode interrupt handler address from BR/BRA at 0x0
SPU LLVM: support Mega/Giga modes
SPU LLVM: implement function chunks
SPU LLVM: use PHI nodes, value visibility across basic blocks
SPU LLVM: implement function chunk table
New simple memory manager for LLVM (bugfix)
2018-06-21 22:29:34 +03:00
eladash af62c92b7f mfc: clamp list transfer size 2018-06-17 23:20:00 +04:00
Ofek 2bc4cb4e58 Fix sys_spu_thread_connect event 2018-06-16 19:05:51 +04:00
Nekotekina 88b6d51643 Fix cellGameContentPermit 2018-06-12 02:09:22 +03:00
Nekotekina eb081bbcfa SPU: add 'Accurate PUTLLUC' option
Effectively rollback previous PUTLLUC accuracy commit by default
Minor changes in GETLLAR/PUTLLUC transactions
2018-06-12 02:09:22 +03:00
Nekotekina 0a58464f01 SPU ASMJIT: returnable STOP in Mega mode
Fix STOP, STOPD, SYNC, DSYNC in Safe mode
2018-06-12 02:09:22 +03:00
isJuhn 88bfdb0c05 cellGameContentPermit: Don't set content and usrdir path on gamedata if cellGameCreateGameData was never called 2018-06-11 21:48:29 +04:00
jjsat 53ca2526ed Fix VSLO and VSRO in the LLVM PPU recompiler 2018-06-10 20:12:40 +04:00
Megamouse 5454f57dd0 cellSaveData: handle fatal error fs::file is_null (read-only files) 2018-06-08 23:41:56 +03:00
Megamouse 4003aacc6a RSX: add taskbar progress to native ui progress dialogs 2018-06-08 23:41:56 +03:00
Megamouse b9b6bd85a6 Qt/RSX: add taskbar progress in msg_dialog_frame for shader compilation 2018-06-08 23:41:56 +03:00
Megamouse edc9e9b4ec Qt/RSX: add window title to the shader compilation msg_dialog 2018-06-08 23:41:56 +03:00
isJuhn dde4a9c6e7 Fix cellGameCreateGameData temporary path 2018-06-06 23:51:58 +04:00
ikki84 73f7ab29bc Return offline according to g_psn_connection_status. 2018-06-06 19:14:12 +04:00
ikki84 83b09cf047 sceNpManagerRequestTicket2 (return offline)
Returning CELL_OK in sceNpManagerRequestTicket2 makes NPEB01268 loop indefinitely trying to check the downloaded content.
Telling that the system is offline escapes the loop and make the game go further.
Moves NPEB01268/BLES01794 from Intro to Ingame.
2018-06-06 19:14:12 +04:00
scribam 824ad4fea7 cmake: simplify glslang integration (#4652)
* cmake: simplify glslang integration

* Fix warning (ignored attributes), part 2
2018-06-06 15:45:28 +03:00
Nekotekina 5c9d0e4b46 Add "SPU Cache" option
If disabled, the cache will still be loaded, but never updated.
2018-06-05 12:35:26 +03:00
Nekotekina 5d4c5ecc1c Add "SPU Verification" option
Should be always enabled
2018-06-05 12:35:26 +03:00
Nekotekina 12eee6a19e SPU ASMJIT: Implement Mega block mode (experimental)
Disable extra modes for SPU LLVM for now.
In Mega mode, SPU Analyser tries to determine complete functions.
Recompiler tries to speed up returns via 'stack mirror'.
2018-06-05 12:35:26 +03:00
Nekotekina 11bdb4102a SPU LLVM: implement returnable check_state()
Call it only at the beginning of loop entries
2018-06-05 12:35:26 +03:00
Nekotekina df489d786a sys_timer_usleep: give Linux a partial exemption 2018-06-05 12:35:26 +03:00
Nekotekina ec6d1fb1ba SPU: optimize GETLLAR (TSX)
Add an option "Accurate GETLLAR"
2018-06-05 12:35:26 +03:00
Nekotekina a5f4e6ecef SPU: fix PUTLLUC accuracy 2018-06-04 16:01:17 +03:00
Nekotekina 9fe03a94d8 SPU ASMJIT: implement returnable check_state() 2018-06-04 16:01:17 +03:00
Nekotekina 1e107487da SPU: improve analyser (v3) 2018-06-04 16:01:17 +03:00
Nekotekina 05e24f38f9 SPU: use progress dialog 2018-06-04 16:01:17 +03:00
Dravonic 400079a006 Parallel shader cache loading (#4677)
* Parallel shader cache loading
2018-06-01 19:49:29 +03:00
Nekotekina b0ee369135 Rewrite LLVM compilation progress dialog
Use a single dialog
2018-05-30 20:35:35 +03:00
Nekotekina a2253e840f SPU LLVM: fix *QBI instructions (UB)
Improve codegen at the cost of unnecessary shuffle, use u64[2]
2018-05-30 20:35:35 +03:00
Nekotekina 37577714fa SPU LLVM: emulate PSHUFB
For targets without SSSE3 support
2018-05-30 20:35:35 +03:00
Nekotekina 759370ea1b SPU: rewrite FSM/FSMH/FSMB instructions
Remove lookup tables
2018-05-30 20:35:35 +03:00
Nekotekina 55e9d437a9 Fix warning (ignored attributes) 2018-05-30 20:35:35 +03:00
Nekotekina bdf6545571 SPU: rewrite spu_interpreter::SHUFB
Use ASMJIT to generate SSSE3+ code at runtime
Remove static SSSE3 code from spu_interpreter
2018-05-30 20:35:35 +03:00
Nekotekina bebb1bdeda Extend ppu_decoder/spu_decoder templates
Automatically dereference pointers
2018-05-30 20:35:35 +03:00
Nekotekina 944e89058e SPU: improve SHUFB 2018-05-30 20:35:35 +03:00
eladash 4576a31f47 fix memory mapping alignment 2018-05-30 00:34:38 +04:00
eladash 8826948c43 cellgcm: implement cellGcmTerminate 2018-05-29 19:57:28 +03:00
eladash 23b380eb41 allow deallocations to unmap rsx mapped memory 2018-05-29 19:57:28 +03:00
eladash ce98c962f8 cellgcm: use offset table to get the corresponding address to io address 2018-05-29 19:57:28 +03:00
eladash 97515a0941 sys_rsx/cellgcm: return EINVAL if the io map requast's size is 0 2018-05-29 19:57:28 +03:00
eladash 0a7902d313 sys_rsx: fix mem_handle id 2018-05-29 19:57:28 +03:00
eladash 8eab9fe36c sys_rsx: fix unused pointer dereferencing 2018-05-29 19:57:28 +03:00
kd-11 d48f391b41 lv2: Ease the pain of lower end CPUs
- Avoid busy waiting in usleep code as much as possible, instead yield
- Also avoid busy_wait for SPU concurrency choker
2018-05-29 13:54:30 +03:00
kd-11 be13a776f4 lv2: Reimplement sys_timer_usleep
- Matches ps3 accuracy for all tested values with few exceptions
- Do not enter the host OS kernel if waiting for less than 500us to avoid scheduler issues
2018-05-29 13:54:30 +03:00
kd-11 8fcd5c1e5a rsx: Texture cache fixes
1. rsx: Rework section synchronization using the new memory mirrors
2. rsx: Tweaks
    - Simplify peeking into the current rsx::thread instance.
      Use a simple rsx::get_current_renderer instead of asking fxm for the same
    - Fix global rsx super memory shm block management
3. rsx: Improve memory validation. test_framebuffer() and
tag_framebuffer() are simplified due to mirror support
4. rsx: Only write back confirmed memory range to avoid overapproximation errors in blit engine
5. rsx: Explicitly mark clobbered flushable sections as dirty to have them
removed
6. rsx: Cumulative fixes
    - Reimplement rsx::buffered_section management routines
    - blit engine subsections are not hit-tested against confirmed/committed memory range
      Not all applications are 'honest' about region bounds, making the real cpu range useless for blit ops
2018-05-23 19:07:08 +03:00
Nekotekina c5d8d50908 Move SPU LLVM log file 2018-05-23 15:36:29 +03:00
Nekotekina 3e580afe21 SPU: remove passive lock (fixup) 2018-05-23 15:36:29 +03:00
Nekotekina 72574b11ff SPU: use reservation spinlocks on writes (non-TSX)
This should decrease contention by avoiding global lock
2018-05-21 21:56:14 +03:00
Nekotekina 182259e4a5 cellSaveData fix 2018-05-21 21:47:04 +03:00
Nekotekina 6fd402bcf8 Transactions: drop RDTSC usage
Use simple increment (minor optimization)
2018-05-21 00:18:37 +03:00
Nekotekina 7a6db3dd7e spu_getll_tx: diagnose loop count 2018-05-21 00:18:37 +03:00
Nekotekina 295f782b30 spu_putlluc_tx: diagnose loop count 2018-05-21 00:18:37 +03:00
Nekotekina a33f297315 Replace notifier::lock_shared() with try_lock_shared()
Also add notify_one(), try_lock() and unlock()
Move some code in cond.cpp
2018-05-21 00:18:37 +03:00
Nekotekina 8d5bbfb850 Update SPU dump: print current MFC cmd 2018-05-21 00:18:37 +03:00
Nekotekina 33a1c743a4 Transactions: move loops inside
Rewrite loops in assembler (minor optimization)
2018-05-21 00:18:37 +03:00
kd-11 f6f45b8699
Native UI refactored (#4623)
Refactor and improve native overlays
2018-05-20 23:05:00 +03:00
Megamouse 68fff54a8b cellSaveData: don't return after funcStat was successful in savedata_op
also add some missing constants
2018-05-20 23:16:11 +04:00
Nekotekina 67391322f4 Transactions: touch memory only after a failure
Minor optimization
2018-05-17 22:19:26 +03:00
Nekotekina 39088e5005 SPU: Allow waiting on LR+TM events (fixup) 2018-05-17 21:21:15 +03:00
Nekotekina 7afda26c69 spu_putllc_tx: preload a little more (WIN32) 2018-05-17 18:58:08 +03:00
Nekotekina 58e4d49bb5 Fixup (endless loop) 2018-05-17 18:33:44 +03:00
Nekotekina 367f039523 Build transactions at runtime
Drop _xbegin family intrinsics due to bad codegen
Implemented `notifier` class, replacing vm::notify
Minor optimization: detach transactions from global mutex on TSX path
Minor optimization: don't acquire vm::passive_lock on PPU on TSX path
2018-05-16 17:31:58 +03:00
Nekotekina fd525ae1cf Implement build_function_asm
Uses ASMJIT to build function at startup
2018-05-16 15:48:35 +03:00
scribam 196f985283 hle: improve cellSync2 error checks and logging 2018-05-15 22:59:34 +04:00
sftt 27004eb934 Avoid illegal available_user_memory in sys_memory (#4399)
jarveson says "the comment and minus can be completely deleted/reverted" in 17cf24d0ed
2018-05-15 17:40:45 +01:00
scribam 04ad49de4d typos 2018-05-14 21:14:39 +04:00
isJuhn fc23243d01 Fix setParam in cellHddGameCheck 2018-05-14 16:56:47 +01:00
Nekotekina 3c70645f0b Update SPU cache (v2)
Improve SPU analyser: filter unreachable fragments
More strict NOP/LNOP analysis
Fill block predecessors info
ASMJIT: fix assertion and improve indirect branch
2018-05-13 20:40:23 +03:00
Nekotekina 7cb4672344 Travis: remove LLVM for now 2018-05-13 00:03:08 +03:00
Nekotekina 4c7afb6952 Opt-in set DAZ and FTZ 2018-05-13 00:03:08 +03:00
Nekotekina a77896c1b6 Update LLVM commit, use small code model 2018-05-13 00:03:08 +03:00
Nekotekina be5c18cc85 SPU Re: more precise jt generation
Improve analyser, set v1
Fix branch indirect conditional
2018-05-12 23:50:49 +03:00
Nekotekina 737db90058 Set DAZ and FTZ 2018-05-09 23:38:26 +03:00
Nekotekina 5d15d64ec8 Memory mirror support
Implemented utils::memory_release (not used)
Implemented utils::shm class (handler for shared memory)
Improved sys_mmapper syscalls
Rewritten ppu_patch function
Implemented vm::get_super_ptr (ignores memory protection)
Minimal allocation alignment increased to 0x10000
2018-05-09 23:35:34 +03:00
Nekotekina fe4c3c4d84 Implement SPU recompiler cache
Shared between ASMJIT/LLVM recompilers, compiled at startup
2018-05-09 23:35:18 +03:00
Nekotekina acfe22e5bc SPU: improve jumptable detection 2018-05-09 22:19:55 +03:00
Nekotekina 8f91917e8c SPU ASMJIT: simplify patchpoints
Remove SPU thread reference from spu_recompiler_base
Disable support for far jumps in pathpoints (they were rare and unsafe)
2018-05-09 22:19:55 +03:00
Nekotekina 1ca51a023c SPU LLVM Recompiler (preview) 2018-05-09 22:19:55 +03:00
Nekotekina a975ecdc4f Use LLVM 6 2018-05-08 13:05:29 +03:00
Nekotekina 8b704588d0 Update cpu_translator 2018-05-08 13:05:29 +03:00
Nekotekina db229dffb0 PPU LLVM: minor update 2018-05-08 13:05:29 +03:00
Nekotekina 16f5167aed SPU Analyser improved
This restores some functionality removed in SPU ASMJIT v2.0
Also implements new experimental features
2018-05-08 13:05:29 +03:00
Nekotekina 767dfa271e SPU ASMJIT: internal jumptable
Allow indirect calls within current function using a jumptable
This restores some functionality removed in SPU ASMJIT 2.0
Change SPUThread::get_ch_value prototype
2018-05-08 13:05:29 +03:00
Nekotekina df453d6d4f SPU ASMJIT: allow holes in raw block data
This is preparation for further changes.
This commit shouldn't affect anything.
2018-05-08 13:05:29 +03:00
Nekotekina 2fecddcde2 SPU ASMJIT: rewrite halt instruction
Use conditional memory access to invalid address.
This approach can allow continue (for debugging);
but at the same time it doesn't add function call to recompiled code.
2018-05-08 13:05:29 +03:00
Nekotekina 4d60d85db5 SPU: fix MFC_PUTQLLUC_CMD fence trait 2018-05-08 13:05:29 +03:00
Nekotekina f4af3f2987 PPU: improve LWARX/LDARX consistency 2018-05-08 13:05:29 +03:00
Maxetto dca6f1f863 Update some lv2 syscall names (#4490) 2018-05-06 14:21:50 +04:00
scribam ff1b0d73b7 hle: make cellSubDisplayInit returns CELL_SUBDISPLAY_ERROR_ZERO_REGISTERED 2018-05-06 12:49:44 +04:00
Nekotekina 738a7cac4f SPU ASMJIT: inline WRCH 2018-04-22 00:06:49 +03:00
Nekotekina 9516250bec SPU: fix MFC_WrTagUpdate 2018-04-22 00:06:49 +03:00
Nekotekina 2418de7e8b SPU ASMJIT: inline RDCH 2018-04-22 00:06:49 +03:00
Nekotekina 00ce814501 SPU ASMJIT: inline RCHCNT 2018-04-22 00:06:49 +03:00
Nekotekina 9ad5fc8a08 SPU: rewrite spu_channel_t 2018-04-22 00:06:49 +03:00
Nekotekina 3ffafb741c SPU ASMJIT: übertrampolines and spu_runtime
Use opt-out shared spu_runtime to save memory (Option: SPU Shared Runtime)
Implement "übertrampolines" for dispatching compiled blocks
Patch fixed branch points to use trampolines after check failure
2018-04-22 00:06:49 +03:00
Nekotekina 8ca33bcb94 SPU ASMJIT v2.0
Use X86Assembler and blocks
2018-04-22 00:06:48 +03:00
Robbie 477522210e Refactor debugger_frame into subclasses. Mostly trying to simplify
breakpoints.
2018-04-21 22:21:51 +04:00
Greg V 633004c820 Fix build with ffmpeg 4.0 2018-04-21 21:06:06 +04:00
Megamouse 8f4fa8a5b6 cellPad: check for more invalid parameters 2018-04-20 17:09:14 +04:00
TheAnig eb3dfb6bb4 Implemented sysCacheClear() (#4445) 2018-04-18 18:17:55 +04:00
TGEnigma 6baf675205 Fixes PPU disasm for branch opcodes 2018-04-16 19:02:06 +04:00
isJuhn da6f98f310 Fix setParam in cellGameDataCheckCreate2 2018-04-16 15:53:22 +04:00
Nekotekina ea82b732a3 SPU: fix non-TSX path 2018-04-08 23:30:50 +03:00
GinkREAL 8a51af0b56 cellVdec: Do not decode next frame during end_sequence 2018-04-08 02:51:46 +04:00
Nekotekina c77b310422 Implement sys_vm_invalidate 2018-04-07 21:18:34 +03:00
Nekotekina 0797164fac SPU: fix possible livelock
The bug affects TSX path
2018-04-07 20:51:21 +03:00
Nekotekina 3681507136 Rewrite vm::reservation
Use flat virtual memory area
2018-04-07 20:51:21 +03:00
Nekotekina 2b5cf2455f SPU: improve TSX usage
Reduce transaction failure amount
Remove vm::try_to_lock
2018-04-06 21:47:54 +03:00
Nekotekina d392379c7a Use vm::passive_lock for SPU threads 2018-04-06 15:47:00 +03:00
Nekotekina e88508b679 SPU: cache barrier/fence masks 2018-04-06 15:47:00 +03:00
Nekotekina da9baac842 Improve save data dialog
Bug fix: don't display new data entry when not asked for
Use icon/title provided by the game for the new data entry
Display new data entry at the beginning of list when necessary
Minor cellSaveData cleanup
2018-04-02 16:27:28 +03:00
Nekotekina 0e74f2e340 Fix MMIO on SPU
Thanks Digitaldude555 for reporting the bug and @elad335 for pinging me
2018-04-01 22:39:48 +03:00
Nekotekina 402ca480cd Fix vm::check_addr usage 2018-04-01 22:39:48 +03:00
Nekotekina d871675b3b Process RawSPU MMIO in do_dma_transfer 2018-04-01 22:39:48 +03:00
Nekotekina bb0cfe383d Fix MFC_SYNC_CMD 2018-04-01 20:52:54 +03:00
scribam 717f2b0ac8 cellVdec: log error when using interlaced frame instead of throwing an exception 2018-04-01 03:36:22 +04:00
Megamouse 755ceb50a4 stub cellGem some more (#4349) 2018-04-01 02:03:37 +04:00
VelocityRa 706faa1d32 PPUTranslator: Ignore relative relocations 2018-04-01 01:32:08 +04:00
jjsat 4620fa8bd8 Return parameter error if the result of funcFixed is invalid. 2018-04-01 01:04:37 +04:00
jjsat 1dc87a0704 Corrected logic for handling number of returned save data list entries and total number of save entries. 2018-04-01 01:04:37 +04:00
jjsat bba7184090 Handle some invalid save function parameters. 2018-04-01 01:04:37 +04:00
jjsat d973337c4e Calculate save data file size more accurately and return size in savedata_get_list_item if requested. 2018-04-01 01:04:37 +04:00
Nekotekina 898637f830 Remove mfc_thread
Clear mfc_queue on reset
Improve MFC Proxy a bit
2018-03-31 21:13:12 +03:00
Nekotekina 78dbc4fb5f RawSPU: reset status register on start
Was proposed by @elad335
Implemented as atomic op
2018-03-31 20:35:30 +03:00
Nekotekina a3db2774f1 [LLVM] Fix thread limiter
Allow to apply max llvm threads setting as usual
2018-03-31 20:35:30 +03:00
VelocityRa bca46e92d4 cellCamera: Implement cellCamera*NotifyEventQueue and do some refactoring 2018-03-30 20:50:31 +01:00
Megamouse 3e863f2189 remove redundant error messages in sceNpTrophy 2018-03-30 05:40:57 +04:00
Megamouse 2d68aed68f improve sceNpTrophyGetTrophyInfo and sceNpTrophyGetGameInfo 2018-03-30 05:40:57 +04:00
kd-11 c6a2525c9b video out: Set up video configuration options in fxm
- TODO: Actually do something with the values
2018-03-25 13:31:06 +03:00
Talkashie a35bcb131e unimportant teepo fix (#4328)
* ultra teepo fix part 1

* super mega teepo fix part 2
2018-03-24 20:21:50 +04:00
eladash 63fa50080d sys_spu: dont check prio if spu group type is 0x20
it's currently unknown whats the exact relationship between the prio and the group type SYS_SPU_THREAD_GROUP_TYPE_COOPERATE_WITH_SYSTEM (0x20).
tho we do know prio'es whom less than 16 are reserved for the system.
2018-03-24 19:48:14 +04:00
eladash d27a375363 RawSPU/MFC: fix get start type proxy commands 2018-03-24 19:48:14 +04:00
eladash fad9cd6ef1 sys_spu: fix spu image loading address calculation
by calculating mem_size after nsegs has being calculated
2018-03-24 19:48:14 +04:00
Zeke Sonxx 3066a05df0 sys_crash_dump user_log_area improvements
Gets Destiny BLUS31181 to Intro
2018-03-24 17:49:18 +04:00
scribam 1ae724f739 sys_fs: returns the correct error value when the path is 0 or an empty string 2018-03-23 21:45:22 +04:00
Megamouse 50ff987850 stub sceNpScoreWaitAsync and sceNpScorePollAsync
and sceNpScoreCreateTransactionCtx
2018-03-23 20:46:24 +04:00
Nekotekina 78cfba158d Use lowercase for FNIDs for consistency 2018-03-22 23:24:58 +03:00
Nekotekina 2c6c8f1a25 Implement patch support for PRX
Store SHA-1 hash in ppu_module
2018-03-22 23:24:58 +03:00
Nekotekina 19944eeed0 Implement SPRX precompilation
Automatically precompile firmware modules
Add "Create LLVM Cache" menu (for games)
Reimplement jit_compiler::cpu as static method
2018-03-22 23:24:58 +03:00
eladash 3426531e38 qt/spu: remove max dma write size setting
This wasn't really used for anything tbh
2018-03-20 02:49:53 +04:00
scribam b232409cc5 Add return codes when camera handler is set to null 2018-03-16 18:16:49 +00:00
scribam da635af0d6 Make cellCameraInit returns CELL_OK when no camera is plugged in. 2018-03-16 18:16:49 +00:00
Nekotekina 817dfe8651 cellGameContentPermit workaround 2018-03-12 19:16:52 +03:00
Nekotekina ba54f7ae39 Improve cellGameCreateGameData error checks 2018-03-12 18:53:57 +03:00
Nekotekina f328cdbaef Fix cellGame regression 2018-03-12 11:40:12 +03:00
Nekotekina 4fd69a09c7 Fix cellGameDataCheckCreate2 2018-03-11 19:33:01 +03:00
Nekotekina f4d2fccdfe Improve boot dir access
Add Emu.GetDir() method
2018-03-11 19:33:01 +03:00
Jake 7bbadfd08b ppu/sys_interrupt: add stack_reset command to fix sys_interrupt stack overflowing 2018-03-09 20:30:59 +04:00
Jake ec0cd9f006 cellGame: Fix cellDiscGameGetBootDiscInfo return values (#4241) 2018-03-03 03:11:25 +04:00
Nick Renieris 504e3112dd [HLE] First steps to Playstation Move (#4083)
* [sysutil] Add Magnetometer system param

*  [ui] Add UI for Move handler

 Current options are "Null" and "Fake".

* cellGem: Improvements

* cellCamera: Improvements
2018-03-02 20:51:21 +04:00
Nekotekina f056b2f4ab Improve TTY output
Use atomic variable to sync TTY size
Implement console_putc (liblv2)
Write plaintext instead of HTML
Slightly improve performance
Fix random line breaks in TTY
2018-03-01 16:28:08 +03:00
Nekotekina 445b7c0758 Optimize SPU interpreter
Made SPU decoder similar to PPU decoder
2018-03-01 16:13:35 +03:00
scribam dacc9af38f Add 2-channels mode for cellAudioOutGetDeviceInfo 2018-03-01 04:20:54 +04:00
scribam 8d7620d95f Change return of function "sceNpMatching2Init" to CELL_OK 2018-03-01 01:41:42 +04:00
scribam 31cee7e4c8 Make cellNetCtlGetInfo returns the correct value in disconnected mode 2018-02-28 22:25:51 +04:00
elad 6e8ccbcf17 spu/interp: optimize floating point exception checking
read once the MXCSR register and use his value to check for all exceptions
2018-02-28 21:30:33 +04:00
Andrey e0f53ace19 Improve GDB debug server (#4027)
* Made GDB debugger working with IDA

* Added async interrupts support

* Report proper thread after pausing

* Support attaching debugger before running app
2018-02-28 19:31:39 +04:00
scribam 05354698f0 Add callbacks for cellStorage 2018-02-28 15:58:50 +04:00
scribam 14e15b2feb Add callbacks for cellUserInfo 2018-02-28 15:58:50 +04:00
scribam 324d21d849 Add callbacks for cellPhotoImport 2018-02-28 15:58:50 +04:00
scribam aa30e865c2 Add callbacks for cellSysconf 2018-02-28 15:58:50 +04:00
scribam 0772b9c879 Add callbacks for cellCrossController 2018-02-28 15:58:50 +04:00
scribam 296052b1ff Add callbacks for cellPrint 2018-02-28 15:58:50 +04:00
scribam be834a67d1 Add callbacks for cellPhotoDecode 2018-02-28 15:58:50 +04:00
scribam b63461f599 Add callbacks for cellMusicExport 2018-02-28 15:58:50 +04:00
scribam 1fb7cc4002 Add callbacks for cellMusicDecode 2018-02-28 14:47:35 +04:00
elad b61a69c877 fix spu interpreter single stepping 2018-02-25 20:30:44 +04:00
scribam 7753ac60b0 Add CELL_GAMEUPDATE_RESULT_STATUS_* enum 2018-02-25 13:17:38 +00:00
scribam aabf3c6695 Checks for content_id in sceNpDrmVerifyUpgradeLicense and sceNpDrmVerifyUpgradeLicense2 2018-02-25 13:17:38 +00:00
scribam ede76033a7 Add callbacks for cellMusic 2018-02-24 02:38:43 +04:00
Megamouse ae7e275a9d sceNpTrophyGetRequiredDiskSpace: take vfs into account for trophy dir 2018-02-22 00:18:14 +04:00
Juhn 1b26ec56ed Implement _sys_qsort in sys_libc_.cpp (#4176) 2018-02-21 00:24:47 +04:00
Robbie 00b1ff752d Add flag for rockband. Tests have shown it independent other flags. But, actual use is currently not known. 2018-02-18 04:29:41 +04:00
elad 877b296fc3 hle: return enosys on unpresented syscalls 2018-02-16 21:57:31 +04:00
elad 95c6ac699b hle: gpio syscalls
* add sys_gpio_get, sys_gpio_set
2018-02-12 04:29:07 +04:00
Nekotekina cce0ad0c35 Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
Nekotekina 76be7d40ac Remove PSP2 2018-02-09 15:24:46 +03:00
Nekotekina 439a78d12c SPU ASMJIT: rewrite 128-bit shifts by bit
Six instructions changed to use xmm registers instead of gpr.
ROTQBII, ROTQMBII, SHLQBII look better (shifts by imm)
ROTQBI, ROTQMBI, SHLQBI changed for consistency (shifts by variable)
2018-02-08 21:10:03 +03:00
Nekotekina c7c49ab286 SPU ASMJIT: minor change to ROTH instruction
Only AVX-512 path is changed (third version).
This instruction is extremely rare.
And the code is probably not optimal.
So this commit is pretty useless.
2018-02-08 21:10:03 +03:00
Nekotekina b01e460863 PPU LLVM: rewrite AVG instructions 2018-02-08 21:10:03 +03:00
Nekotekina 93c0a0aa35 PPU LLVM: rewrite add/sub instructions
Use new patterns for saturation instructions
Avoid ZExt/SExt completely
2018-02-08 21:10:03 +03:00
Nekotekina 74834527eb SPU: rewrite ORX instruction 2018-02-08 21:10:03 +03:00
Nekotekina 9b9ac3ca62 SPU: emit VZEROUPPER
Workaround dirty AVX high state
2018-02-08 21:10:03 +03:00
Nekotekina db83113316 Initial cpu_translator impl 2018-02-08 21:10:03 +03:00
Nekotekina e2439e962c SPU: use XOP instructions 2018-02-08 20:46:13 +03:00
Nekotekina 84103b69cf SPU: 16-bit shifts for AVX2 2018-02-08 20:46:13 +03:00
elad 5b5f2d4240 hle: add a missing check in sys_spu
check if exit code exists and the spu is stopped by a stop instruction
and optimize the way were getting the exit code
2018-02-06 04:09:07 +04:00
elad 956ae17876 spu: add a missing STOP code
should fix #2456
for whatever reason, this call accepts only an empty ouput mailbox, otherwise break
2018-02-06 04:09:07 +04:00
elad a6fb6c865d mfc: dont check for one completed command if tag update requast is 2
Instead check only for completed commads tag groups specified in the tag mask ( as real hw does )
2018-02-06 04:09:07 +04:00
scribam cd9bfba790 Add sceNpMatchingInt 2018-02-03 14:07:38 +00:00
scribam 6001808174 Add callbacks for cellPhotoExport 2018-02-03 03:52:06 +00:00
TGEnigma 55821041bf core/GUI: Fix null pointer dereference 2018-02-02 11:17:12 +03:00
scribam 2821915eae Add callbacks for cellVideoUpload 2018-02-01 17:19:52 +04:00
scribam 68143bc47c Add callbacks for cellVideoExport 2018-02-01 17:19:52 +04:00
scribam f4e5bfbdf7 Add callbacks for cellRec 2018-02-01 17:19:52 +04:00
isJuhn a27e2db455 Stub some functions in cellWebBrowser 2018-01-28 02:50:42 +04:00
Megamouse bb5bdb2e8c improve cellKB keyreleases and autorepeat 2018-01-27 01:57:55 +04:00
Megamouse b9c10a186d Qt/Core: implement max llvm compile threads 2018-01-26 01:57:05 +04:00
Zangetsu38 a9c26b40dd hle: Stub function Unimplemented in NpSns. 2018-01-24 20:20:28 +03:00
Inviuz cc0d7c5985 improved hack/fix for cellsurmixer 2018-01-24 15:21:24 +00:00
kd-11 3d9e3a16f1 rsx/gl/vk: Fixes and optimizations
- opengl driver optimization for nvidia. On nvidia glTextureBufferRange performance is horrendous
-- Initialize texture buffer to whole buffer at startup and use absolute offsets to read data instead
-- Over 2x performance in some cases (Resogun, TNT racers)
- gl/vk: Do not flip non-existent display buffers. Fixes spec violation at boot in TNT racers demo
- whitespace fixes for sys_rsx
2018-01-22 11:43:35 +03:00
kd-11 ab17b49e15 scheduler stuff
- more threads for rsx
- better 1600
2018-01-22 11:43:35 +03:00
elad f908daf323 SPU/MFC: check for sync command before doing a list transfer
fixes #3828
2018-01-20 03:32:48 +04:00
kd-11 cbc8bf01a1 cell/scheduler: Manage thread placement depending on cpu hardware 2018-01-19 12:03:57 +03:00
scribam fbac1c304a Improve cellSearch implementation 2018-01-18 18:40:57 +04:00
kd-11 71f69d1d48
rsx/overlays: Introduce 'native' HUD UI and implement some common dialogs (#4011) 2018-01-17 19:14:00 +03:00
scribam 34c49c77b2 Fix #3950 2018-01-17 15:17:06 +00:00
elad 24e97b9e03 SPU: Allow writing to the WrSRR0 channel 2018-01-16 04:34:15 +04:00
elad 5848864f55 SPU: Allow reading of the RdSRR0 channel
stupid bug
2018-01-16 04:34:15 +04:00
Nekotekina 435ea8d553 Fix "cellGame: cellGameDataCheck arg validate"
Fixes #4058
2018-01-14 22:23:48 +03:00
Jake d216398596 cellGame: cellGameDataCheck arg validate 2018-01-14 20:50:55 +03:00
Megamouse 2053de0885 handle some warnings 2018-01-13 23:38:23 +04:00
Unknown 155f7a7d76 improve cellPad
fix input regression and fix input for FIFA games
fix input in NASCAR [BLUS30932]
fix port status query -> disconnected devices don't cripple following devices by decreased now_connect
2018-01-13 22:48:52 +04:00
Zion Nimchuk 4231ea2eb6 Also stub some similar cellGameUpdate functions 2018-01-09 04:56:06 +04:00
Zion Nimchuk 8ee0ed84e4 Better stub cellGameUpdateCheckStartAsyncEx/FinishAsyncEx, fixes PAIN 2018-01-09 04:56:06 +04:00
TGEnigma d770a42349 Fix debug build 2018-01-06 04:45:55 +04:00
Nekotekina 83b541ea9d SPU: rewrite ROTH (AVX-512) 2018-01-03 01:04:04 +03:00
kd-11 ee009ec99c rsx: Robustness fixes
- Track last working state and reset to it if RSX starts to desync
-- This is especially useful when running vulkan since the renderer will easily outpace the rest of the system when merely recording draw commands
- Ignore empty sets
-- Mark empty/invalid IB sets as having 0 element counts.
2018-01-02 21:17:56 +03:00
Nekotekina 198e9dce1d Fix #4005 regression
Delay unregister EH frames (Linux)
2018-01-01 10:41:07 +03:00
VelocityRa 383c501a35 [gui] Show total number of llvm compilation dialogs
- Doesn't account for dynamic libraries loaded after the fact,
  but usually good enough since
  1) Those aren't even present in some games
  2) They usually only have about 1 or 2 fragments (dialogs) each.
2017-12-31 22:08:17 +03:00
VelocityRa 7c64c2f703 MsgDialog: Add SetMsg() for changing main text 2017-12-31 22:08:17 +03:00
VelocityRa 489ded43b1 Trophy: Return correct disk space requirements
Closes #3763
2017-12-31 22:08:17 +03:00
Nekotekina d40aaf0391 PPU: use shared jit_compiler instance
(Linux) Fix deregisterEHFrames error message
2017-12-31 22:08:17 +03:00
Nekotekina a92bf39efa Trophy: check both bdvd and hdd locations 2017-12-29 20:04:40 +03:00
Nekotekina e836c33f37 cellGame: don't write empty TITLE_IDs in PARAM.SFO 2017-12-29 20:04:10 +03:00
Nekotekina f271b650da SPU: minor addition for CFLTU, CUFLT 2017-12-29 03:09:35 +03:00
Nekotekina 14929a1497 Fix game category issues
Fix cellGameDataCheckCreate2 PARAM.SFO
Fix trophy initialization for gamedata (game patch)
Implement psf::assign
Potentially fix cellGameSetParamString
2017-12-29 03:09:35 +03:00
Nekotekina e768bdc80f Remove /app_home/ dependency
Should also fix exitspawn
2017-12-27 02:51:58 +03:00
Nekotekina a605919729 Fix lv2_socket id_base 2017-12-27 02:51:58 +03:00
Nekotekina 39a3ed2d03 SPU: minor additions for AVX2+ 2017-12-27 02:51:58 +03:00
Nekotekina 0a89f1db39 Fix primary stack size 2017-12-25 21:08:15 +03:00
Ofek 3cf0fb60a4 Set lv2_socket id_base (#3983) 2017-12-25 15:47:28 +04:00
Megamouse fc2ef5529d Fix cellPadSetPortSetting (#3980)
* Don't skip setting port settings when no controller is connected
* DS4: fix error message
2017-12-24 14:47:36 +00:00
Ofek a6208d2bd7 Reset initial seek position in MSELF files (#3977) 2017-12-23 23:18:55 +04:00
Ani 5e04a5f21d
_sys_process_exit: Fix logging (#3963) 2017-12-21 19:48:21 +00:00
Nekotekina f24491de84 SPU: fixes 2017-12-20 01:21:59 +03:00
Nekotekina 83da7f9b63 PPU: remove SSSE3 dependency 2017-12-20 01:21:15 +03:00
Nekotekina 1ae8850b3f PPU: rewrite VMHRADDSHS without SSSE3 2017-12-20 00:04:09 +03:00
Nekotekina 140a581d23 PPU: redesign LVSL, LVSR instructions 2017-12-20 00:04:09 +03:00
Nekotekina d3198ddf60 SPU: reorder some instructions for better throughput 2017-12-20 00:04:09 +03:00
Nekotekina 6d34dcd75f SPU: add some AVX-512 variants 2017-12-20 00:04:09 +03:00
Nekotekina 4aee4ed6d7 SPU: remove SSSE3 dependency 2017-12-20 00:04:08 +03:00
kd-11 0d0821e914 rsx: Pause FIFO queue when changing ctrl registers 2017-12-18 10:45:37 +03:00
Zion 17bfb3beaf various memory access violation fixes (and friends) (#3930)
* various memory access violation fixes

* Another fix, for motorstorm demo

* Better stub cellGameUpdateCheckStartAsync and FinishAsync, Fixes #3934
2017-12-16 04:03:49 +04:00
scribam 6e9b064a0f Add new functions to cellSysutil 2017-12-11 01:36:22 +04:00
scribam 50f2be57f7 Spaces to tabs 2017-12-10 16:48:33 +04:00
elad335 3aefd14b3d disasm: display db[x]cyc 2017-12-10 16:19:36 +04:00
Nekotekina d8ae94df5b savedata: avoid passing vm memory to fs::file 2017-12-05 15:55:10 +03:00
Nekotekina bfb3144f34 sys_net: Force AF_INET 2017-12-02 12:36:05 +03:00
Jake d17093e65b spu: Fix interrupt jump check - also change interrupt variable to atomic bool for ease of setting/checking 2017-12-01 20:29:59 +03:00
Jake 34e01ba3d8 mfc: Fix support for list transfer stall bit with partial support for out of order execution - Also give Sync commands a size so they are properly detected by queue checks 2017-12-01 20:29:59 +03:00
Jake 8b476b5bfa spu: Recompiler Interrupt optimizations - Pigeonhole optimize for branching pattern that is used to enable and disable interrupts used in code, this should lower amount of blocks that are compiled and avoid falling out of a block - Recompiled interupt check in some cases to stay in block instead of falling out to dispatcher 2017-12-01 20:29:59 +03:00
Jake ad97780c4f spu: Implement DFCMGT for interpreter and recompiler 2017-12-01 20:29:59 +03:00
Jake 17cf24d0ed sys_memory: Lower maximum size for memory block to fake OS size - Report available memory minus another fake block that can be used for the OS 2017-12-01 20:29:59 +03:00
Zion Nimchuk c424652b43 Silence warnings in misc files (gui, psp2, mfc, mouse) 2017-11-30 18:07:19 +03:00
Zion Nimchuk 8276d29d4f Silence warnings in lv2/Modules 2017-11-30 18:07:19 +03:00
Zion Nimchuk b9b06143d2 Silence some warnings in some files in Utilities 2017-11-30 18:07:19 +03:00
elad 91fd1465f2 SPU MFC: Clamp tag and size (#3803) 2017-11-29 16:28:41 +04:00
Nekotekina 695b4c1f06 Change sys_usbd_receive_event 2017-11-27 23:15:28 +03:00
VelocityRa 754cdea435 Avoid recreating SwsContext every frame
* Applies to video decoding(`libvdec`) and post-processing(`libvpost`).
2017-11-27 22:35:40 +04:00
Nekotekina f7803927d9 Fix exitspawn (autoexit option)
Fix other situations affected by this options
2017-11-26 09:02:37 +03:00
scribam 78101a9e57 cmake: remove unused link to ffmpeg libswresample 2017-11-25 14:07:11 +00:00
Nekotekina 74c248150b Log sys_fs_utime values 2017-11-23 18:38:05 +03:00
Ofek 3628a8593f Fix cellGameBootCheck for disc games (#3771)
Don't return dirName
2017-11-23 16:27:44 +04:00
Ofek 58c42ad9c0 Check sys_spu_thread_group_create's nsize (#3742)
* Check sys_spu_thread_group_create's nsize

* cellSearch callback correction
2017-11-23 02:02:23 +04:00
clienthax 86a34fbb45 Fix regressions caused by network code. (#3702)
* Stub SOCK_DGRAM_P2P to allow some games to load again.

* Add 'support' for unspec sockets
(Have only seen the youtube app using these so far)
2017-11-20 16:42:16 +03:00
Zion Nimchuk 12ecba7d49 Initial work on sys_usbd syscalls 2017-11-19 23:11:13 +03:00
Nekotekina c435b328c7 Implement savedata delete op 2017-11-15 21:00:02 +03:00
Nekotekina 0d1cb8c878 Fix cellMsgDialog 2017-11-15 21:00:02 +03:00
Nekotekina 16d7023a92 cellSaveData fixes 2017-11-15 21:00:02 +03:00
Nekotekina 358afc045d Minor fix (cellGame) 2017-11-15 21:00:02 +03:00
Nekotekina 0fbb8b9a18 Implement _sys_prx_load_module_by_fd
Implement _sys_prx_load_module_on_memcontainer_by_fd
2017-11-15 21:00:02 +03:00
clienthax 9e0b881b2b Fire callback in cellSearchInitialize
Allows BLJS10131 to get ingame ;)
2017-11-15 02:26:36 +04:00
clienthax 946ba3be29 Fix bug in sys_spu_thread_group_create (#3734) 2017-11-14 22:24:55 +04:00
Ofek 8fc9862614 Fix cellGameGet(Set)Param (#3690)
* Fix cellGameGet(Set)Param
2017-11-11 22:22:38 +00:00
Talkashie 55d84414ee Stub sceNpSnsFbCheckConfig (#3720) 2017-11-11 22:18:32 +04:00
scribam 3e7ed8a831 PPUTranslator minor changes 2017-11-08 08:34:00 +04:00
Zion Nimchuk 6782b22637 Make cellMouseGetDataList return CELL_MOUSE_ERROR_NO_DEVICE if mouse handler is set to null 2017-11-04 19:55:32 +00:00
Robbie 47bacc0ef0 Make trophy dialog smarter and not need the silly file. Can load all games by default now. 2017-11-03 21:15:43 +03:00
Tahir Akhlaq 3d0dced4bd change CryptAcquireContextW to try CRYPT_NEWKEYSET flag if key container doesnt exist already < https://msdn.microsoft.com/en-us/library/windows/desktop/aa379886(v=vs.85).aspx > 2017-11-03 14:17:37 +03:00
Nekotekina 59cd0a9c7f Implement set_native_priority (posix) 2017-11-01 05:07:12 +03:00
Nekotekina af107df0b4 Fix NPDRM exitspawn 2017-11-01 05:07:12 +03:00
Nekotekina 0e7e40f2cb Fix /dev_bdvd/ for exitspawn 2017-11-01 05:07:11 +03:00
Robbie 4aa89132d7 Implement Trophy Manager. 2017-10-29 18:48:33 +03:00
Nekotekina 1ffc1e82b0 fixup 2017-10-28 23:39:10 +03:00