
           QUASI88  -- PC-8801 エミュレータ

-------------------------------------------------------------------------------
【目次】

    1)  QUASI88 とは？
    2)  QUASI88 の配布物
    3)  QUASI88 の性能
    4)  コンパイル方法
    5)  ROMイメージ、ディスクイメージの準備
    6)  使い方
    7)  トラブルシューティング
    8)  今後の予定
    9)  著作権／免責
    10) 作者／連絡先

-------------------------------------------------------------------------------
1)  QUASI88 とは？
-------------------------------------------------------------------------------

      QUASI88 は、 PC-8801 エミュレータです。
    FreeBSD 8.3R (X11, SDL) / Windows XP の環境にて動作確認しています。

    また、旧バージョンにおいては、以下の環境にて動作報告があります。
    ( 現バージョンでは、動作しないかもしれません )

    ・UNIX + X Window System
        FreeBSD, Linux, AIX, IRIX, Solaris, Cygwin, Mac OS X

    ・UNIX + SDL
        FreeBSD, Linux, Mac OS X

    ・Windows + SDL
        Windows98SE/2000/XP/7/8/10

    ・Classic Mac OS + SDL
        Mac OS 9.2.2

    サウンド出力機能は、 MAME 0.112/XMAME 0.106 のソースから移植しました。
    また、FM音源のジェネレータとして fmgen 008 も使用しています。

    なお、 SDL については以下のウェブサイトを参照ください。

                http://www.libsdl.org/

-------------------------------------------------------------------------------
2)  QUASI88 の配布物
-------------------------------------------------------------------------------

    ソース形式で配布される場合、以下の内容が含まれます。

    document/   ドキュメント (マニュアル、コンパイル方法など)

    src/        ソースファイル
    src/snddrv/ サウンドドライバ関連のソースファイル
    src/fmgen/  FM音源ジェネレータ fmgen 関連のソースファイル

    Makefile    UNIX用メイクファイル
    quasi88.rc  環境設定ファイルのサンプル (UNIX用)
    keyconf.rc  キー設定ファイルのサンプル (UNIX用)

    visualc/    Windows用のコンパイル環境 および 設定ファイル

        QUASI88.dsw VC6++用プロジェクトファイル
        QUASI88.sln VC9++用プロジェクトファイル
        QUASI88.ini 環境設定ファイルのサンプル (Windows用)
        KEYCONF.ini キー設定ファイルのサンプル (Windows用)

    mpw/        Classic Mac OS用のコンパイル環境 および 設定ファイル

        QUASI88.make    MPW用プロジェクトファイル
        QUASI88.prefs   環境設定ファイルのサンプル (Classic Mac OS用)
        KEYCONF.prefs   キー設定ファイルのサンプル (Classic Mac OS用)


    実行ファイル形式 (Windows) で配布される場合、以下の内容が含まれます。

    QUASI88.exe Windows用実行バイナリ (SDL版)
    QUASI88.ini 環境設定ファイルのサンプル
    KEYCONF.ini キー設定ファイルのサンプル
    SDL.dll     SDLライブラリ
    README-SDL.txt  SDLドキュメント

    ROM\        ROMイメージファイル をセットしておくフォルダ
    DISK\       DISKイメージファイルをセットしておくフォルダ
    TAPE\       TAPEイメージファイルをセットしておくフォルダ
    SNAP\       スナップショットが保存されるフォルダ
    STATE\      ステートファイルが保存されるフォルダ

    document\   ドキュメント (マニュアルなど)
    license\    MAME および fmgem のライセンス

    QUASI88(old-snd).exe    QUASI88.exe のサウンドドライバ部を、旧版と
                入れ換えたもの。若干、動作が軽いです。
    QUASI88mon.exe      QUASI88.exe にモニターモード機能を追加した
                もの。モニターモードが使用可能です。
    QUASI88win32.exe    QUASI88.exe を Win32API で書き換えたもの。
                SDL.dllは不要ですが、一部機能に制限があります。

-------------------------------------------------------------------------------
3)  QUASI88 の性能
-------------------------------------------------------------------------------

    1. エミュレート性能

     【エミュレートしているもの】

    ・Z80         ( メインCPU・サブCPU )
    ・割り込み    ( VSYNC、1/600秒RTC、サウンド )
    ・メモリ       ( PC-8801mkIISR相当分、拡張RAM、辞書ROM )
    ・画面表示    ( テキストVRAM、VRAM、パレット、ALU )
    ・漢字ROM       ( 第1、第2水準 )
    ・FDC/FDD     ( 主要コマンドのみ。D88フォーマット対応 )
    ・PIO
    ・キーボード
    ・マウス           ( バスマウス、シリアルマウス )
    ・ジョイスティック ( 一部のシステムでのみ可 )
    ・時計          ( 時刻の取得 )
    ・サウンド    ( YM2203、YM2608、BEEP音 )
    ・テープ       ( ロード／セーブ )
    ・プリンタ    ( ファイルに出力 )
    ・RS232C      ( ファイルに出力／ファイルから入力 )
    ・PCG-8100    ( サウンドは未対応 )

     【エミュレートしていないもの】

    ・割り込みの正確なタイミング
    ・CRTC/DMAC 関連の大部分
    ・FDC の重要でないコマンド、2DD/2HD のディスク操作
    ・時計の時刻取得以外の機能
    ・正確なウエイト
    ・その他、いろいろ

     【互換性 (完成度)】

      エミュレータとしての性能としてはどの程度のものかというと、
    そこそこは動くといったところです。動作率は 7〜9割ぐらいでしょうか。

    とりあえず、手元にあるソフトで動いたものを挙げてみましょう。

      「N88 DISK-BASIC」「PC8801FH 附属のデモディスク」「スナッチャー」
      「シルフィード」「ぎゅわんぶらあ自己中心派」「イース」「三国志」
      「ソーサリアン」「ハイドライド3」「大戦略88」「レリクス」
      「テクザー」「テスタメント」「アルファ」「カサブランカに愛を」
      などなど・・・

    いずれも動作確認しただけで、最後までプレイしたわけではありません。
    また、なにかオプションを指定しないと動かないものもあります。


    2. QUASI88の動作条件

     【高速なマシン】

      QUASI88 はかなり重いソフトです。動作させるには、それなりの CPUパワー
    が必要です。もっとも、最近の Windows系のOSが快適に動作するような
    マシンでは特に問題無いとおもわれます。

     【ROMイメージ・ディスクイメージ】

      現在 QUASI88 の配布物には、ROMイメージや、ディスクイメージの
    吸いだしツールが附属しておりません。よって、自力で揃える必要が
    あります。
      幸い、インターネット上には、各種ツール類が転がっているので、
    独力でこれらのツールを使ってイメージを入手しましょう。
    附属のドキュメント (ファイル名 GET-IMAGE.TXT) にも、これらのツールに
    ついて紹介してあります。

      ちなみに、QUASI88 で使用するディスクイメージは、P88SR.EXE
    (PC8801mk-2SR emulator) で使用されている、D88フォーマットに
    準拠しています。ROMイメージも、P88SR.EXE の ROM をそのまま
    使用することが可能です。

-------------------------------------------------------------------------------
4)  コンパイル・インストール方法
-------------------------------------------------------------------------------

    ソースからコンパイル＆インストールする方法は、以下を参照してください。
    UNIX および Mac OS X の場合   「BUILD-UNIX+MAC.TXT」
    Windows の場合           「BUILD-WIN32.TXT」
    Classic Mac OS の場合        「BUILD-OLDMAC.TXT」

    実行ファイル形式 (Windows) で配布される場合、インストーラは無いので、
    必要なファイルを、好きなフォルダにコピーしてください。
    ( アンインストールの際は、コピーしたファイルを全て削除してください )

-------------------------------------------------------------------------------
5)  ROMイメージ、ディスクイメージの準備
-------------------------------------------------------------------------------

    1. ROM イメージの準備

      ROMイメージファイルを、ROM用ディレクトリ(*1)にコピーしておきます。
    必要なファイルは以下の通りです。(ファイル名は小文字でもOK)

        ファイル名       内容                      (サイズ)

            N88.ROM          N88 BASIC ROM               (32KB)
            N88EXT0.ROM      N88 BASIC 拡張ROM バンク 0      (8KB)
            N88EXT1.ROM      N88 BASIC 拡張ROM バンク 1      (8KB)
            N88EXT2.ROM      N88 BASIC 拡張ROM バンク 2      (8KB)
            N88EXT3.ROM      N88 BASIC 拡張ROM バンク 3      (8KB)
            N88N.ROM         N BASIC ROM                 (32KB)
            N88SUB.ROM       サブCPU ROM                    (2KB or 8KB)
            N88KNJ1.ROM      漢字ROM第1水準                (128KB)
            N88KNJ2.ROM      漢字ROM第2水準                (128KB)
            FONT.ROM         フォントイメージ      (なくてもOK)

      ちなみに、ROM イメージファイルは M88 で使用しているものや、
    P88SR.EXE (PC8801mk-2SR emulator) のものを使用することもできます。

      また、fmgen を使用したい場合は、サウンドファイルが必要となります。
        ( fmgenを使用しなくてもサウンド出力はできます )

    2. ディスクイメージの準備

      つぎに、ディスクイメージを準備します。ディスクイメージはどこの
    ディレクトリに置いても構いませんが、DISK用ディレクトリ(*2)にまとめて
    おくとよいでしょう。

      扱えるディスクイメージの形式は、「D88形式」です。
    これは P88SR.EXE (PC8801mk-2SR emulator) で使用されている形式です。

    3. テープイメージの準備

      QUASI88 はテープイメージも扱えます。テープイメージはどこの
    ディレクトリに置いても構いませんが、TAPE用ディレクトリ(*3)にまとめて
    おくとよいでしょう。

      扱えるテープイメージの形式は、「CMT形式」および「T88形式」です。
    ただし、セーブは「CMT形式」のみとなります。


   (*1〜*3) ROM用ディレクトリ／DISK用ディレクトリ／TAPE用ディレクトリ
    配布物に ROM や DISK や TAPE というディレクトリがあれば、それです。
    いずれも、環境変数や設定ファイルで変更できます。

-------------------------------------------------------------------------------
6)  使い方
-------------------------------------------------------------------------------

    1. 起動

    以下を確認して、 QUASI88 を起動してください。

    UNIX の場合
      環境変数 DISPLAY やパスが適切に設定されていることを確認してください。

    Windows (SDL版) の場合
      SDLのライブラリ (SDL.dllというファイル名です) を、QUASI88 の実行
    ファイルと同じディレクトリにコピーしておいてください。

    Classic Mac OS (SDL版) の場合
      SDLのライブラリ (SDL というファイル名です) を、QUASI88 の実行
    ファイルと同じフォルダにコピーしおいてください。

    SDLのライブラリが配布物に含まれていない場合は、SDLのウェブサイト
    ( http://www.libsdl.org/ ) から入手しておいてください。


    2. キー操作

      QUASI88 は、Windows用の日本語106キーボードを前提にキー入力を
    エミュレートしています。
    PC-8801の特殊なキーは、以下のキーで入力できる場合があります。
    (カナは多分、ロックできません)

        PC-8801のキー  106キーボード
        -------------  -------------------------------
        STOP           Pause
        COPY           PrintScreen
        HOME CLR       Home
        HELP           End
        ROLL DOWN      PageUp
        ROLL UP        PageDown
        かな         ScreenLock ／ 左Win ／ ひらがな
        GRAPH          左Alt ／ オプション
        決定         無変換
        変換         変換
        全角         右Alt ／ 半角全角

      また、 F11 と F12 は以下の機能に割り当てられています。

        F11      ステータス表示。押すたびに表示／非表示が切り替わります
        F12      メニューモードへ移ります。


    3. メニューモード

      F12キー (一部環境ではアプリケーションキー・コマンドキー) を押すと、
    メニューモードになります。 QUASI88 の各種設定変更はここで行います。

      メニューモードからエミュレータに戻るには、ESCキーを押すか、
      [戻る] (または[EXIT]) ボタンをクリックします。
      [終了] (または[QUIT]) ボタンをクリックすると、QUASI88を終了します。

    メニューモードでは様々な機能を以下のカテゴリに分けて用意しています。

      [リセット] … エミュレータをリセットします。
      [CPU]      … クロック変更やウエイト調整ができます。
      [画面]     … フレームレートの変更などができます。
      [音量]     … 音量や、サウンド出力設定の変更ができます。
      [ディスク] … ディスクイメージの交換や、状態変更ができます。
      [キー]     … 特殊キー割り当てができます。
      [マウス]   … マウス・ジョイスティック設定ができます。
      [テープ]   … テープイメージの設定が出来ます。
      [他]       … ステートセーブや、画面・サウンドの保存ができます。


    4. 環境設定ファイル

      QUASI88の設定は、以下のテキストファイルにて行います。このファイル
    を、環境設定ファイルと呼びます。

    UNIX の場合
      「~/.quasi88/QUASI88.rc」

    Windows の場合
      実行ファイルと同じフォルダにある、「QUASI88.ini」

    Classic Mac OS の場合
      実行ファイルと同じフォルダにある、「QUASI88.prefs」

    環境設定ファイルは、適当なツール (Windowsならメモ帳など) にて編集
    してします。

    設定は 1行につき1項目ずつ記述してください。空行および、# 記号で始まる
    行は無視されます。以下に、いくつか例を挙げます。

        起動時のBASICモードの設定します。いずれかひとつ指定できます。
        -v2
        -v1h
        -v1s

        起動時のCPUクロックの設定します。いずれかひとつ指定できます。
        -4mhz
        -8mhz

        サウンドボードIIをエミュレートします。
        -sd2

        マウスをエミュレートします。(ジョイスティックとは排他使用)
        -mouse

        ジョイスティックをエミュレートします。(マウスとは排他使用)
        -joystick

        画面を何フレームごとに更新するかを設定します。
        1 を指定すると、秒間 60フレーム相当になります。2 にすると
        秒間 30 フレーム、4 にすると秒間 15フレーム……となります。
        -frameskip 1

        サウンドを出力しません。
        -nosound

        FM音源のエミュレートに、fmgen を使用します。
        これを指定した場合は、リズム音源用のWAVファイルが必要になります。
        -fmgen

        サブCPUの駆動タイミングを変更します。
        -cpu 0 がデフォルトです。これで動作しないアプリケーションの場合、
        -cpu 1 や -cpu 2 を指定してみてください。
        -cpu 1

        メニューモードで起動します。
        -menu

        ROM用ディレクトリを指定します
        ディレクトリのパスの前後は " で囲んでおきましょう。
        -romdir "ディレクトリのパス"

        ディスク用ディレクトリを指定します
        -diskdir "ディレクトリのパス"

        キー設定ファイルを読み込みます。(X11版、SDL版のみ)
        キー設定ファイルの記述方法は、サンプルから想像してください ^^;
        -keyboard 0

    例えば、

        o 秒間30フレーム表示
        o サブCPU駆動タイミングを 1 にする
        o サウンドボードII を実装
        o ウインドウサイズを 640x480 にする
        o サウンドのバッファサイズを 4096 に増やす (SDL版の場合)

    という設定にしたい場合は、環境設定ファイルを以下のように編集します。

        +--------------------------------------------+
        |# MY SETTING                    |
        |                        |
        |-frameskip 2                    |
        |-cpu 1                      |
        |-sd2                        |
        |-width 640                  |
        |-height 480                     |
        |-sdlbufsize 4096                |
        +--------------------------------------------+


    5. コマンドラインからの起動

      コマンドラインから QUASI88 を起動する場合、起動時のディスクイメージ
    ファイルを指定できます。
    以下はファイル N88BASIC.D88 を指定した例です。

        % quasi88 N88BASIC.D88

    この時、環境設定ファイルのほかに、個別設定ファイルとして、以下の
    ファイルが読み込まれます。( ”N88BASIC”の部分は、ディスクイメージ
    ファイルのファイル名に応じて、変化します )

    UNIX の場合
      「~/.quasi88/rc/N88BASIC.rc」

    Windows の場合
      「INI」フォルダにある、「N88BASIC.ini」

    Classic Mac OS の場合
      実行ファイルと同じフォルダにある、「N88BASIC.prefs」

      起動時にはオプションの指定もできます。ここで指定するオプションは、
    環境設定ファイルに記述する内容と同じです。

    以下は、秒間30フレーム表示・サブCPU駆動設定 1・サウンドボードII 実装で
    ファイル N88BASIC.D88 を指定した例です。

        % quasi88 N88BASIC.D88 -frameskip 2 -cpu 1 -sd2
    
    ●Windows (SDL版) の場合は、「コマンドプロンプト」を先に起動し、
      そこからコマンドラインにて QUASI88 を起動できます。

    ●Classic Mac OS (SDL版) の場合は、「コマンドキー」を押しながら
      QUASI88 を起動することで、コマンドラインからの起動と同様の、
      オプション指定ができます。

    ○システムやバージョンによっては、コマンドラインによる各種設定が
      できません。この場合は、環境設定ファイルを利用してください。

-------------------------------------------------------------------------------
7)  トラブルシューティング
-------------------------------------------------------------------------------

      QUASI88 が正常に起動しない場合、-verbose 1 オプションをつけて起動してみて
      ください。(環境設定ファイルに -verbose 1 の1行を書き加えればいいです)

      コンソールにいろいろと表示されるので、その内容を確認してください。
      環境によっては、 stdout.txt というファイルが出来るので、このファイルを
      開いて内容を確認してみてください。

    1) 起動しない
       必要なライブラリ (SDLのライブラリなど) があるか確認してください。

    2) 起動してもすぐに終了してしまう
       なんらかの初期化に失敗してます。OSの状態を確認してみてください。
       環境設定ファイルを一旦削除してみてください。

    3) 画面が真っ黒なままだ
       ROMイメージが読めていないようです。-verbose 1 オプションを指定して
       起動し、出力された内容を確認してください。

    4) 画面の表示が崩れている
       ファイル FONT.ROM か N88KNJ1.ROM がおかしいようです。これらの
       ファイルは無くてもかまいませんので、一度削除してみてください。

    5) 正常に動作しないアプリケーションがある
       メニューの [CPU] ないしは、-cpu オプション／-fdc_wait オプションの
       設定を変更してください。

    7) サウンドがノイズだらけになる (SDL版)
       デフォルトのままではサウンドのバッファが足りないことがあります。
       -sdlbufsize, -sdlbufnum オプションで調整してみてください。

    8) 処理速度が遅い
       速いマシンに乗り換えましょう :-)
       オプションをいろいろと組み合わせればなんとかなるかもしれません。
       -autoskip を使ってみる、-frameskip でフレームレートを下げる、
       -half で画面サイズを小さくする、-fullscreen でフル画面にしてみる、
       -nowait でウェイトなしにする、 -sd で、サウンドボードIIをやめる、
       -nofmgen で、fmgen の使用をやめる、-nosound でサウンド出力そのもの
       をやめる、などなど。

-------------------------------------------------------------------------------
8)  今後の予定
-------------------------------------------------------------------------------

    いろいろとやりたいことはあります。
    「エミュレータ性能の向上」「高速化」「configure対応」………。
    ま、やりたい事と出来る事は必ずしも一致しないものでして・・・。(^_^);

-------------------------------------------------------------------------------
9)  著作権／免責
-------------------------------------------------------------------------------

      QUASI88 （サウンド出力処理部を除く）はフリーソフトウェアであり、
    著作権は作者が保有しています。このソフトは無保証であり、このソフトを
    使用した事によるいかなる損害も作者は一切の責任を負いません。
    ライセンスに関しては、修正BSDライセンスに準ずるものとします。

      QUASI88 のサウンド出力処理部は、MAME および、XMAME のソースコードを
    使用しています。このソースは、各著作者が著作権を有します。
    ライセンスに関しては、MAME および、XMAME のドキュメントを参照下さい。

      QUASI88 のサウンド出力処理部のうち、FM音源ジェネレータには fmgen の
    ソースコードを使用しています。このソースは cisc氏が著作権を有します。
    ライセンスに関しては、fmgen のドキュメントを参照ください。

-------------------------------------------------------------------------------
10) 作者／連絡先
-------------------------------------------------------------------------------

    原作者：福永省三
    現メンテナ:Raphaël Zumer
    元ウェブサイト：http://www.eonet.ne.jp/~showtime/quasi88/
    現ウェブサイト:https://github.com/rzumer/quasi88/
