概要
上海の無名店で買った携帯ゲーム機「R36S」に、CFWのROCKNIXを入れようとした記録。
結論としては、買った端末はROCKNIXが対応しているR36Sとは別物のクローン機で、起動させられなかった。ついでに、純正ファームではセーブ機能も動いていないことが分かった。
追記: セーブは動く。付属説明書のホットキー表記が誤りで、正しくは FN+A でセーブ、FN+B でロード。
環境
- R36S(クローン機、上海で購入)
- ROCKNIX
ROCKNIX-RK3326.aarch64-20260901-a.img.gz - 付属の純正SDカードをラズパイに刺して分析
ちなみにSDカードは64GB表記だったが、刺してみると15GB程度しか認識していなかった。本当の容量は調べていないから分からない

やったこと
元のSDカードをバックアップしてから、ROCKNIXのイメージをddで書き込んだ。書き込み自体は正常に完了し、fsckでも問題なし。
ところが本体に挿すと、赤い画面で以下の警告が出て起動しない。
TF card is damaged. Please repair or replace
ROCKNIXのロゴもカーネルログも出ないので、カーネルまで到達していない。extlinux.confの差し替え、パネル用オーバーレイの総当たり、別のカードやスロットなども試したが変化なし。
原因
起動する元カードとROCKNIXのカードを比べたところ、以下の違いがあった。
| 項目 | 元カード | ROCKNIX |
|---|---|---|
| MBR | 無し(0xDEADBEEFで埋まっている) | 正常 |
| FAT32の開始位置 | 1 MiB | 16 MiB |
元カードのMBRは一見壊れているように見えるが、これがこの機種の正常な状態だった。
どうやら本体の内蔵ブートローダはパーティションテーブルを読まず、1 MiB地点のファイルシステムを決め打ちで探しているらしい。ROCKNIXは16 MiB地点から始まるので、何も見つからず「damaged」と判定されると推測される。
追記(真の原因): この端末は GB350 / SF3000 系のクローンで、MIPS系SoC を積んでいる。本物のR36SはARM Cortexなので、ARM向けにビルドされたROCKNIX / ArkOS / JELOS / EmuELEC は1命令も実行できない。パーティション位置の問題ではなく、CPUアーキテクチャの不一致だった。1 MiB地点に置き直しても動かない。
おまけ:純正ファームの中身とセーブ問題
元カードは約15.6GBの単一FAT32で、ROMとルートファイルシステムが同居していた。中身はBuildroot 2021.05 + Rockchipの4.4系カーネルで、ArkOSやROCKNIXとは完全に別系統の作り。
セーブ用ディレクトリはあるものの、中のファイルのタイムスタンプは全て1980-01-01(工場出荷時のまま)。9月に買ってから一度もSDカードに書き込まれていないので、純正ファームはカードを読み取り専用で使っていて、セーブが機能しないと思われる。
追記(誤りだった): タイムスタンプが常に 1980-01-01 なのは、この端末にRTCが無く時刻を保持できないから。書き込まれていないのではなく、日付で新旧を判定できないだけだった。
セーブが効かなかった本当の理由は、付属説明書のキー表が別機種のものだったこと。実際の割り当ては
cubegm/setting.xmlに書かれている。<gamemenuhotkey>SELECT+START</gamemenuhotkey> <quicksavehotkey>FN+A</quicksavehotkey> <quickloadhotkey>FN+B</quickloadhotkey> <quicksnaphotkey>FN+START</quicksnaphotkey> <savestatehotkey>DISABLE</savestatehotkey> <memorysearchhotkey>R1+START</memorysearchhotkey>FN+A / FN+B で実機のセーブ・ロードとも成功した。
まとめ
- 「R36S」という名前で売られていても、中身が別物の個体がある
- 壊れて見えるMBRが、その機種にとっては正常なこともある
cubegmがあれば GB350 系クローン。ARM向けCFWは動かない- 付属説明書のキー表は信用しない。
setting.xmlが一次情報 - RTCの無い機器では、ファイルのタイムスタンプで新旧を判定できない
素人なりの見解はこんな感じ。Discordコミュニティで同様の実績がないか確認しているけど、回答は期待していない。 これだから中華は楽しいんだ