★テープアクセス時のみ高速動作するXM7 (XM7B)


== 説明 ==

XM7でテープゲームを遊ぼうとすると、実機と同等の読み込み時間がかかってしまい、なかなか気軽に「遊ぶかな!」という気になれません(^^;

これは、XM7が実機動作を忠実にエミュレーションしている結果であり、その点においてはすばらしい再現性なわけです。

そういうわけなんですが、やっぱりテープゲームで遊びたい。そこで、PI.さんが公開してくださったXM7 V1.0L10のソースを元にチョコチョコっと変更を加え、テープにアクセス時のみ最高速動作するXM7を作ってみました(どのくらい早くなるかはこのページの最後をご覧下さい)。

オリジナルと混同しないよう、名前はXM7Bとしてあります。Bには特に意味はありません(ちなみに、別の目論見を実現するためにXM7Aが水面下で開発中)。

このたび、オリジナルXM7の製作者であるPI.さんから転載の許可をいただけましたので、ここに公開いたします(Win32版)。
PI.さん。ありがとうございましたm(__)m

しかし、このXM7B。当然のことながら十分なCPUパワーがないと意味がありません。もともとPentium 200MHzクラスのPCでは実スピード動作でいっぱいいっぱいくらいのイメージですから、Pentium II 400MHzくらいのCPUパワーがないと高速化が実感できないかもしれません。

現在はXM7 V2, V3がこれと同等の機能を搭載していますので、あまりXM7Bを使用するメリットはありません。


XM7B(Win32版) ダウンロード


== 使用方法 ==


ん〜。オリジナルと同じ。


== 動作詳細 ==

私の解析によると(←信頼性低し...)XM7は10ms毎のインターバルタイマにより実行許可状態を管理しています。実行許可状態であると判断した場合にCPU動作を10ms分進めるようなスケジューラになっています(V1.0 L10)。

これを、カセットのテープモーターのON時には実行許可/不許可を無視して、常にCPUをフル回転するように変更したものが今回のXM7Bです。

ですので、ゲーム中にいたずらに(無意味に)テープモーターがONになるようなゲームがあった場合、(それがFD版であっても)その間は最高速で動作してしまいとてもゲームになりません。これはバグではなく、仕様ですのであらかじめご了承願います。


== その他(余談) ==

・もっとはやく!
どうしてもCPUパワーが足りないという人は、サウンド再生のレベルを落としてみてください。少しは負荷が軽く出来るかもしれません。
HudsonソフトのHuVoice(テープカウンタ2009でロード完了)を使用してロード時間を計測してみました。
計測環境はAthlon 500MHz、Windows 2000です。

条件 ロード時間 オリジナルとの速度比
オリジナルXM7 84秒 1.00
XM7B(44.1KHz, FM音源あり) 27秒 3.10
XM7B(サウンド再生無し) 23秒 3.65


・ゲームの動作速度を上げるには

将棋ゲームなど、速度は速ければ早いほどよいというゲームの場合(あるいは、アクションゲームの速度をめちゃめちゃ上げて遊びたい場合)、以下の方法を使えばゲームが早くなります(ディスク版のみ)

1.ディスクをマウントしないでXM7を起動する
    当然ROM BASICが立ち上がる

2.カセットモーターをONにする
  MOTOR ONコマンドを実行する

3.ディスクをマウントする

4.再起動する
  ここでリセット(F12)を押してしまってはカセットモーターがOFFになってしまい、意味がありません。そこで、
  EXEC &HFE00を実行して、ブートROMからワームブートさせます。

これでゲームが早くなります。ただし、ゲームによっては起動後にカセットモーターをOFFにするゲームもあります.この場合はこの手順を踏んでも早くはなりません。