------------------------------------------------------------------------------

  FM-7 EMULATOR XM7dash (V2.9L52aR130423)

  for Win32
  Copyright (C) 1999-2012 ＰＩ．
  Copyright (C) 2001-2012 Ryu Takegami
  Copyright (C) 2010-2013 Toma

------------------------------------------------------------------------------

□はじめに

  XM7dashは、FM-7エミュレータXM7のソースを再利用した改造版です。
  XM7はＰＩ．氏および、たけがみりう氏の著作物であるため、XM7dashはその使用規定
  に基づき公開しています。
  ＰＩ．さん、たけがみりうさんには大変有用なソフトウェアをソース付きで公開して
  くださり感謝しています。

  本改造版は、XM7SRC.TXTに記述されていた
  > 実機・資料の入手が難しい過去の機種の、詳細なドキュメント・仕様書となり得ま
    すので、電子保存の意味でも公開すべきだと考えます。
  に感銘し、ならばなおいっそう実機に近いものにしていくべきで、それに協力してい
  きたいという思いから、公開することに致しました。

  本改造版は正式版ではなくあくまでも派生版の一種にすぎません。
  本改造版に対する問い合わせは私宛にXM7dash公開サイトの掲示板などへお願いします。

  正式版に同等機能の追加や修正が加わり、本改造版の存在意義が無くなった際には公
  開終了します。
  本改造版のソースから正式版への引用があった場合でも、その後Copyrightを主張する
  つもりは特にありません。
  元々私の作品ではありませんし、実機再現率の向上、仕様の正確性の向上が目的です
  ので。

  私個人の考えですが、ソフトウェアは複数の開発者でソースを共有し、よりよいもの
  を構築していく形が理想と思っています。
  そういう意味で、これに賛同して第四・第五の開発者・協力者が現れるのに、ほんの
  少し期待しています。


□本アーカイブについて

  FM-7 EMULATOR XM7 (V2.9L30)を元にした改造版「XM7dash V2.9L52aR130423」の
  アーカイブです。
  本ファイルはXM7dashにおける変更点のみ記述します。
  よって詳細は同梱のXM7.txtをご参照願います。
  XM7.txtは正式版(V2.9L52a)に付属のものを添付しています。


□前改造版からの変更点

  XM7dash V2.9L52aR130409→V2.9L52aR130423の変更点一覧です。

  <新規>
  ・ウィンドウモードで外部描画フィルタDLL使用時に表示サイズを1.5倍の960×600
    ピクセルで表示させるモードを追加。

  <変更>
  ・外部音源DLLのGetBufferに対応。DLL側が対応していればFM音源ディスプレイの
    レベルメータを内蔵音源使用時同様に表示可能になった。
  ・外部音源DLLがCSMに対応していない場合のキーコントロールに対応。

  <修正>
  ・PSGを外部音源DLLで再生しているときに動作設定の音源音量設定が反映されて
    いなかった問題を修正。
  ・ステートレジュームをONにしてエミュレータ起動時に復帰するステートがVM停止
    状態だった場合に画面が復帰しない問題を修正。

  XM7dash V2.9L40R4→V2.9L52aR130409の変更点は多岐に渡るため、省略します。

□最新正式版との相違点

  XM7 V2.9L52a→XM7dash V2.9L52aR130423の相違点一覧です。

  <新規>
  ・外部描画フィルタDLLに対応。現状ウィンドウモード時のみ。表示サイズを1.5倍の
    960×600ピクセルで表示させるモードを追加。
  ・フルスクリーンの画面モード選択肢に「現在の画面モード (整数倍拡大)」を追加。
  ・外部音源DLLに対応。詳細はサウンド出力の項を参照。
  ・FM-7モード時にKANJI.ROMを使用した際の漢字ROM未定義領域パッチを無効にする
    スイッチを動作設定プロパティに追加。
  ・ステート、ディスク、テープのファイル履歴の保存に対応。
  ・マウント状態の保存に対応。ベタイメージファイルに対する書き込み禁止設定の
    保存にも対応。
  ・[表示]メニューに割り込みウィンドウを追加。
  ・サウンド出力モードをステレオにしている際、FM音源ディスプレイでどちらから出
    力されているか確認できるようにした。
  ・サブウィンドウのポップアップスタイルに対応。デフォルトはOFF。
  ・サブウィンドウの保存に対応。再起動後「全て復元」を行うことで、前回終了時の
    サブウィンドウを再現可能。起動時に自動で復元させることも可能。ただし、サブ
    ウィンドウポップアップモード変更時に保存はクリアする。デフォルトはOFF。
  ・ブートモード、メインウィンドウ位置、フルスクリーンモード、ステータスバー、
    カレントディレクトリの保存スイッチを追加。デフォルトはON。
  ・固定のステートファイル名(デフォルトでは"STATE.XM7")でステートセーブおよび
    ロードするクイックセーブ・クイックロードをGUIメニューに追加。
  ・終了時および起動時にそれぞれ自動でクイックセーブ・クイックロードする機能を
    追加。デフォルトはOFF。
  ・ステートの上書き保存時に、既存ファイルを"ファイル名_##.XM7"とファイル名を
    変更して保存しておく機能に対応。##は00からの通し番号であり、99まで。00〜99
    まで存在すると99に上書きする仕様。デフォルトはOFF。
  ・ファイル履歴にコンテキストメニューを追加し、履歴から削除できる機能を追加。
  ・D77ファイルメディアリストにコンテキストメニューを追加し、ディスクタイトル
    （ラベル）の変更を行える機能を追加。

  <変更>
  ・GUIメニューのドライブ0、ドライブ1を統合しディスク(I)を追加。
    詳細はWin32メニューの項を参照。
  ・ファイル履歴によってほぼ同様の操作が可能になったため「一時取り出し」を廃止。
    一時取り出し状態で保存されたステートをロードすると、ファイル履歴に追加して
    アンマウントする。
  ・ドライブ2/3のアクセスインジケータはどちらかのドライブにマウントした際に表示
    する。このとき表示幅が狭くなるためタイトルはファイル種別(拡張子)のみに変更。
    ただし2倍拡大表示モード時は2ドライブ時同様ファイル名(もしくはディスク名)を
    表示する。
  ・マウント中はGUIメニューのドライブ(I)にファイル名付きで子メニュー表示する
    ように変更。このため、2D/VFDファイルに関しての孫メニューに表示されるマウ
    ントディスクファイル種類表示は廃止。
  ・キャプションへの表示情報にロード／セーブしたステートファイル名を追加。
    これはリセットによってクリアする。(XM6の動作仕様に合わせた)
  ・マウントしたフロッピーディスク、テープ、バブルカセットイメージファイル名の
    キャプションへの表示をXM7の動作設定で表示・非表示設定できる仕様に変更。
    ただし、表示設定にしても#2〜3のマウントファイル名は表示出来ない。
  ・標準FM音源/WHG音源/THG音源にアクセスした後に動作設定プロパティで各フラグを
    OFFにした場合リセットする仕様に変更。
  ・ステートファイルのヘッダ文字列を正式版と区別できるよう変更。

  <修正>
  ・THG割り込みステータス読み込み時にTHG有効フラグをチェックしていなかった問題を
    修正。
  ・メモリ検索ダイアログのショートカットキー部が表示されていなかったのを修正。


□サウンド出力

  外部音源DLL(V1)に対応しています。
  一度実行するとXM7.iniの[Sound]セクションにFMGenDllキーが追加されるので、
  そこへDLLのファイル名を記述してください。フルパスの必要はありません。
  XM7.exeと同じフォルダまたはパスの通ったフォルダに該当するDLLがあった場合、
  FM音源エミュレーション時に内蔵音源エンジンの代わりにそちらを使用します。
  動作設定プロパティで音源エンジンの選択も可能です。

  外部音源DLLは各位で導入してください。

  ※外部音源DLL(V1)使用時の制限事項
  ・FM音源合成時の線形補間(波形補間)が動作設定に関係なく無効になる。
  ・外部音源DLLで鳴らしているパートのみ、FM音源ディスプレイのレベルメータが
    表示出来なくなる。（DLL側がGetBufferに対応していれば表示可能）


□ディスプレイ描画

  外部描画フィルタDLLに対応しています。デフォルトはstrech.dllです。
  XM7.exeと同じフォルダまたはパスの通ったフォルダに該当するDLLがあった場合、
  ウィンドウモード時の描画処理にそちらを使用します。
  動作設定プロパティで選択も可能です。
  一度実行するとXM7.iniの[Screen]セクションにFilterDllキーが追加されるので、
  そちらを変更することで別のDLLへ変更も可能です。

  外部描画フィルタDLLは各位で導入してください。

  ※外部描画フィルタDLL使用時の注意事項
    一部外部描画フィルタDLLにおいて、Win32メニューを開いた箇所の再描画が
    されない場合があります。(現状strech.dllのみ確認)
    この場合、XM7.iniの[Screen]セクションにFilterRedrawScreenキーを1に変更する
    ことで、Win32メニューを閉じた際に強制的に再描画させることが出来ます。


□Win32メニュー

  以下にメニューの変更点概略を示します。

  ファイル(F)
    クイックロード(K)     VMの状態をファイルからクイックロードします。
    クイックセーブ(Q)     VMの状態をファイルにクイックセーブします。
    (ファイル名)          VMの状態をファイルからロードします。

  ドライブ1,ドライブ0
    ドライブ(I)に統合し、削除しました。

  ドライブ(I)
    #0(#1、#2、#3も同様)
      開く(O)             ディスクイメージファイルを設定します。
      取り外す(E)         ディスクイメージファイルを取り外します。
      書き込み禁止(W)     現在選択しているディスクを書き込み禁止に設定します。
      (ディスク名)        D77ファイル内のメディアを切り替えます。
      (ファイル名)        ディスクイメージファイルを設定します。
    #0,1で開く(B)         ディスクイメージファイルをドライブ0,1に設定します。
    #2,3で開く(H)         ディスクイメージファイルをドライブ2,3に設定します。
    全イジェクト(E)       全てのディスクイメージファイルを取り外します。

  テープ(T)
    開く(O)               テープイメージファイルを設定します。
    取り外す(E)           テープイメージファイルを取り外します。
    巻き戻し(W)           １つ手前まで巻き戻します。
    早送り(F)             １つ先まで早送りします。
    録音(R)               録音可能状態、再生状態を切り替えます。
    (ファイル名)          テープイメージファイルを設定します。

  表示(V)
    割り込み(I)           メインCPU割り込みウィンドウを表示します。
                          ※IRQ/FIRQの各割り込み状態(On/Off/Mask)を表示します。
                            OPN/WHG/THGに関してはOn/Offしか表示できません。

  ウインドウ(W)
    全て隠す(H)           サブウインドウを全て非表示にします。
    全て復元(R)           アイコン化や非表示の前の状態に戻します。
                          再起動後に前回終了時開いていた全てのサブウインドウを
                          復元します。
    全て閉じる(O)         サブウインドウを全て閉じます。このコマンドで閉じた
                          サブウインドウは全て復元で復元されます。


□著作権

  XM7dashはＰＩ．氏および、たけがみりう氏が著作権を所有するXM7のソースコードを
  元にトマが開発した、ＰＩ．氏、たけがみりう氏、およびトマが著作権を所有するフ
  リーソフトウェアです。配布条件はXM7に準じます。

  外部音源DLL機能はXM7ヨルダのソースをベースとしています。
  この部分の著作権は原作者である891氏に帰属します。
  Copyright (C) 2011 891＠【昔のPC】エミュレーター統合スレッド4

  外部描画フィルタDLL機能はXM7Dash勝平のソースをベースとしています。
  この部分の著作権は原作者である895氏に帰属します。
  Copyright (C) 2013 895＠【昔のPC】PCエミュレーター統合スレッド Part5

  他の著作権に関する詳細は同梱のXM7.txtを参照願います。

  ※同梱のXM7.txtにも記述されていますが、ROMファイルについては著作権者の意向に
    従ってください。


□XM7dash 開発スペック

  開発開始日時   2010年1月23日

  主要ハード     開発マシン
                   Intel Core i7-920 (Bloomfield) 2.66GHz, 9GB RAM, 4TB HDD
                   ASUS Rampage II Extreme, nVIDIA GeForce GTX 560 Ti
                 評価マシン
                   SONY VAIONOTE-GR PCG-GRT55E/B
                   Intel Pentium 4 Celeron 2.20GHz, 768MB RAM, 80MB HDD
                 ターゲットマシン
                   FM77AV-2, ビデオデジタイズカード (FM77-411)
                   FMデータレコーダ(MB27502)

  主要開発言語   Borland C++ Compiler 5.5.1
                 Netwide Assembler (NASM) v0.98.08.towns5


□XM7dash V2.9L52aR130423に関するFAQ

  <デバッガ>

  Q:割り込みウィンドウで、OPN/WHG/THGがMaskになりません。
  A:仕様です。OPN/WHG/THGの表示に関してはON/OFFにしか対応していません。
  Q:割り込みウィンドウで、NMIは表示しないのですか？
  A:NMIはIRQ/FIRQの様に個別フラグも禁止フラグもないため、
    表示していません。


□連絡先

  公開サイト(夢幻郷)
  http://tomatoma.s54.xrea.com/

  掲示板
  http://tomatoma.s54.xrea.com/cgi-bin/bbs.cgi

  メールアドレス
  tomatoma@s54.xrea.com
