rem: OpnPacket *opn_packet_unserialize(unsigned char *data, uint16_t size)
add: OpnPacket *opn_packet_unserialize(uint8_t *data, uint16_t size)
context: OpnPacket *opn_packet_unserialize(unsigned char *data, uint16_t size){	OpnPacket *packet;	assert(size >= OPN_PACKET_HEADER_LEN);	if (!(packet = malloc(sizeof(OpnPacket))))		return NULL;	memset(packet, 0, sizeof(OpnPacket));	/* size and type are always in little-endian format */	memcpy(&packet->data_size, data, 2);	packet->data_size = BSWAP16(packet->data_size);	memcpy(&packet->cmd, &data[2], 2);	packet->cmd = BSWAP16(packet->cmd);		if ((size -= OPN_PACKET_HEADER_LEN)) {		if (!(packet->data = malloc(size + 1))) {			free(packet);			return NULL;		}				memcpy(packet->data, &data[OPN_PACKET_HEADER_LEN], size);		packet->data[size] = 0;	}	return packet;}