fmsxDSはmaratさんが作成されているfmsxをnintendo DSで動作するように、修正したものです。使用するにはDS用のマジコンが必要となります。その辺については適当に調べてください。
更新履歴
| << | 2025-11 | >> | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 | 
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | ||||||
2008-4-13
またまた久しぶりの更新 Ver.0.09
ちまちまと弄っていたのですが、コアのバージョンアップに対応したところ、
不安定度、さらに倍って感じです。
更新内容は以下のような感じです。
・コアをVer.3.5にバージョンアップしたつもり。
・サウンドの修正(これが限界、ヘッドフォンでは聴かないで)
・UIの修正(チープなのは仕様です。)
・ディスクイメージ、カセットイメージはオンメモリになりました。そのため書き込みは入れ替えをするか電源オフ時(むろんDSの電源のことではない)に更新されます。
・マウスエミュレーション追加(暫定的な対応なのでまだ実用レベルになってません)
・上下画面入れ替え
・その他
ダウンロードはfmsxDSのページかDownLoadページからどうぞ。

マウスの位置を補足できなくてずれまくりますが、我慢すればグラフサウルスも使えてます。
さすがに、マウスとタッチパネルの仕様の違いを吸収するのは難しい。
2007-8-6
fmsxDS Ver.0.08 久しぶりに更新
今回の更新は以下の通りです。
- UIとMSXの設定を変更するためのスクリプトを追加(Lua)
 - UI変更
 - DLDI対応
 - 2倍スプライト表示対応
 - サウンド修正(でも、だめだめ)
 
いろいろいじっているうちに、Luaのスクリプトを書くのが楽しくなってしまい、
遅くなりました。まだ、関数等足りないところがありますが、
いい加減公開しないと忘れられそうなのでとりあえず出しておきます。
FM-PACのテストもしてみましたが、CPUパワーが足りないので、
あきらめモードです。
ダウンロード
BIN
| Date | Ver. | Remark | 
|---|---|---|
| 2008/04/14 | 0.09(8183) | 04/14 1:15 Script Changed. fmsx core update ver.3.5. Added Mouse Emulation. and more....  | 
| 2007/08/06 | 0.08(4024) | Added UI and MSX configlation customize script.(Lua) Added DLDI driver. Changed UI.(Most simpled) Fixed big sprite. Fixed sound driver.(noizy yet.)  | 
| 2006/02/21 | 0.07(2172) | Source included. | 
SOURCE
| Date | Ver. | Remark | 
|---|---|---|
| 2008/04/13 | 0.09(2410) | libLua(1873) is required to compile fmsxDS. | 
| 2007/08/06 | 0.08(1710) | libLua is required to compile fmsxDS. | 
| 2006/02/21 | 0.07 | - | 
インストール
zipファイルに入っているファイル、フォルダ構成は、デフォルトのfmsxDS.luaでの構成です。
fmsxDS.luaを編集することである程度変更することができます。
DLDI
古いマジコンとR4,MicroNinjaDSのドライバはインストール済です。
それ以外のマジコンを使用している場合は、DLDIドライバを組み込む必要があります。
homebrewのソフトを使うなら、その位は自分でがんばれ。
ファイル構成
 /
   fmsxDS.nds         ... 実行ファイル
   fmsxDS/
      BIOS/           ... BIOSファイルフォルダ
      ROM/            ... ロムイメージフォルダ
      DSK/            ... ディスクイメージフォルダ
      CAS/            ... カセットイメージフォルダ
      RES/            ... リソースファイルフォルダ
         maru10.bin   ... フォントファイル
      LUA/            ... スクリプトフォルダ
         debug.lua    ... デバッグスクリプト
         keybind.lua  ... キーバインドスクリプト
      fmsxDS.lua      ... メインスクリプト
インストール
zipファイルに入っているファイル、フォルダをmicroSDカードにコピーします。
一般的な(windows等の)ソフトウェアで在れば、実行ファイルのフォルダをカレントフォルダとするのが一般的?だと思いますが、現在のndsのhomebrewの仕様では起動したフォルダを取得することができません。
そのため、fmsxDS.luaは次のいずれかのフォルダにインストールする必要があります。
fat:/ fat:/fmsxDS fat:/emu/fmsxDS fat:/emulatore/fmsxDS
fmsxDS.ndsは好きなフォルダにインストール可能です。
2バイト文字のフォルダ、ファイル名はほとんどチェックしていませんし、フォルダダイアログもまだ対応していませんので、使用されないほうがよいかと思われます。
BIOSイメージ(MSX2J.ROM,MSX2JEXT.ROM,DISK.ROM等)をBIOSフォルダにコピーします。
ロムイメージ、ディスクイメージ、カセットイメージを各フォルダにコピーします。
fmsxDS.lua を必要に応じて編集します。
使用方法
コントローラー
DSのコントローラーはデフォルトでは以下のようにバインドされています。
メニュー>環境設定>コントローラ で切り替えられます。
| DS コントローラ | キーボード | JOY1,JOY2 | 
|---|---|---|
| 上 | カーソル上 | JOY上 | 
| 下 | カーソル下 | JOY下 | 
| 右 | カーソル右 | JOY右 | 
| 左 | カーソル左 | JOY左 | 
| A ボタン | スペース | JOYボタン1 | 
| B ボタン | N | JOYボタン2 | 
| X ボタン | リターン | 未設定 | 
| Y ボタン | 未設定 | 未設定 | 
| R ボタン | 未設定 | 未設定 | 
| L ボタン | 未設定 | 未設定 | 
| セレクト | F1 | F1 | 
| スタート | メニュー | メニュー | 
マウス
タッチパネルでマウスを操作することができます。
タッチパネルをマウスモードに切り替えます。
メニュー>環境設定>タッチパネル で切り替えられます。
マウスモードでの操作方法は以下の通りです。(変更不可)
| MSX | DS | 
|---|---|
| マウス移動 | タッチパネル | 
| 左ボタン | タッチパネルON or Lボタン | 
| 右ボタン | 下キー | 
| メニュー | スタートボタン | 
MSXにマウスを挿さなければならないので、
メニュー>JOYポート>ポート1 or ポート2>Mouse
を選択するのを忘れないようにして下さい。
メニュー
メニューで設定した内容は保存されません。どうしても保存したい場合は、fmsxDS.luaを編集してください。
MSXのハードウェアの設定とDSの設定がうまく分けられていないので、もうちょっとわかりやすい構成にしたいところなんだけどなぁ。
起動 ロム ├ ロム1 │ ├ ROM選択 │ ├ ROMタイプ選択 │ │ ├ 自動認識 │ │ ├ 標準 8K │ │ ├ 標準 16K │ │ ├ KONAMI 5 │ │ ├ KONAMI 4 │ │ ├ ASCII 8 │ │ └ ASCII 16 │ ├ SCC+挿入 │ └ ROMを抜く └ ロム2 ディスク ├ ディスクA └ ディスクB カセット ├ CAS選択 ├ 先頭 ├ 前 ├ 次 └ 最後 JOYポート ...MSXのポートに何が刺さっているのかを指定します。 ├ ポート1 │ ├ 未接続 │ ├ Joystick │ ├ Mouse │ └ Mouse(JSMode) └ ポート2 ステート ├ セーブ │ ├ セーブ1 │ ├ セーブ2 │ └ セーブ3 └ ロード ├ ロード1 ├ ロード2 └ ロード3 環境設定 ├ フレーム描画 │ ├ 100% │ ├ 90% │ ├ 80% │ ├ 70% │ ├ 60% │ └ 50% ├ スクリーン │ ├ 自動縮小 ...スクリーンモードによって画面を縮小します。 │ ├ 212ドット ...212ドットを表示(縮小表示)。 │ ├ 192ドット ...192ドットを表示(未縮小) │ ├ 自分で設定 ...自分で設定(設定画面が表示されます) │ └ 上下入替 ...画面の上下を入れ替えます。 ├ タッチパネル ...タッチパネルのモードを切り替えます。 │ ├ keyboard │ └ mouse ├ サウンド │ ├ PSG SOUND │ │ ├ ON │ │ └ OFF │ ├ SCC SOUND │ │ ├ ON │ │ └ OFF │ └ サンプルレート │ ├ 32kHz │ ├ 24kHz │ ├ 16kHz │ └ 8kHz ├ コントローラ │ ├ KEYBOARD │ ├ JOYSTICK1 │ └ JOYSTICK2 デバッグ LOG リセット 電源OFF
スクリプトファイル
fmsxDSにはスクリプト言語であるluaが組み込んであります。
fmsxDS.luaを編集するすることでfmsxDSのUI(メニュー等)やMSXとしての設定を変更することができます。
構文、記述方法等は標準のluaから拡張していませんので記述方法はご自分お調べください。
fmsxDSで使用するいくつかの変数と関数、fmsxDSから呼び出される関数が登録されています。
なお、luaの組み込みについては実験的要素が大きい為、今後、変数、関数の構成を大幅に変えてしまう可能性がありますのでご了承ください。
必要かどうかを考えずに手当たり次第に変数、関数を作っていますので、動作しない場合があります。ご了承ください。
MSXパッケージ
MSXのハードウェアに関連する変数、関数を定義してあります。
変数
| 変数名 | 型 | 書込 | 初期値 | 内容 | 
|---|---|---|---|---|
| RAMPages | 数値 | ○ | 8 | RAMのページ数(ページ16KB) | 
| VRAMPages | 数値 | ○ | 8 | VRAMのページ数(ページ16KB) | 
| scr_x | 数値 | ○ | 0 | スクリーンX座標位置 | 
| scr_y | 数値 | ○ | 0 | スクリーンY座標位置 | 
| scale_x | 数値 | ○ | 0 | スクリーンX方向拡縮(*256) | 
| scale_y | 数値 | ○ | 0 | スクリーンY方向拡縮(*256) | 
| AutoFit | 数値 | ○ | 0 | スクリーンモードにより縦幅の自動調整 0:しない 1:する | 
| Version | 数値 | × | - | MSXバージョン(BIOSにより決定) | 
| Video | 数値 | × | - | VIDEOモード 1:NTSC 2:PAL (BIOSにより決定) | 
| Verbose | 数値 | ○ | 1 | ログ表示 0:非表示 1以上:表示 | 
| UPeriod | 数値 | ○ | 100 | 画面を更新する割合 1〜100(%) | 
| JoyTypeA | 数値 | ○ | 0 | ジョイスティックポートに接続している機器 0:無し 1:Joystick 2:Mouse 3:Mouse(Joystickモード)  | 
| JoyTypeB | 数値 | ○ | 0 | ジョイスティックポートに接続している機器 0:無し 1:Joystick 2:Mouse 3:Mouse(Joystickモード)  | 
| Trace | 数値 | ○ | 0 | デバッグ(DebugMenuに飛ぶようになります) 0:なし 1:デバッグ | 
| Trap | 数値 | ○ | 0 | ブレイクポイント 停止したいアドレスを指定 | 
| PSG | 数値 | ○ | 1 | PSG音声出力 0:OFF 1:ON | 
| SCC | 数値 | ○ | 1 | SCC音声出力 0:OFF 1:ON | 
| SampleRate | 数値 | ○ | 8192 | PCMサンプルレート 8の倍数を指定して下さい。 | 
| SCCPSlot | 数値 | △ | 0 | SCC+カートリッジを挿すスロット番号 (まだ動作しません。) | 
| ROMName | 文字列配列 | × | ロムイメージのファイル名 | |
| DSKName0 | 文字列 | ○ | ディスクイメージのファイル名 | |
| DSKName1 | 文字列 | ○ | ディスクイメージのファイル名 | |
| CASName | 文字列 | ○ | カセットイメージのファイル名 | |
| CMOSName | 文字列 | △ | CMOS(内臓バックアップRAM)のファイル名 | |
| KanjiName | 文字列 | △ | 漢字ROMのファイル名 | |
| Power | BOOL | ○ | False | 電源の状態 False:OFF True:ON | 
※書込:△起動時は書き込み不可
関数
| 関数名 | 処理 | 
|---|---|
| DskChange(drv,fn) | ディスクを入れ替えます。 drv : ドライブ番号(A:0,B:1) fn : ファイル名  | 
| CasChange(fn) | カセットを入れ替えます。 fn : ファイル名  | 
| CasTop() | カセットを先頭まで巻き戻します。 | 
| CasEnd() | カセットを末尾まで頭だしします。 | 
| CasNext() | カセットを次のヘッダーまで移動します。 | 
| CasPrev() | カセットを前のヘッダーまで移動します。 | 
| setBIOS(ps,ss,pg,fn,siz) | BIOSをスロットにマッピングします。実際に読み込まれるのは起動時です。 ps:基本ページ ss:拡張ページ pg:ページ fn:ファイル名 siz:ファイルサイズ  | 
| patchBDOS(ps,ss,pg) | MSX BIOS と DISK BIOSにパッチを当てます。引数はDISK BIOSのスロットを指定します。 ps:基本ページ ss:拡張ページ pg:ページ  | 
| boot | MSXを起動します。 | 
| exit | MSXの電源をOFFにします。(ディスク、カセットイメージが保存されます。) | 
| saveState(fn) | どこでもセーブです。 fn : ステートファイル名  | 
| loadState(fn) | どこでもロードです。 fn : ステートファイル名  | 
| setCart()" | ロムイメージをスロットにマッピングします。実際に読み込まれるのは起動時です。 | 
| setCartType()" | |
| Keybind" | |
| Joybind" | 
uiパッケージ
変数
無し
関数
fmsxDSから呼び出される関数
ステータス
現在の駄目さ具合の一覧、というか覚え書
| ステータス | 詳細 | |
|---|---|---|
| SCC+ | 実装中 | とりあえず、組み込んでみたものの無反応(笑 | 
| ディスク | テスト中 | 2ドライブ動作は未テスト | 
| カセット | 未テスト | 読込はうまくいっているっぽい。書き込みについて未テスト | 
| ロム | ||
| ジョイスティック | ||
| マウス | 実装中 | 
その他
- ディスクイメージがオンメモリになった為、2ドライブ動作ができるかは謎です。というか2ドライブは未テストなのでやらないほうがよいかと。
 - 起動中にはMSX構成の変更やROMは変更できません。電源OFFしてからお願いします。この辺は実機を忠実に再現。(こんなところばかり忠実なのかよ)
 - カセットは自動的に巻き戻りませんので自分で巻き戻してください。忠実に実機を、、、以下略
 - カセットの書き込みは必ず最後に追記されるようになっていますので、送る必要はありません。
 
注意
「MSX」はMSXアソシエーションの商標です。
このページにて配布しているソフトウェアは、MSXアソシエーションおよびマイクロソフト社が動作を保証するものではありません。このソフトウェアを動作させた結果につきまして、両者は一切の責任を負わないものとします。ご使用の際には、必ず自己の責任にて動作させるようお願いいたします。
スクリーンショット



コメント
このエミュレーターへのコメントがあればどうぞ。
通知無く削除する場合がありますので、ご了承ください。
- msxDSを使ってみましたか。 - モモ (2010年09月29日 09時32分41秒)
 - fmsxDS.luaを書き換えれば、好きなファイル名に変更できます。 - にゃごす (2009年07月22日 01時07分48秒)
 - MSX2.ROM → MSX2J.ROM、MSX2EXT.ROM → MSX2JEXT.ROMのりネームが必要なようですね。 - Japanish (2009年07月04日 19時24分33秒)
 - v0.09使用してます。ロングファイル名のromを読むとフリーズするのが残念です。 - cas2: (2008年06月09日 04時21分54秒)
 - ウイングマン2気づいたのですが、キーボードの「かな」入力の配置がタッチの表記ではなくPC配列での入力になってました - おっさん (2008年06月07日 02時51分38秒)
 - fat:/にfmsx.luaおいて起動したらLUAフォルダも置けっていわれておいたらメインメニューでた。でも文字がなんにもでてこない - ryoga96 (2008年05月25日 13時28分59秒)
 - fat:/といわれても...もうすこし詳しく説明してください - ryoga96 (2008年05月24日 05時55分34秒)
 - ロムを変えると、よくフリーズをして残念です。 - msxboy (2008年04月28日 09時55分50秒)