にゃごすwiki

fmsxDS

fmsxDSはmaratさんが作成されているfmsxをnintendo DSで動作するように、修正したものです。使用するにはDS用のマジコンが必要となります。その辺については適当に調べてください。

更新履歴

<< 2024-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ページからどうぞ。

fmsxDS.png
マウスの位置を補足できなくてずれまくりますが、我慢すればグラフサウルスも使えてます。
さすがに、マウスとタッチパネルの仕様の違いを吸収するのは難しい。

2007-8-6

 fmsxDS Ver.0.08 久しぶりに更新

今回の更新は以下の通りです。

  • UIとMSXの設定を変更するためのスクリプトを追加(Lua)
  • UI変更
  • DLDI対応
  • 2倍スプライト表示対応
  • サウンド修正(でも、だめだめ)

いろいろいじっているうちに、Luaのスクリプトを書くのが楽しくなってしまい、
遅くなりました。まだ、関数等足りないところがありますが、
いい加減公開しないと忘れられそうなのでとりあえず出しておきます。
FM-PACのテストもしてみましたが、CPUパワーが足りないので、
あきらめモードです。

DownLoadfmsxDSのページからどうぞ。

ダウンロード

 BIN

DateVer.Remark
2008/04/140.09(8105)04/14 1:15 Script Changed.
fmsx core update ver.3.5.
Added Mouse Emulation.
and more....
2007/08/060.08(3962)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/210.07(2101)Source included.

 SOURCE

DateVer.Remark
2008/04/130.09(2201)libLua(1830) is required to compile fmsxDS.
2007/08/060.08(1634)libLua is required to compile fmsxDS.
2006/02/210.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 ボタンJOYボタン2
X ボタンリターン 未設定
Y ボタン未設定 未設定
R ボタン未設定 未設定
L ボタン未設定 未設定
セレクトF1 F1
スタートメニュー メニュー

 マウス

タッチパネルでマウスを操作することができます。
タッチパネルをマウスモードに切り替えます。
メニュー>環境設定>タッチパネル で切り替えられます。
マウスモードでの操作方法は以下の通りです。(変更不可)

MSXDS
マウス移動タッチパネル
左ボタンタッチパネルON or Lボタン
右ボタン下キー
メニュースタートボタン
タッチしたときに左ボタンを押したことにするかをXボタンで切り替えることができます。
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 数値8RAMのページ数(ページ16KB)
VRAMPages 数値8VRAMのページ数(ページ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 数値1PSG音声出力 0:OFF 1:ON
SCC 数値1SCC音声出力 0:OFF 1:ON
SampleRate数値8192PCMサンプルレート 8の倍数を指定して下さい。
SCCPSlot 数値0SCC+カートリッジを挿すスロット番号 (まだ動作しません。)
ROMName 文字列配列×ロムイメージのファイル名
DSKName0 文字列ディスクイメージのファイル名
DSKName1 文字列ディスクイメージのファイル名
CASName 文字列カセットイメージのファイル名
CMOSName 文字列CMOS(内臓バックアップRAM)のファイル名
KanjiName 文字列漢字ROMのファイル名
Power BOOLFalse電源の状態 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アソシエーションおよびマイクロソフト社が動作を保証するものではありません。このソフトウェアを動作させた結果につきまして、両者は一切の責任を負わないものとします。ご使用の際には、必ず自己の責任にて動作させるようお願いいたします。

スクリーンショット

fmsxDS2.pngfmsxDS3.pngfmsxDS.png

コメント

このエミュレーターへのコメントがあればどうぞ。
通知無く削除する場合がありますので、ご了承ください。

お名前: コメント:
  • 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秒)