* 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.