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

MoonShell2をカーネル代わりに使う(後編)

MoonShell2の設定に関しては前回の前編で終わっています。
この後編では商用ROMを起動させるための機能拡張ファイルの設定と、
それらが必要とする環境の設定を行います。

DS用の商用ROM起動用の機能拡張ファイルとしては、
前編で紹介したとおり次の2つが公開されています。
・M2Loader_v0.1
・YSLoaderForMS2

『M2Loader_v0.1』はAKAIO専用です。
『YSLoaderForMS2』はDSTT、acekard2、R4用です。
どちらもLoaderという名称ですがランチャーです。

MoonShell2が想定した仕様ではROMのローダになる筈なのですが、
YSLoaderForMS2は引数の渡し方も違う等、
どちらも仕様に則っていません。

どちらもROMのローダではなくランチャーなので、
そこから更にROMのローダを起動する必要が有ります。
その内、何方かが本物のローダを開発してくれるまで、
複雑な工程を経た起動方法ですが仕方がありません。

どちらの機能拡張ファイルを使用するかは、
acekard2のユーザ以外は悩む必要は有りません。
M2Loader_v0.1の方はacekard専用ですので、
今回の例は双方ともacekard2で行っています。

■M2Loader_v0.1の環境設定
この機能拡張ファイルはAKAIOのメンバーの一人が作った物のようです。
AKAIOがインストールされている環境でAKAIOからMoonShell2を起動して、
…というような使われ方を想定しているようです。
これって余り意味が無いような気がしますが…。

そこでMoonShell2をカーネルとして起動できるようにしてみました。
それにはMoonShell2を少し変更する必要が有るのでお手軽とは言えません。
beta5を元に行いましたが最新バージョンでも通用するかは試していません。
その内、検証するかも知れませんが仕様にがっかりしたので…。

必要なファイルとその構成は以下の通りです。
検証を途中で止めたので無駄なファイルが含まれているかも知れません。
『mnshlフォルダ』の中身は『__aioフォルダ』からコピーします。

TF(micr SD) root
 ├ moonshl2(フォルダ)※フォルダ内は省略
 ├ mnshl(フォルダ)
    ├ ak2loader(フォルダ)
       ∟ akloader.nds
    ├ loaders(フォルダ)
       ├ ak2loader.nds
       ├ akloader.nds
       └ akploader.nds
    ├ ak2loader.nds
    ├ ak2sd.dldi
    ├ ak2_sd.dldi
    ├ rpg_sd.dldi
    ├ rpg_nand.dldi
    └ lastsave.ini
 └ akmenu4.nds(前編で設定済のmoonshl2.nds beta5)

M2Loader_v0.1の機能拡張ファイル名はnds.akaio.ndsです。
このファイルを『moonshl2フォルダ』内の『extlinkフォルダ』に入れます。
MoonShell2はbeta5をDLDIパッチした物を用意します。

このakmenu4.nds(moonshl2.nds)にバイナリ・パッチをします。
差分を用意しましたので こちら からダウンロードしてパッチします。
IPSパッチは幾つかソフトが存在するようですが私はwinipsを使用しています。
使用法が分からない場合は調べて下さい。ここでは書きません。

尚、M2Loader_v0.1にはバグが有るのでROMはrootに置かないと起動できません。

■YSLoaderForMS2の環境設定
必要なファイルとその構成は以下の通りです。
使用したMoonShell2は beta10 + beta10plus1 の組み合わせです。

TF(micr SD) root
 ├ moonshl2(フォルダ)※フォルダ内は省略
 ├ YSMenu(フォルダ)
    ├ YSMenu.nds
    ├ YSMENU.INI
    ├ ttpatch.dat
    ├ ttreset.dat
    ├ reset.mse
    ├ akloader.nds
    ├ ak2_sd.dldi
    ├ ttdldi.dat
    ├ infolib.dat
    ├ savlib.dat
    ├ USRCHEAT.DAT
    ├ system.ank(日本語フォントセット)
    ├ system.fon(日本語フォントセット)
    ├ system.l2u(日本語フォントセット)
    └ system.u2l(日本語フォントセット)
 └ akmenu4.nds(前編で設定済のmoonshl2.nds)

機能拡張のファイル名はnds.YSloaderForMS2.ndsです。
このファイルと『config.ini』を『moonshl2フォルダ』内の、
『extlinkフォルダ』に入れます。

次に環境設定ファイル『config.ini』の内容を確認します。
下記と異なっているようであれば編集します。

[Config]
;YSMenu.nds path
YSMenu=/YSMenu/ysmenu.nds

;YSMenu.ini path
YSini=/YSMenu/ysmenu.ini

;How boot YSMenu
;0-Only boot YSMenu
;1-Autoboot game
autoboot=1

更にYSMENU.INIの下記該当部分をこのように編集します。

; Default DMA/Reset Setting
DEFAULT_DMA=true
DEFAULT_RESET=true
; External Application (Start Button Menu)
EXT_APP1_FILE=/akmenu4.nds
EXT_APP1_NAME=MoonShell2

これでMoonShell2から選択したROMが起動するようになります。
YSMenu自体を起動したい時は何かのROMを選択して[A}ボタンを押し、
画面が消えたところで[B]ボタンを押し続けるとOKです。

尚、YSLoaderForMS2は2バイト文字に対応していませんので、
日本語のファイル名はNGです。
どうしても使いたい場合は先頭に半角の5文字を加えます。

尚、レポートは執筆時の環境や情報に基づいており、
現在では異なる場合があります。

 
【 Column 3 】 YSMenuの設定とショート・ファイル・ネイム
■YSMenuの設定
DLDI対応なのでそれ自体はどのNDS-Adapterでも使用可能ですが、
公式からローダを抽出する必要が有りますので、
正式にはDSTTとacekardへの対応を謳っています。
更に非公式ながらR4にも対応しています。

DSTTとacekardの設定はドキュメントに書いて有るとおり、
ttextract.exeまたはakextract.exeを使ってブート・ローダを抽出し、
YSMenu.nds本体をDLDIパッチするだけです。

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

■ショート・ファイル・ネイム
今では聞き慣れない物になってしまいましたが、
その昔、ファイル名は8文字のベースと3文字の拡張子からなっていました。
Windowsになってから仕様が見直されて、
現在のロング・ファイル・ネームが採用されるようになりました。

しかし、色々な事情から双方を変換する仕組みが残されています。
ロング・ファイル・ネームからショート・ファイル・ネイムへは、
元のファイル名の最初の5バイト+3桁の数字+拡張子の法則で変換されます。
(正確には、元のファイル名の最初の4バイト+~+3桁の数字+拡張子です。)

つまり、6バイト目からは無視されるので何が書かれていても関係有りません。
例えば、ホゲホゲゲーム.ndsをhoge-ホゲホゲゲーム.ndsにした場合、
hoge~001.ndsになります。
コメント

ありがとうございます

> 説明の書き方 凄く分かりやすいですね

そうですか。自分ではかな~り不安だったのですが…。(^^;

> YSLoaderForMS2が2バイト文字に完全に対応すれば凄く使いやすいのですが、
> 無理そうですね

MoonShell2もローダも対応しているのにランチャーが未対応って可笑しいですよね。

ところで、今夜から例のシリーズを始める予定です。
焼き直しでは有りませんよ!
BVgeUSCM by: アーク * 2009/04/25 17:13 * URL [ 編集] | UP↑

no title

お疲れ様です!

説明の書き方 凄く分かりやすいですね
自分の所は分かりにく過ぎますね

YSLoaderForMS2が2バイト文字に完全に対応すれば凄く使いやすいのですが、無理そうですね
最初の5文字を1バイト文字にするのに何となく抵抗がありますw
ほとんどゲームをしないので関係ないのかもしれませんが(笑)

内容だけでなく書き方も勉強させて頂きます!
今後もがんばってくださいね!
13LaDGlA by: NK * 2009/04/25 16:56 * URL [ 編集] | UP↑

解決

エラー解決しました。
単純なミスでした。
BVgeUSCM by: アーク * 2009/04/24 11:13 * URL [ 編集] | UP↑

コラム落ち

今回は長いです。
本当は更にコラム欄が付くのですがエラーが起きています。
エラーの原因を取り除いたら掲載します。
BVgeUSCM by: アーク * 2009/04/24 10:26 * URL [ 編集] | UP↑

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














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


| ホーム |
Page Top↑