Player initialisation/detection

This describes how the NEX is deteted and initilised.

Basic sequence

To initialise the player, a sequence of bytes are sent to and receved from the player. The sequence is: The low nibble of the high byte of the result is 0x0F if successful. Any other value represents failure. The low byte of the result is the status code, with 0x055 representing "OK".
function InitPlayer1 : word;  // 00409F30
var
  TmpByte : byte;
begin
  SendByte08($C0);
  TmpByte := RecvByte02;
  SendByte08($D0);
  SendByte02($85);
  SendByte08($D0);
  SendByte02($80);
  SendByte08($C8);
  Result := (RecvByte02 shl 8) or (TmpByte);
end;