* Fix sceNgs2SystemCreateWithAllocator
The cause of the exceptions without libraries.
* Remove error handling for unimplemented functions
Since nothing exists to create any VoiceHandle or RackHandle, we were consistently hitting those error returns.
Also promotes logs for stubbed functions back to LOG_ERROR, with the exception of two functions that get spammed pretty frequently.
* Use Core::ExecuteGuest to execute allocator alloc and free
* Clang
* Fix function definitions in ngs2.h
These should be using the SYSV ABI
* Fix function defs in ngs2_impl.h
This will (hopefully) fix compilation
* Clang
* Clang
again
* 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
* Slightly changed how allInstallDirsDisabled is determined
* Show a dialog only if no game directories are set
* Changed a comment
* Fixed formatting
* Support for unicode paths for game install directories
* Fixed game picture path conversion
* Adding names to gui buttoms and adjusting spacing.
* moving refresh button to last slot.
* Changing the implementation to tooltips for hover over them - qstring to detect background color.
* Fixing some themes with inverted tooltip base
* Suggestions / Fixes - Pause and FullScreen Buttons
* Update REUSE.toml
* cleaning up
* Icons stuff
* clang
* Buttons toggle - Cleaning code - Fixing Icons
* cleaning boolean
* Toggle pause and play icons and label to "Resume" when paused.
* Simplifying the toggles.
* New icons and final Push to review
* Reuse
* Icon rename, adding f9 press for pause game when no gui is on without needed of debug menu
* clang + reuse
* clang dosent work on this part
* again Clang
* Last fix for review. Light theme white resume icon fix.
* Proper fix for Resume icon
* New Rebase
* Fixed Orientation with docking issues and cleaning boxlayout code
* Adding spacer to separate actions, sizeslider on top of search bar. And adding margins
* Fixed Background not showing on OLED Theme
* Fixing check marks
* Adding all Daniel Suggestions and fixed F9 not working with debug menu open.
* Clang
* reverting all OLED theme changes
* Final suggestions
* sceKernelOpen: Clean up flag handling
* sceKernelOpen: fix params
Based on decompilation, the second parameter of _open should be flags.
Additionally swaps the return and parameter types to align with our current standards.
* sceKernelOpen: Fix errors
Based on POSIX spec, if part of the path is missing, ENOENT is the correct return.
Additionally, decompilation suggests that open sets errno too.
* Fix exports
Fixes function exports to align with what they should be, based on what I've seen from decompilation and our module generator.
* Proper errno behavior on open
Since sceKernelOpen calls posix_open, errno should be set during this process.
Simplest way to handle that is to move the actual open code to posix_open and adjust error cases accordingly.
* Reorganize open calls, add error log
* Improve close
Removes the EPERM return, as it makes no sense, and swaps sceKernelClose with posix_close to properly emulate errno behavior.
* Fix log on close
* posix_open fixups
* Readd hack in posix_close
It's either this, or removing LLE DiscMap.
Or shadow implements posix sockets.
* Missing exports
Commented out while I gradually work through them all
* Remaining placeholder exports
* Swap some stuff around
I see nothing that suggests "open" only takes two parameters, so this should be completely safe.
It's also more accurate to how these are handled in libkernel, and means I won't need to reorganize anything for readv and writev.
* Update file_system.cpp
* Implement write and posix_write
* Oops
* Implement posix_readv and sceKernelReadv
Also fixes error behavior on readv, as that function shouldn't be returning any kernel error codes.
* Move sceKernelUnlink
Will deal with this one later, was just annoyed by how it's location doesn't align with the export order.
* Cleanup readv
* Implement posix_writev and sceKernelWritev
Also fixes error behavior on writev, since it shouldn't ever return kernel errors (since our device files return those)
* More cleanup on older functions
* Swap around sceKernelLseek and posix_lseek
This ensures that these have the correct error behavior, and makes their behavior align with the updated implementations for earlier functions.
* Update file_system.cpp
* Implement read
Also fixes error behavior
* Swap sceKernelMkdir and posix_mkdir
Fixes errno behavior on kernel calls, also fixed some incorrect error returns.
* Fix errno behavior on sceKernelRmdir
Also reduces function logging to bring it closer to the level of logging seen in other filesystem functions.
* Slight clean up of sceKernelStat
Fixes error behavior and changes some of the old data types.
* Refactor fstat
Fixes errno behavior, implements fstat, and shifts exports around based on file position.
Might reorganize function locations later though.
* Implement posix_ftruncate
Implements posix_ftruncate and fixes errno behavior for sceKernelFtruncate
* Add missing error conversions for more device functions
* Implement posix_rename, fix sceKernelRename errno behavior
* Add posix_preadv and posix_pread
Also fixes some incorrect error returns, fixes errno behavior, and removes an unnecessary hack.
* Fix compile
* Implement posix_getdents, getdirentries, and posix_getdirentries
Also fixes errno behavior for the kernel variants of these functions.
* Fix errno behavior of sceKernelFsync
* Implement posix_pwrite and posix_unlink
Also fixes errno behavior in related functions.
* Update file_system.cpp
* Remove SetPosixErrno
Ideally, we've handled all possible error conditions before calling these functions, so treat errors in platform-specific code as IO errors and return POSIX_EIO instead.
* Update header exports
Not sure where these get used, but might as well keep them consistent with the rest of this.
* Check if file exists before calling platform-specific code
Bloodborne checks if a file doesn't exist using open, checking if it specifically failed with error code ENOENT. To avoid working with platform-specific errnos, add a proper error return for if the file doesn't exist.
Fixes a regression in Bloodborne.
* Clang
Out of all the changes, this is apparently the only thing Clang-Format doesn't like.
I'm honestly surprised.
* Improve error checks on posix_unlink
Just because a file isn't opened doesn't mean the file doesn't exist.
Fixes the error returned if host_path.empty(), and removes the error return for when GetFile fails.
* Fix the Bloodborne fix
* Limit exports to tested functions
* More confirmed working exports
* Remaining stuff my games can test
* FS exports from firmware tests
* Bring back missing exports from main
I don't have any bootable things that call these, but since they were working well enough on main, they should be fine to readd.
* Add export for posix_pread
Spotted in Dreams a while back, might as well add it.
* Revert "Remove SetPosixErrno"
This reverts commit bdfc0c246c.
* Revert SetPosixErrno changes
shadow's using it for posix sockets, so significant modifications would introduce unnecessary merge conflicts.
* Update comment
* Add EACCES errno to SetPosixErrno
Seen in Gravity Rush.
Also reorganizes the switch case based on the posix errno value, since ordering by errno makes no sense on some OSes.
* More export fixups
Missed these during my initial pass through FS stuff because they were in kernel.cpp for some reason.
* Symbols from FS tests
Tested by messing around with firmware elfs, these atleast don't cause any crashes.
* Remove inaccurate error behavior
Seek can have offsets past the end of a file.
Also add logging for two valid whence values that are unsupported on Windows.
I'll need to verify that SEEK_HOLE and SEEK_DATA correspond to 3 and 4 respectively, I've yet to check source to verify.
* Fix error log
Oops
* Clang
Clang
* Remove close hack
Since LLE libSceDiscMap is no longer a concern, this hack shouldn't be needed.
Since sockets are still stubbed, and close can be used on sockets, I've added a warning log just in case this still occurs in some titles.
* Change SetPosixErrno unreachable to warning
I changed it to an unreachable in an earlier commit to make testing easier.
At this point, having an unreachable for this seems unnecessary, so change it to a warning instead.
* Remove Bloodborne hack
Games should be able to unlink files that aren't opened file descriptors. As far as I've tested, this doesn't break Bloodborne.
* Squashed initial implementation
* Logging for checking if buffers are memory contiguous
* Add check to see if first instruction is valid in the next buffer to avoid false positives
* Oof
* Replace old code with IndecisiveTurtle's new, better implementation
* Add `unlikely` keyword to the split packet handling branches
Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
---------
Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>
* Trophy Viewer - Select Game
* TR - Button in Utils +icon
TR - Button in Utils +icon
I also made a small correction to the game folder list, where the checkboxes were being filled in incorrectly.
* 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
* Add option to enable/disable game folders individually
A checkbox (button to select) game folders has been added to the menu, allowing you to Enable/Disable them without having to remove the folder.
config.toml is now saved in alphabetical order
* ordering is separation in a function
* remove my comment in portuguese :)
* Using OrbisKernelTimespec under clock_gettime, orbis_clock_gettime, sceKernelClockGettime to fix compatibility issues.
* final fix test
* Roamic suggestions
* rewrite splash
removed Splash class
rewrite using imgui texture manager
fix crashes & old validation error
* handle games with abnormal aspect ratios
* Export sceVideoOutGetBufferLabelAddress
It's an exported function, used by red_prig's BLACKSQUAR2 homebrew sample.
This also fixes the function's return type accordingly.
* More sceVideoOutGetBufferLabelAddress fixups
Library decomp shows a hardcoded return 16 on success. Not sure why it does that, but it never hurts to be accurate.
Also needs to have an openOrbis-specific export to get it to work with the homebrew sample I'm testing.
* Final fixups
Removed the port assert and added asserts in libSceGnmDriver for when sceVideoOutGetBufferLabelAddress calls fail.
* 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
* New translations en_us.ts (French)
* New translations en_us.ts (Spanish)
* New translations en_us.ts (Polish)
* New translations en_us.ts (Spanish)
* New translations en_us.ts (Albanian)
* Fix error return on sceKernelMunmap
FreeBSD docs state that len <= 0 is a EINVAL return.
* Early return on ReleaseDirectMemory with len = 0
Calls to these two functions with len = 0 cause an assert in CarveDmemArea. Since there's no memory to release, an early return should be safe here.
* Remove check for negative length in munmap
Addresses review comment
* Adds missing tr functions for certain GUI strings that should be translatable
* set clang format off for multi-line strings, set userDir as arg
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
* Add missing space so only once translation is auto-generated
* Use suggested format
* delete an extra space
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
* Add global windows user folder
* Add button for creating portable folder
* Add notice about restarting after creating the portable folder
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
* 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>
* Specialize vertex attributes on dst_sel
* compare vs attrib specs by default, ignore NumberFmt when vertex input dynamic state is supported
* specialize data_format when attribute uses step rates
* use num_components in data fmt instead of fmt itself
-dont do trivial phi removal during SRT pass, that's now done in
ssa_rewrite
-remove unused variable when walking tess attributes
-fix some tess comments
* Adding top button option for trophy pop up
* Ui fix
* Clang format
* improvements to trophy pr
* improvements
* Note: The sound will only work in QT versions
* -.
* Update path_util.cpp
* Update path_util.cpp
* centered text when using top and bottom option
* Clang
* trophy viewer now opens in window not fullscreen
---------
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
* Change systemserivce param ID calling to debug only
Some games, including Namco Museum Archives spam this.
* Update userservice.cpp
Also reduces log spam in Dysmantle.
* Custom Trophy images
* text and button - settings
* Description
* +
* plural
* translation for 'Trophy earned!'
* Revert: translation for 'Trophy earned!'
* play audio
* fixes crash due to having too many trophies
The game 'My Name is Mayo' has so many trophies in sequence that when overlapping them, the emulator ended up crashing, so if there is something on the screen and a new trophies are achieved, it will clear and show the new one.
* Animations, config: position, duration
* -
* TR
* fix sdl/qt
* clang \O/
* Side menu with filter options. Sorting
* +TR
* fix showHiddenCheck
* Time Unlocked
* Fixes ghost text, larger image, black text in light theme
* Button - Delete Trophy
* limits the width of Description - showMaximized
* changing column positions
* useEuropeanDateFormat
en_US, zh_CN, zh_TW, ja_JP, ko_KR, lt_LT, nb_NO, nl_NL
useEuropeanDateFormat = false
There are these 2 options about full screen, and 'Fullscreen' was being set to 'true' because it was comparing the word "Windowed" with the interface information, but if you are using another language it might not identify it and even using 'Borderless' the screen would be full.
* ir_passes: Add barrier at end of block too
* vk_platform: Always assign names to resources
* texture_cache: Better overlap handling
* liverpool: Avoid resuming ce_task when its finished
* spirv_quad_rect: Skip default attributes
Fixes some crashes
* memory: Improve buffer size clamping
* liverpool: Relax binary header validity check
* liverpool: Stub SetPredication with a warning
* Better than outright crash
* emit_spirv: Implement round to zero mode
* liverpool: queue::pop takes the front element
* image_info: Remove obsolete assert
The old code assumed the mip only had 1 layer thus a right overlap could not return mip 0. But with the new path we handle images that are both mip-mapped and multi-layer, thus this can happen
* tile_manager: Fix size calculation
* spirv_quad_rect: Skip default attributes
---------
Co-authored-by: poly <47796739+polybiusproxy@users.noreply.github.com>
Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
* Add back fixed trophy type icons to trophy viewer
* Remove unused declaration until it is needed again
* Fix trophy pop-up icons
* Adjust size and alignment based on trophy name length
---------
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
* QT: Various interface fixes
* fix close without saving
* +
* +
using the save and close buttons, everything works fine, but when using the X button it doesn't work very well...
* fix close (X) without saving
* 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>
* Implement protecting multiple VMAs
A handful of games expect this to work, and updated versions of Grand Theft Auto V crash if it doesn't work.
* Clang
* memory: Consider flexible mappings as gpu accessible
Multiple guest apps do this with perfectly valid sharps in simple shaders. This needs some hw testing to see how it is handled but for now doesnt hurt to handle it
* memory: Clamp large buffers to mapped area
Sometimes huge buffers can be bound that start on some valid mapping but arent fully contained by it. It is not reasonable to expect the game needing all of the memory, so clamp the size to avoid the gpu tracking assert
* clang-format fix
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* mask_jump32
* fix qt/sdl
* fix dangling pointer?
fixes the warning: "clang-diagnostic-dangling-gls: object backing the pointer will be destroyed at the end of the full-expression"
* shader_recompiler: Implement AMD buffer bounds checking behavior.
* shader_recompiler: Use SRT flatbuf for bounds check size.
* shader_recompiler: Fix buffer atomic bounds check.
* buffer_cache: Prevent false image-to-buffer sync.
Lowering vertex fetch to formatted buffer surfaced an issue where a CPU modified range may be overwritten with stale GPU modified image data.
* Address review comments.
* 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>
* added auto-translation action
* made scripts executable
* reuse
* no-obsolete - reuse (#2392)
* other languages - reuse
* no-obsolete
see everything that is 'vanished', because it does not exist
* Update update_translation.sh
* +
---------
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
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