the shift value should be extracted from the 5 least significant bits of the second operand (S1.u[4:0]), to ensure that the shift is limited to values from 0 to 31, suitable for 32-bit operations
Instruction S_LSHR_B32
Description D.u = S0.u >> S1.u[4:0]. SCC = 1 if result is non-zero.
Unity, being the awful game engine it is, checks for a return value of zero to determine if sceKernelLoadStartModule failed. This results in it throwing an error code into sceKernelDlsym's handle parameter when the module it's searching for doesn't exist.
* Adding Swedish translation
* Updated Swedish translation with additional strings
Updated the Swedish translations using lupdate to found additional strings
cd src/qt_gui/treanslations
lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts
* Update sv.ts
* Updated Swedish translation
* Adding copyright boilerplate
* Updated Swedish translation
* Updated Swedish translation
* Update sv.ts whitespace in boilerplate
* Updated Swedish translation
Please do not add or change anything. Always use lupdate to update TS translation files
* Update sv.ts
* Update sv.ts small typo
* Game-compatibility - improved
* +
none of these texts have a translation \o/
* Fix
- html_url has been removed, the url is now built dynamically from the issue_number, and the file has decreased in size from 537kb to 355KB;
-Fix QProgressDialog
- change the correct directory, from my ford to the official one
* TR
* shader_recompiler: Replace texel buffers with in-shader buffer format interpretation
* shader_recompiler: Move 10/11-bit float conversion to functions and address some comments.
* vulkan: Remove VK_KHR_maintenance5 as it is no longer needed for buffer views.
* shader_recompiler: Add helpers for composites and bitfields in pack/unpack.
* shader_recompiler: Use initializer_list for bitfield insert helper.
* Add Ukrainian localization
* Fixed langIndexes
* Fixed langIndexes_2
* Added uk_UA language support
* Added uk_UA language support
* Updated uk_UA localization to the latest version && corrected lexical mistakes
* Added missing lines in the translation and minor edits
* Correction
* Second Correction
* Added missed strings work test
* Added more missed strings
---------
Co-authored-by: SAN4EZDREAMS <san4ez@gmail.com>
* Adding Swedish translation
* Updated Swedish translation with additional strings
Updated the Swedish translations using lupdate to found additional strings
cd src/qt_gui/treanslations
lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts
* Update sv.ts
* Updated Swedish translation
* Adding copyright boilerplate
* Updated Swedish translation
* Updated Swedish translation
* Update sv.ts whitespace in boilerplate
* Handle errors in sceKernelAllocateDirectMemory
* Improve accuracy of error cases
Some of our existing cases are normally EAGAIN returns.
* Improve logging on errors
* Clang
* TEMPORARY HACK FOR NBA TESTS
This will be removed before this PR is marked as ready, and is only here to make sure the other NBA games (and perhaps DOA3) work if some missing init behavior is handled.
* Revert "TEMPORARY HACK FOR NBA TESTS"
This reverts commit a0e27b0229.
* Change error message
* Added opacity change instead of blur for background image
* Fixed integer overflow when refreshing grid list
* Added slider to control background image opacity
* Added show background image button
* Added UI code for checkbox and English and Spanish translations for new UI elements
* Removed background image caching
* Background image update on apply/save
* Only recompute image if opacity or game changes
* Fixed segfault when trying to change opacity after table refresh
* Placed background image settings under GUI in settings file
* Initial Version - controller remapping GUI
* rework saving to allow for multiple outputs to an input
* License header
* Remove PS logo from image
* Add per game checkbox, fix filename, better whitespace deletion
* Reorganize variables, correctly set common config label when selected
* Add option to unmap, set mapping to unmapped when config entry is absent
* Add XBox labels
* Remove parsing from save function, make window more compact
* Fix typo
* Code cleanup
* Additional cleanup
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
* Fix event data for VideoOut events
Fix is based on some decompilation work shared by red_prig.
* Cleanup
* Oops
* Style fixes
* Clang
* Fix libSceVideoOut event idents
Based on some decompilation work, events coming from libSceVideoOut use a separate set of values for identifiers. These values are only converted to OrbisVideoOutEventId values during calls to sceVideoOutGetEventId.
For convenience, I've placed all relevant identifiers into a enum called OrbisVideoOutInternalEventId.
Thanks to @red_prig for the tips.
* Fix?
Seems like `static_cast<u32>(hint) & 0xFF == event.ident` here, and doing those right shifts on the event.ident winds up breaking stuff.
Without this change, the if always fails because event_id was getting set to 0 instead.
* Clang
* Update ru translation for 6.0
* Escape special characters for ru
* Add and translate new strings for ru_RU
* Translate `Auto Select` in GPU selection
* Ru translation fixes
- added translation for `Auto Select`
* Fix typos in ru translation
* added support for loading keyboard config from file
* final minor update before pull request
* fix messing up the merge
* fix waitEvent to correctly handle mouse inputs
* add license
* Applied coding style fixes
* clang-format fucked up the .ini file
* actually fix clang changing ini syntax
use relative path for the ini file
* remove big commented out code blocks,
and fixed platform-dependent code
* fix windows hating me
* added mouse config option
* added toggle for mouse movement input (f7)
* fix license and style
* add numpad support i accidentally left out
* added support for mouse wheel (to buttons only)
* if keyboard config doesn't exist, autogenerate it
* added keybinds for "walk mode"
* Mouse movement input is now off by default
* code cleanup and misc fixes
* delete config file since it is now autogenerated
* F6 = F7 + F9
* added better mouse handling with config options
* Added capslock support
* fix clang-format
* Added support for mod key toggle key
* F6 and F7 are removed, F9 captures and enables the mouse
* Encapsulated globals and new classes in a new namespace
* Added mouse side button support
* Added per-game config
* relocated input parser to the new namespace
* changed parser parameters to make it possible to use it from the gui
* added home, end, pgup and pgdown
* Resolved merge conflict and refactored code
* Updated default keybindings
* Changed input handling to be single-threaded
* General code cleanup
* Start working on new backend
* Mouse polling, CMakeLists, and basic framework
* Output update handling, and reworked file creating, reading and parsing
* Parsing works now
* Single key button inputs work now
* Axis outputs work now
* Wheel works now (for me), l2/r2 handling improvements, and misc bugfixes
* Downgraded prints to log_debug, and implemented input hierarchy
* Implemented key toggle
* Added mouse parameter parsing
* clang-format
* Fixed clang and added a const keyword for mac
* Fix input hierarchy
* Fixed joysick halfmodes, and possibly the last update on input hierarchy
* clang-format
* Rewrote the default config to reflect new changes
* clang
* Update code style
* Updated sorting to accomodate for that one specific edge case
* Fix default config and the latest bug with input hiearchy
* Fix typo
* Temporarily added my GUI
* Update cmakelists
* Possible fix for Gravity Rush
* Update Help text, default config, and clang
* Updated README with the new keybind info
* okay so maybe the gravity rush fix might have slightly broken the joystick halfmode and key toggle
* Fixed mistakenly overwriting the last opened config with the default one if the GUI is opened multiple times in a session
* Updated Help descriptions and fixed mouse movement default parameters
* Fix crash if the Help dialog was opened a second time
If it's closed with the top right close button instead of clicking the Help button again, a required flag wasn't reset, making the next click on Help try to close a nonexistent window and segfault
* Added closing the config also closing the Help window, and fixed more segfaults due to mismatched flags
* Initial controller support
* clang and debug print cleanup
* Initial axis-to-button logic
* Updated Help text
* Added 'Reset to Default' button in GUI
* Minor text and description updates + fixed an issue with Help text box rendering
* Fix button-to-touchpad logic and l2/r2 handling, as they are both axes and buttons
The touchpad's button state was correctly handled, so games that use that were fine, but the touchDown flag was always set to true, so games that use this flag had problems, like Gravity Rush
* Fix merge conflict
* Clang
* Added back back button to touchpad binding
* Added touchpad button handling
* Added end-of-line comments and fixed some crashes happening with the VS debugger
* Apply recent changes from kbm-only
* Deadzone + initial directional axis-to-button mapping
* Added that one missing space in the README. Are you all happy now?
* Fixups from making everything use SDL
* Revert directional joystick code and fix a memory leak
* Change config directory name again to conform to project standards
* Clang
* Revert the old deeadzone code and properly add the new one
* Clang
* Adding Swedish translation
* Updated Swedish translation with additional strings
Updated the Swedish translations using lupdate to found additional strings
cd src/qt_gui/treanslations
lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts
* Update sv.ts
* Updated Swedish translation
* Adding copyright boilerplate
* Added recursive game scan and only using game directories
* Added recursion depth limit to scan directories
* Added recursive search by ID in cli mode
* Added recursive search to pkg installing
* savedata: rewrite save memory functions to handle slot id & better backup management
* savedata: auto-restore backup if needed
* safe save backup shutdown
replaced exit by quick_exit
If the emulator code is above a 40-bit address, the embedded shaders need to use address-hi to work. Embedded VS shader already supplies it, PS shader should as well.
* Unmap memory in chunks if spanning over multiple VMAs
* clang
* Merge fixups
* Minor code style changes
* Update function declarations
---------
Co-authored-by: Marcin Mikołajczyk <marcinmikolajcz@gmail.com>
Should fix some `Region coalescing failed: Attempt to access invalid address.` crashes.
Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
* Error return on sceNpGetAccountIdA
Confirmed through hardware testing, this returns ORBIS_NP_ERROR_SIGNED_OUT on a signed out console.
Parameters are based on fpPS4 code.
* Fix compile
* Move errors to separate file
* Cleanup function headers
Swaps user_ids to use our OrbisUserServiceUserId type, and fixes parameter names to align with our coding standards.
* Add proper parameter checks
* Implement sceNpGetAccountId
This function takes an online_id, uses an NpManager function to get the user_id, then uses that user_id to perform the same internal functions as sceNpGetAccountIdA.
* Implement sceNpHasSignedUp
* Fix sceNpGetAccountId
Further hardware testing shows that these always write 0 to account_id when failing.
* Update np_manager.cpp
* presenter: render the game inside a ImGui window
* presenter: render the previous frame to keep the render rendering
* swapchain: fix swapchain image view format not being converted to unorm
* devtools: fix frame graph timing
* Add show game size toggle
* Fix (#7)
* Fix
I removed the gameSizeCheckBox from the 'Emulator' group and put it in 'GUI settings'
hLayoutTrophy which contains the Trophy information was inside the GUIMusicLayout, so I fixed that too.
* TR
* Use cached sizes if the feature is enabled
---------
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
* Auto-generate libSceHttp2
* Improved stub for sceHttp2Init
Needed for updated versions of Cyberpunk 2077.
Parameters are based on fpPS4, while the stub itself is based on similar stubs in our other networking libraries.
* Clang
I guess the line length calculations in the moduleGenerator are still not perfect?
* Auto-generate libSceSsl2 stubs
* Copy over sceSslInit stub
* Update CMakeLists.txt
* Swap to Lib_Ssl2 log category
* Fix compile
Since libSceSsl has many functions of the same name, these functions get treated as overloaded functions and break compiling.
* Clang
* shader_recompiler: Account for instruction array flag in image type.
* shader_recompiler: Check da flag for all mimg instructions.
* shader_recompiler: Convert cube images into 2D arrays.
* shader_recompiler: Move image resource functions into sharp type.
* shader_recompiler: Use native AMD cube instructions when possible.
* specialization: Fix buffer storage mistake.
* Support for true fullscreen
* clang
* Re-add mistakenly deleted line
* Size
I adjusted the size of the entire screen.
trophies font size and added a margin so it wouldn't be so spaced out.
---------
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
* video_core: Implement conversion for uncommon/unsupported number formats.
* shader_recompiler: Reinterpret image sample output as well.
* liverpool_to_vk: Remove mappings for remapped number formats.
These were poorly supported by drivers anyway.
* resource_tracking_pass: Fix image write swizzle mistake.
* amdgpu: Add missing specialization and move format mapping data to types
* reinterpret: Fix U/SToF input type.
* Adding Swedish translation
* Updated Swedish translation with additional strings
Updated the Swedish translations using lupdate to found additional strings
cd src/qt_gui/treanslations
lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts
* Update sv.ts
* texture_cache: Stricter barriers on image upload
* buffer_cache: Stricter barrier for vkCmdUpdateBuffer
* vk_rasterizer: Barrier also normal buffers and make it apply to all stages
* texture_cache: Minor barrier cleanup
* Batch image and buffer barriers in a single command
* clang format
* Speed up LiverpoolToVK::SurfaceFormat
In Bloodborne this shows up as the function with the very highest cumulative "exclusive time". This is true both in scenes that perform poorly, and scenes that perform well.
I took (approximately) 10s samples using an 8khz sampling profiler.
In the Nightmare Grand Cathedral (looking towards the stairs, at the rest of the level):
- Reduced total time from 757.34ms to 82.61ms (out of ~10000ms).
- Reduced average frame times by 2ms (though according to the graph, the gap may be as big as 9ms every N frames).
In the Hunter's Dream (in the spawn position):
- Reduced the total time from 486.50ms to 53.83ms (out of ~10000ms).
- Average frame times appear to be roughly the same.
These are profiles of the change vs the version currently in the main branch. These improvements also improve things in the `threading` branch. They might improve them even more in that branch, but I didn't bother keeping track of my measurements as well in that branch. I believe this change will still be useful even when that branch is stabilized and merged.
It could be there are other bottlenecks in rendering on this branch that are preventing this code from being the critical path in places like the Hunter's Dream, where performance isn't currently as constrained. That might explain why the reduction in call times isn't resulting in a higher frame rate.
* Implement SurfaceFormat with derived lookup table instead of switch
* Clang format fixes
* shader_recompiler: Add swizzle support for unsupported formats.
* renderer_vulkan: Rework MRT swizzles and add unsupported format swizzle support.
* shader_recompiler: Clean up swizzle handling and handle ImageRead storage swizzle.
* shader_recompiler: Fix type errors
* liverpool_to_vk: Remove redundant clear color swizzles.
* shader_recompiler: Reduce CompositeConstruct to constants where possible.
* shader_recompiler: Fix ImageRead/Write and StoreBufferFormatF32 types.
* amdgpu: Add a few more unsupported format remaps.
* Fix SDL version cannot launch game using game ID
Missing from https://github.com/shadps4-emu/shadPS4/pull/1507.
* Added --add-game-folder argument
Also added "treat the last argument as the game, if it isn't found already" option to the qt version
---------
Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
* Implement IMAGE_GATHER4_O
Used by The Last of Us Remastered.
* Fix type on IMAGE_GATHER4_C_LZ
Had a different set of types compared to the other IMAGE_GATHER4 ops.
* IMAGE_GATHER4
* GUI: TR Units - Size and Time
Added translation for these units:
B, KB, MB, GB, TB
h, m, s
Added missing text:
Games: - text in the lower left corner
Compatibility...
Update database
View report
Submit a report
Fixed the size of the settings menu
* Audio Backend
* Fixed the size of the settings menu
* devtools: fix popen in non-windows environment
* devtools: fix frame crash assertion when hidden
* devtools: add search to shader list
* devtools: add copy name to shader list
* devtools: frame dump: search by shader name
* compatibility_data: added compatibility related settings to gui
* New game compatibility section in settings dialog
* Context menu now has a compatibility section
* Adjusted minimum size of updater section to 265
* update translations
* revert to deprecated statechanged
* fix display compatibility data option
* Fixes artifacts in TLG when using NVIDIA gpus. When LDS is written and read in the same basic block, the barrier pass wont handle it properly, so insert a barrier before reads
* Clear RT if FCE was invoked before any draws
Co-authored-by: psucien <bad_cast@protonmail.com>
* address review comments
---------
Co-authored-by: psucien <bad_cast@protonmail.com>