* Uze miniz instead of zlib for libSceZlib
Might fix ROTTR?
* Claaaaang
* Explicitly use miniz's uncompress
* Clang2
* Swap types
In theory, these types are all the same size. Best we use the right ones for the library though.
* Remove "stub" logs
* Restructed PthreadMutex struct
When libc creates mspaces, they modify the data of a PthreadMutex to set the mutex's private flag. Previously, on Linux, this would modify internal data of our TimedMutex, and on Windows this would modify the m_yieldloops variable.
This makes it so our m_flags is at the same offset as the real pthread_mutex struct, so no data corruption occurs.
* Further struct changes
To address review comments
It's recursive in the actual library, and since our implementation in thoroughly based on the actual library, this is needed for our code to function appropriately.
Add check in sceKernelReserveVirtualRange, sceKernelMapNamedDirectMemory, and
sceKernelMapNamedFlexibleMemory per StevenMiller123 review:
- FW >= 1.70 returns EINVAL for Fixed + addr == 0
- Older FW clears Fixed flag to fall through to managed allocation
Co-authored-by: opencode <dev@shadps4.local>
* Only initialize logging once
* Swap LOG macros for std::cerr and std::cout use.
* Add quick exit when trying to log before logger init
* Revert "Swap LOG macros for std::cerr and std::cout use."
This reverts commit a14d46d383.
* Use fmt's functions instead of cerr
Makes the commits a tad cleaner.
* Revert macro change
If I remember right, the if check here was to make sure we didn't throw exceptions after terminating the logger, which can happen due to a race involving some debug libSceVideoOut logs.
* Oops
* Implement trophy migration
* Respect user choice from save migration
* yet another nested subfolder iterator
* refactoring and remove original hardcoded forced migration code
This code has been an absolute mess since the trophy rework. This eliminates several redundant loops through game trophy files, and separates the logic into it's own function.
* Remove old config backend
Trophy key migration now uses the toml library directly, like our config transfer code.
* Don't retrieve user_dir in main
No longer needed.
* Fix version number.
* Use the packages.x86_64-linux namespace.
* linux. prepend no longer required.
* Created build-shadps4 module.
.
.
.
.
.
.
.
* Move dependency list to generator function parameters.
* Using call package to run builder.
* Pull in matching names and use inherit.
* Paths need to be wrapped in a "".
* Put , on the packages.
* And inherit does not need any , .
* Fixups.
* release and releaseWithDebugInfo now use the same builder.
* Set default pacakge to releaseWtihDebugInfo.
* Rename to build, moved down a directory and deleted modules/
.
* Seperated devshell into shell.nix
.
.
.
.
.
* Double ".nix"
* Nix Formatting.
* Included missing dependencies for shell.
.
.
.
.
* Update Lock file.
* Removed old unused shell.nix.
* Collapse shell and build into flake.nix
.
* Window bar patch
.
.
.
* Removed unused patches list.
* As older nix shell was removed. Also remove old documentation.
* Create a mkderivation wrapper lambda.
.
.
* Removed execName
* Call new wrappers instead of duplicated mkDerivation.
* Removed finalAttrs
* Use more semi-colons
* Used clang and the build environment instead of the standard gcc.
* Replaced "git" with current nightly version.
* Automatically pass the required environment variables into the development shell instead of requiring them as part of cmake command.
* Change to an if statement because ! hurts the brain.
* Added perf to devshell package list.
* Added Nix formatter.
.
* Collision with the ++ operator in the environment variable.
* Nix Format.
* Set dummy GameController's m_connected to false
* Remove this check and handle it differently
* Save one reverse lookup on a map
this is mostly irrelevant on performance
* i have no clue so let's just log stuff
* apparently this is the correct default
* swap this to debug logging
* the loathsome clang-formatter
* Revert "shader_recompiler: Pad number of TES passthrough outputs to fragment inputs if needed"
This reverts commit 6436063025.
* Revert "shader_recompiler: Only forward declared number of vertex inputs. (#4293)"
This reverts commit 47f5cc1437.
* sigaddset, sigdelset, sigismember
* Some define fixups
Based on decomp, PS4 sigset is defined as a u32[4]. This doesn't change any behavior, but makes my decomp-based sigaddset and sigdelset implementations function appropriately.
Additionally, define handler and sigaction functions as PS4_SYSV_ABI.
* Fix returns
* Implement signal, export _sigintr
In libkernel, signal just uses sigaction. No harm in implementing it, since we've got our own implementations for everything except sigaction (and sigaction is implemented for Unix platforms).
* Fix and cleanup posix_select defines
Swaps use of defines for just having static functions, and fixes the pd_set_posix struct to match FreeBSD/Orbis properly (sizeof(long) == 4 on Windows, which does not match Orbis).
* Fix siginfo struct
Again, sizeof(long) differs on different platforms. Need to use our proper typedef to ensure accuracy.
* Clang, the bane of my existance.
* Oops
* move np_score to /np_score folder
* added more logging to np functions
* using common np_error file
* moved web_api to dedicated folder
* implemented some context creations for np_score so logging would be more productive
* implement sceAudio3dPortCreate and closer implementation to sceAudio3dPortOpen
* clang format and forgot to remove some lines
* refactor port creation, small cleanups and openal
* rename parameter arguments
* idk might be correct
* floor size_this to closest multiple of 8
* Fix nids for strcmp vs strncmp
Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
* Fix sign_bit_set logic
Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
* Fix IterateDirectory on mounts
IterateDirectory would just retrieve the base path when trying to iterate /app0, since GetHostPath for the other path types would still return the base path.
Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
* Fix function resolves
If multiple modules export the same library and module, then we would only check the first one we find for the symbol. This can end up breaking the font library stack
Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
* Update fs.cpp
Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
* Oops
---------
Co-authored-by: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
* Fix flip status on close
* Store equeues by handle instead of pointer
As is, a game could call sceKernelDeleteEqueue on the equeue registered for flip/vblank events, and terminate the equeue while our VideoOut driver retains a valid pointer to it.
Changing to storing the equeue handle means we can check if the equeue still exists and prevent this.
* Remove flip and vblank events on sceVideoOutClose
* Don't forget to clear vectors
* Oops
Intended to erase the memset on FlipStatus, not VblankStatus.