sw_read_packet
i = sw_read_packet(sw->gameport, buf, sw->length, 0);
i = sw_read_packet(sw->gameport, buf, SW_LENGTH, 0); /* Read normal data packet */
sw_read_packet(sw->gameport, buf, SW_LENGTH, i); /* Read ID packet, this initializes the stick */
i = sw_read_packet(gameport, buf, SW_LENGTH, 0); /* Read normal packet */
i = sw_read_packet(gameport, buf, SW_LENGTH, 0); /* Retry reading packet */
j = sw_read_packet(gameport, idbuf, SW_LENGTH, i); /* Read ID. This initializes the stick */
i = sw_read_packet(gameport, buf, SW_LENGTH, 0); /* Retry reading packet */
j = sw_read_packet(gameport, idbuf, SW_LENGTH, i); /* Retry reading ID */
i = sw_read_packet(gameport, buf, SW_LENGTH, 0); /* Read data packet */