* Initial definitions
* internal__Fofind
* Libcinternal threads
fopen stores a valid pthread mutex in the FILE struct. Since this is exposed to the game/app, we need to handle this accurately.
* internal__Foprep (and various other functions called in it)
* Actual fopen implementation
At long last, an actual function I'm supposed to implement.
* fflush + compile fixes
* fseek implementation
Comes with functions fseek calls, aside from fflush which I pushed earlier.
* fread, _Frprep
Also changed some parameter names a tad to match how I named things in my decomp.
And fixed some bugs with how I was handling the weird offseted mode thing
* fclose, _Fofree
Not confident on this one, but we'll see I guess.
* Bug fixing
No more crashes at least, fread seems to be broken though.
* fopen bugfixes
Behavior now matches LLE, at least in how LLE font seems to use it.
* Fix _Frprep
Seems like everything works now?
* Logging
Probably going to need to swap lseek and read logs to debug/trace later but this is for debugging.
* Remove alignment check
Seems I must've misinterpreted some of what Ghidra spat out, since libSceNgs2 is calling with size 1, nmemb 4.
* Reduce fseek, fread logs to trace
* Clang
* Remove checks for module version_major and version_minor
Following this rule broke linking for some libraries, and introduced extra effort needed to get some homebrew running.
* Clang
* Fix rebase
* Disable libSceSsl HLE
Real hardware uses a title workaround to determine if base libSceSsl is needed. Currently, this title workaround applies to absolutely nothing.
* Np library cleanup
Moved all Np libraries to a Np folder, created files for Np error codes and structs shared between the libraries, removed empty auto-generated stubs from NpCommon and NpManager, and more things of that nature.
Also implemented sceNpGetAccountCountry, since we already had sceNpGetAccountCountryA anyway.
* Cleanup NpManager signed_out checks
The PR that introduced the PSN signed in status reverted some of the changes I'd previously made to improve accuracy.
Also they missed sceNpHasSignedUp, which just uses an internal variant of sceNpGetState for it's own check.
* Copyright dates
* Move signin check to NpManager RegisterLib
Hardcoding it the way I did caused it to read signin status before config was read.
* Fix RegisterLib names
Not sure why these weren't adjusted yet, so I've adjusted them myself.
* Fix NpCommon exports
* Basic parameter validation in sceNpDeleteRequest and sceNpCreateRequest
* More thorough request logic
Created an enum to capture the current state of each request, using a vector to store them.
I've made 3 states, none represents deleted requests, active represents requests that were made, but haven't been used yet, and complete represents used requests (a request cannot be used for multiple functions).
* Functions
sceNpCheckAvailability, sceNpCheckAvailabilityA, sceNpCheckNpReachability, sceNpGetAccountDateOfBirth, sceNpGetAccountDateOfBirthA added.
* sceNpGetAccountLanguage, sceNpGetAccountLanguageA
* sceNpGetGamePresenceStatus, sceNpGetGamePresenceStatusA
Also reduced debug logging for functions with early signed out returns, since those should behave identically to real hardware so long as you keep PSN emulation disabled.
* Fix sceNpGetAccountLanguage parameters
Oops
* sceNpGetNpReachabilityState
* sceNpGetParentalControlInfo, sceNpGetParentalControlInfoA
* Move OrbisNpState back to np_manager.h
Until this sees use elsewhere, this doesn't need to be with np-wide things.
* Clang
* 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>
* texture_cache: Improve support for stencil reads
* libraries: Supress some spammy logs
* core: Support loading font libraries
* texture_cache: Remove assert
* 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>