Migration services: Difference between revisions

No edit summary
Line 365: Line 365:
** Updates state and returns 0.
** Updates state and returns 0.
* Calls a vfunc. When the ret is true:
* Calls a vfunc. When the ret is true:
** Calls a func, which receives [[#ClientProfileNetwork|ClientProfileNetwork]] and sends the response. Also calls a func to process the received data.
** Calls a func, which receives [[#SendClientProfile|SendClientProfile]] and sends the response. Also calls a func to process the received data.
** Receives [[#Data|Data]] message 0x10 and sends the response.
** Receives [[#Data|Data]] message 0x10 and sends the response.
* Otherwise when the vfunc ret is false:
* Otherwise when the vfunc ret is false:
Line 389: Line 389:
No input, returns an output u32.
No input, returns an output u32.


This loads a field from state.
This loads a field from state. This originates from +0x100 in the [[#SendClientProfile|SendClientProfile]] request.


=== Cmd203 ===
=== Cmd203 ===
Line 498: Line 498:
** A func is called which copies 0x10-bytes from entryptr+0x10+0x26C into state.
** A func is called which copies 0x10-bytes from entryptr+0x10+0x26C into state.
* Clears stack. Calls a func.
* Clears stack. Calls a func.
* Calls a func. This sends [[#ClientProfileNetwork|ClientProfileNetwork]], then receives network data.
* Calls a func. This sends [[#SendClientProfile|SendClientProfile]], then receives network data.
* Calls a vfunc.
* Calls a vfunc.
* When ret is true:
* When ret is true:
Line 1,214: Line 1,214:
| 0x10 ||  
| 0x10 ||  
|-
|-
| 0x11 || [[#ClientProfileNetwork|ClientProfileNetwork]]
| 0x11 || [[#SendClientProfile|SendClientProfile]]
|-
|-
| 0x12 ||  
| 0x12 ||  
Line 1,232: Line 1,232:


==== 0x10 ====
==== 0x10 ====
This is sent by the client following the last vfunc call in [[#ConnectByServerIdAsync|ConnectByServerIdAsync]] where the bool ret is checked, with both true/false blocks. This follows [[#ClientProfileNetwork|ClientProfileNetwork]].
This is sent by the client following the last vfunc call in [[#ConnectByServerIdAsync|ConnectByServerIdAsync]] where the bool ret is checked, with both true/false blocks. This follows [[#SendClientProfile|SendClientProfile]].


The request only contains the header.
The request only contains the header.
Line 1,247: Line 1,247:
When the aforementioned vfunc returned true, the client only uses the response data for verifying that various fields match state. Otherwise when false the client uses this data.
When the aforementioned vfunc returned true, the client only uses the response data for verifying that various fields match state. Otherwise when false the client uses this data.


==== ClientProfileNetwork ====
==== SendClientProfile ====
Request payload:
Request payload:


Line 1,258: Line 1,258:
| 0x100 || 0x4 ||  
| 0x100 || 0x4 ||  
|-
|-
| 0x100 || 0x4 ||  
| 0x104 || 0x4 ||  
|}
|}