Commit graph

789 commits

Author SHA1 Message Date
Eladash 25382a7dae Restore cellPadSetActDirect's reserved error check 2019-11-15 20:17:51 +01: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 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 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 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
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
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
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
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
Eladash 586fe11e22 Fix cellGcm HLE regression
Also correct flags.
2019-10-22 13:45:09 +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 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
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 4ed2c7b594 error checking bugfix for sceNpTrophyCreateContext
options = 1 is allowed.
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 75ee668922 Log fs::g_tls_error on ACCESS_ERROR errors 2019-10-14 20:44:23 +03: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
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
Nekotekina 8f604ddded Fix log format misuse
Harden log channel methods against non-constant string.
2019-10-09 02:14:52 +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
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
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 d0503dc937 SCE_NP_ERROR_OFFLINE logging disabled 2019-09-28 03:16:01 +03:00
Nekotekina 57f2189b1a cellSaveData: fix VFS escape usage 2019-09-27 19:04:16 +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 240b4a8bd8 cellGameData: use g_fxo for content_permission 2019-09-26 23:26:36 +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
JohnHolmesII c62a667fb1 Fix null pointer check (clang warnings) 2019-09-24 09:11:50 +02: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
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
Eladash c50119aefa Fix sceNp2Init 2019-09-19 08:26:29 +02: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 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
Megamouse 32a4c2242b sceNp: fixups 2019-09-13 06:18:49 +02: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
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 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 796a6646f7 Silence statichle 2019-08-27 13:56:50 +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 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 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 8304043d00 Use g_fxo for sysutil_cb_manager 2019-08-27 03:50:15 +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