FC2ブログ
2019 09123456789101112131415161718192021222324252627282930312019 11
ここでは今となってはレガシーなDSi以前のコンソールに関連したHomebrewの研究をしていました。 初めての方は正面玄関(ホーム)よりお入りになり「館内の歩き方」をご覧下さい。
No. 13

2度とは遣らない基本講座

当研究所は携帯ゲーム機の少し変わった使い方の研究をしています。
ゲームを普通に楽しめれば良いという方には無意味な事を真剣に研究しています。
基本的な事は全て了解済みという前提でレポートを書いています。

基本的に私が興味を惹かれた事や遣ってみたい事を研究していますので、
読み手のスキルとかを余り気に留めていません。
私自身がDS歴一年足らずですので初心者を卒業して、
その先へ一歩足を踏み出した程度と思っています。

私が思うところの初心者卒業レベルとは、
・DLDIパッチが行える
・IPSパッチが行える
・MoonShellのセットアップができる
・YSMenuのセットアップができる
程度の事を言います。

なぁ~んだ、そんな事かという方はここのレポートは面白いかも知れません。
しかし、このどれか一つでも分からない場合は、
ここのレポート内容は難しく感じると思います。
そこで今回は簡単に復習してみる事にしました。

尚、当研究所では一般にマジ○ンと呼ばれているものをNDS-Adapterと呼びます。

■DLDIパッチ
本来ゲームはハードとソフトが一体化しています。
…なので起動に関しては余計な事を考えずに済みます。

ところが、Home Brewはソフト単体で開発されるので、
前もってハードウェアを特定する事ができません。
そこでハードに依存する部分をライブラリに纏めて、
その部分をそっくり交換できるような仕組みが考えられました。
それがDLDI(Dynamically Linked Device Interface for libfat)です。

この仕組みのお陰でNDS-Adapterを変えてもプログラムが動くようになりました。
以前はDLDIに対応していないHome Brewを見かけましたが、
最近では殆どのものが対応しているようです。

DLDIパッチを行うにはパッチ用のアプリケーションと、
各ハードウェア(NDS-Adapter)用のlibfatが必要です。
それらは全て こちら に揃っています。

環境を整えたらアプリケーションが有るフォルダにパッチするファイルを入れて、
NDS-Adapter別のDLDIファイルとバイナリ(パッチ対象)を選択して、
[パッチ(P)]ボタンを押せばアッという間にパッチは終了します。

レポート13用

■IPSパッチ
IPSパッチ・データはプログラムの変更前と変更後の差分を抽出したものです。
IPSパッチ・アプリケーションで差分を作成したり、
変更前のプログラムと差分から変更後のプログラムを合成したりします。

これを行うアプリケーションは幾つか有るようですが、
今回はWinIPSを例にしてみます。こちら に有ります。
パラメータのIPSファイルにIPSパッチ・データをドラッグ&ドロップして、
パッチするファイルに変更前のプログラムをドラッグ&ドロップします。
[適用(P)]ボタンを押せばパッチされたファイルが生成されます。

レポート13用

■MoonShellのセットアップ
既に過去のレポートでも何回か書いていますので、
今回はより一般的なケースで書きます。
遣るべき事は以下の3点です。

・ソフト・リセット・プログラムの追加
・dldibody.binの変更
・moonshl2.ndsのDLDIパッチ

先ず、moonlightさんのところから最新版をダウンロードして解凍します。
解凍後のフォルダには沢山のフォルダとファイルが有りますが、
取り敢えず必要なものはmoonshl2フォルダとmoonshl2.ndsだけです。
その他のものは追々必要になったらで構いません。

moonshl2フォルダは基本的にはそのまま使います。
使用するNDS-Adapter毎に変更する必要が有るのは、
resetmseフォルダ内のソフト・リセット・プログラムとdldibody.binだけです。

初期状態ではresetmseフォルダにはDSTT用のものしか入っていません。
その他のNDS-Adapter用のはR4i(r4i.cn)のカーネルから入手可能です。
同梱されているMoonShell2のresetmseフォルダ内に一式入っています。
これ等のファイルは今後のレポートでも使用するので、
このresetmseフォルダは保管しておきます。
R4i(r4i.cn)のカーネルは こちら からダウンロードできます。

次に最初から入っているdldibody.binはダミーです。
使用するNDS-Adapter用のDLDIファイルをdldibody.binにリネームして、
moonshl2フォルダ内に上書コピーします。
例えばDSTTの場合ならttio.dldiになります。

最後にmoonshl2.ndsを使用するNDS-Adapterに合わせてDLDIパッチして、
セットアップは完了です。

■YSMenuのセットアップ
こちらも既に書いていますのでより一般的に書きます。
遣るべき事は以下の3点です。

・ブート・ローダ等の抽出とコピー
・YSMenu.nds本体をDLDIパッチ
・必要に応じてYSMenu.ndsをリネーム

YASUさんのところから最新版をダウンロードして解凍します。
YSMenuはDLDI対応なのでそれ自体はどのNDS-Adapterでも使用可能です。
しかし、市販ゲームを起動する機能はありませんので、
公式からローダを抽出する必要が有ります。
現在、抽出可能なのはDSTTとacekardです。
更に非公式ながらR4にも対応しています。

DSTTのローダ抽出には付属のttextract.exeを使用します。
TTMENU.DATと同じフォルダでttextract.exeを実行すると
ttdldi.datとttpatch.datが抽出されます。
この2つのファイルをYSMenuフォルダかTTMenuフォルダへコピーします。

acekardのローダ抽出には付属のakextract.exeを使用します。
akmenu4.ndsと同じフォルダでttextract.exeを実行すると
akloader.ndsが抽出されます。
このファイルをYSMenuフォルダか__ak2フォルダへコピーします。

R4の場合は非公式なので英文でサラリと遣り方が書いてあります。
基本的にはDSTTの場合と同じで良くttextract.exeを実行する時に、
ttmenu.datとr4tf.dldiを同じフォルダ内に入れて置くだけです。

DSTTの時と違ってr4dldi.datとr4patch.dat、
およびttdldi.datとttpatch.datが生成されますので、
これ等のファイルをYSMenuフォルダか_system_フォルダへコピーします。

次にYSMenu.nds本体をDLDIパッチします。

また、通常はYSMenu.iniもローダと同じフォルダにコピーします。
これで通常使用のセットアップは終了です。

更にYSMenuをカーネル代わりに使用する場合は、
使用するNDS-Adapterのカーネル名に合わせてリネームします。
例えばDSTTの場合ならTTMENU.DATにです。

R4の場合は更に暗号化が必要になりますが、
これに関してはレポート2のコラム1を参照してください。

以上、長々と説明してきましたが如何でしたでしょうか。
これ等は全て基礎知識です。
これ等を理解していれば当研究所のレポートは難しくないと思います。
もし、以上の説明でも分からないような場合は、
私よりも説明が上手なサイトが有りますのでそちらをご利用下さい。

私には講義等というものは向いていません。
それに当研究所は初心者救済を目的にしている訳ではなく、
私の思い付きを基に他では遣っていないような事を検証して、
その研究成果をレポートに纏めています。
完全に自己満足の世界です。(^^;

今回は分かり難いという声が有ったので遣りましたが、
続編は期待しないで下さい。

また、初めての方はレポート1「はじめに」をお読み下さい。
[No. 13] 2009/05/04(月) NDS-その他 track back(0) comment(0)

コメントの投稿
質問の前にこちらをお読み下さい。→質問時のご注意














管理者にだけ表示を許可する


| ホーム |
Page Top↑