honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

NES差し替えツールの進捗(続き

実装はほぼ終わってるんだけど、まだ細かいところが公開レベルになってない。
本体の使用感が少し悪いのと、
このツールで書き換えるときに内蔵NANDのバックアップを内部に取ってるのを
確実にそれで元に戻せるかどうかの検証とかが残ってる。
あとは、ドライバ導入用の解説Docを書かないとな…(zadigでlibusbKを入れる)

たぶん海外版NESClassicでは動かないので、検証用にだれか本体ください。
そのほか、実装してほしい機能とかあったら早めに教えてね。

どうやら世の中にはHACKROMとかいうジャンルがあるらしいのを知ったので、
その需要向けに使えるかどうかとかも確認してみる。

f:id:honeylab:20170103132945p:plain

f:id:honeylab:20170103133441p:plain

書き換え前に警告

f:id:honeylab:20170103133607j:plain

書き換えFWで起動した後も、電源投入後には必ず「改造品」で「権利の問題」があることを毎回表示するつもり。

 

ロックマンとそのHACKROMしか入ってないファミコンミニ

f:id:honeylab:20170103132810j:plain

 

ROM追加ツールの動作について

ツールを作るにあたって、やることを整理するために図にしてみました。

f:id:honeylab:20161230002948p:plain

初期状態では、上のような動作をしています。
起動後、簡単なrootfsで動作して、暗号化されたrootfsをマウントして、switch_rootします。
このrootfsのサブディレクトリにROMツリーがあります。
「/dev/nandbにある暗号化されたrootfsをマウントする」という情報が、Linuxから書き換えにくいNANDの先頭のほうにあるので、ここを触らず、マウントされるrootfsのほうを書き換えることにします。

 

※このページの内容は、私が公開していた書き換えツールに関係する資料で、
現在公開されているhakchiシリーズの動作とは若干異なります。※

f:id:honeylab:20161230002951p:plain

上記のように書き換えます。
この書き換えをするためのLinuxKernel+ファイルシステムを作るのがROM追加ツールになります。
NANDの後半部分はMTDとしてLinuxから普通に触れるようになっていて、
数百メガ余っているため、ここを使ってもともとのrootfsのバックアップも取っておきます。
これにより、内部からROMを吸い出すことなく、あとで戻せるようになります。

ROM追加ツールを使って上記のように太線で囲まれた部分であるrootfsとROMツリーを書き換えてやると、次からは普通に電源を入れるだけで、追加されたROMが認識できるようになるはずです。
NANDのバックアップからのリストアツールも同様に準備する予定です。

 

で、ちょっと気になってるんだけどbootimg内のkey fileってみんな一緒だよね…?
(誰もわからんて…)

とりあえずSDLのことは一旦忘れようw

すんなりうごけばそのままやったんだけど、いまいち動かなかったのですっぱりと諦めることにして他のアプローチを考える。
BeagleBoneみたいに、Ether + SerialがUSBで見えればあとはWebUIからいろいろできるだろ、とやってるんだけどいまいちうまく行かず…
rndisドライバとして見えて、ifconfigでIP振れるとこまで行ってるんだけど、どっちからもPINGが飛ばないんだよなぁ
何でだろう…
BeagleBoneとかは挿したら全部すぐうまく行くのに…

LinuxでSDLプログラミング

デフォルトのカーネルとユーザーランドのままでSDL2のプログラムなら
コントローラ入力を受け取りつつGUIが使えるはずなのではじめてのSDL2をしてみる。

f:id:honeylab:20161225200152p:plain

で、ローカルで動いたけど、これをクロスコンパイルするんじゃろ…
どうやるんじゃ…