Hatena::Groupugomemo

bricklifeの日記

2009-01-07

うごメモファイル解析

16:49 | うごメモファイル解析 - bricklifeの日記 を含むブックマーク はてなブックマーク - うごメモファイル解析 - bricklifeの日記

ドット絵やりすぎたせいか真面目に目の調子が若干悪いので(笑)、気分転換にppmファイルの解析をスタートしました。ファイルをSDカード経由でPCに持ってくるとどれがなんだかわからなくて困っていたので、簡単なビューアでも作れないかなぁ、と。

すでにどのデータがどこに格納されているかはほぼわかって、あとはページデータと音声データのフォーマットがわかれば読み込みはできそうです。原作者だけでなく一つ前の作者まで保存していることがわかったり、更新日時は2000年以前には対応していないことがわかったりとなかなか興味深いです。各データの格納フォーマットがあんまりきれいじゃないんだけど、それには携帯ゲーム機器向けの効率化ノウハウが詰まっている気がするようなしないような。

ページデータは差分みたいな方式で圧縮格納されている感じで、理解するにはもうしばらく時間がかかりそう。DSi上で使うサムネイルも格納されていて、こちらはほぼそのまま格納されているのでデコードはわりと簡単でした。

音声データはBGM、SEとも8kbps32kbpsで保存されているみたいなんだけど、コーデックはよくわからず。適当に再生してみたらノイズの中になんとなく音が聞こえるくらいはできたので、もうちょっと調べればなんとかなるかなぁ。完全にデコードできたとしても、元が8kbps32kbpsなので音質はあまりよくなさそうです。

というわけで読み込みはなんとかなりそうなんですが、ppmファイルを書き出そうとすると結構大変そうです。ファイルの最後にでっかいハッシュみたいなのがあって、どうやらここでファイルの改ざんチェックをしている模様。うごメモ上で別保存するだけでもこの部分がコロコロ変わるので、ちょっと手に負えない感じです。ハッシュが合わないと問答無用でファイル削除されるのも萎える…。

とりあえず現状の解析成果でもサムネイルやページ数、作者などのデータは抽出できるので、実験でppmファイルの内容確認サービスでも立ち上げてみます。

なんてことをはてなのサービス上で書いても大丈夫なんでしょうか?w

bricklifebricklife2009/01/10 03:55ああ、16進数の世界にずっといたせいか、音声データのビットレート間違えました。
8kbpsじゃなくて、0x8000bps=32kbpsでした。

atsu0504atsu05042012/01/26 14:44画像データと音楽データとバラバラに入ってるのかなと思い、
SDカードを見てみたらPPMにすべて集約されてることが判明して諦めた。
バイナリとか読んでも分からないし。

でも解析とかするの面白そうですね。
僕も勉強してそういうのやってみたいです

トラックバック - http://ugomemo.g.hatena.ne.jp/bricklife/20090107