Commit graph

941 commits

Author SHA1 Message Date
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
Megamouse e83dfedff9 stub cellRemotePlay and cellResc and cellStorage 2019-12-24 11:54:32 +01:00
linkmauve e9c5c6e6bf Move input to its own directory (#7126) 2019-12-22 17:39:42 +01: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
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 e050dcbc52 Move size write in cellGamePatchCheck 2019-12-05 23:31:46 +03:00
Eladash 401813f962 Revert part of #7044
oops.
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
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
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 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
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
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
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
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 54952f6ad6 Use g_fxo for LoadedNpdrmKeys_t
Rename to loaded_npdrm_keys
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
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 050339bb3e PPU/LV2: Make thread-lists scheduling atomic 2019-08-17 22:46:36 +03:00
Megamouse 8debdfcd09 handle empty callback returns 2019-08-14 23:54:09 +02: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
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 4b82006984 ppu: Improve LWSYNC
Block load<->load reordering as real lwsync.
2019-08-13 04:56:00 +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
Eladash 997e3046e3 vm/sys_overlay Improvements
- Implement sys_overlay_load_module_by_fd.
- Implement special segment allocation when ppc_seg flag is specified.
2019-07-28 14:23:58 +03:00
Eladash 22994d15fb Fix cellCamera events support with clocks scaling 2019-07-26 21:27:55 +03:00
Eladash 85b1152e29 Timers scaling and fixes 2019-07-23 00:09:01 +01:00
Nekotekina c01f1a8968 Avoid transitive include of vm_ref.h
Add forward declarations of vm::_ref_base
Remove default AT = u32 in _ptr_base and _ref_base (doesn't play well).
2019-07-15 15:46:46 +03:00
Nekotekina cfa1416d64 sys_spu: add vm::temporary_unlock 2019-07-14 18:33:23 +03:00
Nekotekina bc1617758c sys_semaphore: add vm::temporary_unlock 2019-07-14 18:18:03 +03:00
Nekotekina 0a88a23bf5 sys_event: add vm::temporary_unlock 2019-07-14 18:06:02 +03:00
Nekotekina 38d4e3c184 sys_mmapper: add vm::temporary_unlock 2019-07-14 17:51:03 +03:00
RipleyTom 6c6b973342 Microphone implementation 2019-07-11 20:13:12 +01:00
Eladash 6fba3dd90c Misc correctness improvement
Use let_<u64> for name_64 and prefer it when possible.
2019-07-09 11:52:34 +03:00
msuih 690cdff0d3 Minor fixes
- Fix a typo in OpenAL
- Fix typo in cellHttp.h
- Unused variables in catch
- Use 64-bit shifts
- Use use_count with shared pointers, unique is depracated and getting removed
- Explicitly cast boolean to int
- Signed/unsigned issues with loop variables
- Fix missing return statement (the code path is unreachable, but compiler wants a return)
- */ ouside of comment
- Fix duplicate layout name
2019-07-01 04:33:23 +03:00
msuih d57124d075 Explicitly cast size_t to integer types 2019-07-01 04:33:23 +03:00
Eladash 43f919c04b Fixup after #6143 (#6146)
vm::spu max address was overflowing resulting in issues, so cast to u64 where needed. Fixes #6145.
    Use vm::get_addr instead of manually substructing vm::base(0) from pointer in texture cache code.
    Prefer std::atomic_thread_fence over _mm_?fence(), adjust usage to be more correct.
    Used sequantially consistent ordering in semaphore_release for TSX path as well.
    Improved memory ordering for sys_rsx_context_iounmap/map.
    Fixed sync bugs in HLE gcm because of not using atomic instructions.
    Use release memory barrier in lwsync for PPU LLVM, according to this xbox360 programming guide lwsync is a hw release memory barrier.
    Also use release barrier where lwsync was originally used in liblv2 sys_lwmutex and cellSync.
    Use acquire barrier for isync instruction, see https://devblogs.microsoft.com/oldnewthing/20180814-00/?p=99485
2019-06-29 18:48:42 +03:00
Eladash 1ee7b91646 Refactoring (#6143)
Prefer vm::ptr<>::ptr over vm::get_addr.
    Prefer vm::_ptr/base over vm::g_base_addr with offset.
    Added methods atomic_t<>::bts and atomic_t<>::btr .
    Removed obsolute rsx:🧵:Read/WriteIO32 methods.
    Removed wrong check in semaphore_release.
    Added handling for PUTRx commands for RawSPU MFC proxy.
    Prefer overloaded methods of v128 instead of _mm_... in VPKSHUS ppu interpreter precise.
    Fixed more potential overflows that may result in wrong behaviour.
    Added io/size alignment check for sys_rsx_context_iounmap.
    Added rsx::constants::local_mem_base which represents RSX local memory base address.
    Removed obsolute rsx:🧵:main_mem_addr/ioSize/ioAddress members.
2019-06-29 01:27:49 +03:00
JohnHolmesII 232a35b6fc Various small warning fixes
-Indentation warnings
-prevent shift overflow
-This was declared extern in all contexts. Remove this for initialization
-Fix main return types. OH CANADA!
-Silence extraneos 'unused expression' warning
-Force use return value (warning)
-Remove tautological compare copy-pasta (char always < 256)
2019-06-28 01:45:29 +03:00
JohnHolmesII d0eae7bab1 Fix -Wsign-compare a little bit
Explicitly mark loop types (per review)
2019-06-28 01:45:29 +03:00
JohnHolmesII 23094b48bb Fix warnings related to -Wswitch
Add default cases.
Move default breaks to newline
Add proper handling in some instances.
Add missing enums to switches
2019-06-28 01:40:52 +03:00
JohnHolmesII be521ff0ab Fix warnings related to parentheses 2019-06-25 20:36:32 -07:00
Lassi Hämäläinen e9e87b8bd9 Add missing #includes to header files
- Multiple header files where missing #includes to other headers that
  where used in the header. Correct header was included in correct
  order in source files which caused everything to compile.
- Added missing #includes so header files correctly include all their
  dependencies and fixes problems with IDEs being unable to parse
  headers correctly due to missing symbols
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen 499035512b Split Emu/Memory into more logical headers
- Add vm_locking.h and vm_reservation.h and move relevant functions
  and types to these headers.
- Change include order and make vm_ptr.h, vm_var.h and vm_ref.h headers
  usable invidually and them including vm.h instead of other way around
- Because usage of vm::ptr now requires including vm_ptr.h instead of
  vm.h updated multiple #includes
- Added additional #includes to vm_reservation.h and vm_locking to
  where vm::reservation_* and locking related functions are used
2019-06-25 17:11:10 +03:00
Nekotekina 517a2bc34a sys_lwcond: add vm::temporary_unlock 2019-06-20 14:46:32 +03:00
Nekotekina a935203a18 sys_lwmutex: add vm::temporary_unlock 2019-06-20 14:46:32 +03:00
Nekotekina d021d9e14a sys_mutex: add vm::temporary_unlock 2019-06-19 20:39:39 +03:00
Nekotekina 89a31292dc sys_cond: add vm::temporary_unlock 2019-06-19 20:39:29 +03:00
Megamouse b29a89807e cellPad: set len to 0 if pads are being intercepted by the system 2019-06-15 00:24:10 +02:00
Megamouse 3f00b485a0 cellMsgDialogAbort: don't call on_close and properly re-enable pads 2019-06-15 00:24:10 +02:00
Nekotekina 2bc0ea37ab sys_fs: yield PPU on disk access ops 2019-06-08 19:34:55 +03:00
Nekotekina 31994dd3b2 Rename cond_one to unique_cond
Remove redundant in_cv in cellVdec
2019-06-02 23:22:16 +03:00
Nekotekina dfd50d0185 Implement std::bit_cast<>
Partial implementation of std::bit_cast from C++20.
Also fix most strict-aliasing rule break warnings (gcc).
2019-06-02 23:22:16 +03:00
scribam 09c9996f31 Use empty() instead of comparing size() with 0
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/readability-container-size-empty.html
2019-06-01 22:59:23 +03:00
Megamouse f48589005d handle some more warnings 2019-05-28 21:47:49 +02:00
Megamouse 34964e0e4f handle some warnings 2019-05-28 21:47:49 +02:00