ここに書いてあった文章は間違いだらけだったのでいったん消しました…
ツールの処理と書いてあることが違っていて、かなり混乱させてしまったようで、申し訳ありません。

ツールは使うかもしれないのでそのまま置いておきます

ツール→  現在バグ発生中で、2060年以降の日付で検索すると間違った値が出てくるので、使うときは注意して下さい(おひるごはん様より指摘をいただきました)

ノートンのSONARという機能が反応するかもしれないですが、作りたてのソフトでまだ誰も使ってない状態だとよく誤検出するそうです。


これだけ貼ってもあまり意味がないですが、ツール内での処理を下に貼り付けてみます…
初心者なので、変な書き方してて見苦しいのはご容赦ください

void myMessageBuilder::buildMessage()
{
    memset(msgbuf,0,100);
    uinttemp = 0;
    int p = 0;
    m.clear();

    //1. nazo
    memcpy(&msgbuf[p],this->param.unknownAddr,4*5);
    p += 4*5;

    //2. ( Vertical Counter? << 0x10 ) | Timer0?
    uinttemp = 0;
    uinttemp = ( this->param.VCount << 0x10 ) | this->param.Timer0;
    memcpy(&msgbuf[p],&uinttemp,4);
    p += 4;

    //3. MACアドレス
    uinttemp = param.MACMAC[0];
    memcpy(&msgbuf[p],&uinttemp,4);
    p += 4;

    //4. ( MACアドレス下位 ^ フレーム? ) ^ Geometry Engine Status Register?
    uinttemp = ( param.MACMAC[1] ^ this->param.Frame ) ^ this->param.GxStats;
    memcpy(&msgbuf[p],&uinttemp,4);
    p += 4;

    //5. BCD表記の 年 月 日 曜日
    //6. BCD表記 の時間 分 秒
    uinttemp = 0;
    memcpy(&msgbuf[p],this->param.BCDclock,8);
    p += 8;

    //7. 謎の値0
    memcpy(&msgbuf[p],&this->param.unknownValue_0_a,4);
    p += 4;

    //8. 謎の値0
    memcpy(&msgbuf[p],&this->param.unknownValue_0_b,4);
    p += 4;

    //9. ( キー入力? 何も押して無いと0x03FF ^ 謎の値0x2C00 ) | 謎の値0
    uinttemp = 0;
    uinttemp = ( this->param.keyInput ^ this->param.unknownValue_2C00 ) | this->param.unknownValue_0_c;
    memcpy(&msgbuf[p],&uinttemp,4);

    this->m.append(msgbuf,52);
}



void myMessageParamator::setKey(DSKEY keycode)
{
    this->keyInput = keycode ^ 0x000003FF;
}

void myMessageParamator::setUnknownAddrBase(unsigned int a)
{
    this->unknownAddr[0] = a;
    this->unknownAddr[1] = a + 0xFC;
    this->unknownAddr[2] = a + 0xFC;
    this->unknownAddr[3] = a + 0x148;
    this->unknownAddr[4] = a + 0x148;
}

void myMessageParamator::setMacAddr(quint64 a)
{
    //tekitou
    unsigned char buf[8];
    unsigned char swp[8];
    memcpy(&buf,&a,sizeof(quint64));

    swp[0] = buf[7];
    swp[1] = buf[6];
    swp[2] = buf[1];
    swp[3] = buf[0];
    swp[4] = buf[5];
    swp[5] = buf[4];
    swp[6] = buf[3];
    swp[7] = buf[2];

    memcpy(&this->MACMAC[0],&swp[0],4);
    memcpy(&this->MACMAC[1],&swp[4],4);

}

void myMessageParamator::setDate(int YY, int MM, int DD, int WW, INPUTTYPE type)
{
    memset(&this->BCDclock,0,8);

    if(type == NUMINPUT)
    {
        if(YY >= 2000)YY-= 2000;
        YY = DecToBcd(YY);
        MM = DecToBcd(MM);
        DD = DecToBcd(DD);
    }

    if(YY >= 0x2000)YY -= 0x2000;
    this->BCDclock[0] = YY;
    this->BCDclock[1] = MM;
    this->BCDclock[2] = DD;

    date.setYMD(BcdToDec(YY)+2000,BcdToDec(MM),BcdToDec(DD));
    WW = date.dayOfWeek();

    if(WW==7)WW=0;
    this->BCDclock[3] = WW;

}

void myMessageParamator::setTime(int HH, int NN, int SS, INPUTTYPE type)
{

    if(type == NUMINPUT)
    {
        HH = DecToBcd(HH);
        NN = DecToBcd(NN);
        SS = DecToBcd(SS);
    }

    HH &= 0x3F;

    this->BCDclock[4] = HH;
    this->BCDclock[5] = NN;
    this->BCDclock[6] = SS;  

    time.setHMS(BcdToDec(HH),BcdToDec(NN),BcdToDec(SS));

    if(this->BCDclock[4] >= 0x12)this->BCDclock[4] += 0x40;

}