09/08/24 05:09:12
569 名前:ツール・ド・名無しさん 投稿日:2009/08/23(日) 20:52:08 ???
要するにUPDATA.GCDの中にあるファームウェア本体は「bd 02」で区切られたデータの中に格納されており、
ひとつの区切りは「0xff00」の大きさになっているということですから、
GUPDATA.GCDの中にあるファームウェア本体の先頭アドレス「0x5db23」がわからなくても、
バイナリエディタで先頭から「bd 02 00 ff」を検索し、
見つかったアドレスをunp2.exeのパラメータとして与えてやればいいことになります。
もしGUPDATA.GCDのバージョンがVer. 2.8より上がった場合、
unp2.exe 5db23 02bd ・・・だと動作しない可能性大ですね。
しかし「bd 02 00 ff」という文字列で検索してパラメータを変更してやれば、
今後のバージョンアップにも対応可能となります。
これを確かめるためにOregon300の英語版ファームウェアV3.01(β版)で試してみました。
先頭から「bd 02 00 ff」を検索するとアドレス「0x5e433」にあります。
次を検索するとそれに「0xff04」を足したアドレス「0x6e337」にありました。
よってもし英語版ファームウェアでGCDファイルからRGNファイルを作るのならば、
unp2.exe 5e433 02bd ・・・と指定すればいいですね。
ブート部分を取り出す「unp2.exe 1021 0008 GUPDATE.GCD boot.bin」も同じ理屈でした。
アドレス「0x1021」をバイナリエディタで参照すると
データは「08 00 00 ff」となっています。
そしてアドレス「0x1021」に「0xff04」を足した「0x10f25」にも「08 00 00 ff」があります。
アドレス「0x1021」は台湾版、英語版ともに同一でしたので
頻繁に変更されるアドレスではなさそうですが、
新しいファームウェアからブート部分を取り出す時は
一度「08 00 00 ff」で検索してアドレスを確認しておけば完璧ですね。
これがわかればファームウェアがアップデートされても安心です。