YSMenu概説
1.はじめに
2.登場の経緯と現状

3.ちょっと敷居が高いと感じるYSMenu
(1) NDS-ROMブート(起動)ローダーの準備
DSTTファームウェア: http://www.ndstt.com/jp/download.html
AceKard2(i)ファームウェア : http://www.acekard.com/download.php
(2) YSMenu本体(YSMenu.nds)のパッチ処理
DSTT用:「ttio_2.dldi」、http://gbatemp.net/index.php?download=4555
R4DS用:「r4tf_v2.dldi」、http://dldi.drunkencoders.com/index.php?title=R4TF
AceKard2(i)用:「ak2_sd.dldi」、AceKard2(i)ファームウェアの__ak2フォルダにあります。
DLDIとは何か? ⇒

4.YSMenuの構成


(1) ルートディレクトリに配置するもの
A.YSMenu本体
B.TTMENU.SYS
(2) YSMenuフォルダに配置するもの
(3) TTMenuフォルダに配置するもの
【なぜDSTT/R4用のブートローダーが2ファイルに分かれて、AK2(i)用は1ファイルなのか?】
以上です。
- この概説はYSMenuとはそもそも何か?YSMenuが動作する概念、ファイル構成、自前で調達すべき資源と作業、必要なToolを理解していただくためのものです。
- YSMenu導入作業の詳細は、別途マジコン別のYSMenu導入解説記事にさせていただきます。
2.登場の経緯と現状
- Yasu氏が開発されたDSマジコン用の汎用ランチャー(カスタムメニュー)です。
- DSTTのメニューを、先行していたR4DSの使い易いメニューにしたいという多くのニーズを汲み取ってYasu氏がボランティアで開発されました。(感謝に堪えません。m(_ _)m)
- その後R4DSのファームウェアの更新が途絶え、「マリオ&ルイージRPG3!!!」以降、R4DSでは起動できないROMが増えはじめ、R4DSユーザーは頭を抱えました。
- そこで再び注目されたのがYSMenuです。元々はDSTT用のランチャーですが、DSTTのブートローダーにDLDIパッチを施してR4DSでもROMを起動できる仕組みになっています。
- ベースのDSTTのブートローダーは、マジコン対策ROMに回避パッチを当てたり、チートの回避コードを適用することでマジコン対策ROMを起動できますので、R4DSにYSMenuを導入すればマジコン対策ROMが起動できる、という解決策が見いだされました。
- 今後もDSTTのファームウェア(ブートローダー)が更新されてROMの起動率が改善されれば、R4DSのROM起動率もアップすることになります。
3.ちょっと敷居が高いと感じるYSMenu
- 汎用パッケージ故に以下の2点を自前で対応する必要があります。ちょっと敷居が高そうですが、YSMenuの構造を理解して作業すればそれほど難しいものではありません。
(作業内容の詳細は、別途マジコン別のYSMenu導入解説記事にさせていただきます。)
(1) NDS-ROMブート(起動)ローダーの準備
- マジコン毎に起動プロセスが異なりますので、マジコンに依存するブートローダーを持っていません。この為、DSTTのファームウェアからブートローダーを抽出して配置する必要があります。(AK2(i)で使用する場合は、AK2(i)のファームウェアから抽出します。)
- 用意するもの:DSTT(またはAceKard2(i))ファームウェア
AceKard2(i)ファームウェア : http://www.acekard.com/download.php
さらにR4DSで使用する場合は、DSTTのブートローダーのままでは利用できませんので、R4DS用のDLDIパッチを適用します。
(2) YSMenu本体(YSMenu.nds)のパッチ処理
- マジコンのmicroSDにアクセスできるように、YSMenu本体(YSMenu.nds)にマジコン別のDLDIパッチ(ディスクドライバ)を適用しなければなりません。
- 用意するもの:マジコン別のDLDIパッチ
R4DS用:「r4tf_v2.dldi」、http://dldi.drunkencoders.com/index.php?title=R4TF
AceKard2(i)用:「ak2_sd.dldi」、AceKard2(i)ファームウェアの__ak2フォルダにあります。
DLDIとは何か? ⇒
4.YSMenuの構成
- YSMenuのアーカイブを解凍後のファイル構成は以下のとおりです。(09.07.07現在)
- 最終的には以下のような構成に仕上げてmicroSDに配置します。
(1) ルートディレクトリに配置するもの
A.YSMenu本体
- YSMenu.ndsが本体です。マジコン別のDLDIパッチを施してファームウェアファイル名にリネームしてから配置します。
- R4DSで使用する場合はファームウェアを暗号化しないと動作しませんので、DLDIパッチ後のYSMenu本体を暗号化します。(暗号化方法は別途R4DS用のYSMenu解説記事にさせていただきます。)
- DSTTのシステムファイルです。DSTTのファームウェアアーカイブに同梱されているものを使用します。ない場合はYSMenuが自動作成してくれます。
- ブートローダー
※ NDS-ROMを起動するプログラムです。YSMenuはマジコンに依存するブートローダーを
内蔵していません。
※ YSMenuのアーカイブに用意されているローダー抽出プログラムを使って、各マジコンの
ファームウェアから抽出します。詳細はマジコン別のYSMenu解説をご参照下さい。
内蔵していません。
※ YSMenuのアーカイブに用意されているローダー抽出プログラムを使って、各マジコンの
ファームウェアから抽出します。詳細はマジコン別のYSMenu解説をご参照下さい。
♪ DSTT:ttdldi.datとttpatch.datの2つがセットでブートローダーの役割を果たします。
♪ R4DS:r4dldi.datとr4patch.datの2つ。上記のローダーにR4DS用DLDIパッチした
ものです。
♪ AceKard2(i):akloader.nds
♪ R4DS:r4dldi.datとr4patch.datの2つ。上記のローダーにR4DS用DLDIパッチした
ものです。
♪ AceKard2(i):akloader.nds
- YSMenu.ini (環境設定ファイル:アーカイブに用意されています。)
・使用環境に合わせてカスタマイズするとより快適に使用できます。
- フォント
・GBKフォントでもS-JISフォントでも動作しますが、GBKフォントでファイル名やチートに
日本語を使用すると化ける文字がありますので、S-JISフォントをお奨めします。
・フォントはsystem.fon/system.ank/system.l2u/system.u2lの4つがセットです。必ず同じ
文字コードのセットでご使用下さい。
・異なる文字コードのファイルを混ぜると文字表示がおかしくなるだけではなく、想定外の
エラーを引き起こしかねません。
- usrcheat.dat (チートDB:ゲーム改造コード)
・YSMenuのフォントに合わせたエンコードが必要です。
・GBKフォントで作成されたusrcheat.datをS-JISに変換するには『r4cce.exe』の使用をお奨
めします。
- Skin (壁紙)
・「YSMenu1.bmp」が上画面、「YSMenu2.bmp」が下画面、「gbaframe.bmp」がGBA
ゲーム用のフレームです。
・YSMenu1、2.bmpはR4DS用Skinの「bckgrd_1、2.bmp」を加工して使用できます。
(3) TTMenuフォルダに配置するもの
- infolib.dat
・DSTTは、ゲームROMを起動する際に自動的にパッチを行っています。どこをどのように
パッチするか、起動する度に解析してパッチ方法を決定しますが、infolib.dat に登録され
たタイトルは、この解析を行わず、登録されたパッチを行うため、高速に起動できます。
・最新のROM情報を登録したinfolib.datが公開されていますので、定期的に更新することを
お奨めします。
- savlib.dat
・DSTT(YSMenu)は、ゲームROM起動時にセーブファイルが存在しないと自動的に作成
します。
・自動作成されるセーブファイルのデフォルトのサイズは512KBですが、ゲームによっては
固有のサイズでないと正常に動作しないものがあります。
・savlib.datにセーブサイズを登録しておくと、必要とされるサイズでサーブファイルを作成
します。
・最新のROM情報を登録したsavlib.datが公開されていますので、定期的に更新することを
お奨めします。
- reset.mse
・DSTT(YSMenu)がソフトリセットされると、ttreset.datが起動してreset.mseを呼び出
していると推測します。
・reset.mseは指定されたファームウェアを起動し、リセットが完了するようです。
・R4DSでYSMenuをソフトリセットするとフリーズします。DSTTとAK2(i)では同じファイル
構成でソフトリセットできますので、R4DSでは特殊な配慮が必要なようです。
(皇帝氏が作成されたreset.mseや他のreset.mse 、DLDIパッチも試しましたがダメでした。)
- ttreset.dat
・ソフトリセットすると最初に起動するプログラムです。
・reset.mseとセットで機能していると思われます。
【なぜDSTT/R4用のブートローダーが2ファイルに分かれて、AK2(i)用は1ファイルなのか?】
- NDS-ROMはマジコンのハードウェアとブートローダーによって起動されます。
- AceKard2(i)はハードウェア構造上の拡張性が高いため、YSMenuのような自作プログラム(Home brew)を動作させるのに特別は措置を必要とせず、ファームウェアからブートローダー(akloader.nds)を抽出して配置するだけで動作すると推測します。
- このH/Wの優位性によって、AceKard2(i)非公式ファームウェアのAKAIOは、ローダーを更新するだけでマジコン対策ROMの起動を可能にしていると思われます。
(AKAIOも自作プログラム(Home brew)です。)
- 逆に、DSTT/R4DSは、AceKard2(i)がH/Wでカバーしている自作プログラム(Home brew)のロードプロセスをS/Wで対応をしなければならず、xxpatch.datがROMをロードする度に、xxdldi.datでパッチしているのではないかと推測します。
(前述の「infolib.dat」の機能とも関係していると推測します。)
以上です。