MSXエミュレーターのblueMSXでMSX-DOSを使う。

なぜか動くフロッピーディスクイメージと動かないフロッピーディスクイメージがあった。
でもまあ動くフロッピーディスクイメージがあったのでMSX-DOSが使えた。
問題は仮想フロッピーディスクをまるごと認識させることしかできない。
既に使用中の仮想フロッピーディスクの中にWindows側のファイルを追加することはできない。
追加ではなくディスクまるごと入れ替えになる。
「ディレクトリの挿入」機能で一個のファイルを認識させるとそのディスクの中にその一個のファイルしかない状態になる。
そして「ディレクトリの挿入」機能で認識させるとどこにディスクイメージがあるのかわからずWindows側にファイルを取り出す方法が分からない。
blueMSXの機能だけではファイルは一方通行で仮想のディスクイメージの中のファイルをWindows側に取り出すことはできない。
これでは実用性はほぼない。
調べてみるとdiskimg.exe というWindowsソフトで仮想ディスクを操作できることがわかった。
やってみると仮想ディスク内のファイルをWindows側に取り出すことができた。
しかし、diskimg.exeでWindows側から仮想ディスクにファイルを追加するとMSX-DOS側から見るとディスクが壊れてしまって再フォーマットが必要になる。
なんとか使えないことはないが、ものすごく使いにくい。
せめて階層ディレクトリが使えればと思う。
MSX-DOS2はなぜか動かなかったし。

MSXエミュレーターのBlueMSXでMSX-DOS2が動かなった

MSX-DOS2にはディスクの他にROMも必要という知識はある。
あらゆることを試したつもりだがBlueMSXでMSX-DOS2は動かなかった。
ROMスロット1、ROMスロット2の他、マシン構成編集でROMを追加しても全て、MSX-BASICが起動する。
マシン構成でのROMタイプがMirrored ROMになっていることも確認した。
マシン構成の設定をする場合は、ROMスロットから取り出すこともやった。
マシン構成のROMの場所も基本やら拡張やらいろんなものを指定した。
全てだめ。
ディスクもいろんなものを試した。
blueMSXではturboRの設定ではMSX-DOS2は動かないらしく、turboR対応のMSX-DOS2 Ver 2.3でも動かないらしい。
MSX-DOS2 Ver 2.2とマシン構成の設定をMSX2+/MSX2にしてもだめ。
もう諦めた。
ただ、使えた人もいるみたいだ。
MSX-DOS2ではディスクの階層ディレクトリやパイプ、リダイレクトなどUNIXの機能の一部が使えるためが使えるか使えないかでは使い勝手に大きな差がでる。
ゲームしかしない人にはMSX-DOS2は要らないだろう。
ただ、私のように開発に興味がある人間にはMSX-DOS2が使えないなら今更MSXエミュレーターを使ってみたいと思う気持ちは半減する。

後日の付けたしです。
DOS2はなんかの組み合わせでできました。マシン構成はMSX2にしたと思う。
詳しいことは忘れました。もう一回やろうとしてできるかどうかは知りません。

Lazarusを試してみた。

Lazarusは、Delphi/Kylixクローンでフリーソフト。
昔、Kylix3(DelphiとC++ BuilderのGNU/Linux版に相当)のOjbect Pascal(Delphi言語)で作られたソフトに10進BASICというBASIC言語のソフト(インタプリタ?)がありました。
それが今どうなったかふと気になって検索みたところ、まだそのソフトのGNU/Linux版は現役で存在していました。
しかし、開発環境はKylix3からLazarusに変っていました。
LazarusってKylix3の替わりになるほど実用で使えるのかとちょっと驚きました。
それでLazarusを試して見ました。
まず幅広いマルチプラットフォームでWindows、GNU/Linux、Mac OS、Android、iOSなどで動くらしいです。
Windows版だけを試しました。
LCLというGUIライブラリはDelphi/C++ BuilderのVCLと高い互換性があるようです。
使い込んでないので細かいことはまだ分かりませんが。
IDEの使い方もDelphi/C++ Builderによく似ているのでC++ Builder経験者にはプログラミング言語以外はすんなり使えます。
リッチテキスト表示とかHTML表示のコンポーネントはありません。
(FireMonkeyもありません。)
FireMonkeyはVCLとの互換性が低い上にGNU/Linuxに対応していませんから、FireMonkeyよりLazarusのLCLのほうが有利になるケースも多いと思います。
LCLは素晴らしいと思うのですが、Lazarusは正直よくないと思いました。
Lazarusがこの高い完成度の割にほぼ無名でいるのは、Object Pascal(Delphi言語)というマイナーで奇抜な言語しか使えないことが原因であると思います。
残念ながらC/C++は使えません。
それでもVCLとの互換性、C++ BuilderとのRADの互換性、RADの生産性、マルチプラットフォームは魅力です。
C/C++との連携がうまくできれば実用になるかも知れません。
C/C++との連携を調べてC言語で作ったオブジェクトファイルをスタティックリンクするというのを実際にやってみました。
できたけど煩雑で各プラットフォームごとにこれをする方法を考えるのは大変です。
Object Pascalのソースから、printfなどのC言語標準関数を呼ぶ方法は分かりませんでした。
あと、非常に問題だと思ったのはプロジェクトをMakefileに変換する方法がありません。
仕様がクローズで融通が効きません。
Makefileが欲しかったのはC++からLCLを利用する方法を考えたかったです。
Makeファイルの出力ができないのはブラックボックス化してどのライブラリをリンクしているかを隠したいのでしょうか。
もしC/C++に対応すればすぐにでもメジャーになれると思いますが宗教的な理由でC/C++を拒んでいるのかも知れません。
GUI主体でソースが短いプログラムには使えると思います。
長いソースを書くなら、Lazarusを使わないでQtのほうがいいでしょう。
LazarusのQt4バインディングをやったらQtの機能が使えるのかと思ってやってみましたが、コピーペーストが独立しているのか別アプリからIDEペーストできなくなり、IDEへの日本語入力がおかしくなりました。
それでもQt4の機能が使えるならまだ意味はありますが、Qtのコンポーネントが追加されるわけでもなく、ソースからQtの機能を呼びだす方法も情報がなくてできませんでした。
で元に戻しました。

PC-9800シリーズパソコンと電撃ナース

ファミコンやMSXはパソコンで動かすエミュレーターが存在し、メーカー製ゲームも検索すればROMイメージがごろごろ転がっているということを知りました。
ではPC-9800シリーズのパソコンではどうなかと思いました。
PC-9800シリーズのパソコンは持ってましたけどゲームはしなかったので思い出のゲームとかはありません。
ゲームタイトル名もほとんど知りませんが「電撃ナース」という名前のゲームがあったことだけは知っていました。
そのゲームを買った人が付録としてついていた「電撃ナース」のCDの歌をよくかけていたので名前だけ知っていました。
ゲームはプレイしたことはありません。
検索してみると、PC-9800シリーズパソコン用のエミュレーターはあるようです。
ですが、電撃ナースのイメージはいくら検索しても見つかりませんでした。
別のゲームならダウンロードできるものもあるようですが数はファミコンやMSXよりはずっと少ない感じです。
PC-9800シリーズパソコンはファミコンやMSXと比べると世界的ではなく島国だけで流通していたということでしょうか。
電撃ナースできないならいいやと思ってエミュレーターはダウンロードしませんでした。
PC-9800シリーズよりもっと古いMSXのほうがゲーム環境としては長生きしていることは意外でした。

MSXエミュレーター

MSXは昔の8ビットのパソコンの一種です。
SNSでMSXのプログラムをしようとしている人を見て影響され、MSXエミュレーターをインストールしてみました。
動かしたいのは昔、自分が作ったプログラムですが今となってはソースどころかバイナリすらありません。
バイナリを登録していたパソコン通信はもう存在しません。
とりあえず、昔買ったMSX版のうる星やつらのアドベンチャーゲームをもう一回やってみたいと思ってやってみました。
ROMイメージは検索したらすぐ見つかりました。
昔やったときは5分やって面白くないと思いすぐやめてしまいました。
今回も5分やってやっぱり面白くないと思ってすぐやめてしまいました。
自力で頑張る気も攻略法を調べる気も置きませんでした。
「サラダの国のトマト姫」と違うところはゲームオーバーという概念があって開始後五分ぐらいでも選択ミスでゲームオーバーすることがあることです。
MSXは実行環境としはまだ生きているんだなと思いました。
メーカー製ゲームのゲーマーとしてはまだMSXはエミュレーター上で生きているようです。
いろんなゲームをダウンロードできるようですし。
でも私はゲーマーではなくプログラマーです。
もう長らく前にMSX関連の膨大な資料を全て捨ててしまっています。
今はもうMSX関連の書籍は絶版です。
昔売られていたMSXの書籍や雑誌を見ることは今となってはできません。
こんな状態ではエミュレーターがあったところで使い道がありません。
関連書籍や雑誌が普通に手に入る時代ではMSXも価値があったのですが、手に入らないのならハードだけあってもプログラマーから見たらただのゴミです。
検索してみましたが、もう一度見てみたいと思った書籍や雑誌を見ることはできなさそうです。
マジで欲しいMSXの書籍があります。
だったら最初から捨てるなということでしょうが、コンピューター関係の書籍やパソコンのコレクションの量は膨大すぎて維持していくだけの財力がありませんでした。

ファミコン互換機とファミコンエミュレーター

なんか最近ROMカートリッジを挿せない任天堂公式のファミコンが発売されたりしてファミコンのことを少し思い出しました。
何年も前に買った衛星テレビのテレビとして使うために買ったポータブルDVDプレイヤーは、ゲーム機能搭載。
ゲームが収録されたCD-ROMとジョイスティックも付属。
やってみると大昔のファミコンゲームでした。
収録ゲームは元々日本人向けゲームですが日本語が分からなくてもプレイに支障ないものばかりでした。
元々ゲームはあまり好きではないのでファミコンはあまりやったことがなくやったことあるゲームも収録されてなくて特に興味あるゲームもなかったのでやらずにずっと放置。
衛星テレビの受信機にもメニューにはゲーム機能があるのだが説明は何も書いてない。
多分これもファミコンのゲームに対応しているのではないかと思うが試していない。
何年か前にタイでファミコン互換機とファミコンの本物の中古のROMカセットを売っているのを見たことがあります。
昔、買ったファミコン版の「サラダの国のトマト姫」というアドベンチャーゲームは買った当時は最初の段階すらクリアできず、ゲームオーバーもなく永遠と同じ動作を繰り返させるという頭にくる仕様ですぐやめてしまいました。
でもずっと気になってなんですよ。
ゲームに詳しくないんでこれが普通なのか、どのくらいの難易度だったのか、ゲームというのはどういうものなのか、分からないまま今まで生きてきたわけです。
もう一回やってみたいと思って、何日か前にfceuxというファミコンエミュレーターをダウンロードしてやってみました。
ROMイメージは検索したら簡単に出てきました。
やっぱりすぐに詰まって先に進めませんでした。
それで攻略法調べて最後までクリアしてみたんですが、攻略法見ても難しかった。
これは攻略法調べないでやると何百万年かけても自力では絶対クリアできないと思う。
なぜこんなに難しくする必要性があるのかと思いました。
あと、昔買ったファミコン版の「谷川浩二の将棋指南Ⅱ」もパソコンのエミュレーターでやってみました。
昔と同じようにボロ勝ちで五連勝してもうやめました。
もうファミコンのゲームはすることはないかな。

FreeBSD 11の日本語入力に苦戦

IBUS-Anthyを入れると、US(英語)キーボードを使っているのに日本語キーボード配列になるトラブルが出た。
日本語キーボードを使っていたらトラブルではないが。
また、なぜかGTKアプリのfirefoxでは日本語入力できなかった(ような気が)
最初から入っているQtアプリもできなかった。
日本語キーボード配列になる不具合はAnthyのTyping Methodの設定は、Romaji とKana の設定だけで、他の環境では出て来るはずのKeyboard layoutの設定が出て来ないからAnthy側で設定はできない。
いろいろやった。
ibus-mozcを入れたり削除したり。
突然、US(英語)キーボードの配列になったが、なぜそうなったのかは分からない。
IBUS-mozcはインストールしても起動しなかった。
自作Qt5アプリと、GTKアプリ(スマホではなくパソコン用ソフト)での日本語入力はできるようになった。
Qt4アプリではできない。自作Qt4アプリでもできない。
自作Qt4アプリでは、
Unable to load library icui18n “Cannot load library icu18n: (Shared Object “icui18n” not found. required by “xxxx”)”
とコンソールにエラーが出て起動はするが日本語入力はできない。
そして、日本語は文字化けしている。
icuは入れようとしてもすでにインストールされていると出る。
完全に日本語化することは難しいな。
素直にPC-BSDを使うべきなのかも知れない。
PD-BSDは使ったことないので使ってどうなるのかは不明だが。

Qt5.7でxubuntu 14.4(GNU/Linux)のソフトを作った場合、IBUS(-Anthy)での日本語入力ができなかった。
端末画面で、
export QT_IM_MODULE=ibus
と打ってから起動するか、
ソースのmain関数の一番初めに、
setenv(“QT_IM_MODULE”,”ibus”,1);
と、書けば動いた。
日本語入力はできるようにはしていなかったので今日IBUS入れたら、
今までできていたタイ語入力ができなくなった。

FreeBSD 11でQt開発できるようにしました。

昨日FreeBSD 11にQt開発環境入れました。
簡単なQtプログラムをコンパイルさせてWindows、Mac OS X、GNU/Linuxと同じように動くことを確認しました。
ただ、FreeBSDをデスクトップ用途で使っている人がほぼ皆無だと思うのでFreeBSDで動くプログラムの配布ができるようになったところでしょうがないとは思いますが。