英語版のラブベリで一番厄介なエラーを回避する方法

英語版のラブベリを動かすうえで障壁になるものが「マネジメントチップ」です。

 

 

 

これは、新品のカードを1カートン(800枚)買った時に付いてくるチップで、これを使わなければ"RFID NOT READY"というエラーが出て、遊ぶことができません。

 

 

 

これをもし入手出来ても、800回遊んでしまったら、もう動かすことはできません。

 

 

 

もし継続的に入手出来ても、遊ぶためにかかるランニングコストが高すぎます。

 

 

 

ちなみに、チップは他の機器で読み込むことはできず、複製したとしても、同じシリアルで残数が増えていることを検知すると、エラーで動きません。

 

 

 

で、英語版の恐竜キングで動かせるマネジメントチップエミュレータを海外の方が先々月(2023年9月)作った方が現れました。

 

 

これをダウンロードし、Arduino MEGAというマイコンボードに入れることで、英語版の恐竜キングを動かすことができます。

 

 

 

800回遊んだ後も自動でシリアルを変えて残数を800に戻してくれるスグレモノです。

 

 

 

しかし、このままではラブベリに使うことができません。

 

 

 

これのchip.cppとhandleDebug.cppのserialをラブベリのチップに書き換え、respondの52行目を

            SerialController::write(response, 8);
            SerialController::write(new uint8_t[120]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA}, 120);

に置き換え。

 

 

 

167行目を

void* readSerial[4] = {
    EXPECT(0x5E, &readSerial[1]),
    EXPECT(0x00, &readSerial[2]),
    (uint8_t input) -> void** {
        if(input >= 0x20 && input <= 0x2F){
            SerialController::write(0x0A);
            return &readSerial[3];
        }
        return NO_NEXT;
    },
   
(uint8_t input) -> void** {
        if(input == 0x4E){
            SerialController::write(0x0A);
            uint8_t* response;
            int len = getSerial0(&response);
            SerialController::write(response, len);
            return &serialEcho[0];
        }
        return NO_NEXT;
    },
};

に置き換え。

 

 

 

183行目を

void* initialise[4] = {
    EXPECT(0x5E, &initialise[1]),
    EXPECT(0x00, &initialise[2]),
    [](uint8_t input) -> void** {
        if(input >= 0x20 && input <= 0x2F){
            SerialController::write(0x6A);
            return &initialise[3];
        }
        return NO_NEXT;
    },
    RESPOND(0x4E, 0xCA, &readSerial[0]),
};

に置き換え。

 

 

 

置き換えたら、Arduino IDEでVerify(チェックマーク)→Upload(→ボタン)した後に、シリアルモニタでsetupEEPROMと打ってエンターすると、初期化できます。

 

 

 

追記:マネジメントチップを読み取る機械(RFID READ/WRITER)のアンテナゲインが20~2Fなので、この範囲のアンテナゲインすべてで動作するようにしています。恐竜は29で、ラブベリは27なのですが、27のみに応答するようにしても動かなかったので、このようにしています。また、筐体とRFID READ/WRITERの間の通信は暗号化されていません。PCに繋いだ状態でArduino IDEを開き、起動させると通信の様子が見られます。

 

 

 

これで筐体に繋ぐと、英語版のラブベリが無制限に遊べます!!!

 

 

 

繋ぐ場所は、チップリーダーの裏についている小さい基板です。チップリーダーの代わりにArduino MEGAを繋ぐといった感じです。繋ぐ場所は左から赤: Vin 緑: GND 黄色: 18 (TX1) 黒: 19(RX1) 白は何もつながなくて大丈夫です。

 

 

 

ただ、私の環境ではPCにArduino MEGAをつなぐ→PC上でArtuino IDE起動→筐体にもArduino MEGAをつなぐといった状態でないとうまく動きません。なぜかはわかりません。

 

 

 

英語版のカードが無くても、私が配布しているExcelファイルからバーコードを作れば、取りあえず遊ぶことができます。

 

 

 

Arduino MEGAの使い方とかはchatGPTさんに訊いてください。マジで丁寧に教えてくれるので感動しました。

 

 

 

こちらのアカウントでは、ラブベリのバーコードや攻略の参考になるデータ(ミラフト時のラッキーカラーや服がどっちのキャラのものか、ブランドなど)をまとめたExcelファイルを無料で配布しています。

ダウンロードの際、パスワードが必要となります。知りたい方はフォローの上、リプください。DMにパスワード送ります。

ラブベリのカード裏にも同様のことが書いてありますが、「個人で楽しむなどの場合を除き、カードやバーコードを無断複製しないで」ください。

 

アカウントはコチラ↓

https://twitter.com/kamui_kynn