PC6001VX の pkgsrc 化 その後
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

PC6001VX の pkgsrc 化 その後

2017-02-01 00:56

    NetBSD + pkgsrc で P6エミュレータ PC6001VX のエントリの続きです。

    pkgsrc/emulators/PC6001VX

    ブログに書くのをサボっていましたが、 OSC大阪の展示 のほぼ2週間前の 1月15日に pkgsrc のツリーにコミット しました。

    以前書いた PC6001VX.pro の修正についてはすでに 本家の github には取り込まれていて、次のリリースには入るはずです。 pkgsrc 的には現状の最新である 2.30.0 を使うので本家の最新版に追従する形のパッチを入れています。

    OpenGL ハードウェアアクセラレーション問題

    以前のエントリで「SIGSEGV問題」として挙げた「起動して少し時間が経つと core を吐いて落ちる」という問題ですが、一部訂正があります。

    NOOPENGL について改めて調べたところ、前項に書いた PC6001VX.pro の X11 関連の定義の「linux以外」の部分で記載するところに「QT += x11extras」を書き忘れていたのが原因ということがわかりました。

    実はこれは間違いで、「ハードウェアアクセラレーションを有効にすると落ちるグラボ(というかXサーバードライバ)がある」のが正解のようです。

    たまたまビルド時に NOOPENGL を定義したバイナリを動かすと設定ファイル上でハードウェアアクセラレーションが無効の設定で記録され、そのままの状態で NOOPENGL 有効のバイナリをインストールしてもたまたま動いていただけのようです。

    とりあえず手元のマシンでは以下のような状態でした。

    NetBSD 的には DRMKMS 対応の Xサーバーはまだまだ発展途上ということでしょうか。

    ハードウェアアクセラレーションを無効にするには起動後のメニューで設定すればよいのですが、ダメなときはメニューを開く間もなく落ちてしまうので、 ~/.pc6001vx/pc6001vx.ini の以下の行を編集して true → false に変更すればOKです。

    hwAccel=true

    起動

    PC6001VX を起動すると初回起動時は自動で ~/.pc6001vx 以下の設定ファイルディレクトリ一式を作ってくれます。その場合 ROM が無いので警告メッセージが出るので一旦終了します。

    実機を持っていてエミュレータを使うような人はすでにROMを吸い出しているでしょうからそれを ~/.pc6001vx/rom ディレクトリにコピーするだけです。

    実機を持っていない場合は、 秋川さんの互換BASIC の BASICROM.60 と PC6001VX作者でもある eighttailsさん制作のフォント の CGROM.60 を上記 ~/.pc6001vx/rom ディレクトリにコピーすればOKです。

    イース2 OPデモ on 互換BASIC

    これも以前の記事で書いた話です。

    ただし、 PC-6001用互換BASIC だとイース2オープニングは何かしらおかしいようです。エミュレータの問題ではないと思いますが、これもせっかくなので調べてみたいところです。

    これについて、作者の秋川さんから直接連絡いただきました。

    ROM 内ルーチン的には OPEN および CLOSE のルーチン内でリレーONおよびリレーOFFまでやってくれるようなのですが、TINY野郎さんの YS2OP 実装時は両方を重複して呼ぶ実装にしていたとのことです。

    互換BASIC Ver.0.6 の中には RLON および RLOFF というリレーON/OFFを実行するエントリはすでに存在しているので、上記 1B49H および 1B4BH にこれら RLON および RLOFF への JR 相対ジャンプ命令を書いてやればイース2オープニングデモも動作します。

    ちなみに OSC大阪でのセミナー時のイース2OPデモも互換BASICで動かしてました。

    なお、イース2エンディングデモの方はテープロード時間と実行速度がリンクしているので、 OSC大阪展示のエントリ で書いたように PC6001VX のテープロード速度を遅くするパッチを当てる必要があります。さらに、 BASICローダーとデモ本体部分の3つのパートを別の P6ファイルにしておかないと最初のテープヘッダの「ピー」が鳴らないため時間がズレてしまい、これまたうまくいきません。

    NetBSD -current と pkgsrc PC6001VX

    えびはらさんによると NetBSD の -current では PC6001VX がうまく動かないそうです。調べたいと思いつつ、現状手元には -current で pkgsrc もビルドできるようなマシンがないので確認できていません。手抜きでいません


    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。