* usbd: Implement libusb passthrough
* clang-format
* only do kernel activities on non-windows
* use variable to represent "fake" windows kernel driver
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* sceKernelDebugOutText
Some homebrew use this for logging, and these logs do show up in console klogs.
I wasn't sure where the most suitable place for this function would be, so I made a separate file for these debug functions.
* Implement kernel exit
Some homebrew I have use this exit when an error occurs. Since actually closing the emulator isn't implemented yet, I've used an unreachable message that logs the status code.
I've placed it in process.cpp for now, let me know if I should change that.
* Improved implementations for sceKernelDebugRaiseException functions
These functions take in two parameters, an error code and some other value that I have no idea what is for. If that second parameter is not zero, they return ORBIS_KERNEL_ERROR_EINVAL before any calls to mdbg_service.
These improved implementations add the early error return and a message with the error code to the unreachable.
* Add missing exports
Homebrew apps like to use these kernel exports of posix functions instead.
* Clang
* control_flow_graph: Improve divergence handling
* recompiler: Simplify optimization passes
Removes a redudant constant propagation and cleans up the passes a little
* ir_passes: Add new readlane elimination pass
The algorithm has grown complex enough where it deserves its own pass. The old implementation could only handle a single phi level properly,
however this one should be able to eliminate vast majority of lane cases remaining. It first performs a traversal of the phi tree to ensure
that all phi sources can be rewritten into an expected value and then performs elimintation by recursively duplicating the phi nodes at each step,
in order to preserve control flow.
* clang format
* control_flow_graph: Remove debug code
* rewrite splash
removed Splash class
rewrite using imgui texture manager
fix crashes & old validation error
* handle games with abnormal aspect ratios
* host_shaders: support for includes
* video_core: add a simpler vulkan asserts
* video_core: refactored post processing pipeline to another file
* renderer_vulkan: add define param to compile shader utility
* video_core: fsr implementation
* devtools: show resolution & fsr state
* Initial KBM remapping GUI
* Added Mousewheel mapping
* Make window wider so for mousewheel + modifier string
* Fix alt + mousewheel vertical being changed to horizontal for qwidgets
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
- Don't call enable_language before project.
See CMake docs for CMP0165.
- Remove boost-related cache variables.
It's too late to set them because Boost::headers has already been found.
- Don't build SDL3-test library.
Not used by shadps4.
- Remove /Zc:preprocessor from toml11's INTERFACE_COMPILE_OPTIONS.
Clang-cl does not support this flag and emits a lot of warnings.
- Remove dummy.cpp and make gcn a proper INTERFACE target.
* Include trophy rarity icons in pop up, remove newlines from viewer
Fix layout
Update platinum.png
Fix linux and apple
* Smaller type icons, center text vertically
* use original icons
* MacOS fixes
* Address Review comments
Update build.yml
Update build.yml
Update build.yml
Update build.yml
Update build.yml
Update build.yml
Update build.yml
test
* Move trophy type to leftmost and trophy art to rightmost
* Embed resources
* Revert packaging of resources with builds
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
* shader_recompiler: Move shared mem lowering into emitter
* IR can be quite verbose during first stages of translation, before ssa and constant prop passes have run that drastically simplify it. This lowering can also be done during emission so why not do it then to save some compilation time
* runtime_info: Pack PsColorBuffer into 8 bytes
* Drops the size of the total structure by half from 396 to 204 bytes. Also should make comparison of the array a bit faster, since its a hot path done every draw
* emit_spirv_context: Add infrastructure for buffer aliases
* Splits out the buffer creation function so it can be reused when defining multiple type aliases
* shader_recompiler: Merge srt_flatbuf into buffers list
* Its no longer a special case, yay
* shader_recompiler: Complete buffer aliasing support
* Add a bunch more types into buffers, such as F32 for float reads/writes and 8/16 bit integer types for formatted buffers
* shader_recompiler: Remove existing shared memory emulation
* The current impl relies on backend side implementaton and hooking into every shared memory access. It also doesnt handle atomics. Will be replaced by an IR pass that solves these issues
* shader_recompiler: Reintroduce shared memory on ssbo emulation
* Now it is performed with an IR pass, and combined with the previous commit cleanup, is fully transparent from the backend, other than requiring workgroup_index be provided as an attribute (computing this on every shared memory access is gonna be too verbose
* clang format
* buffer_cache: Reduce buffer sizes
* vk_rasterizer: Cleanup resource binding code
* Reduce noise in the functions, also remove some arguments which are class members
* Fix gcc
* Added all stubs + logging
* Added back memory and math functions from the original code + added some more math functions
* More string functions, snprintf, memmove and setjmp
* Add longjmp + clang
* gmtime, __cxa_atexit and log what functions some games use
* Add Mspace unreachable
* Renaming
* Take out mspace functions to their own file
* Factor out io to a new file
* Empty str and memory files
* Overloaded functions be like:
* str
* memory + math +clang
* clang...
* adjustments :D
* longjmp is questionable
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* 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.
* 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>
* 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
* 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: 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.
* wip: added basic gui for compat data
* data is currently pulled directly from github API, awaiting server infra
* removed unused initalizer
* fixes
* fix cmake
* wip: add some testing date / version
* add tooltip
* fix nested QJsonObject
* fix tooltip color
* fix clang-format
* Edit style
* Add clickable status
* formatting
* import order
* typo
* fix clang format 2
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* ir: Add heuristic based LDS barrier pass
* Attempts to insert barriers after zero-depth divergant conditional blocks in shaders that use shared memory
* lds_barriers: Limit to nvidia
* Intel has historically had problems with cs barriers, will debug other time
* shader_recompiler: Tessellation WIP
* fix compiler errors after merge
DONT MERGE set log file to /dev/null
DONT MERGE linux pthread bb fix
save work
DONT MERGE dump ir
save more work
fix mistake with ES shader
skip list
add input patch control points dynamic state
random stuff
* WIP Tessellation partial implementation. Squash commits
* test: make local/tcs use attr arrays
* attr arrays in TCS/TES
* dont define empty attr arrays
* switch to special opcodes for tess tcs/tes reads and tcs writes
* impl tcs/tes read attr insts
* rebase fix
* save some work
* save work probably broken and slow
* put Vertex LogicalStage after TCS and TES to fix bindings
* more refactors
* refactor pattern matching and optimize modulos (disabled)
* enable modulo opt
* copyright
* rebase fixes
* remove some prints
* remove some stuff
* Add TCS/TES support for shader patching and use LogicalStage
* refactor and handle wider DS instructions
* get rid of GetAttributes for special tess constants reads. Immediately replace some upon seeing readconstbuffer. Gets rid of some extra passes over IR
* stop relying on GNMX HsConstants struct. Change runtime_info.hs_info and some regs
* delete some more stuff
* update comments for current implementation
* some cleanup
* uint error
* more cleanup
* remove patch control points dynamic state (because runtime_info already depends on it)
* fix potential problem with determining passthrough
---------
Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>
* page_manager: Enable userfaultfd by default
* Much faster than page faults and causes less problems
* shader_recompiler: Add texel buffer multiplier
* Fixes format mismatch assert when vsharp stride is multiple of format stride
* shader_recompiler: Specialize UBOs on size
* Some games can perform manual vertex pulling and thus bind read only buffers of varying size. We only recompile when the vsharp size is larger than size in shader, in opposite case its not needed
* clang format
* core: Split error codes into separate files
* Reduces build times and is cleaner
* core: Bring structs and enums to codebase style
* core: More style changes
* Remove save migration code (#1621)
* Kernel Fixes (#1605)
* scePthreadSetprio Changes
FindThread uses posix error codes, so the function export should apply the ORBIS wrapper to convert these. Since it uses posix codes, I've also renamed the function to align with other posix functions. Lastly, this fixes a compile warning about ret sometimes not getting initialized.
* Implement posix_munmap
Used by Hatsune Miku Project Diva X during intros. May help with stability on Linux, probably won't change anything on Windows.
* Exports
Some missing function exports I've seen in my tests.
sceKernelAvailableFlexibleMemorySize export is used in Final Fantasy XV Episode Duscae
posix_pthread_setprio and posix_pthread_getschedparam are used by Spider-Man Miles Morales
scePthreadKeyDelete is used in UE4 games.
I've also added in a typo fix related to my previous PR.
* libScePosix export for posix_pthread_attr_setguardsize
Used in Hatsune Miku Project Diva X v1.02
* libraries: Add libSceRazorCpu HLE skeleton.
---------
Co-authored-by: ¥IGA <164882787+Xphalnos@users.noreply.github.com>
Co-authored-by: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com>
* libkernel: Cleanup some function places
* kernel: Refactor thread functions
* kernel: It builds
* kernel: Fix a bunch of bugs, kernel thread heap
* kernel: File cleanup pt1
* File cleanup pt2
* File cleanup pt3
* File cleanup pt4
* kernel: Add missing funcs
* kernel: Add basic exceptions for linux
* gnmdriver: Add workload functions
* kernel: Fix new pthreads code on macOS. (#1441)
* kernel: Downgrade edeadlk to log
* gnmdriver: Add sceGnmSubmitCommandBuffersForWorkload
* exception: Add context register population for macOS. (#1444)
* kernel: Pthread rewrite touchups for Windows
* kernel: Multiplatform thread implementation
* mutex: Remove spamming log
* pthread_spec: Make assert into a log
* pthread_spec: Zero initialize array
* Attempt to fix non-Windows builds
* hotfix: change incorrect NID for scePthreadAttrSetaffinity
* scePthreadAttrSetaffinity implementation
* Attempt to fix Linux
* windows: Address a bunch of address space problems
* address_space: Fix unmap of region surrounded by placeholders
* libs: Reduce logging
* pthread: Implement condvar with waitable atomics and sleepqueue
* sleepq: Separate and make faster
* time: Remove delay execution
* Causes high cpu usage in Tohou Luna Nights
* kernel: Cleanup files again
* pthread: Add missing include
* semaphore: Use binary_semaphore instead of condvar
* Seems more reliable
* libraries/sysmodule: log module on `sceSysmoduleIsLoaded`
* libraries/kernel: implement `scePthreadSetPrio`
---------
Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
Co-authored-by: Daniel R. <47796739+polybiusproxy@users.noreply.github.com>
* `RendererVulkan` -> `Presenter`
* support for Video Out gamma setting
* sRGB hack removed
* added post process pass to presenter
* splash functionality restored
* ajm: Initial ajm implementation
* AJM code improvements (#1453)
* Fix sideband buffer order (#1454)
* ajm: Attempt to add gapless support
* ajm_at9: Return superframes decoded in a single job
* WIP (#1460)
* Fix gapless decode and combine split buffers
* Fixed linux build
* fix number of samples reported with gapless decoding
* fixed number of remaining samples calculation
should fix the small crackling sounds that play every now and again
* refactor half ajm
* refactored most of ajm
* refactored ajm
* clang-format, in-repo libatrac9, removed debug stuff
---------
Co-authored-by: auser1337 <aaravsandhu10@outlook.com>
Co-authored-by: Vladislav Mikhalin <mikhalinvlad@gmail.com>
Co-authored-by: IndecisiveTurtle <geoster3d@gmail.com>
* Implement shader resource tables
* fix after rebase + squash
* address some review comments
* fix pipeline_common
* cleanup debug stuff
* switch to using single codegenerator
* 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
* 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
* 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
* 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>
* 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>
* 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>
* 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
* 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
* 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.
* 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 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
* system/MsgDialog: types & basic text display
* system/MsgDialog: User message dialog
* system/MsgDialog: RAII for MsgDialog ui
* system/MsgDialog: Progress bar dialog
* system/MsgDialog: System message texts
* system/MsgDialog: copy all ui state to local memory
handles when game release memory before close
extracted all UI code to it's own file
use single window instead of creating new one every single dialogOpen
* system/MsgDialog: debug logging
* added imgui as dependency
* imgui renderer/basic input implementation
* imgui: add layers system
Add video info layer to show fps. Press F10 to toggle it.
* imgui: add custom imgui config
* imgui: gamepad capture, stopping propagation
* imgui: changed config & log file path to use portable dir
* videoout: render blank frame when video output is closed
required to render imgui even when game has no video output
- fixed merge compile-error
* shader_recompiler: Use null image when shader is compiled with unbound sharp
* video_core: Refactor and render target swizzles
* liverpool_to_vk: Add missing swap format from RDR
* video_core: Refactor shader recompiler interface
* Makes it much easier to pass runtime information to the recompiler and have it treated as part of the shader key. Also pulls out most runtime state from Info struct
* shader_recompiler: Avoid some asserts
* force PIE usage on linux
* get rid of explicit -pie linker flag
* change UNIX with UNIX AND NOT APPLE in CMakeLists.txt
* cmake: add proper check for PIE support at link time
---------
Co-authored-by: Mikhail Paulyshka <me@mixaill.net>
* video_core: Compile shader permutations
* spirv: Only specific storage image format for atomics
* ir: Avoid cube coord patching for storage image
* spirv: Fix default attributes
* data_share: Add more instructions
* video_core: Query storage flag with runtime state
* kernel: Use std::list for semaphore
* video_core: Use texture buffers for untyped format load/store
* buffer_cache: Limit view usage
* vk_pipeline_cache: Fix invalid iterator
* image_view: Reduce log spam when alpha=1 in storage swizzle
* video_core: More features and proper spirv feature detection
* video_core: Attempt no2 for specialization
* spirv: Remove conflict
* vk_shader_cache: Small cleanup
* Cheats/Patches
Adds the possibility of applying cheats/patches according to the specific game serial+version
The logic for adding modifications has not yet been implemented!
Interface based on issues/372 https://github.com/shadps4-emu/shadPS4/issues/372
[X]Front-end
[]Back-end
Create a synchronized fork of the cheats/patches repository
* Clang Format
* separate files
The code has been separated into separate files as suggested by georgemoralis.
Added the Patch tab, which has not been implemented yet.
Added the 'applyCheat' area to apply the modification, not implemented yet...
And added LOG_INFO.
* reuse
* initial implementation of cheat functionality
* Update cheats_patches.cpp
sets all added buttons to the size of the largest button.
and fixes some aesthetic issues.
* move eboot_address to module.h
fixes the non-qt builds and makes more sense to be there anyway
* Patchs menu and fixes
adds the possibility to download Patches, it does not modify the memory yet.
and some other fixes
* MemoryPatcher namespace, activate cheats on start
* format
* initial patch implementation
* format
* format again...
* convertValueToHex
* Fixes
Choosing which cheat file to use.
And some other fixes
* fix bytes16, bytes32, bytes64 type patches
If a patch is any of these types we convert it from little endian to big endian
* format
* format again :(
* Implement pattern scanning for mask type patches
* add check to stop patches applying to wrong game
previously if you added a patch to a game, but closed the window and opened a different game it would still try to apply the patch, this is now fixed
* format
* Fix 'Hint' 0x400000 | and Author
* Management |save checkbox | shadps4 repository
MENU - Cheats/Patches Management (implementing Patches)
save patches checkbox
add shadps4 repository
* Load saved patches, miscellaneous fixes
* Fix an issue with mask patches not being saved
* format + remove debug log
* multiple patches | TR translation for cheats/patches
* clang
* ENABLE_QT_GUI
* OK
* move memory_patcher to qt_gui
* clang
* add cheats hu_HU
* fix log
* Remove the item from the patchesListView if no patches were added (the game has patches, but not for the current version)
---------
Co-authored-by: CrazyBloo <CrazyBloo@users.noreply.github.com>
fix: file name typo constant_propogation_pass.cpp
fix typo from 'symbol_vitrual_addr' variable
fix typo in emit_spirv_context_get_set.cpp
fix typo from constant_propagation_pass.cpp in CMakeLists
fix typo in these some config.cpp functions
- setSliderPosition
- setSliderPositionGrid
- getSliderPosition
- getSliderPositionGrid
fix typo inside src\core\aerolib\stubs.cpp
fix typo in a comment from src\core\file_format\pkg.cpp
fix typo inside src\core\file_sys\fs.cpp + fs.h
- NeedsCaseInsensiveSearch -> NeedsCaseInsensitiveSearch
fix 2 function typos: sceAppContentAddcontEnqueueDownloadByEntitlemetId and sceAppContentAddcontMountByEntitlemetId
fix typo on comment inside src\core\libraries\kernel\file_system.cpp
fix typo on src\core\libraries\videoout\driver.cpp
fix typo in src\core\memory.cpp
fix typo from comment in src\qt_gui\game_list_utils.h
fix typo in src\video_core\amdgpu\liverpool.h
- window_offset_disble to window_offset_disable
fix typo from comments in src\video_core\host_shaders\detile_m32x1.comp + detile_m32x2.comp
- subotimal -> suboptimal
fix typo from comment in src\video_core\renderer_vulkan\renderer_vulkan.cpp
- dimentions -> dimensions
fix typo from enum in src\common\debug.h and other files
- MarkersPallete -> MarkersPalette
fix last typo in src\video_core\amdgpu\pm4_opcodes.h
- PremableCntl -> PreambleCntl
* amdgpu: proper CB and DB sizes calculation; minor refactoring
* texture_cache: separate file for image_info
* texture_cache: image guest address moved into image info
* texture_cache: surface size calculation
* shader_recompiler: fixed sin/cos
Thanks to red_pring and gandalfthewhite0173
* initial preparations for subresources upload
* review comments
* Implement `sceKernelFtruncate` and `sceKernelUnlink`.
* Remove unused variable.
* Implement `sceKernelReserveVirtualRange`, misc fixes
* Fix `sceKernelReserveVirtualRange`.
* Add TODO on reserve
* Replace comment with assert.
* Add missing copyright header
* Add `UNREACHABLE` for `IOFile::Unlink`.
* Move NT API initialization out of the header
* Fix bug where files were always mapped as read only.
* `clang-format`
* sceKernelOpen truncate is not neccesary
* fixup scePthreadCondSignal
* dummy error , ime dialogs stubbed
* sceErrorDialog implemenation (no ui)
* small fix in sceSaveDataGetEventResult and sceAppContentTemporaryDataMount2.
* ime dialog structs and functions definations
* added stubbed avplayer
* Open folder should be first on context menu
---------
Co-authored-by: raziel1000 <ckraziel@gmail.com>
* disable configured flexible memory size (caused issues in some games)
* fixed case S_OR_B64 for blazing chrome
* submodules updates and fixes for latest SDL
* stubbed _sigprocmask (not handled and spams too much)
* added ReplaceOp case in Stencilop
* dummy ajm module added
- PlayGo
- stub libusbd
-added /temp0 and /data mounts at emu start.
(Ghost Files: Memory of a Crime, Abyss: The Wraiths of Eden)
- some posix functions
* video_core: Add a few missed things
* libkernel: More proper memory mapped files
* memory: Fix tessellation buffer mapping
* Cuphead work
* sceKernelPollSema fix
* clang format
* fixed ngs2 lle loading and rtc lib
* draft pthreads keys implementation
* fixed return codes
* return error code if sceKernelLoadStartModule module is invalid
* re-enabled system modules and disable debug in libs.h
* Improve linux support
* fix windows build
* kernel: Rework keys
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
- Added a trophy viewer (right click on game ==> trophy viewer)
- Enabled Run button.
- Switched gui settings to toml.
- Added recent files (6 max)
- Applied @raphaelthegreat suggestions and corrections (Thanks a lot).
- Fixed several bugs and crashes.
- Full screen should disabled by default.
- Added region in list mode.
- Added a simple temp elf list widget.
- Added messages when extracting pkg (ex: installing a patch before the game...etc)
* vk_rasterizer: Clear depth buffer when DB_RENDER_CONTROL says so
* video_core: Preliminary storage image support, more opcodes
* renderer_vulkan: a fix for vertex buffers merging
* renderer_vulkan: a heuristic for blend override when alpha out is masked
---------
Co-authored-by: psucien <bad_cast@protonmail.com>