Commit graph

2510 commits

Author SHA1 Message Date
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
Nekotekina 796a6646f7 Silence statichle 2019-08-27 13:56:50 +03:00
Nekotekina dd79a5efb7 Remove fxm::make_always 2019-08-27 03:50:15 +03:00
Nekotekina e41b234dc4 Use g_fxo for cellSysCache 2019-08-27 03:50:15 +03:00
Nekotekina d2eba2387b Use g_fxo for display_manager 2019-08-27 03:50:15 +03:00
Nekotekina 4ec3e968ff Use g_fxo for jit_core_allocator 2019-08-27 03:50:15 +03:00
Nekotekina 3dd6961ee5 Use g_fxo in PPUThread.cpp misc
Replace fxm::get_always
2019-08-27 03:50:15 +03:00
Nekotekina ebdb0781fa Use g_fxo for statichle_handler 2019-08-27 03:50:15 +03:00
Nekotekina 84e44d3372 Use g_fxo for ppu_linkage_info 2019-08-27 03:50:15 +03:00
Nekotekina 2a37a4bcea Use g_fxo for cellPad
Rename pad_t -> pad_info
2019-08-27 03:50:15 +03:00
Nekotekina 928719b658 Use g_fxo for rsx::avconf 2019-08-27 03:50:15 +03:00
Nekotekina 7a00b5f809 Use g_fxo for patch_engine 2019-08-27 03:50:15 +03:00
Nekotekina cfdd298693 Use g_fxo for cellMusicDecode 2019-08-27 03:50:15 +03:00
Nekotekina 7b0d834477 Use g_fxo for gem_camera_shared 2019-08-27 03:50:15 +03:00
Nekotekina e4a7e8c058 Use g_fxo for cellGem
Rename gem_t -> gem_config
2019-08-27 03:50:15 +03:00
Nekotekina 1d3c18f4e2 Use g_fxo for cellGcm
Rename CellGcmSysConfig -> gcm_config
2019-08-27 03:50:15 +03:00
Nekotekina 9a2338a5ca Use g_fxo for fs_aio_manager (dummy) 2019-08-27 03:50:15 +03:00
Nekotekina 38a06c4b14 Use g_fxo for SysRsxConfig
Rename to lv2_rsx_config
2019-08-27 03:50:15 +03:00
Nekotekina cf44038435 Use g_fxo for lv2_config 2019-08-27 03:50:15 +03:00
Nekotekina 8304043d00 Use g_fxo for sysutil_cb_manager 2019-08-27 03:50:15 +03:00
Eladash a921fe3351 lv2: Wait for rescheduling before confirming ETIMEOUT 2019-08-27 03:44:34 +03:00
Eladash 35a3bed91a sys_cond_wait: Wait for rescheduling before relocking 2019-08-27 03:44:34 +03:00
Megamouse 32b5b11a83 cellSaveData/overlays: prevent possible array out of bounds in list view 2019-08-26 21:09:20 +02:00
Nekotekina 6165bd68c0 Use g_fxo for avconf_manager 2019-08-22 15:14:33 +03:00
Megamouse 94dd6c2007 cellSaveData: improve param.sfo creation 2019-08-22 08:05:12 +02:00
Megamouse 896cfd2ade cellSaveData/cellMsgDialog: implement cellSaveDataDelete 2019-08-22 08:05:12 +02:00
Megamouse 0b720aeb59 cellSaveData: ignore dot and dotdot 2019-08-22 08:05:12 +02:00
Megamouse b3c1759853 cellSaveData/overlays/Qt: fix some warnings and a possible nullptr deref 2019-08-22 08:05:12 +02:00
Nekotekina 8cf025bf71 Use g_fxo for cellWebBrowser
Rename browser_t -> browser_info
2019-08-22 02:13:39 +03:00
Nekotekina 2b55bde104 Use g_fxo in cellRudp
Rename rudp_t -> rudp_info
2019-08-22 02:13:39 +03:00
Nekotekina 02fe1ef7ff Use g_fxo for cellSearch
Rename search_t -> search_info
2019-08-22 02:13:39 +03:00
Nekotekina 93d5c0a38e Use g_fxo for cellRec
Rename rec_t -> rec_info
2019-08-22 02:13:39 +03:00
Nekotekina 2740fafa64 Use g_fxo for page_fault_notification_entries 2019-08-22 02:13:39 +03:00
Nekotekina 54952f6ad6 Use g_fxo for LoadedNpdrmKeys_t
Rename to loaded_npdrm_keys
2019-08-22 02:13:39 +03:00
Nekotekina a85a8796d3 Use g_fxo for page_fault_event_entries 2019-08-22 02:13:39 +03:00
Nekotekina 606601441d Use g_fxo for cellMusic
Replace music_t with music_state
2019-08-22 02:13:39 +03:00
Nekotekina 8517ccfdfa Add new typemap for always existing objects
Not to be confused with singletons or global variables.
2019-08-22 02:13:39 +03:00
Nekotekina 7db2e2537f Don't call lv2_obj::awake_all with empty list
Fixup after #5883
2019-08-22 02:13:39 +03:00
JohnHolmesII 5817e2a359 Fix mismatched enum string formats in sys_config 2019-08-18 18:39:17 +02:00
Megamouse b3aff3a1c6 cellKb: fix large ASCII characters for some compilers 2019-08-18 08:18:15 +02:00
Megamouse eedf96e1f4 Qt: fix diacritics in keyboard handler 2019-08-18 08:18:15 +02:00
Megamouse 7408f50d71 cellKb: improve key conversion 2019-08-18 08:18:15 +02:00
Megamouse 86a8b5924a Add option for keyboard layout 2019-08-18 08:18:15 +02:00
Eladash 62414cee15 Do not allow SYS_SYNC_PRIORITY_INHERIT in sys_semaphore_create (EINVAL) 2019-08-18 04:01:16 +03:00
eladash 0af342a978 PPU Precise: FPCC handling on float ops implemented 2019-08-18 04:01:16 +03:00
Nekotekina dd86aa472d Fix _sys_lwcond_queue_wait
Fixup after #5883
2019-08-18 00:19:31 +03:00
Nekotekina 6535fb0603 Fix _sys_lwcond_signal_all
Fixup after #5883
2019-08-18 00:19:31 +03:00
yahfz 1444492eab lv2: Allow sys_sync_priority_inherit 2019-08-17 23:11:08 +03:00
eladash 050339bb3e PPU/LV2: Make thread-lists scheduling atomic 2019-08-17 22:46:36 +03:00
Eladash 0d88f037ff Add new accuracy control for PUTLLUC accuracy setting (non-TSX)
With the option enabled GET commands are blocked until the current PUTLLC/PUTLLUC executer on that address finishes

Additional improvements:
- Minor race fix of sys_ppu_thread_exit (wait until the writer finishes)
- Max number of ppu threads bumped to 8
2019-08-17 00:42:46 +03:00
Eladash d8402008dd Stub sys_process_get_number_of_object(object == SYS_SPUPORT_OBJECT) 2019-08-16 23:49:24 +03:00
Eladash 0dce6be8cb Implement lv2_spu_image
- Improved sys_spu_image_.. error checking
- sys_process SYS_SPUIMAGE_OBJECT handling implemented
2019-08-16 23:49:24 +03:00
Eladash 80827aa31a Stub sys_process_get_number_of_object(object == SYS_TRACE_OBJECT) 2019-08-16 23:49:24 +03:00
Eladash 6540fecdc3 Add another pattern to ppu analyzer imports 2019-08-16 22:55:04 +03:00
Megamouse 8debdfcd09 handle empty callback returns 2019-08-14 23:54:09 +02:00
Nekotekina f8f3067deb Always check page_allocated in vm::check_addr 2019-08-14 20:28:34 +03:00
Nekotekina d45c743877 Remove lib_loading_type::automatic
This is former default and is now obsolete.
2019-08-14 20:28:34 +03:00
Nekotekina 4f22559ff0 Remove dumb overloads of atomic_op, fetch_op
And lf_queue::apply.
Fix inlining problem by passing F by value.
2019-08-14 20:28:34 +03:00
Nekotekina cf16ee5eb5 Implement lib_loading_type::liblv2list 2019-08-14 20:28:34 +03:00
Nekotekina ae46333e99 Implement lib_loading_type::liblv2both 2019-08-14 20:28:34 +03:00
Eladash 19825366f5 Fixup for fixup 2019-08-13 17:55:45 +01:00
Eladash a902874b01 Fixup after #6286 2019-08-13 13:34:14 +03:00
Eladash a4896eb6df Fix race on cellVdecClose TLS cleanup 2019-08-13 04:56:00 +03:00
Eladash 30c72b105e Fix race on notifying vdec thread in cellVdecGetPicture
Can dereference nullptr if cellVdecClose was called simultaneously.
2019-08-13 04:56:00 +03:00
Eladash 14ac70dfbf Avoid using _sys_ppu_thread_exit in _sys_interrupt_thread_disestablish 2019-08-13 04:56:00 +03:00
Eladash 4b82006984 ppu: Improve LWSYNC
Block load<->load reordering as real lwsync.
2019-08-13 04:56:00 +03:00
eladash 4f00af6000 ppu interpreter: Allow non-ssse3 to use fast path
byte shuffle is now removed which was the barrier for ssse3 check.
2019-08-13 04:56:00 +03:00
Eladash 6d3fc3a386 core config: Expose min/max ranges of integral settings and use it 2019-08-13 04:56:00 +03:00
Eladash cd4e895c04 Use error_code in mmapper_thread_recover_page_fault 2019-08-13 04:56:00 +03:00
Eladash 629d8e3a51 Fix sys_time_get_current_time() date 2019-08-13 04:56:00 +03:00
Eladash 6d0f2ae58a ppu interpreter: Improve SRD/SLD 2019-08-13 04:56:00 +03:00
Eladash a560498cd4 ppu: Improve FCTIW, FCTIWZ, FCTID and FCTIDZ 2019-08-13 04:56:00 +03:00
Eladash 0a5b6ad928 Add missing EALIGN check for sys_mmapper_search_and_map 2019-08-11 21:43:13 +03:00
Eladash a832581201 Fix sys_vm address boundary checks (fix vsize) 2019-08-11 21:43:13 +03:00
Eladash ecb3b62787 Fix CELL_CAMERA_ERROR_NOT_INIT check in cellCameraSetNotifyEventQueue when camera set to null
Don't worry, this was a duplicated check for null camera setting.
2019-08-11 21:43:13 +03:00
Eladash 96527eee5b idm: Fix bug in ID searching
* ID checking now checks if (id % step) == 0
* Extend possible ID range to allow UINT32_MAX (as long as base is non-zero)
2019-08-11 21:43:13 +03:00