* devtools: fix showing entire depth instead of bits
* devtools: show button for stage instead of menu bar
- fix batch view dockspace not rendering when window collapsed
* devtools: removed useless "Batch" collapse & don't collapse last batch
* devtools: refactor DrawRow to templating
* devtools: reg popup size adjusted to the content
* devtools: better window names
* devtools: regview layout compacted
* devtools: option to show collapsed frame dump
keep most popups open when selection changes
best popup windows positioning
* devtools: show compute shader regs
* devtools: tips popup
* description + string fixes
* fix use condition
* clang format
* updates now fully extract to game update folder
* don't guarantee the overwrite game condition
* separate updates implementation
* clang format
clang format
clang format
clang format
clang hates me
work please
* hotfix: check for sfo file instead of the folder
* tiny change
* refactor
* forgot to change this over
* add review changes
* use operator
* devtools: pm4 - show markers
* SaveDataDialogLib: fix compile with mingw
* devtools: pm4 - show program state
* devtools: pm4 - show program disassembly
* devtools: pm4 - show frame regs
* devtools: pm4 - show color buffer info as popup
add ux improvements for open new windows with shift+click
better window titles
* imgui: skip all textures to avoid hanging with crash diagnostic enabled
not sure why this happens :c
* devtools: pm4 - show reg depth buffer
* some rework on netctl calls
* added libs stubs using from RE6
* added ORBIS_NET_CTL_INFO_IP_ADDRESS case in sceNetCtlGetInfo
* added sceNetInetPton
* some dummy functions and change some functions to debug level
* clang format fix
* fix for sceNetInetPton
* posix OS fix?
* linux + macOS fixes?
* fix?
* sceSharePlayGetCurrentConnectionInfo
* fix: game dir dupes on each launch
* fix copy around settings_addon_install_dir vector
* do not show the path if it is not added
* remove installDir from config file
* format
* moved migration code to save, and added notice
* move ui->removeFolderButton->setEnabled to LoadValuesFromConfig
* avoid checking duplicates for gameDirs loaded from config
* use else condition to switch to the installDirs
* Add C string types
* Prepare existing enums
* Added missing enums
* Types update
* State base
* Compile Ime Dialog UI
* UI implementation
* Scoped lock
* Functional implementation
* Link against iconv on macOS
* Fix building on windows
* Better UI
* clang-format
* Some fixes and cleanup
* Enable reserved checks
* clang-format
* Fix default text encoding max size
* clang-format (again)
* Some review changes
* Use std::vector for dynamic strings
* Use CString
* Accept dialog on enter press
* clang-format
* Use ImGUI for encoding/decoding
* shader_recompiler: Move sampling parameter resolution to tracking pass and support more derivative types.
* shader_recompiler: Only track sampler sharp on sample instructions.
* shader_recompiler: Fix Inst args size.
* Wire up translations and descriptions for the cursor settings.
* Move controller settings to input tab and rename it to controller (to inline it with how other settings are shown).
* Fixed unnecessary double initialization of the back button setting.
* Organize statements and functions w/ respect to their tabs and some minor QOL changes for the settings UI in general.
* Play Time
* SDL
* QT
* Sort / Formatting
* Timer 1 minute
* remove the seconds
removes the seconds from the screen, but in the play_time.txt file it continues to record the seconds for better accuracy, and the screen is cleaner
* fixes the invisible 0
* SDL . . .
* Fix Timer
Implement hide cursor on idle w/ idle timeout duration (configurable via GUI). While at it add always and never to hide the cursor options as well.
* Revert commit #1211 as to not interfere with the cursor states.
* Make hide cursor on idle as the default setting w/ timeout duration of 5 seconds to hide.
* Add an input tab in the settings page to add the hide cursor setting, with hiding the idle timeout box with respect to the cursor hide option.
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* Working touchpad support
Tested on PS5 controller plugged in via USB.
* fix lint
* Add support to click touchpad using back button on other controllers
Takes the back button and allows the user to change the behavior of how it clicks the touchpad. The current options are left, right, center, and none.
* add description text
* make more generic so translations can be supported in combobox
* fix lint
* linter again
* support back button to touchpad for spacebar as well
* linter at it again
* Add shader debug print opcode that uses NonSemantic DebugPrintf extension
* small correction for flags in Inst
* Fix IR Debug Print. Add StringLiteral op
* add missing microinstruction changes for debugprint
* cleanup. delete vaarg stuff. Smuggle format string in Info and flags
* more cleanup
* more
* (dont merge??) update sirit submodule
* fix num args 4 -> 5
* add notes about DebugPrint IR op
* use NumArgsOf again
* copyright
* update sirit submodule
* fix clangformat
* add new Value variant for string literal. Use arg0 for fmt string
* remove string pool changes
* Update src/shader_recompiler/ir/value.cpp
Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
---------
Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
* imgui: dont capture any input without an active nav window
fix keyboard not being available as soon as the emulator opens
* imgui: cleanup renderer assigning unnecessary sType to vulkan structures
* Devtools: Pause system
* Devtools: pm4 viewer
- new menu bar
- refactored video_info layer
- dump & inspect pm4 packets
- removed dumpPM4 config
- renamed System to DebugState
- add docking space
- simple video info constrained to window size
* Devtools: pm4 viewer - add combo to select the queue
* Devtools: pm4 viewer - add hex editor
* Devtools: pm4 viewer - dump current cmd
* add monospaced font to devtools
* Devtools: pm4 viewer - use spec op name
avoid some allocations
* Refactor audio handling with range checks, buffer threshold, and lock fixes
- Added range checks for handle to avoid invalid index access in AudioOutOutput, AudioOutSetVolume, and AudioOutGetStatus.
- Added a constant AUDIO_STREAM_BUFFER_THRESHOLD for the buffer threshold (was previously a magic number).
- Set the freq parameter correctly in the SDL_AudioSpec structure in AudioOutOpen.
- Fixed locking issues in AudioOutOutput to avoid unlocking before it's locked.
* Refactor audio handling with range checks, buffer threshold, and lock fixes
- Added range checks for handle to avoid invalid index access in AudioOutOutput, AudioOutSetVolume, and AudioOutGetStatus.
- Added a constant AUDIO_STREAM_BUFFER_THRESHOLD for the buffer threshold (was previously a magic number).
- Set the freq parameter correctly in the SDL_AudioSpec structure in AudioOutOpen.
- Fixed locking issues in AudioOutOutput to avoid unlocking before it's locked.
- Removed tab spaces to fix format clang error
* shader_recompiler: Define fragment output type based on number format.
* shader_recompiler: Fix GetAttribute SPIR-V output type.
* shader_recompiler: Don't bitcast on SetAttribute unless integer target.
* vulkan: Fix some extension support related validation errors.
* vulkan: Fix validation error on zero-size buffer.
* vulkan: Fix primitive list restart validation error.
* trophy icon + platinum fixes
cleaned up some parts too
* format
* implement turtles review
* use fs native where possible, clang format
* implement vinicius suggestions
* format
* final reviews
* mutex for trophy queue, remove unneeded field
* format
Changed from checkUpdate.cpp to check_update.cpp
Removed this part, as the function that used it no longer exists:
<details>
<summary><strong>See removed text</strong></summary>
```ts
<message>
<location filename="../checkUpdate.cpp" line="352"/>
<source>Failed to open the ZIP file</source>
<translation>Failed to open the ZIP file</translation>
</message>
<location filename="../checkUpdate.cpp" line="420"/>
<source>File name is empty. Possibly corrupted ZIP.</source>
<translation>File name is empty. Possibly corrupted ZIP.</translation>
</message>
<message>
<location filename="../checkUpdate.cpp" line="445"/>
<source>Failed to create directory</source>
<translation>Failed to create directory</translation>
</message>
<message>
<location filename="../checkUpdate.cpp" line="464"/>
<source>Error decompressing file</source>
<translation>Error decompressing file</translation>
</message>
<message>
<location filename="../checkUpdate.cpp" line="487"/>
<source>Failed to open output file</source>
<translation>Failed to open output file</translation>
</message>
<message>
<location filename="../checkUpdate.cpp" line="497"/>
<source>Unsupported compression method for file:</source>
<translation>Unsupported compression method for file:</translation>
</message>
<message>
<location filename="../checkUpdate.cpp" line="510"/>
<source>Failed to create TAR extraction directory</source>
<translation>Failed to create TAR extraction directory</translation>
</message>
<message>
<location filename="../checkUpdate.cpp" line="525"/>
<source>Failed to extract the TAR file</source>
<translation>Failed to extract the TAR file</translation>
</message>
```
</details>
And it was standardized, all files with the correct formatting.
* Use filesystem::path whenever possible, remove fs::path::string
* My hatred for Windows grows with every passing day
* More Qt stuff
* custom u8string formatter for fmt library
* Use u8string for imgui
* Fix toml errors hopefully
* Fix not printing issue
* Oh and on SDL
* I hate Windows even more today
* fix toml reading utf-8 paths
also small fix for fmt::UTF
* Formatting
* Fix QT path to run games
* Fix path logging in save data
* Fix trophy path handling
* Update game_list_frame.cpp
fixed snd0path
* Update main_window.cpp
fix snd0path
* Update main_window.cpp
* paths finally fixed
* git info in WIP versions title
---------
Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* add playback of background/title music
* clang_format
* add windows multimedia build instructions
* fix typo accidentally made to arm
* address comments
* loop music
* feedback
* fix CI
* add newline
* playBGM off by default
---------
Co-authored-by: Charles <charles@superfocus.ai>
* Always present acquired swapchain images
Always present acquired swapchain images in order to be able to acquire them again.
fix#865
* Recreate swapchain if window is resized
* Respect aspect ratio when blitting to frame
* Make SDL window resizable
* clang-format
* designator order (building with gcc)
Fix /shadPS4/src/video_core/renderer_vulkan/vk_instance.cpp:314:9: error: designator order for field ‘vk::PhysicalDeviceVulkan12Features::samplerMirrorClampToEdge’ does not match declaration order in ‘vk::PhysicalDeviceVulkan12Features’
* Clear frame before blitting
* clang-format
* Revert "designator order (building with gcc)"
There already is a PR opened for this.
This reverts commit 7f8ccf4b1e.
* Updater
* clang
* Adding Updater icon
* Updater
* TR
* settings_dialog.ui
* Changelog for Pre-release only
* Adding Dump and Download icons
* Forgot this...
* fix linux and resize
* powershell_unzip | changelog fix
Does not use zlin-ng to unpack, now uses powershell on windows and on linux/mac uses unzip or 7z, and if it does not find it, it will ask if you want to install it before extracting.
Do not show the changelog button if: The current version is a pre-release and the version to be downloaded is a release.
* Clang
* formatting
* links fixed
---------
Co-authored-by: Xphalnos <164882787+Xphalnos@users.noreply.github.com>
* I hate programming and will furiously smash my monitor if I ever see another oversight of this caliber ever again in my goddamn life
* Merge both protect functions together
* Use a singleton for instruction decoding
* Use singleton class
* Patch `EXTRQ`
* Fixup signal context functions
* Update CMakeLists.txt
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* video info: add frame graph
Toggle advanced info with CTRL+F10.
Also fixed imgui using gamepad for nav in wrong situations
* 60fps!
Implemented a timer that accumulates the time spent sleeping and sleeps for the remaining time.
Also measure entire PresentThread time instead of just the time spent in Flip.
* sceKernelGettimeofday: replace chrono by win32 api. Better performance
bb uses this function too much. Consuming almost 30% of cpu time
* Add ElfInfo to track current game info in a singleton
* SaveData compatibility with old firmwares
* sceKernelOpen: fix for write-only mode
* imgui: add font to render non-ascii characters
* save_data: fix Backup Job including old backup in the new backup
* Save backup: fix to avoid filling the queue
Also limiting 1 backup / 10sec
* Save backup: fix search not handling empty pattern
*backup time improv
* shader_recompiler: Use push constants for user data regs
* shader: Add some GR2 instructions
* shader: Add some instructions
* shader: Add instructions for knack
* touchups
* spirv: Better names
* buffer_cache: Ignore non gpu modified images
* clang format
* Add log
* more fixes
* Safety checks in all SFO readings
* SaveData: log backup error and continue & fix possible concurrent file editing
* SaveData: Fix issue with old firmwares
* video_core: texture: image subresources state tracking
* shader_recompiler: use one binding if the same image is read and written
* video_core: added rebinding of changed textures after overlap resolve
* don't use pointers; slight `FindTexture` refactoring
* video_core: buffer_cache: don't copy over the image size
* redundant barriers removed; fixes
* regression fixes
* texture_cache: 3d texture layers count fixup
* shader_recompiler: support for partially bound cubemaps
* added support for cubemap arrays
* don't bind unused color buffers
* fixed depth promotion to do not use stencil
* doors
* bonfire lit
* cubemap array index calculation
* final touches
* save_data: Fix save data list back button.
* common: Add more null checks in CString.
Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>
---------
Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>
* core: Rewrite PSF parser & add encoder
add .sfo hex pattern to /scripts
* core/fs: allow to mount path as read-only
* common: Add CString wrapper to handle native null-terminated strings
* SaveData: rewrite to implement full functionality
* mock value for SYSTEM_VER
* SavaData: backup features
* SavaData: SaveDataMemory features
* imgui Ref-counted textures
- has a background thread to decode textures
* imgui: rework gamepad navigation
* PSF: fixed psf not using enum class for PSFEntryFmt (was a standard old ugly enum)
- Add null check to CString when itself is used in a nullable field
* SaveDataDialog implementation
- Fix Mounting/Unmounting check of SaveInstance
* cpu_patches: Patch just-in-time using illegal instruction handler.
* core: Add common signal dispatch system and use for on-demand TCB patches.
* page_manager: Re-add userfaultfd implementation.
* graphics_pipeline: More proper masking
* pipeline_cache: Skip setting depth/stencil fields when test is disabled
* pipeline_cache: More fixes to depth stencil state
* vk_rasterizer: Use dynamic state for depth bounds and bias
* pipeline_cache: Missed depth bias enable
* vk_rasterizer: Add stencil dynamic states
* thread: Reduce spammy log
* Remove some leftover state
* pipeline_cache: Allocate pipelines from pools
* vk_graphics_pipeline: Remove bindings member
Saves about 1KB from each pipeline
* fix review's from last pr
* save timestamp when trophies are unlocked
* implement GetTrophyInfo()
* use strncpy instead of strcpy_s, should fix actions
* nptrophy: GetGameInfo(), GetGroupInfo()
* various fixes
* format
* libSceRazorCpu needed for gravity rush
* libSceCesCs needed for blue reflection
* clang format fix
* set scePadSetVibration to log debug
* initial sceNetCtl module implementation
* improved error codes in file system
* some intial work on netctl callbacks (helps a bit CUSA10135)
* misc
* improved callbacks handling in sceNetCtl
* small fixes
* added libSceRudp.sprx to lle modules
* draft work for npcallbacks
* Add 5-second sleep on sceNetAccept as this can be called in an infinite loop and would normally block (this isn't ideal for non-blocking sockets but it's all stubs at the moment anyway)
* SDLAudio::AudioOutOutput: protect against invalid handle, support NULL input (wait only), replace fixed 65536 with an amount based on settable latency target (20ms for now)
* Fix whitespace
---------
Co-authored-by: j <j@local>
* add pugixml
* trophy_viewer: support for trophy unlocking
* nptrophy: UnlockTrophy(), DestroyContext()
* initial imgui popup
* queue to handle multiple trophies at once
* extract trophy info on game start + various fixes
* platinum trophy support + extract trophy data on startup
* format
* nptrophy: GetTrophyUnlockState
* implement vinicius' reviews