Xnp2 - ねこープロジェクトII for X Window System


1. はじめに

  ねこープロジェクトII はぷにゅ氏により作成された Windows 上で動作する
  i286 CPU を塔載した PC-9801 シリーズのエミュレータです。

  Xnp2 はねこープロジェクトII を UNIX 系 OS で動作する様に移植したものです。


2. 動作環境

  X Window System が動作する UNIX 系 OS で動作します。


3. 必要なソフトウェア

  3.1. コンパイル時に必要なソフトウェア

    ・gcc
    ・GTK+ 2.6 以降

    以下は動作には必須ではありませんが、音を鳴らす場合等に必要になります。

    ・SDL (サウンド・ジョイスティックを使用する場合に必要です。)
      バージョンは 1.2.x もしくは 2.0.x に対応しています。
    ・SDL_mixer (フロッピーのシーク音等の PCM を再生する場合に必要です。)
    ・libusb 1.0 (C86BOX を使って FM 音源を再生する場合に必要です。)
    ・XFree86-VidModeExtension (画面解像度を変更するフルスクリーン機能を使用する場合に必要)

  3.2. 実行時に必要なソフトウェア

    画面解像度を変更しないフルスクリーン機能を使用する場合には、使用している
    ウィンドウマネージャが NETWM 規格に準拠している必要があります。

    NETWM 規格については以下の URL を参照してください。

      http://freedesktop.org/wiki/Standards/wm-spec


4. インストール

  Xnp2 のインストールはコマンドラインから以下の様に行います。

    $ ./configure
    $ make
    $ su
    # make install

  ※configure で指定できるオプションについては ./configure --help を実行して
    表示されるヘルプを参照してください。


5. 実行

  5.1. 実行方法

    プログラムの実行はコマンドラインから以下の様に行います。

      $ xnp2

    また、起動時にフロッピーディスクドライブにディスクイメージを挿入したい場合、
    以下の様にディスクイメージを引数に指定してください。

      例: FDD1 に system.d88、FDD2 に data.d88 を挿入して起動

        $ xnp2 system.d88 data.d88

  5.2. 初期設定

   1) CPU クロックの設定
     メニューから [Emulate -> Configure...] を選択し、設定ダイアログを
     表示します。
     CPU クロックの既定値は PC-9801VX 相当の 10MHz になっています。
     処理落ちが発生してしまう様でしたら、クロックの設定を変更してクロック値を
     下げてください。

   2) サウンドの設定 (サウンド使用時のみ)
      CPU クロックの設定と同じダイアログで設定できます。
      サンプリングレートは処理速度に余裕があれば 44KHz に設定してください。
      サウンドバッファは処理が追い付く最低の値を設定してください。
      環境にもよりますが、速いマシンであれば 50～100 ms、通常で 200ms 位が
      目安です。

   3) 設定の反映
     1) ～ 2) を行った後、[Emulate -> Reset] で設定の反映を行います。
     サウンド使用時に起動音が鳴らない場合には、プログラムを一旦終了してから
     再度起動し直してください。

  5.3. 操作方法

    5.3.1. マウス
      3 ボタンマウスを使用している場合、中ボタンのクリックで X <-> PC-9801 間の
      マウス操作の切替を行います。

    5.3.2. キーボード
      キーボードは日本語 106 キーボードを使用する事を想定しています。
      ただし、PC-9801 キーボードとはキーボードレイアウトが異なる為、
      一部のキーを入れ換えてあります。入れ換えられているキーについては
      以下の表を参照してください。

      +-------------------------+----------------------------+
      |         PC-9801         |            106             |
      +-------------------------+----------------------------+
      | GRPH                    | Alt                        |
      | HELP                    | End, F12(*)                |
      | CAPS                    | ScrollLock                 |
      | NFER                    | 無変換                     |
      | XFER                    | 変換/前候補/全候補         |
      | STOP                    | Pause/Break, F12(*)        |
      | COPY                    | PrintScreen/SysRq, F12(*)  |
      | カナ                    | カタカナ/ひらがな/ローマ字 |
      | テンキーの = [イコール] | F12(*)                     |
      | テンキーの , [カンマ]   | F12(*)                     |
      +-------------------------+----------------------------+
      (*) F12 キーのキー割り当てはメニューから変更できます。

      日本語 106 配列では無いキーボードでは入力できないキーがありますが、
      その場合にはソフトウェアキーボードから入力してください。
      ソフトウェアキーボードはメニューから Other -> Software Keyboard で
      表示されます。使い終ったソフトウェアキーボードは表示すると同じ手順を
      再度行う事で表示されなくなります。


6. ディスクイメージ

  Xnp2 では、直接 FDD からデータの読み書きは行なわずにディスクイメージより
  データの読み書きを行います。また、ハードディスクもフロッピーディスクと
  同様にディスクイメージよりデータを読み書きを行います。

  6.1. フロッピーディスクイメージ

    Xnp2 ではベタ形式および D88 形式のフォーマットが利用できます。

    6.1.1. フロッピーディスクイメージの使用方法

      フロッピーディスクイメージを使用するには、メニューから
      [FDD -> Drive[12] -> Open...] を選択すると表示されるファイル選択
      ダイアログで使用するディスクイメージを選択してください。

    6.1.2. フロッピーディスクからイメージ作成

      (注) イメージを作成する際にはフロッピーディスクを書き込み禁止に
           してください。

      UNIX 上では dd を使用してフロッピーディスクからベタ形式のディスク
      イメージを作成する事が可能です。ただし 1.25MB のディスクを扱うには
      フロッピーディスクドライブと OS が 1.25MB フォーマットに対応して
      いる事が必要です。

      以下の様なコマンドでフロッピーデバイスからファイルに書き出す事で
      ディスクイメージが作成できます。
      (フロッピーデバイスのパスは各 OS で違うので、使用している OS の
       デバイスパスに置き換えてください。)

        dd if=/dev/rfd0d of=diskimg.xdf

      MS-DOS や Windows でのディスクイメージの作成方法については、
      以下の章で示されているヘルプを参照してください。

    6.1.3. 新規フロッピーディスクイメージ作成

      Xnp2 の機能を使用すると D88 形式のディスクイメージを作成できます。

      1) [Emulate -> New Disk...] を選択すると、ファイル選択ダイアログが表示
         されます。

      2) ディスクイメージを作成するディレクトリとディスクイメージファイル名を
         設定し、「OK」ボタンを押します。

      3) 新規フロッピーディスクイメージダイアログが表示されるので、作成する
         ディスクイメージの種別とラベルを設定します。

  6.2. ハードディスクイメージ

    Xnp2 では THD 形式(T98)、NHD 形式(T98-Next)、HDI 形式(Anex86) の
    SASI ハードディスクイメージが利用できます。

    6.2.1. ハードディスクイメージの使用方法

      ハードディスクイメージを使用するには、メニューから
      [HardDisk -> SASI[12] -> Open...] を選択すると表示されるファイル選択
      ダイアログで使用するディスクイメージを選択してください。
      選択したハードディスクイメージ使用するには [Emulate -> Reset] を実行
      してください。

    6.2.2. 新規ハードディスクイメージ作成

      Xnp2 の機能を使用すると THD 形式のディスクイメージを作成できます。

      1) [Emulate -> New Disk...] を選択すると、ファイル選択ダイアログが表示
         されます。

      2) ファイル選択ダイアログの [他のフォルダ] をクリックし、ダイアログを
         拡張します。

      3) 作成するディスク形式、ディスクイメージを作成するディレクトリと
         ディスクイメージファイル名を設定し、「OK」ボタンを押します。

      4) 新規ハードディスクイメージダイアログが表示されるので、作成する
         ディスクイメージの容量を設定します。


7. コマンドラインオプション

    --config-file <filename>
      起動時に読み込む設定ファイルを指定します。また、このオプションが指定
      されるとホームディレクトリとして、設定ファイルの存在するディレクトリ
      を使用します。非指定時には $(HOME)/.np2/np2rc を使用します。

    --timidity-config <filename>
      Xnp2 に内蔵されている TiMidity 互換のソフトウェア MIDI 音源で使用する
      音源設定ファイルを指定します。非指定時は $(HOME)/.np2/timidity.cfg を
      使用します。


8. USB 接続 FM 音源

  8.1. サポート機器

    Xnp2 では USB 接続 FM 音源をサポートしています。
    現在サポートしている機器は以下となります。

    ・SPFM Light (http://www.pyonpyon.jp/~gasshi/fm/spfmlight.html)
      RE:birth モジュール RE1-YM2608 との組み合わせで動作確認済み

    ・C86BOX (http://c86box.com/)
      PC-9801-86 との組み合わせで動作確認済み

  8.2. 使用方法

    これらの機器を使用するためには Xnp2 を root ユーザで実行する、もしくは
    機器にアクセスするためのデバイスファイルをユーザから読み書きできる権限を
    付与する必要があります。
    Xnp2 を root ユーザで実行するのはお勧めしておりませんので、以下の方法で
    通常のユーザからアクセスできるようにしてください。

    8.2.1. Linux

      お使いの OS が Linux で udev を使用している場合、/etc/udev/rurles.d に
      以下の内容を記載したファイルを作成する事により、機器を接続した際に
      機器にアクセスするためのデバイスファイルが自動的に一般ユーザから
      読み書きできる設定が行われるようになります。

      ファイル名: /etc/udev/rules.d/70-external-fm-sound.rules
      ----- ここから
      ACTION!="add", GOTO="external_fm_sound_end"
      SUBSYSTEM=="tty", IMPORT{parent}="ID_VENDOR_ID", IMPORT{parent}="ID_MODEL_ID"
      # C86BOX
      SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="27d8", MODE="0666"
      # SPFM Light (a.k.a. FTDI FT232RL)
      SUBSYSTEM=="tty", KERNEL=="ttyUSB*", ENV{ID_VENDOR_ID}=="0403", ENV{ID_MODEL_ID}=="6001", MODE="0666"
      LABEL="external_fm_sound_end"
      ----- ここまで

    8.2.2. NetBSD

      8.2.2.1. ログイン時設定

        /etc/ttyaction に以下の内容を追加する事により、ログイン時にデバイス
        ファイルの権限が自動的にログインユーザ、もしくは一般ユーザから
        アクセスできるようになります。

        ----- ここから
        ttyE0   *       chown ${USER}:wheel /dev/ugen[0-9]*.* /dev/usb /dev/usb[0-9]*
        ttyE0   *       chmod go-rw /dev/ttyU*
        ttyE0   login   chmod go+rw /dev/ttyU*
        console *       chown ${USER}:wheel /dev/ugen[0-9]*.* /dev/usb /dev/usb[0-9]*
        console *       chmod go-rw /dev/ttyU*
        console login   chmod go+rw /dev/ttyU*
        ----- ここまで

      8.2.2.2. chmod 実行

        root ユーザで必要なデバイスファイルの権限を設定します。
        ただし MAKEDEV すると元のアクセス権限に戻ってしまいます。

        # chmod go+rw /dev/ugen* /dev/ttyU*

    8.2.3. その他 OS

      お使いの OS のマニュアルや Web ページを参考にしてください。


9. 備考

  ・man page がインストールされていれば man xnp2 でマニュアルが表示されます。

  ・このマニュアルや man page に書かれている以上の情報が欲しい場合は、
    以下の URL にあるヘルプを参照すると見つかるかもしれません。

      Xnp2 help URL: http://www.nonakap.org/np2/html/help/ja/


10. 問題点

  ・解像度変更をするフルスクリーン機能を使用している際に、元の画面解像度が
    640x480以外の場合に仮想画面がスクロールしてしまう。

  ・NetBSD では SPFM Light が使用できない。
    SPFM Light との通信に使用する uftdi(4) が 1.5Mbps の通信速度に対応して
    いないため。


11. 免責事項・著作権

  11.1. 免責事項

    Xnp2 は無保証です。Xnp2 の使用によって得られたいかなる利益・損害に対しても
    作者は責任を負いません。

  11.2. 著作権

    本ソフトウェアの著作権、その他の知的財産権は、日本法に準拠する為、
    ねこさん開発ちーむが所有しています。

    ねこープロジェクトのソースコードは修正 BSD ライセンスです。Xnp2 固有部分の
    ソースコードも修正 BSD ライセンスとします。再配布時の著作権表示の義務は
    ありません。


12. 連絡先

  本ソフトウェアの配布元は http://www.nonakap.org/np2/ です。

  本ソフトウェアに関する問い合わせは
   NONAKA Kimihiro (埜中公博) / nonakap@gmail.com
  まで電子メールにてお願いします。
