Conversation
34d2eb0 to
5eb71fc
Compare
StevenMiller123
left a comment
There was a problem hiding this comment.
A couple important issues here, I also see a distinct lack of proper "isPSNSignedIn" checks too.
src/core/libraries/np/np_score.cpp
Outdated
| OrbisNpScoreGameInfo* gameInfos, u64 gameInfosBytes, u64 ranksLen, | ||
| Rtc::OrbisRtcTick* lastUpdate, OrbisNpScoreRankNumber* totalRecords, void* option) { | ||
| // at least in 9.00 it's identical A vs non-A | ||
| return sceNpScoreGetRankingByRangeAsync(reqId, scoreBoardId, startRank, ranks, ranksBytes, |
There was a problem hiding this comment.
Usually these "A" variants have different inputs. Given the inputs to this function, I believe you should double check to see if sceNpScoreGetRankingByRangeAsync uses the same OrbisNpScoreRankDataA input for ranks. I doubt it does.
| static_assert(sizeof(OrbisNpScorePlayerRankDataA) == 0x98); | ||
|
|
||
| struct OrbisNpScoreRankData { | ||
| OrbisNpOnlineId onlineId; |
There was a problem hiding this comment.
Based on the information I have, this struct uses an OrbisNpId, not OrbisNpOnlineId.
|
I've probably got more that uses this library, but here are logs from two easy to check titles. Puyo Puyo Tetris and WE ARE DOOMED log a couple stubs. |
| return PackReqId(libCtxId, req); | ||
| } | ||
|
|
||
| int PS4_SYSV_ABI sceNpScoreCreateTitleCtx() { |
There was a problem hiding this comment.
Based on decomp, this should be
int PS4_SYSV_ABI sceNpScoreCreateTitleCtx(OrbisNpCommunicationId* np_comm_id, OrbisNpCommunicationPassphrase* np_comm_pass, OrbisNpId* np_id)
Should be relatively easy to handle if you want?
There was a problem hiding this comment.
I don't really see a point if that function is never being called in retail games 🤔
There was a problem hiding this comment.
I mean, there's no reason not to 😄
Functions that puyo used in my testing are implemented. The general idea is to access the scoring server over HTTP, and as with matching, the server is in the works.