start

Windows 2000とSBLive!でAC-3出力成功

Windows 2000とSound Blaster Live!の組み合わせで、ようやくAC-3(DolbyDigital)のパススルー出力ができた。すごい今更感が漂ってたりするが、これでSBLive!を無駄にしなくて済む。

方法は至って簡単。ここにあるCreative Modded Driverという、非公式ドライバをインストールするだけ。インストール中に「オーディオ用途」か「ゲーム用途」かを聞かれ、SBLive!の場合は後者を推奨されているが、AC-3のパススルーは前者向けのドライバじゃないとダメっぽい。

最近登場したばかりのようなので、使用に当たっては細心の注意を払う&超自己責任で。とはいえ、使ってみた感じ、特に不安定ということはなかった。

これでAC-3が出せるようになったマシンとWinDVD 6でDVDを観てみたが、イイね。DD 5.1chの音響もさることながら、Trimension DNMが強烈。恐らく映像の60p化をしてると思うのだが、動きが目に見えて滑らかになる。逆に、映画は滑らかすぎて映画っぽくない!映画はやっぱり24pでしょ!!

Blu-rayなんかは60pを謳ってるけど、パッケージ化されるであろう多くの映像ソース(映画)は24pなわけで。それを60p化して「わーい、動きが滑らかだー」というのは、何か違う気もする。

システムの再構築

カーネルを再構築する必要があったので、ついでにシステムも再構築(というか最新版に)してみた。その備忘録。

本作業をするにあたって、AirKnights(by みゅ。さん)の記事を、かなり参考にさせて頂きました(他にもFreeBSD関連の役立つ記事を沢山公開されてます。興味のある方は、ゴーゴゴー!)。

(2016-05-11)

本記事の内容は現在のFreeBSDのシステム再構築には適合しない可能性があります。現在の情報については、FreeBSDハンドブックの内容をご参照下さい。

cvsupを用いて行う。

/usr/share/examples/cvsup/stable-supfile をコピーし、自分の環境に合せて書き換えて、cvsupをする。

$ cp /usr/share/examples/cvsup/stable-supfile /etc/release-supfile
$ cd /etc
$ su
# chmod 644 release-supfile
# emacs release-supfile
*default host=CHANGE_THIS.FreeBSD.org → cvsup2.jp
*default release=cvs tag=RELENG_6 → RELENG_6_0
 
# cvsup -g /etc/release-supfile

変更箇所は、前者がソースの更新に使うサーバ、後者が更新するシステムのバージョンを表す。今回は6.0-RELEASEを更新するので「RELENG_6_0」となる。「RELENG_6」のままだと、6.x-RELEASEの更新となってしまうので要注意。最初、この設定で更新したら、6.1-PRERELEASEにアップデートされてしまい、orzとなった。

独自設定のカーネルにしたい場合は、コンフィグファイルの雛形 /usr/src/sys/i386/conf/GENERIC をコピーし、自分の環境に合せて書き換える。カスタマイズしたコンフィグファイル名は、マシン名を大文字にしたものにするのが慣例っぽい。俺は 慣例+年月日 にした。無論、デフォルトのカーネル(GENERIC)でよければ、この作業は必要ない。

# cd /usr/src/sys/i386/conf
# cp GENERIC YGGDRASIL20060330
# emacs
最低限 ident GENERIC を ident コンフィグファイル名 に書き換える。

オプションの依存関係(コンフィグファイルのコメントに「require hoge」と書いてある)には注意しよう。さもないと、コンパイルで失敗する。

尚、VIA C3(Samule 2)の場合「cpu I686_CPU」にしないと、CPU class not configured というカーネルパニックが発生するので要注意!!(ただ、C3はCMOVをサポートしていないので、厳密にはi586クラス。portsなどをi686指定でコンパイルすると、未定義命令が入って落ちることがあるとか。カーネルのコンパイルについては、ログを見るとI686_CPUと設定しても -march=pentium となってるので問題にはならないのかな。詳しい事はわかりません)。

いくつかスレッドを立ててやると、早く終わるらしい(4スレッドが一番効率的だとか)。

# cd /usr/src
# make -j4 buildworld

コンパイル時間はマシン性能に左右される。参考までに VIA C3(800MHz) + 256MB では6時間程かかった。

カスタマイズしたカーネルを作る場合、KERNCONFでコンフィグファイル名を設定する。特に設定がなければ、GENERICのカーネルが作られる。

# make KERNCONF=YGGDRASIL20060330 buildkernel

コンパイル時間はマシン性能に左右される。参考までに VIA C3(800MHz) + 256MB では1時間程かかった。

コンパイルが無事に終わったら、新しいカーネルをインストールする。カスタマイズしたカーネルの場合は、上で指定したKERNCONFを再度指定しなければならない。

初めてカーネルを再インストールする際に、GENERICのカーネルのバックアップを取っておくと良い。

# cp -Rp /boot/kernel /boot/kernel.GENERIC (最初の1度だけ)
# make KERNCONF=YGGDRASIL20060330 installkernel

シングルユーザーモードで起動し、作業を行う。

まず、起動項目選択画面(1.Boot FreeBSD with ACPI とか、そんなメニューがある画面)で、プロンプトへ抜けるメニュー(6.0-RELEASEでは6番)を選択する。そして、以下のコマンドでシングルユーザーモードでOSを起動する。

OK boot -s

カーネルがうまく出来ていないと、この段階でこける。その時は上のコマンドに代わって、以下のコマンドでGENERICなカーネルを起動し、対策を図る。

OK boot kernel.GENERIC

次に、シェルのパスが聞かれるので入力。その後、パーティションをマウントし、システムをインストールする。

Enter full pathname of shell or RETURN for [/bin/sh] : /bin/sh
# sbin/mount -a
# su
# cd /usr/src
# make installworld

モダンタイムス

大手スーパーを中心に、お釣りの硬貨を自動的に吐き出すレジをしばしば見かけるようになった。 ここ最近で一気に普及してきているように思うが、俺はこのタイプのレジが大っ嫌いだ。

理由は簡単。「人間が機械に使われている」からだ。

レジの人は客からの代金をレジの貨幣挿入口に入れる。それから、しばしの間(ま)。 機械様が絶対に間違う事のない勘定をする。 その後、機械様が吐き出した釣り銭をレジの人がレシートと共に客に渡して終わり。

何なんだ、この状況。

将来、コンピュータ開発関連の仕事に就きたいと思っている俺としては、人間がコンピュータの都合に合わせるという状況だけは、絶対に作り出してはならないと思っている。 コンピュータの血も涙も無い挙動と人間のファジーな挙動を繋ぐのが、技術者の使命だと思っている。

とまぁ、自動レジが嫌いなのは信条に因る所が大きいのだが、現実問題としてヤツは遅いんだよね。

例えば、990円の買い物をして1000円札を出す。 お釣りは言わずもがな10円で、人間の対応だと10円玉1枚をキャッシャーから取り出して、レシート不用ならお金だけ渡して終わり。

ところがヤツを通すと、何やらガシャンガシャンと唸って、10円玉とレシートがセットで出てくる。何で10円玉1枚を貰うのに、こんなに時間をかけなきゃならんのだと。

まして、人間だったら状況に応じた「予測」が出来る。

この例ならば「客は1000円札を出すだろう→お釣りは10円だ」という感じだ。予測が的中すれば、レジで1000円と打ち込むのとほぼ同時に10円玉を手にする事が可能だ。

ここまでくると、釣り銭を渡すだけでも随分と時間差が生まれる。レシートが要らない人だったら、尚更である。

店側としてはレジでの現金誤差を抑えたいという思いなんだろうが、客、というか俺から言わせてみれば、あのレジは不快でしょうがない。 もう少し、見えない部分での、店の快適度というかそういうものを考えてもらいたいと思う。

FreeBSD de Folding@Home

Folding@Homeとは、アルツハイマー病・狂牛病・癌などの原因となる、異常タンパク質を解析・研究する分散コンピューティングプロジェクトのことである。語弊を恐れずに言えば、世界中のPCの余剰能力を、先に上げた病気の研究に役立てよう、というプロジェクトである。

(少なくともうちの)常時起動サーバなんて、その殆どがアイドル状態のようなものなので、折角だから解析に参加させてみた。

FreeBSD用のバイナリは用意されていないが、Linuxエミュレータを用いる事でLinux版を使う事ができる。本記事は、その導入手順の備忘録。

portsからlinux_base-rh-9を入れる(linux_base-8相当の機能があれば、多分大丈夫?)。

$ cd /usr/ports/emulators/linux_base-rh-9
# su
# make install clean

Linuxエミュレータ機能を有効にするため、/etc/rc.conf、/etc/fstab、/compat/linux/etc/fstab それぞれに以下を追加し、再起動。

/etc/rc.conf
linux_enable="YES"
/etc/fstab
linprocfs     /compat/linux/proc     linprocfs     rw     0     0
/compat/linux/etc/fstab
proc     /proc     proc     rw     0     0

プロジェクトダウンロードページから、Linux Consoleを取ってくる。ここでは5.04betaを利用し、~/Applications/Folding に入れる事にした。

$ mkdir ~/Applications/Folding
$ cd ~/Applications/Folding
$ fetch http://www.stanford.edu/group/pandegroup/release/FAH504-Linux.exe

実行属性を付与して実行。

$ chmod +x FAH504-Linux.exe
$ ./FAH504-Linux.exe -freeBSD

ユーザー名、チームNo.などを聞いてくるので、適切に入力。初参加の人や詳細はkywさんのページなどを参照のこと。

FarCore_xx.exe のダウンロードが終わったら、一旦終了させる。

HAMAchanさんのページから起動スクリプトを拝借し、Folding/folding.sh として保存。

$ emacs folding.sh
$ chmod +x folding.sh

次にcrontabを編集する。

# crontab -u -e ユーザー名
@reboot ~/Applications/Folding/folding.sh start

間違いがなければ、再起動後、関連プロセス(FAH〜やFah〜)が起動しているのが確認できるはず。まったりと解析しましょう。

ACE COMBAT ZERO -THE BELKAN WAR-

アマゾンから届いたので、早速プレイ&1周目終了。とりあえず簡単にレビューをば。

前作ACE COMBAT 5のストーリーの根底を為していた、ベルカ戦争を主題にした本作。時間的に繋がりがあるとは言っても、ストーリーとしては全くの別物。なので、前作をプレイしていなくても、話が分からないということはない。

一方で、今までのACE COMBATシリーズと決定的に違うのは、シリーズ初プレイのユーザーのことは考慮されていないように見える点。5までは、押し並べて最初の何ステージかは、非常に簡単なステージで構成されていた(1は最初から、それなりに戦っていたような気もするけど)。

しかし、本作では1ステージ目からバリバリの空戦。既存ユーザーからしてみれば、最初から楽しめるので嬉しい。まぁ、本作は5の続編という位置づけなので、ナムコとしても、プレイするのは既存ユーザーという考えがあったのかもしれない。

そのせいかどうかは分からないが、難易度の配分が変わったように思う。俺的に、一番の鬼門だったのが、2ステージだった。いや、マジで(笑)。最終ステージもそれなりに大変だったけど、初めてプレイしたときのインパクトから言ったら、前者の方が断然上だ。

システム面は、殆ど前作と変わっていない。変わった所といえば、僚機への命令が若干細分化され、ロックオン対象をプレーヤが選びやすくなったこと位か。この2点については、前作の欠点を強化したような形になるので、大歓迎。他は、良くも悪くもACE COMBAT。これと言って不満はない。

ステージは、今までに無い要素が結構あった。思わず「なんじゃそりゃー」とか「はぁ!?」と言ってしまうような仕掛けで、なかなか面白かった。勿論、ACE COMBATシリーズ伝統の、アレも健在だ(笑)。

全体的には「急いで作りました」感が否めないが、内容は悪くないので、ACE COMBAT好きなら買っても損はないかなと。個人的には、あの超リアルなレンダリングムービーを見られただけで、元を取った気分になった(3DCGなのか、それとも実写なのか、確信が持てないくらいリアル)。

これから2周目行ってきまー。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo