RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.33k stars 1.91k forks source link

Ridge Racer 7 [BCES00009] - Scoreboards don't work due to a size mismatch in `SceNpScoreRankData` #15794

Closed CookiePLMonster closed 2 months ago

CookiePLMonster commented 2 months ago

Quick summary

Ridge Racer 7 refuses to poll scoreboards from RPCN.

sceNpScoreGetRankingByRange and similar functions accept parameters that are supposed to be equal to (arrayNum * sizeof(X)), where X is the appropriate SceNp structure. In the case of RR7, rankArraySize is mismatched - SceNpScoreRankData is 128 bytes big, but the value passed by the game expects 120 bytes. Considering that RR7 was a launch title, this strongly hints that this structure used to be smaller and got extended in an SDK update.

Details

No response

Attach a log file

·W 0:00:36.446407 {PPU[0x100000d] Thread (ScoreRW) [HLE:0x004f1994, LR:0x00086250]} sceNp: sceNpScoreCreateTransactionCtx(titleCtxId=8193)
·W 0:00:36.446551 {PPU[0x100000d] Thread (ScoreRW) [HLE:0x004f1a14, LR:0x00086ef0]} sceNp: sceNpScoreGetRankingByRange(transId=4104, boardId=352, startSerialRank=1, rankArray=*0x10489828, rankArraySize=6000, commentArray=*0x1048af98, commentArraySize=3200, infoArray=*0x1048bc18, infoArraySize=3200, arrayNum=50, lastSortDate=*0x1042cf98, totalRecord=*0x1042cfa0, option=*0x0)
·E 0:00:36.446625 {PPU[0x100000d] Thread (ScoreRW) [HLE:0x004f1a14, LR:0x00086ef0]} SYS: 'sceNpScoreGetRankingByRange' failed with 0x8002a1ac : SCE_NP_COMMUNITY_ERROR_INVALID_ALIGNMENT [3]
·W 0:00:36.446654 {PPU[0x100000d] Thread (ScoreRW) [HLE:0x004f199c, LR:0x00086328]} sceNp: sceNpScoreDestroyTransactionCtx(transId=4104)
·W 0:00:36.446683 {PPU[0x100000d] Thread (ScoreRW) [HLE:0x004f1804, LR:0x000877ac]} sceNp: sceNpManagerGetNetworkTime(pTick=*0x1042cf98)
·W 0:00:36.454995 {PPU[0x1000000] Thread (main_thread) [HLE:0x004f025c, LR:0x002367bc]} cellSysutil: cellMsgDialogAbort()
·W 0:00:36.455904 {Overlay Input Thread} Input: SetIntercepted: pads=0, keyboards=0, mice=0, src=run_input_loop)
·U 0:00:36.488005 {PPU[0x1000000] Thread (main_thread) [HLE:0x004f021c, LR:0x002366f0]} cellSysutil TODO: cellMsgDialogOpen(type=0x1, msgString=“Failed to download Rankings.”, callback=*0x4d9f88, userData=*0x1054cc50, extParam=*0x0)
·W 0:00:36.488123 {PPU[0x1000000] Thread (main_thread) [HLE:0x004f021c, LR:0x002366f0]} cellSysutil: cellMsgDialogOpen2(type=0x1, msgString=“Failed to download Rankings.”, callback=*0x4d9f88, userData=*0x1054cc50, extParam=*0x0)
·W 0:00:36.488165 {PPU[0x1000000] Thread (main_thread) [HLE:0x004f021c, LR:0x002366f0]} cellSysutil: Opening message dialog with message: “Failed to download Rankings.”
·! 0:00:36.488206 {PPU[0x1000000] Thread (main_thread) [HLE:0x004f021c, LR:0x002366f0]} cellSysutil: open_msg_dialog(is_blocking=0, type=0x1, msgString=“Failed to download Rankings.”, callback=*0x4d9f88, userData=*0x1054cc50, extParam=*0x0, return_code=*0x0)

Attach capture files for visual issues

No response

System configuration

No response

Other details

No response

CookiePLMonster commented 2 months ago

Also affects Gran Turismo HD Concept (NPUA80019).