PC6001V をビルドしようぜ (失敗編)
Windows 11マシンを用意します。
MSYS2を入れて、開発環境を入れます。(gcc,make,vim,gitなど)
必要なライブラリを入れます。(sdl3など)
あと、ffmpeg ですが、ソースリストからビルドする必要があるようです。なぜかというと、静的結合版をビルドしたいから。。ソースコードを落としてきて下記を実行します。
./configure --enable-static --disable-shared
make; make install
PC6001V のソースコードを落としてきて、make します。
これでいけるかと思いきや、私の場合、下記のエラーで止まりました
Linking pc6001v.exe...C:\......../ld.exe: C:........bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib\libssh.a(misc.c.obj):(.text+0x15f0): multiple definition of `explicit_bzero'; C:........bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib\libgnutls.a(libgnu_la-explicit_bzero.o):(.text+0x0): first defined hereC:\......../ld.exe: C:........bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib\librav1e.a(rav1e.std-8f4200ddc3508613.std.7e39b4733639c7ef-cgu.0.rcgu.o.rcgu.o):std.7e39b4733639c7ef-cgu.0:(.text+0x241c0): multiple definition of `rust_eh_personality'; C:........bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib\librsvg-2.a(std-4dc6217dbfd6d693.std.659bc529da84b7a0-cgu.0.rcgu.o):std.659bc529da84b7a0-cgu.0:(.text+0x565e0): first defined hereC:\......../ld.exe: cannot find -lshaderc_shared: No such file or directoryC:\......../ld.exe: have you installed the static version of the shaderc_shared library ?C:\......../ld.exe: cannot find -ldl: No such file or directoryC:\......../ld.exe: have you installed the static version of the dl library ?C:\......../ld.exe: cannot find -ldl: No such file or directoryC:\......../ld.exe: have you installed the static version of the dl library ?collect2.exe: error: ld returned 1 exit status
-ldl (えるでぃえる)といのは、dlopen という関数をリンクしようとしていますが、実はUnix環境ではひつようだけど、Windows環境では不要らしいです。
ffmpeg みたいなクロスプラットフォームなライブラリを使うときに、しばしばぶちあたる問題のようですね。
対策としては、
1.ffmpeg のconfigure 時に、-ldl を付加しないようなオプションをなんとか編み出して、実行する(?)
2.pkg-config --libs --static libavcodec やpkg-config --libs --static libavformat などの出力から、-ldl を手作業で削除する
3. make -n >hoge.sh して、hoge.sh から -ldl と言うワードを削除してsh hoge.sh で実行する
もう少しましな方法はないものでしょうか?
一番簡単なのは、PC6001VのMakefileから、--static という記述を消すことだったりしますが、なぜ静的リンクしているかというと、PC6001V.exe のほかに、dllファイルが大量に必要とすると、わずらわしいからでしょう。
なるべく本家と同じ方法でやりたいですね。
そもそも、本家にできるのに、なぜできないかという。。うーん。
あと、-lshaderc_shared ですが、
あと、なぜか、起動できる時と、できない時があるような。。うーん。。
Windows 11最新パッチ(KB5063878) を当てた後、大容量データコピーでSSDアクセス不能になるバグ
ヒドス。。
実は、パッチ(KB5063878) を入れるのを保留していたのですが、まさかこんな大ごとになるとは。。
この問題のテストをされた方が、このアップデートを当てた後、ゲームのアップデートか何かをしていたときに、突然SSDが認識されなくなったと言うことで、発覚したようです。
最近のゲームは、平気で50GBのデータを書き込んだりすることが多いらしいので。ゲームだけでなく、動画の編集をしていたり、大きさは大したことがなくても、解凍すると、巨大なデータを書き込むことになる、圧縮ファイルの解凍処理でも同様のことは起こりえます。
噂によると、やばいと思って、バックアップしようとしたら、ダメになったとか。。??
((((;゚Д゚))))ガクガクブルブル
再起動で治ったという軽微なものから、治らないと言うのまで。。
Σ(゚д゚lll)ガーン
Microsoft が、修正していると言うことなので、正座して待つ鹿。。
でも、今回の件で思ったこと。Windowsマシンの中にデータを保存するなと言うことでしょうか。。滝汗
何も指示してないのに、勝手に、OneDriveにデータを吸い上げたりだとか、いきなり、BitLockerのキーを聴いてきて、にっちもさっちも行かなくなることがあるって言うじゃないですか? もう、Microsoft的には、内蔵にデータを置かないでね。と言うことなのかと勘繰ってしまいます。
ただ、みんながみんなNAS持っているわけじゃないし。。クラウドはちょっと。。と言う人も。。?
それまで普通に動いていたのが、OSアップデートを当ててから、急におかしくなったんだから、普通に考えれば、OSのアップデートのせいと思うよね。。。汗
とはいえ、問題を複雑にしているのは、KB5063878 って、元々緊急のセキュリティアップデートが含まれていたこと。緊急に当てた方がいいのか?それとも、ちゃんとしたものが出るまで待った方がいいのか、判断に苦しむところではあります。。。汗
Windowsマシンはしばらく使えなくても、そんなに困らないや。と思っていたですが、よくよく考えると、ラジオの録音はWindowsでしかできないことなんですよね。。汗
うーん。困った。。
追記
とはいえ、まだ、Microsoftはいってないんですよね?
一方の意見だけでいいのか?と言う問題はありますが。。?
Windows 11最新パッチ、大容量データコピーでSSDアクセス不能になるバグ。なお、コントローラの問題ではない - PC Watch
GitHubの、SSHと、HTTPS
いつも忘れてしまう。
どうやら、github には、SSH方式と、HTTPS方式があるらしい。
前者は、秘密鍵、公開鍵方式で、一度設定すると、スムースにできる。
後者は、github.com に行ってコードをもらっておき、そのコードを使って、認証する。IDと、PWを打ち込めと行ってくるが、GithubのPWを打ち込んでも、エラーになる。
git@github.com .. となっていたら、SSHで、https://...だったら、HTTPSです。
$ git remote -v
origin git@github.com:windy6001/iP6-Plus-Emulator.git (fetch)
origin git@github.com:windy6001/iP6-Plus-Emulator.git (push)
つまり、リポジトリごとに、端末ごとに、どっちを使うかが設定可能なので、自分はどっちを使うかを決めておいた方が、ややこしくなくていいかも。。
SSHキーを新規作成するか、作り直す場合
新しい SSH キーを生成して ssh-agent に追加する - GitHub Docs
GitHub アカウントへの新しい SSH キーの追加 - GitHub Docs
PC-6001/6001mkII/6601 エミュレータを使おう
エミュレータって、昔は敷居の高いものでして、押し入れから実機を引っ張り出してきて、昔のコード(紐)で、Windowsマシンと繋ぎ、実機からROMファイルを読み出してきて、それを所定のファイル名にして、所定の場所にコピーなどして..。(もっとも、持ってない人は、ヤフオクなどで落とすところから始まるわけです。)
と大変だったのですが、PC-6001/6001mkII/6601 に関しては、ありがたいことに、互換ROMがあることがでかいです。それに最初から、互換ROMが 組み込まれているエミュレータもあり、起動するだけで、ある程度のことができるように、だいぶ敷居が下がってきていると思います。
互換ROMが 組み込まれているエミュレータとしては、Windows/Mac/その他版のPC6001VXが有名でしょう。本稿執筆時点で最新版は、4.2.9です。インストールは、好きなディレクトリに展開するだけです。

最初起動すると、「ROMファイルが見つかりません。。ROMフォルダを指定しますか?」と表示されますが、No を選択してください。
「エミュレータ内蔵の互換ROMを使用しますか?」 に、Yesを選択してください。
すると、互換ROMによって、PC-6001が起動します。
ちなみに、画面は、Macですが、Windowsでも使い方自体はほぼ同じです。
それから、PC-6001mkII として動かしたいときは、画面上で、右クリックしてメニューを出して、
設定-> 環境設定 で開くダイアログの一番上の、「機種」のところを、PC-6001mkII に変えます。
(互換ROMで、PC-6001mkIISR と、PC-6601SRはうごきません。)


ちなみに、内藤さんの、XeGrader を遊びたい場合は、戦士のカートリッジとして、ゲームのbin ファイルを読み込む必要があります。

戦士のカートリッジの入れ方です。
拡張カートリッジ→戦士のカートリッジ→ROM選択で、ゲームのROMファイルを選択すると、ゲームが起動します。
欲しいものが増えた
パソコンを買うと、大体、それだけでは済まずに、周辺機器とかが欲しくなってくるものですが、次のものが欲しくなりました。
-キーボード
-ディスプレイ
パソコンにキーボード、マウスがついてこなかったのですが、今まで使っていたキーボードは、PS2接続であり、今時のパソコンには使えないです。なので、予備のキーボードを出してきたんですが、ノーパソ似のキーボードで、高さが低いので、打ちにくいんですよね。。。
HHKBとか小さいのがいいなと思いつつも、Lite 2 って、終了しちゃったんでしょうか?汗 あまり儲からなかったのかな?汗
普通のHHKBは、3−4マンぐらいするので、なかなか大変だったりします。
あと、ディスプレイは、なんと解像度が、1920x1200のやつで、なんと、入力が D-Sub 1個と、DVI-D 1個という、実質的には、DVI-D 1個しかないという、超不便です。(HDMI ? 何それ食べれるの?美味しい?)
今、4kディスプレイもあって、そっちは、1920x1080で使っているので、似たようなもんですけどねぇ。。汗
