月別アーカイブ: 2016年7月

トラックボール新調


今のPCにしたときに購入したトラックボールが不調で左クリックを強く押し込まないと効かなくなったので同じのを新規に購入しました。
うちみたいにトラックボール派だと選択肢が少なくて厳しいところです。最近は無線が多くて選択肢が更に狭いという。無線でもいいのですが、無線だと本体の電源が問題で、電池の消耗も結構問題になります。有線だと電池の心配もないのですが、ホイールがなかったりボタンの配置が微妙だったり、親指トラックボールだったり(ボールの配置も選択に苦しむ要因・・・)とまあ、選択肢が少ないのが厳しいです。
昔はLogicoolがいろいろ出していて最終的にCT-100を駆使してましたけど、電池の問題でケンジントンへ落ち着いたという。ケンジントンはMac系ハードをよく扱ってたのでWinではドライバの問題が昔あってちょっとトラウマがあったのですけど今は問題なく。

PHP5.6

PHP関係が動かなくて調べるのに時間かかった。
設定が大きく変わったのかと思って調べたのを反映させたら余計わけがわからなくなって、こまめに設定を戻しつつ、よく見ればコンパイルオプションという。USEフラグに間違いがあってPHPが思ったようにコンパイルされてなかった。リコンパイルしたらモジュール名がlibphp5.soとなっていて、confの設定をmod_php.soにするか、シンボリックリンクを張りなおせば問題なさそうです。

それにしてもオープンソース物はバージョンが上がると細かいところで苦労します。これをよく業務で使うなぁって思う。そういうところは問題があれば呼び出されて手直しして対処で済むんだろうね。ミッションクリティカルなところで使うのは自殺行為だね。もうIT系の仕事じゃないから他人事だけど。

EmuZ-1M10

EmuZ-2000 TF-Edtionの拡張ボードとしてDLL形式でプラグインを組み込めるのですが、作り方を調べてなんとか形になったので、仮想ボードプラグインを作ってみました。
ステートセーブ内のメモリ編集ツールをプラグイン化してみました。ダイアログを出して何らかの処理を行うという形なら簡単に出来ると思ったのですが、Visual Studioの理解度の足りなさで時間をかなり食われたのが痛かった。プロジェクトの新規作成は見た目で何とかわかりますが、既存のソースを利用する方法を見出すのに小一時間かかった。わかってしまえば簡単なのですけどねぇ。

コンパイルできるようになって、何とかエラー個所を訂正しつつDLLができた所まではよかったのですが、本体に組み込んでみると認識せず。組み込まれないのはDLL内で最低限必要な関数が本体から認識されないことってことは以前調べてわかってたので、DLLをロードして関数のアドレスを取得するテストプログラムを作って動かしてみたらDLL内の関数がエクスポートされてないのが原因とわかりました。モジュール定義はプロジェクトに組み込んでるのですが、何故かエクスポートされておらず、悩むこと数時間…原因はやはりVisual Studio内の設定だった。defファイルがあるのに明示的に設定しないとダメって何だろうね。

今回は、I/Oの無いダイアログを出して処理するだけのものなので、これでうまく行きました。似たようなものを作るなら難なく行けそうです。まだI/O命令に連動したDLLは作ってないのでもう少し動きを調べつつ、夢のFM音源ボードを作ってみたいです。FM音源チップ自体のエミュレーションも理解できてないので問題が山積みですけどね。