「ファームウェアの改変方法」の編集履歴(バックアップ)一覧はこちら

ファームウェアの改変方法」(2009/03/05 (木) 17:39:51) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#contents *ファームウェアの改変方法 [#fa8907f9] **目的 [#a4ef51b6] このページでは吸い出したファームウェアをパソコン上で書き換える方法を説明します。~ 次のような場合に、以下の手順に従って書き換えることが可能です。 -言語設定を日本語以外にしたまま吸い出してしまった -名前を後から変えたくなった -誕生日の設定を間違えていた 尚、このページは[[こちら>http://setya5785.wordpress.com/2008/01/02/nds-firmware-editing-menggunakan-hex-editor/]]のサイトの情報を元に書きました。~ **必要なもの [#cff5b3db] -ファームウェアファイル (firmware.bin) -バイナリエディタ ([[Stirling>http://www.vector.co.jp/soft/dl/win95/util/se079072.html]] がオススメ) -CRC16(Modbus) を算出出来る術(今回は[[こちら>http://www.lammertbies.nl/comm/info/crc-calculation.html]]のオンラインサイト) **方法 [#t8c1cea4] ***変更手順 [#qad376de] 例として、言語設定を書き換える方法で説明します。 +バイナリエディタで firmware.bin を開く。 +アドレス ''0x03FE64'' の値を ''0x00'' に書き換える。~ (日本語:0×00 英語:0×01 フランス語:0×02 ドイツ語:0×03 イタリア語:0×04 スペイン語:0×05) +''0x03FE00'' から ''0x03FE6F'' までをコピーして、上記 CRC16(Modbus) 算出サイトの入力欄にペーストして、Hex にチェックを入れてぽちっとする。 +算出された CRC-16 (Modbus) を ''0x03FE72'' と ''0x03FE73'' に書き込む。~ ただし算出された値が ''0x&color(red){B8};&color(blue){A7};'' だった場合、書き込むのは ''0x&color(blue){A7};&color(red){B8};'' にする。(1バイト目と2バイト目を逆転させる) +同様にアドレス ''0x03FF64'' の値を ''0x00'' に書き換えて ''0x03FF00'' から ''0x03FF6F'' までをコピーして、CRC16(Modbus) を算出し、その値を逆転させて ''0x03FF72'' と ''0x03FF73'' に書き込む。 +保存する。 以上です。~ 適宜バイナリエディタのマーク機能等を使って、間違えたアドレスを書き換えないようにしてください。~ 尚、CRC があわない場合や、値が想定外範囲 (例:誕生月を 12 月にしたくて 0x12 とやっちゃうと、18 月になるので想定範囲外)な場合は、初期設定の画面からスタートになります。 分かりやすくするために画像にしました。~ #ref(stirling.png) -青い部分が言語設定の部分です。(正確にはその下部3ビット分です) -薄い赤い部分が設定値を書き込む部分であり、CRC16(Modbus) を算出する元となる値です。 -緑の部分が反転させた CRC16(Modbus) を書き込む部分です。 -名前やコメントを編集する際は、メニューで文字コードを utf-16(unicode) にして下さい。 ***アドレス一覧 [#m7ac8510] |アドレス一覧|>|>|>|h |FW アドレス|RAM アドレス|バイト数|値の意味|h |0×03Fx00|0×023FFC80|1|バージョン (デフォルトは 0x05?)| |0×03Fx02|0×027FFC82|1|ユーザーカラー &color(red){※1};| |0×03Fx03|0×027FFC83|1|誕生月| |0×03Fx04|0×027FFC84|1|誕生日| |0×03Fx06|0×027FFC86|20|名前 (UTF-16)| |0×03Fx1A|0×027FFC9A|1/2|名前の文字数(例:名前が 10 文字なら 0x0A に。)| |0×03Fx1C|0×027FFC9C|52|コメント (UTF-16)| |0×03Fx50|0×027FFCD0|1/2|コメントの文字数| |0×03Fx52|0×027FFCD2|1|アラームの時(hour)| |0×03Fx53|0×027FFCD3|1|アラームの分(minute)| |0×03Fx56|0×027FFCD6|1|0×80=enable alarm, bit 0..6=enable?| | |0×027FFCD8|12|タッチスクリーンキャリブレーションデータ| | |0×027FFCE4|bit 0..2|言語設定 &color(red){※2};| | |0×027FFCE4|bit 3|GBAソフトの画面 (0=上画面, 1=下画面)| | |0×027FFCE4|bit 6|起動モード 0=マニュアルモード, 1=オートモード| | | | |WIFI power calibration| |0×03Fx70| |1/2|update counter (used to check latest)| |0×03Fx72| |2|CRC16(Modbus)| アドレスの 0x03F&color(red){x};XX の &color(red){x}; は ''E'' か ''F'' で読み替えてください。~ ~ |※1 ユーザーカラー一覧|>|>|h |値(10進数)|色|RGB| |0|グレー|(12, 16, 19)| |1|茶色|(23, 9, 0)| |2|赤|(31, 0, 3)| |3|ピンク|(31, 17, 31)| |4|オレンジ|(31, 18, 0)| |5|黄色|(30, 28, 0)| |6|黄緑|(21, 31, 0)| |7|緑|(0, 31, 0)| |8|深緑|(0, 20, 7)| |9|青緑|(9, 27, 17)| |10|水色|(6, 23, 30)| |11|青|(0, 11, 30)| |12|群青|(0, 0, 1)| |13|青紫|(17, 0, 26)| |14|赤紫|(26, 0, 29)| |15|マゼンタ|(31, 0, 1)| ~ |※2 言語設定一覧|>|h |言語|値|h |日本語|0| |英語|1| |フランス語|2| |ドイツ語|3| |イタリア語|4| |スペイン語|5| ***変更例 [#y38e9495] -例1:言語設定でスペイン語にしたければ、''0x03Fx64'' (つまり 0x03FE64 と 0x03FF64) を ''0x05'' に書き換えて、CRC 算出&書き換え。 -例2:名前を hogehoge にしたければ、''0×03Fx06'' を起点に ''hogehoge'' と (画像のようになるように右半分の部分で) 入力し、ついで ''0×03Fx1A'' を 8 文字にあわせて ''0x08'' と書き換えて、CRC 算出&書き換え。 -例3:誕生日を 12 月 23 日にしたければ、''0×03Fx03'' を ''0x0C''、''0×03Fx04'' を ''0x17'' に書き換えて、CRC 算出&書き換え。 -例4:ユーザーカラーを水色にしたければ、''0×03Fx02'' を ''0x0A'' に書き換えて、CRC算出&書き換え。

表示オプション

横に並べて表示:
変化行の前後のみ表示: