Difference between revisions of "Network Protocol/RACEHEADER 2"

From Custom Mario Kart
Jump to navigation Jump to search
m
Line 7: Line 7:
  
 
<pre>
 
<pre>
     d->end_time[0] = be32(src+ 0x006 -1) >> 5 & 0x0007FFFFu;
+
     d->end_time[0] = be32(src+ 0x005 )   >> 5 & 0x003FFFFFu;
     d->end_time[1] = be32(src+ 0x00a )  >> 6 & 0x0007FFFFu;
+
     d->end_time[1] = be32(src+ 0x00a )  >> 6 & 0x003FFFFFu;
 
     d->player_idx[0] =      src[ 0x010 ];
 
     d->player_idx[0] =      src[ 0x010 ];
 
     d->player_idx[1] =      src[ 0x011 ];
 
     d->player_idx[1] =      src[ 0x011 ];
Line 21: Line 21:
 
  ! type name N offset bits comment
 
  ! type name N offset bits comment
 
  !------------------------------------------------------------------------------------------
 
  !------------------------------------------------------------------------------------------
   u32  *end_time 2  -  -  - the end time of each user, max. 63:59.999
+
   u32  *end_time 2  -  -  - the end time of each user, max is 63:59.999
   > *end_time[0] -  06 0 19
+
   > *end_time[0] -  05 5 22
   > *end_time[1] -  0a  7 19
+
   > *end_time[1] -  0a  4 22
 
   u8    player_idx 2  10  0  8 race slot of both players
 
   u8    player_idx 2  10  0  8 race slot of both players
 
   u16  finish_timer -  16  0 16 time since leader finish, 59.94 Hz
 
   u16  finish_timer -  16  0 16 time since leader finish, 59.94 Hz

Revision as of 14:16, 22 September 2019

This pages is related to MKWii Network Protocol and describes the record type RACEHEADER_2.

RACEHEADRER_2 is not present during being in a live view (but RACEHEADER_1 is).

Here is the record read function in GNU C notation. The function notation is used, because some values are bit packed. This code was created by a code generator.

    d->end_time[0]	= be32(src+ 0x005 )   >> 5 & 0x003FFFFFu;
    d->end_time[1]	= be32(src+ 0x00a )   >> 6 & 0x003FFFFFu;
    d->player_idx[0]	=      src[ 0x010 ];
    d->player_idx[1]	=      src[ 0x011 ];
    d->finish_timer	= be16(src+ 0x016 );
    return 0x30; // last analyzed offset + 1

And here the code of a self written code generator script. The script creates data structures and the read function above. The byte offset is hex, all others are decimal numbers.

 !------------------------------------------------------------------------------------------
 !                        byte+bit
 ! type	name		 N offset bits	comment
 !------------------------------------------------------------------------------------------
   u32   *end_time	 2   -  -  -	the end time of each user, max is 63:59.999
   >	 *end_time[0]	 -  05  5 22
   >	 *end_time[1]	 -  0a  4 22
   u8    player_idx	 2  10  0  8	race slot of both players
   u16   finish_timer	 -  16  0 16	time since leader finish, 59.94 Hz
 !------------------------------------------------------------------------------------------


Template:MKWii Network Protocol