* Implement sceNpCheckPlus
* Rework request storage
We'll need to store more data to "fake" async requests.
* sceNpAbortRequest
Pretty simple to add, so might as well.
* Formatting changes
* Async request logic
There's probably some things I'm getting wrong for cases where PSN is connected, but for reasons that should be pretty obvious, learning how that all works is a little more involved than the PSN disconnected results.
* Add missing error check
* Update np_manager.cpp
* Add a mutex to prevent concurrent reads/writes to g_requests
I imagine multi-threading is a lot more commonly used with the async functions, though I haven't tested enough to know.
* Update np_manager.h
* Move request creation to separate internal function
* Oops
Not sure how that got missed, but good thing I spotted it
* Oops
* 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