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 [[# | ** 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 [[# | * 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 || [[# | | 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 [[# | 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. | ||
==== | ==== SendClientProfile ==== | ||
Request payload: | Request payload: | ||
| Line 1,258: | Line 1,258: | ||
| 0x100 || 0x4 || | | 0x100 || 0x4 || | ||
|- | |- | ||
| | | 0x104 || 0x4 || | ||
|} | |} | ||