Commit graph

8456 commits

Author SHA1 Message Date
Nekotekina 703ec474f5 Fixup for sys_time_get_timezone (3rd path)
Also simplify Linux path a bit.
2021-04-29 00:07:22 +03:00
kd-11 1d9dd8d29d vk: Add support for tagging objects to ease debugging
- Makes use of VK_EXT_debug_utils
2021-04-28 16:53:02 +03:00
kd-11 8b0e1d6c03 rsx: Make renderdoc compatibility mode a general option 2021-04-28 16:53:02 +03:00
Nekotekina a049c6fd6b Implement sys_time_get_timezone syscall
Try to get system timezone automatically.
Attempt to address #10195.
2021-04-27 22:21:58 +03:00
kd-11 9609767c51 vk: Refactor render target code 2021-04-26 00:33:05 +03:00
Nekotekina 86a8e0716f Test alterable aggregates via overriding be_t
Checking how it might look like without introducing too many changes.
Alteration of its behaviour as a "template template" argument allows:
 - normal access
 - easier aggregate inspection
 - memory access interception
2021-04-25 19:00:16 +03:00
Nekotekina b704cc8375 shared_ptr.hpp: implement make_single_value(), make_shared_value()
A function that constructs single_ptr from its argument.
Type can be deduced from the argument (unlike make_single).
2021-04-25 18:17:38 +03:00
clienthax 7197dd751a
Fcntl e0000025 (#10172)
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-04-24 21:43:09 +03:00
David Carlier 0b9e4ffe54 Mac OS build update and simplification, recent releases of macOS has clock_gettime support. 2021-04-24 12:55:21 +03:00
Megamouse 1015c126d7 fix formatting (somehow broken by copy pasta) 2021-04-24 11:46:51 +02:00
Megamouse 1caf81811a Move unspecific Emulator code out of System.cpp 2021-04-24 11:21:22 +03:00
kd-11 4c2a11b6d0 vk: Fix broken FBO swizzle for depth textures. WDB was basically broken for these. 2021-04-24 00:19:50 +03:00
Megamouse 8fd3b26308 sys: more constants 2021-04-23 22:46:15 +02:00
Megamouse 617d21fa84 sys_prx: more constants 2021-04-23 22:02:52 +02:00
Megamouse 41b68ef353 some more constants 2021-04-23 22:02:52 +02:00
Eladash 72c85744b9 kernel-explorer: Show bound queue to port information
Show its IPC key or ID, depends on the queue's type.
2021-04-23 21:34:05 +03:00
Eladash c7b5bbd467 Fix emulation restart 2021-04-23 20:59:02 +03:00
David Carlier 082bbc7336 Following up on MacOS build fix.
Specialisation of llvm_value_t to allow build with LLVM this time.
2021-04-23 15:20:40 +03:00
Megamouse 087dccd194 Implement most of cellUserInfo 2021-04-23 05:50:19 +03:00
Nekotekina 67649d7976 SPU LLVM: restore lost comment 2021-04-21 13:33:44 +03:00
Malcolm Jestadt 6247969ede SPU LLVM: Absolute final fixes for icelake shufb paths
- The constant mask was accessing bits in reverse order of what was expected
2021-04-21 11:00:02 +03:00
Malcolm Jestadt efd38fa940 SPU LLVM: Improve byteswap elimination
- Use the data before it has been swapped rather than relying on a second byteswap to cancel out the first
2021-04-20 23:24:21 +03:00
Malcolm Jestadt 551472220e SPU LLVM: Remove icelake shufb paths for now 2021-04-20 23:24:21 +03:00
p01arst0rm bcfae17219 unified missmatched indentation in CMake files 2021-04-20 21:38:47 +03:00
Malcolm Jestadt 53f13a9721 SPU LLVM: Final fixup for icelake shufb paths
- The cause of the problems was due to the constant mask for gf2p9affineqb being used as the first argument, instead of the second argument.
2021-04-20 13:07:24 +03:00
Megamouse 3e33f064bf overlays: hotfix for dialog interaction
Turns out there was an undocumented reason for this.
Nobody warned me that "It's a trap!".
I wonder how this hasn't summoned a shitstorm yet.
2021-04-20 00:42:11 +02:00
Megamouse aa0afc9a4e Input: avoid mouse events when unused 2021-04-20 00:06:23 +02:00
Eladash a0d1cf26d0 Reduce precompilation failure log level (error -> notice) 2021-04-19 23:18:31 +03:00
Megamouse 01d14aed80 fix null chars in hostname log message 2021-04-19 21:54:27 +02:00
Nekotekina 0c9c481cee Use requires syntax in more places
Change style in some places.
2021-04-19 16:51:40 +03:00
Nekotekina 7dae376646 Implement fill_array() utility 2021-04-19 12:33:32 +03:00
p01arst0rm b812ef2771 removed space between and its opening parentheses 2021-04-19 08:59:28 +03:00
David Carlier 7618e7f3fb FreeBSD/clang update proposal.
silence few build warnings, VKDMA: disable Intel chipset for host buffer as it requires root privilege.
2021-04-18 19:56:21 +03:00
David Carlier b6732fbae9 MacOs build fix proposal.
Made on Big Sur, removing few unnecessary old specifics.
Build with LLVM homebrew.
2021-04-18 17:18:09 +03:00
clienthax 68fa377d13 Add dev_flash2+3 2021-04-18 14:49:29 +03:00
Nekotekina 7a9561b966 vm_native: document some unmap_critical behaviour (posix) 2021-04-18 13:13:15 +03:00
Nekotekina 9d4fcbf946 bs_t<>: fix/cleanup some operators 2021-04-17 15:54:33 +03:00
Megamouse 5416f60643 basic keyboard: release all keys on FocusOut event 2021-04-17 14:03:50 +02:00
Eladash 67e2e154fa Replace simple_type with std::common_type 2021-04-17 10:27:55 +03:00
Megamouse 7bc673002f overlays: fix dirty state of message dialog 2021-04-16 23:18:13 +02:00
Malcolm Jestadt 0a7df9d02e SPU LLVM: add AVX-512 SPU verification
- This is hidden behind a new setting, as some cpus may downclock agressively when executing 512 wide instructions
2021-04-16 09:35:26 +03:00
Nekotekina 19763f8973 Remove unnecessary default:breaks 2021-04-15 15:23:59 +03:00
Desterly 99d6f9c7a9 Skylander - Traptanium portal cleanup
- Remove "Status" query responses from reset request
- Add additional request types for newer portal
2021-04-15 12:10:22 +02:00
Desterly 63e4ac80bd Skylander - Change portal version
Switch emulation to the Traptanium portal.   This portal is universal
and works with all games.
2021-04-15 12:10:22 +02:00
polar 24983ea329 removed whitespace
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-04-15 11:37:35 +02:00
p01arst0rm 6cab5b5591 removed extra perentheses pair 2021-04-15 11:37:35 +02:00
p01arst0rm c9d2aed286 small collection of fixes 2021-04-15 11:05:15 +03:00
Eladash a16cc3ac8a lv2: Remove flags from IPC-supported objects 2021-04-15 10:31:40 +03:00
Megamouse 20c69a0e3e overlays: make auto-repeat buttons configurable
and properly reset the auto-repeat timer whenever a new button was pressed
2021-04-13 20:57:05 +02:00
Megamouse bdc5ed094b overlays: implement OSK password mode 2021-04-13 20:57:05 +02:00
Megamouse 088d22675b overlays: fix osk placeholder 2021-04-13 20:57:05 +02:00
Megamouse fc9b3c13e6 misc: fix old some style casts and redundancies 2021-04-13 20:57:05 +02:00
kd-11 14a64e2529 rsx: Handle rare rounding issue where position.w is very close to zero 2021-04-13 21:26:23 +03:00
Megamouse f5415fb4ac overlays: dynamically change dialog background 2021-04-13 19:13:56 +02:00
kd-11 8d1fc18941 vk: Fix mip level packed pitch calculation 2021-04-13 00:14:16 +03:00
kd-11 06dc99ab85 rsx: Fix decompression of RB_RG textures.
- Removes several subtle hacks that hid the real issue.
  A compressed texture has more than one texel per 'block'.
2021-04-11 21:36:36 +03:00
Nekotekina ccb46df905 Minor fixups (removed unnecessary code) 2021-04-11 16:36:02 +03:00
Megamouse a16d8ba3ea More random changes 2021-04-11 14:01:51 +03:00
Eladash 56d34e0e80 Enforce backslash at the end of emulated drives paths 2021-04-10 23:51:49 +03:00
Eladash 5ca6381624 Implement "PPU LLVM Precompilation" control setting 2021-04-10 18:06:46 +03:00
Nekotekina 3107f37864 Fix psf::load error for error::stream 2021-04-10 00:43:08 +03:00
Megamouse 17f5fec538
sceNp: fix rap file regression (#10084) 2021-04-09 21:37:57 +01:00
Megamouse 03b76b4606 Emu: some cleanup 2021-04-09 21:03:49 +02:00
Eladash a8d5a8734a Loader/cellGame: Do not crash on invalid PSF files 2021-04-09 20:58:30 +03:00
Nekotekina 10bbb7fa1f Fix some warnings (deprecate enum arithmetics) 2021-04-09 10:26:13 +03:00
Megamouse d10584ac6c DRM: Search all user directories for rap files 2021-04-09 08:47:59 +02:00
Eladash d2b761b7de Log error about HG games booted outside of /dev_hdd0 2021-04-08 23:57:00 +03:00
Eladash 49c5ce30cc Emulation: Fix boot path resolving
* Fix /dev_flash executables path arg. (/host_root is wrong for it)
* Fix usage of /host_root for homebrew applications when it is not mounted, use /app_home.
* Fix path source detection. (don't get fooled by path slashes repetitions, symlinks, '.', ".." and ('\' on Windows))
* Unescape tail of /dev_hdd0 paths.
2021-04-08 23:57:00 +03:00
Nekotekina 95725bf7fc Add -Werror=missing-noreturn (GCC, clang)
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Megamouse 02febd3f65 Workaround: Skip progress_dialog during gameplay 2021-04-06 21:39:34 +03:00
Megamouse 497fbb17a8 progress_dialog fixes 2021-04-06 21:39:34 +03:00
Nick Renieris 396c129d41 vm: Flag names (refactoring) 2021-04-06 13:07:54 +03:00
Eladash 4a9be0a8d2 core: Move IDM to FXO 2021-04-04 17:29:32 +03:00
Megamouse bf1756448e overlays: fix taskbar progress reset 2021-04-04 13:38:10 +03:00
Nekotekina ed8f60431f Fixup for progress dialog closing logic
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-04-03 23:25:02 +03:00
Nekotekina 6f1f75bc8f Minor progress dialog refactoring
Add rsx::overlays::progress_dialog class (identical to message_dialog).
Don't use Emu.CallAfter() for native dialogs.
Make g_progr_ptotal waitable.
2021-04-03 22:38:04 +03:00
Nekotekina 963d150e93 Fix some -Weffc++ warnings (part 2) 2021-04-03 21:54:15 +03:00
Megamouse b7eefeac8b hotfix: skip progr dialogs if msg dialogs are open 2021-04-03 20:37:40 +02:00
Eladash e57f36fc5b Quick sys_sm_get_params implementation 2021-04-03 17:23:40 +03:00
Eladash 32116086b3 Implement _sys_prx_register_module loading imports/exports functionality 2021-04-03 17:23:40 +03:00
Eladash 878da3b474 Implement get_cellos_appname()
Identifying vsh.self and possibly other operating system executables in the future.
2021-04-03 17:23:40 +03:00
Megamouse 9c7230e79f cli: set user-id per command line 2021-04-02 11:50:28 +02:00
Eladash 7b57b8f2ca debugger: Implement ability to pause entire emulation on breakpoint 2021-04-01 19:11:55 +03:00
Eladash 55c98bfaef Fix #9879 and fix firmware confirmation dialog when auto-start is disabled 2021-04-01 14:09:02 +03:00
Nekotekina e9a45a2f45 Implement scoped_progress_dialog
Create Emu/system_progress.hpp
Remove atomic g_progr_show
2021-03-31 23:40:09 +02:00
Nekotekina 2212a131ef Fix some -Weffc++ warnings (part 1) 2021-03-31 11:27:09 +03:00
Nekotekina deacf05769 Enable -Wdeprecated-copy
Some classes violated the Rule of 3(5) in their special operator definitions.
2021-03-31 11:27:09 +03:00
Megamouse 870224cde0 Emu/overlay: ingame native overlay PPU compilation 2021-03-31 09:38:30 +02:00
Eladash 1e71deb0db rsx: Compile shaders when CELL is not running 2021-03-30 11:13:47 +03:00
Eladash dea1d01de2 Fix Emulator::Stop race with IDM
Newly created threads' state could have not been flagged with exit.
2021-03-30 10:21:54 +03:00
Eladash e9bea1c742 Emu: Do not obey auto-exit setting after creating firmware cache 2021-03-30 10:21:54 +03:00
Eladash d51bb8b1cc Fix Emulator::Pause race with IDM 2021-03-30 10:21:54 +03:00
Eladash aad5283786 Fix Emulator::IsPaused() 2021-03-30 10:21:54 +03:00
xddxd 9d895e6b15 Scheduler overhaul 2021-03-26 00:29:44 +03:00
Megamouse ba45daff35 Qt: some cleanup in debugger 2021-03-24 20:47:51 +01:00
Nekotekina b3fb6d7d18 Add and fix -Wredundant-decls (GCC) 2021-03-23 22:48:57 +03:00
Nekotekina 5dc3467337 vm: fix reservation_update notification
Rare function.
2021-03-23 21:09:37 +03:00
Eladash 1864419561 Fix SPU mapped memory page size 2021-03-19 22:25:08 +03:00
Megamouse 43ac33c2b4 cellSaveDataEnableOverlay 2021-03-18 11:11:34 +03:00
Nekotekina 2decf1ecda Rename and move g_tls_current_cpu_thread inside cpu_thread
Don't declare extern inside get_current_cpu_thread().
Possible workaround for gcc-11.
2021-03-17 23:49:48 +03:00
Eladash 1d7fbd6a9a Fix sceNpTrophyGet(Trophy/Game)Icon 2021-03-17 22:31:57 +03:00
Eladash 1213708b72
Replace some log errors (#9980) 2021-03-17 17:19:35 +03:00
Nekotekina 8fcebebae3 Implement lv2_mp_flag::cache
Identify /dev_hdd1 without unsafe path comparison.
2021-03-16 19:37:03 +03:00
Nekotekina f801dc6558 Save all 8 syscall_args 2021-03-16 19:33:37 +03:00
Eladash 8716ac554f Fix sys_raw_spu_destroy 2021-03-16 19:31:52 +03:00
Eladash d7b4753007 Make gamedata installation atomic as real PS3 2021-03-16 19:31:52 +03:00
Eladash a9b0d25c01
PPU Debugger: Fixup for syscall arguments (#9932) 2021-03-16 16:20:45 +03:00
shockdude 6a14849381
sys_usbd: DJ Hero Turntable Emulation (#9965)
* Initial Turntable Emulation
2021-03-14 23:48:50 +03:00
Megamouse 1e09be19f5 Qt: Fix PaintedPixmap crash if icon is null 2021-03-14 19:56:11 +01:00
Megamouse 1a5a0f5eca overlays: Fix aspect ratio of custom bakground images 2021-03-14 16:46:16 +01:00
kd-11 c9214ce6c0 vk: Disable async streaming by default 2021-03-14 16:39:55 +03:00
Nekotekina 0327ecc5c1 Enable -Wduplicated-cond (GCC) 2021-03-13 18:46:59 +03:00
Nekotekina c22e1e71f0 Continue fixing strict aliasing warnings 2021-03-13 18:02:37 +03:00
Eladash aff63028d4 SCE Decryption: Detect illegal RAP files 2021-03-13 11:51:40 +01:00
Eladash 923ba6f3bb Fix sysutil_send_system_cmd at Emu.Stop() 2021-03-12 21:01:48 +03:00
Eladash 729cd9284e debugger: Fix PPU threads pausing 2021-03-12 13:01:12 +03:00
kd-11 140c5bfc3e Add asynchronous streaming to the GUI and auto-enable it
- Hopefully not many users are on very weak GPUs
2021-03-12 02:27:05 +03:00
kd-11 a5f0faefc3 vk: Check for uninitialized target before going into any scaling op 2021-03-12 02:27:05 +03:00
kd-11 608f8de347 vk: Solve GPU hang/reset due to waiting on events that are never signaled
- TODO: Some refactoring may be required to pair the primary and secondary CB and avoid such blunders
2021-03-12 02:27:05 +03:00
kd-11 3e8a00d264 Basic fixups 2021-03-12 02:27:05 +03:00
kd-11 7d5a72c9e0 vk: Add options to system configuration 2021-03-12 02:27:05 +03:00
kd-11 48d0f80a86 vk: Add an alternate async queue scheduler
- This version violates spec but does not rely on CPU threads to keep the GPU from hanging. It's ironically much safer to use.
2021-03-12 02:27:05 +03:00
kd-11 bd6c187fcd vk: Tune event polling for higher throughput 2021-03-12 02:27:05 +03:00
kd-11 585837a3f0 vk: Support new fxo usage pattern 2021-03-12 02:27:05 +03:00
kd-11 b4e821c28d vk: Flip on async texture uploads 2021-03-12 02:27:05 +03:00
kd-11 589ac1c5d4 vk: Optimization - avoid touching the mutex at all if possible even when there is no contention 2021-03-12 02:27:05 +03:00
kd-11 c9e8b87c60 vk: Properly clean up async scheduler 2021-03-12 02:27:05 +03:00
kd-11 41f5158247 vk: Sync main pipe with async jobs if any 2021-03-12 02:27:05 +03:00
kd-11 d2993474fb vk: Lazy-initialize image resource on first use when owned by a separate queue 2021-03-12 02:27:05 +03:00
kd-11 77e312fb99 vk: Add the async task scheduler 2021-03-12 02:27:05 +03:00
Eladash cd6ef2958b Add information about unnamed/main threads in logs and fatal dialog
* If thread is unnamed, keep log name empty for main thread, otherwise print thread id. In fatal dialog, main thread can be handled differently (with special remark that it's main thread).
* Always print thread id in fatal dialog, regardless of thread type.

Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-03-11 22:55:06 +03:00
Megamouse 40f3adc45f Overlays: Implement individual pulse 2021-03-11 20:48:12 +01:00
Eladash cfa2d4aaa8 Loader: Log FNID of imported/exported functions 2021-03-11 15:23:58 +03:00
arabek bdefeaf6f9 Use maybe_unused macro for chip var
Var chip is only used in the WIN32 ifdef block - use maybe_unused to silence the compiler warning about unused variable.
2021-03-11 14:33:04 +03:00
Nekotekina 4adf412049 Fix std::bit_cast misuse 2021-03-10 16:11:30 +03:00
Nekotekina 03332c340d Implement utils::bless (pointer cast)
Tries to workaround strict aliasing troubles.
Don't confuse with std::bless which works differently.
2021-03-10 16:02:00 +03:00
Eladash 63ecb56b51 PPU interpreter hotfix 2021-03-10 13:41:13 +03:00
Megamouse cbd895a29c
Move code to cpp (#9938)
* GL: move GLOverlays code to cpp
* GL: move GLCompute code to cpp
* VK: move VKOverlays code to cpp
* VK: move VKCompute code to cpp
2021-03-10 00:58:08 +01:00
Nekotekina 9cbe77904d Revert changes in BufferUtils.cpp
Should fix #9933
2021-03-09 19:19:24 +03:00
Nekotekina a4fdbf0a88 Enable -Wstrict-aliasing=1 (GCC)
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina 53af2dbb3f Add/fix warning -Wignored-qualifiers (GCC/clang)
Fix simple_array::const_iterator as a part of it.
2021-03-09 03:09:50 +03:00
Megamouse 1a3c01154a make from_hdd0_game check lowercase 2021-03-08 22:58:19 +03:00
xddxd df338f0552 Move sys_crashdump to it's own file and make it a module itself 2021-03-08 22:57:35 +03:00
Malcolm Jestadt e5d0e035d0 SPU LLVM: Rearange FM instruction for better performance
- Doesn't eliminate any instructions, but allows for better out of order execution.
2021-03-08 15:48:36 +03:00
xddxd 6d91a9fe6f Possible workaround for mobile Kepler chips 2021-03-08 15:46:03 +03:00
Eladash 2afc7cbaaa
GUI: Implement MSELF extraction tool (#9909)
* MSELF: fix overflow

* GUI: Implement MSELF extraction tool

* VS: fix mself files in vcxproj

* fix

* Update mself.cpp

* fixed
2021-03-07 17:59:37 +01:00
Megamouse a3a4c0a906 overlays: don't count initial garbage values.
This might also shave off some microseconds.
2021-03-07 00:52:11 +01:00
Megamouse dab53f4e41 Cleanup Emu before the update reboot 2021-03-07 01:56:25 +03:00
Nekotekina 87af905018 Enable -Wunused-parameter 2021-03-06 18:07:08 +03:00
GitArUs f8097a428c
Allow games to list all savedata (#9547)
* cellSaveData - allow games to list all savedata, not only those they own.

Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-03-06 16:01:04 +03:00