uplay_r2.dll speaks the same UplayDll.proto as uplay_r1.dll, but its InitReq
names the subsystems the game uses (fields 4 to 11) and its ApiContext only
creates objects for those. It copies gameInstall and storage into their
objects without checking for them, so the gameInstall droiddeck-upc always
sent crashed Prince of Persia: The Lost Crown (6145), which asks for overlay,
product and store only: an access violation reading 0x68 in
uplay_r264.dll+0xaca2 two seconds after the session.
- When the request names subsystems, gameInstall (14) is sent only with
subSystemInstall and storage (17) only with subSystemStorage, and an empty
multiplayerInit (20) is added. Requests that name none keep the old session.
- streamingReq (27) is answered: the streaming type is None, other streaming
queries are not found.
- The log records the subsystems each init asked for.
Co-authored-by: Kurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com>