Thanks again for the advice — it helped a lot. 👍
I stopped digging into the generic RX system and followed only the exact path you suggested:
Code:
request
→ rqid
→ pending response
→ callback/context
→ next command
That immediately gave us much better results.
Current confirmed PES 2018 flow:
Code:
STUN
→ GateInfo
→ CMD_GET_SVRLIST
→ CMD_GET_URLLIST
→ CMD_GET_SVRVERSION
→ CMD_GET_SVRTIME
→ disconnect / reconnect
→ CMD_GET_URLLIST
→ CMD_GET_GLOBALINFOTITLELIST
Your PES 2021 information about the empty URL list was especially useful.
This response:
Code:
{
"msgid":"CMD_GET_URLLIST",
"rqid":2,
"result":"NOERR",
"url_num":0,
"ulist":[]
}
was accepted by PES 2018 and the client immediately continued to:
Code:
CMD_GET_SVRVERSION
CMD_GET_SVRTIME
So that was a very useful lead. 🙂
We also found how PES18 tracks responses internally.
Each pending request stores:
Code:
msgid
rqid
connection slot
context
timestamp
and the client matches the incoming response using BOTH:
The current first unsupported command is now:
Code:
CMD_GET_GLOBALINFOTITLELIST
Request:
Code:
{
"msgid":"CMD_GET_GLOBALINFOTITLELIST",
"rqid":7,
"svrtype":"GATE",
"client":"NETCLIENT",
"lang":"BR",
"region":"REGION_EU",
"package_type":"DEFAULT",
"kind":"DEFAULT"
}
If we don't answer it, PES waits roughly 50 seconds and disconnects.
We also found another interesting issue while parsing the server-list response: PES eventually crashes while processing an item from a nested list. We are currently checking whether PES18 expects nested list entries as:
or something similar to what you explained for PES21 URLLIST:
Code:
ARRAY -> BIN(serialized MessagePack MAP)
So at the moment our two main questions are very small:
1. In PES 2021, do entries inside
also use BIN containing another serialized MessagePack map, or is that special only to
?
2. Do you remember the minimum successful response structure for:
Code:
CMD_GET_GLOBALINFOTITLELIST
Even just the field names / whether an empty list is accepted would save us a lot of time.
And if there is another command or bootstrap detail you think we should focus on next, I'd really appreciate the hint.
Your previous advice definitely moved the PES18 project forward. Thanks again!