OSTRACISM CO.
■ 開発日記 巻之四拾参

OSTRA / Takeshi Yoneki

wxWidgets導入メモ for gcc

MinGW + MSYS + wxWidgets + Eclipse + CDT

MinGW gcc環境のWindows移植版。
 MinGW-4.1.1.exe
 gdb-5.2.1-1.exe
 mingw32-make-3.80.0-3.exe

MSYS MinGW推奨のシェル環境で、MinGWに入っていないmakeが入っている。
 MSYS-1.0.10.exe

wxWidgets クロスプラットホームGUIクラスライブラリ。
 wxMSW-2.6.2.zip

Eclipse 主にJava向けの汎用IDE。
 eclipse-SDK-3.0.2-win32.zip

CDT Eclipse向けC/C++開発プラグイン。gcc専用のようだ。
 org.eclipse.cdt.sdk-2.1.1-win32.x86.zip

MinGWの導入

 MinGW-4.1.1.exe を起動するとインストールできる。ネットワークインストールなので、インターネットに接続していないといけない。例として C:\developer\MinGW に入れる。
 gdb-5.2.1-1.exe と mingw32-make-3.80.0-3.exe も入れる。どちらも C:\developer\MinGW を指定すると C:\developer\MinGW\bin にインストールされる。

MSYSの導入

 MSYS-1.0.10.exe を起動するとインストールできる。例として C:\developer\MSYS1.0 に入れる。最後に動くスクリプトには c:/developer/MinGW を指定する。「\」でなく「/」でないと失敗する。失敗したら自力で etc/fstab に
----------
c:/developer/MinGW /mingw
----------
を加える。

 C:\developer\MinGW\bin と C:\developer\MSYS1.0 を PATH に加える。なんとも基本的な名前のツールが多いのでできるだけ先にパスが通るようにしておきたい。とはいえ「俺は日本語の通るgrepが使いたいんだよ」ってな場合悩みどころだが、grepはconfigureで使うので全く同じ動きをするのでなければ他のものが先にみつかってはいけない。
 MSYS環境は rxvt.exe で使用するという前提のようだが、sh.exe を起動することでも同等の環境になる。カット&ペーストの便を考えるとコマンドプロンプトで sh.exe を使ったほうが良い。

wxWidgets の導入

 wxMSW-2.6.2.zip を展開する。例として C:\developer\wxWidgets-2.6.2 に入れる。
 C:\developer\MSYS1.0\etc\fstab に
----------
c:/developer/wxWidgets-2.6.2 /wx
----------
のエントリを加え、C:\developer\MSYS1.0\wx ディレクトリを用意しておく。

 wxWidgets はソースなのでビルドする必要があるが、C:\developer\wxWidgets-2.6.2\build\msw に移動して
----------
make -f makefile.gcc
----------
とやっても失敗する。makefile.gccの記述が cmd.exe を前提としており、sh.exe 向けではないからだ(cmd.exe より sh.exe が優先されるようで、if not exist $(OBJS) mkdir $(OBJS) が失敗する)。
 MSYS を導入せず、MSYS の make.exe でなく mingw32-make.exe を使うのなら成功しそうだが、きちんと使える環境を構築できるかはやってない。ビルドが成功することだけは確認した。

 C:\developer\wxWidgets-2.6.2\build-release ディレクトリを用意し、sh.exe を起動。/wx/build-release に移動。
----------
../configure --with-msw --disable-shared --enable-unicode --enable-threads
----------
とオプション付きで configure を行い、
----------
make
----------
とビルドを行う。サイズを最小にする方法はまだ追求していない。UNICODEフラグを立てたのでレガシーWindows(95/98/Me)では動かない。
 さらに
----------
make install
----------
すると /usr/local にコピーをするが、実際のディレクトリは C:\developer\MSYS1.0\local になる。

 Hello Worldのチュートリアル http://www.wxwindows.org/hello.htm が sh.exe の環境で
----------
g++ hworld.cpp `wx-config --libs` `wx-config --cxxflags` -o hworld
----------
にてビルドできることを確認。
 ただし、UNICODEフラグを立てたので、全ての文字列をwxT()で囲む必要がある。

Eclipseの導入

 eclipse-SDK-3.0.2-win32.zip を展開。例として C:\developer\eclipse3.0.2 に入れる。メニュー等が英語のままでもソースには日本語を入れられるのでそのままで良い。
 3.1という手もあるのだが、3.1向けCDTがあんまりな出来なのでしばらくは3.0.2のまま。

CDTの導入
 org.eclipse.cdt.sdk-2.1.1-win32.x86.zip を展開。C:\developer\eclipse3.0.2の適切な場所に中身をコピーする。
 一度
----------
 eclipse /clean
----------
と、コマンドラインでクリーンオプションを加えて起動する。

Eclipseのプロジェクトの設定

 Window - Preferences - C/C++ - Editor - Content Assist の中身はひたすらOFF。Search scope を Search current project にしておくのが無難。
 新規プロジェクトを作り、Hello Worldのチュートリアル http://www.wxwindows.org/hello.htm のソースを用意。
 Project - Properties - C/C++ Indexer は 全てOFFにしておいた方がしあわせ。

 CDT 3.0だとコマンドのパスの設定ができるのだが、2.xではそういった機能はないので、システムのパスをgccに適切に合わせておかないといけない。

 Project - Properties - C/C++ Build - GCC C++ Compiler - Directories - Include paths に
----------
"C:\developer\MSYS1.0\local\include\wx-2.6"
"C:\developer\MSYS1.0\local\lib\wx\include\msw-unicode-release-static-2.6"
----------
を加える。どの文字が犯人かはわからないが、クオートはないとダメなようだ。
 ビルドしてコンパイルが通ると確認。どうもコンパイルエラーとリンクエラーが似たような表示でわかりにくいが、リンクエラーだけになったらライブラリを設定する。

 Project - Properties - C/C++ Build - GCC C++ Linker - Libraries - Libraries に
----------
wx_mswu_core-2.6
wx_mswu_adv-2.6
wx_baseu-2.6
gdi32
user32
kernel32
comdlg32
uuid
ole32
comctl32
----------
を加える。イマドキなんでぇと思うが、参照の順番に意味があり、参照している方を先に記述する必要がある。

 Project - Properties - C/C++ Build - GCC C++ Linker - Libraries - Library search path に
----------
"C:\developer\MSYS1.0\local\lib"
----------
を加える。これもクオートはあったほうが良い。
 新規にエントリを作ったときはクォートされるのになぜかモディファイするとクォートが消える。バグなんだろうなぁ。

 Project - Properties - C/C++ Build - GCC C++ Linker - Libraries - Miscellaneous に
----------
-mwindows
----------
を加える。これをしないと実行モジュールを起動したときコンソールが表示される。
さて、ビルドは通ったか?

Pythonの導入

 Python-2.3.5.exe をインストール。例として C:\developer\Python23 に入れる。PATH に C:\developer\Python23 を加える。

wxPythonの導入

 wxWidgetsはUNICODEでビルドし、Pythonは2.3系なので wxPython2.6-win32-unicode-2.6.1.0-py23.exe をインストール。自動的に C:\developer\Python23 ディレクトリ内にインストールされる。

wxGladeの導入

 Python関連はこの wxGlade のための環境で、wxWidgets のフレームやメニューやダイアログをGUIで構築するためのツール。wxglade-0.4-setup.exeをインストール。C:\developer\wxGlade に入れる。
 wxGlade は Visual C# や NetBeans のようにコードを出力するが、明らかに一方通行で、出力されたコードにはできるだけ手を入れたくない(入れたら再出力の度に同じように手をいれなくてはいけない)という方向で扱いたい。本当はうまいことモディファイされた部分を保持するつもりのようだが、信頼性の高い機能ではない。
 ようは出力されたクラスを継承した別のクラスでコードを書き、wxGladeの出力は常に上書きでいきたい。

 これでwxWidgets版GraphicGripGropを作成する環境が揃った。ハズ。

2005.09.30

wxWidgets導入メモ for MSC

nmake -f makefile.vc BUILD=release UNICODE=1 USE_THREADS=1

で作成したライブラリをコンパイル・リンクするためのオプション。

必須のもの

/MD Cランタイムを指定。ライブラリはMSVCRT.LIBを前提とするためこのオプションは必須。
/EHsc 例外関連の機能らしい。
/D_UNICODE UNICODE指定。

必須ではなさそうなもの

/GR RTTIを有効にする。Run Time Type Idenitification。実行時型識別。
/TP 拡張子でC/C++を区別できれば指定は不要。
/O2 好きなオプティマイズを指定。
/D_WINDOWS
/DwxUSE_GUI=1
/DWINVER=0x400
/DWIN32
/subsystem:windows /link以降
/release /link以降


cl /nologo /MD /EHsc /D_UNICODE /GR /O2 /D_WINDOWS /DwxUSE_GUI=1 /DWINVER=0x400 /DWIN32 hworld.cpp /link /subsystem:windows /release wxbase26u.lib wxmsw26u_core.lib wxmsw26u_adv.lib gdi32.lib kernel32.lib user32.lib uuid.lib ole32.lib comdlg32.lib comctl32.lib Shell32.Lib AdvAPI32.Lib rpcrt4.lib winmm.lib wsock32.lib

2005.09.30

 普通の利用者が普通にiPodで音楽を楽しむことが、なんらかの権利の侵害となるような解釈を許す、現30条のありかたが既に現実と齟齬を起こしているのだと考えます。著作権者の権利に加え利用者の権利を明記する必要があるのではないでしょうか。法の前提として当たり前であるがゆえに省略された、利用者が著作物を利用する権利を明示すべき時期です。
 私的録音は例外なのではなく権利であるべき事項と考えます。

2005.10.02

wxWidgets導入メモ for Mac OS X

../configure --with-mac --disable-shared --enable-unicode --enable-threads
----------
とオプション付きで configure を行い、
----------
make
----------
とビルドを行う。

2005.10.09

 wxWidgetsはある程度現実的なマルチプラットフォームの主にC++向けのGUIクラスライブラリである。その実力を測るため、GraphicGripGropを移植してみた。
 環境はMinGW+MSYSのgccにEclipse+CDTである。とりあえずこの環境なら無料であるという意味で誰でも構築できる。もちろんプログラム開発者としてのスキルは要求されるので本来の意味での誰でもではない。

 環境の構築は別項目参照。

 GUI画面の構築にwxGladeを使ったのだが、落ちる落ちる、ひたすら落ちる。画面構成を作るのにこんなに忍耐強さが要求されるとは予想外。GraphicGripGrop程度ならまだしも、現状まともなサイズのまともなアプリケーションを組めるツールではない。

 最初Eclipse 3.1 + CDT 3.0 で環境を構築したのだが、CDTがwxWidgetsのヘッダの解釈でおかしくなるらしくほぼ暴走状態になってしまうので、現実には全く使えない。あれこれ無効にすべくスイッチを変えてみたが暴走状態は回避できなかった。Eclipse 3.0.2 + CDT 2.1.1 は一応暴走せずに使える。
 ただ、開発に要求される安定性という点ではやはりかなり厳しく、Eclipse + CDT + gdb でのデバッグにて時々暴走状態になった。そもそも仕組み的に無理があるのかCDTの問題なのかは不明。

 結論、EclipseをJava開発以外に使うのは趣味の範囲にとどめておけ。

 gcc環境のリンク結果はやたらにでかい。gcc環境のリンカには使われない関数等をリンクしないという機能がないそうだ。また、wxWidgetsの作りの問題もあり、VC++環境でもたいして小さくはならない。絶対TRUEにならないif文から呼ばれたりしてるクラスメソッドが多いんだろうなと想像している。
 もうちょっとなんとかならないもんかなぁ。

 wxGladeの問題は商用のGUI構築ツールを使うという回避方法があるが、実行モジュールの大きさの問題は解決方法はなく、回避できない。クラスライブラリ部分が相対的に小さくなる商用プロダクトなら気にしないというのも手だが。

 肝心の実行速度だが、グラフィックデータを扱う機能をwxWidgets独自に抱えているため、OS非依存に同じように動けるのはいいのだが、あまり速くない。WindowsのGDI+やMac OS XのCoreImageはきっとCPUのマルチメディア命令を駆使してるんだろうなと想像される。

 あとMac OS XのXcode 2.0では外部プログラム起動呼び出しでコケる。文字列クラスのUNICODE指定が影響している可能性がある。あと、wchar_tのサイズが4だってのも関係あるかもしれない。ともかく深く追求する予定はない。

2005.10.12

Subject: エヴァ
To: Niigata
Date: Sun, 16 Oct 2005 23:30:07 +0900 (JST)

 ケーブルテレビのアニマックスでエヴァ5、6話を録画したんだが、
1〜4も一応デジタル化するため昔にテレビ東京でまとめて放送したときの
録画テープを引っ張り出してきてキャプチャ。数年ぶりにビデオデッキを
動かした。あまりに久しぶりなんで、テープ食ったりとかトラブったんだが
一回早送りして巻き戻しをしたら、とりあえずちゃんと動いた。
 ビクターのデッキ(パパ持ち込み分)は丈夫。日電のデッキ(ママ持ち込み
分)は再起不能。
 比べるとアニマックス放送分は綺麗なのはいいとして、なんだかやけに
色が濃い。濃すぎかもしれない。
 なんか、これ、リマスタとかしたんだろうか。
 昔の3倍速VHSビデオの絵がチャンネルNECOと同程度とわかり、チャンネル
NECOの映像の劣悪さを痛感。いわゆるスカパー品質ってやつか。

OSTRA / Takeshi Yoneki

Subject: Re: エヴァ
To: Naoki Maruyama
Date: Mon, 17 Oct 2005 23:23:34 +0900 (JST)

> ケーブル放送分は確かデジタルリマスター版だったはず。
> 色の濃い、薄いは地上波をストレートで見るのとケーブル局を通したものでも同じことがいえるね。

 アニマックスで日曜にやった逆襲のシャアの録画をみたらシャア専用
モビルスーツも激烈に赤いんで、アニマックスが基本的に濃いのかもしれない。

> ところで地上波が完全にデジタルに切り替わるのって何年
> からだっけ?

 総務省は2011年予定。その前に一波乱あると思う。
 少なくともB-CASカードなんてもんは廃止だろう。

 ジーク・ジオン!

OSTRA / Takeshi Yoneki

 いまだ収まらぬ「のまネコ」騒動。
 まぁ、パクリという行為に鈍感なエイベックスの体質の問題。人様のモノに自分のCopyright付けて売ったらあかんでしょ。パクリが業務の一部としてあたりまえになってるからモナーの海賊キャラにまでCopyright付けたんだろうなぁ。こんなレコード会社要らん。
 あぁでも俺、有線ブロードバンド契約してるから間接的にエイベックスを助けてるんだよな。世の中単純じゃない。

 講談社の漫画がスラムダンクをパクったということで、回収騒ぎ。
 つまり、もう読者・視聴者・聴取者・聴衆・観客・ユーザは物言わぬ存在じゃなくなったわけだ。ナニガシかを作って売るという行為に最低限のマナーが要求される。元々あたりまえなハナシなんだが、ネットワークによりチェック機能が有効に働くようになったということか。

 西正がITmediaから一時撤退。
 情報収集能力はあるようなんだが、分析能力に乏しく、予想がことごとくハズれることで有名なコンサルタント、というか放送業界ウォッチャーの西正。予想というよりは希望的観測を書くからハズれるんだろうとは思う。毎日インタラクティブ時代から注目してたが、正直ズレてるとしか思えない文章が結構目立つ。
 ITmediaのブログで挑発的なタイトルやら不用意な対応やらをやらかしての撤退。本人も「ネット活動に対するスキルが無い」と認めている。この10年何してたんだろう。仕事漬け? なんだろうなぁ。ブログはBBSの変形でしかなく、少なくともITmediaで公開してるということは個人の日記では済まないと理解していなかったようだ。
 ネットワークリテラシーは誰も手取り足取り教えないし、常に生暖かく見守って貰えるわけでもない。
 小笠原陽介の『それともあなたがたは「受け手」だから何をやっても良いのか。そうやって「読者」の一方的な優位を振りかざすことが、あなたがたのネット文化に対する姿勢なのか。』という問いかけは誰に対するものだろう。これを読んで自身に当てはめて反省するような人物像を俺は想像できない。
 ブログはネタ振りのあるBBSであり、ブログの所持者に削除の権限はあるがBBS的ルールが適用されるのはシステム的に避けられない。意見を書き込んだヒトは既に旧来的な読者ではない。そんなことは10年以上前に「朝のガスパール」で実証されたではないか。パソコン通信時代に各種BBSで行われたことではないか。
 本当にこの10年間、西正は何をしてたんだろう。何を見てたんだろう。

2005.10.21

Subject: Re: HUNDOSHI-EDITのシェルスクリプト利用について
To: 名称未設定106
Date: Sat, 22 Oct 2005 01:22:08 +0900 (JST)

 こんばんは、名称未設定106さん。

> HUNDOSHI-EDITのUNIXシェルスクリプト利用について、
> 疑問に思う事がありましたのでメールさせていただきます。

 本名はいらないので、せめてハンドルくらいは書いてくれると嬉しいです。

> 全体を選択して実行すると、「コピーするには大き過ぎる」というよう
> な内容のエラーが出ました。
> 大きなテキストファイル全体に対して上手くシェルスクリプトを実行す
> る方法はありますでしょうか?

 私も気になってたんで調べたんですが、

http://developer.apple.com/technotes/tn2005/tn2130.html

によると、Carbon APIのFreeMemはMac OS X環境では固定の20MByteを
返すそうです。
HUNDOSHI-EDITはかなりレガシーなプログラムで、自分が扱えるメモリの
限界をFreeMemの値から計算しています。選択向けデータはだいたい
FreeMemの値 / 4
としていたので、Mac OS Xでは5MByteが限度となっていました。

とりあえず2GByte(符号付き32bit整数の最大値)まで限定解除してみたので、
動作確認をお願いします。

http://www.ne.jp/asahi/techno/ostra/down/HE304beta1.tgz

OSTRA / Takeshi Yoneki

試してみたら確かにゼビウスが「お前はグラディウスか」な処理落ちして、サウンドが途切れ途切れ。
あぁ、いつのまにか正規にアーケード品質のゼビウスは家のテレビできなくなってたのか。
当面GBA向けファミコンミニでいいとしてPS2用ミュージアムが出るまでおあずけかいな。

どうせ"PlayStation"ソフトの"PlayStation 2"での互換性についての問題は解決してないんだろうから、「プレイステーション 2」(SCPH-75000シリーズ以降のモデル)における(略)の表は前のも合わせるべきだと思うんだが、解決したのか?(んなわけない)

ところでPS oneはこういう問題ないのかな。

2005.10.26

 西正がもうITmediaに復帰してる。素早い。

2005.10.27

Subject: QDFlushPortBuffer
To: Tomonokai
Date: Fri, 28 Oct 2005 09:08:06 +0900 (JST)

 最近自作エディタをCFMからMach-Oに移植しているんだけど、
Mach-Oでの QDFlushPortBuffer のパフォーマンスがCFMに
比べて激烈に悪いのは、なにかな、いつものAppleの意地悪
なんかな。
 パフォーマンスが落ちる理由がないもんなぁ。

OSTRA / Takeshi Yoneki

Subject: Re: QDFlushPortBuffer
To: Tomonokai
Date: Sat, 29 Oct 2005 02:52:59 +0900 (JST)

>  Appleとしては、QuickDrawはもう使ってくれるなということなの
> かも(^^;)

「Universal Binary プログラミングガイド」にモロに

『ヒント:最善のソリューションは QuickDraw コードを Quartz 2D に
移行することです。QuickDraw は Mac OS X v10.4 から使用廃止になって
います。Quartz 2D への移行については、『Quartz Programming Guide
for QuickDraw Developers』を参照してください。』

と書いてあるんで、実際そうなんでしょうね。
私が危惧してるのはCoreImageを使ってもパフォーマンスが良くなるのか
って点です。古い機種の切り捨てなんじゃないかと疑ってます。

上の文章の「使用廃止」が何を翻訳してこうなったか確認してませんが、
当分、あるいは永遠にQuickDrawは捨てられないんじゃないかとは
思います。
カレントグラフポートなんつー腐った概念はマジに捨てたいだろうな。

Mach-O向けにQDFlushPortBufferを呼ぶ回数を極限まで減らしたら
多少はマシになりましたが、今度はCFMでやたらとスクロールが速い。
期せずして旧Mac OSでのスピードが復活してしまった。

OSTRA / Takeshi Yoneki

HUNDOSHI-EDITのCFM CarbonからMach-O Carbonへの移植メモ。

 gcc 4.0は、きっとオプションでどうにかなるんだろうが、gotoが禁止されている。
 HUNDOSHI-EDITのソースの大部分はPascalからのp2cコンバート移植で、Cに比べ少し制御構文に不自由なためgotoを結構使っていた。
 例えばCでは return FALSE; で済むところが、FunctionName := FALSE; exit(FunctionName); などと構造整理等(流行の言葉で言えばリファクタリングだな)を阻む仕様となっている。なるたけexitは使いたくないところだ。
 まぁ、泣き言はいいとして、gotoの駆除が最初の仕事。

 インクルード関連を調整し、リソースをデータフォークに追い出したら結構すんなり動き出した。しかし描画が激烈に重い。

 QDFlushPortBufferの呼び出しが非常に重い。CFM CarbonとMach-O Carbonで何が違うのかは知らないが、QuickDrawに対する嫌がらせだろうか? きっとくだらない理由で重いんだろうと想像。

 QDFlushPortBufferの呼び出しを可能な限り減らす。するとCFM Carbonで異様に速い。あぁ、旧Mac OSでのスピードってこうだったなぁ。良かった良かった。

 Mach-O Carbonでは、それでもやっぱり重い。困ったな。

2005.11.02

Subject: Re: QDFlushPortBuffer
To: Tomonokai
Date: Fri, 04 Nov 2005 09:35:36 +0900 (JST)

 移植が完成に近づいたからか、Xcodeを2.0から2.1に変えたからか、
10.4.3の影響かわかんないけど、QDFlushPortBufferのレスポンスが
かなり改善された。CFMの方が速いのは変わんないけどMach-Oも
速くなった。
 なんでだろ。
 多分10.4.3だよなぁ。

OSTRA / Takeshi Yoneki

HUNDOSHI-EDITのCFM CarbonからMach-O Carbonへの移植メモ。

 移植が終了に近づいたせいか、10.4.3になったせいか、Xcodeを2.0から2.1に変えたせいか不明なんだが、変に重いということはなくなった。それでもCFM Carbonの方が速いのは事実だが、Mach-O Carbonもあまり遜色なくなった。なんだろう。10.4.3かなぁ。

 長年の懸念であった%@のログアウトの問題の原因がわかった。移植とは全く関係ないが、メニューのEnable/Disableのチェックをするイベントで、全てのメニューアイテムで「オッケイオッケ」とか「よっしゃよっしゃ」と応えていたのが原因だった。自分の知らないメニューアイテムは「記憶にございません」と返さねばならなかったのね。

 TSMインライン関連の定数の一部が<Carbon/Carbon.h>では名称が変更されている。名称の変更はときどきあって、またかとウンザリしている。同等のUniversal Interfaceはあるんだろうか。

 HUNDOSHI-EDITの特色のひとつがプラグイン。
 そもそもプラグイン的な仕組みはユーザにフィルタを書いてもらおうというニュアンスを持っていたのだが、マックプログラミングの敷居の高さもあり、ユーザ作成のプラグインは少数にとどまっている。
 Mac OS Xになり、コマンドラインのプログラムをフィルタとして呼び出せるようにしたため、本来のプラグインの価値はかなり下がっていると思う。コマンドラインのプログラムの呼び出しは、手軽さもあり、結構使われているようだ。

 それでもプラグインである。もはや意地だ。
 Mac OS Xで用意されているbundleを使ったCOMサブセットのCFPlugInRefベースの仕組みを利用して、従来のプラグインの延長線上のMach-Oプラグインを定義・実装。
 Mach-OのHUNDOSHI-EDITから利用できるプラグインはこのMach-O bundleプラグインのみ。
 最大の難関は既存プラグインの多くがPascalで書かれているため、C/C++への移植が必須なこと。MPWのp2cをまたまた使う羽目になっている。p2cを使うだけでは動かないってのが辛いところ。

 変な期待をされると困るのではっきり書いておくと、CFM CarbonからMach-O Carbonへの移植にはCocoaは全く関係ない。あくまでCarbonプラグラムなので、内部的には日本語はShift JISのまま。
 互換性の底辺で踏ん張ってるネイティブプロダクトと思ってもらえれば良い。
 長いファイル名対応って、やったかな。

2005.11.07

ペーパーマリオRPG(GC)
 娘(5歳)にもできそうなゲームということで、新宿ソフマップの中古屋で買ってきた。
 既にマリオに洗脳されている娘は案の定ペーパーマリオの虜になった。パパも。
 普通に面白いゲームだ。戦闘にそれなりにアクションを求められるのがマリオ。このマリオはちゃんとジャンプして敵を踏みつける。敵を踏んでこそマリオ。正しいマリオ。
 娘は天井が落ちてくる罠で本気で泣き出した。重要なポイントはたいがいママが頼り。パパはもうだいぶ進んでしまった。なんだか終わるのが惜しい。

2005.11.15

 Mac OS Xを10.4.3にアップデートしたらFirefoxが起動できたりできなかったりと変だ。何が問題なのか全く手がかりがないのでシステムの再インストール。再インストール後は変なことはなくなった。何かが悪さしていたか壊れていたかどちらかであろう。

2005.11.15

 SONY BMGのrootkit問題、どう決着つけるつもりだろう。このまま裁判に突入して懲罰的損害賠償だろうか。弁解の余地も同情すべき点も皆無だが。
 50年代のジャズのCDにプロテクト入れるってのも全く理解できない。あらゆる年代層にCDを買ってほしくないというメッセージなんだろうか。

2005.11.15

Subject: Re: あらま、おひさしぶりね。
To: Tsukasa Matsushima
Date: Mon, 21 Nov 2005 02:10:26 +0900 (JST)

> たまたまWeb巡りしていたら...................。

何をどう探していたか興味があるところだけど、まぁ、いいか。

最近かのギターの竹内(って覚えてないか、初期オストラでギターを弾いて
くれてた、KORG MS-20の所有者)からメールがあった。どうも私の名前で
検索してくれたらしい。

住所メールしてくれたらCD-R焼いて送るぞ。
イケさんには送ったが、聴いたかどうかは不明。彼の(以前の?)ジャズ
バンドの音を送るとか返事はあったが、まだ届いてない。

OSTRA / Takeshi Yoneki

Subject: Re: PSP
Date: Tue, 22 Nov 2005 00:26:47 +0900 (JST)

> これは米木さんのPSP購入のキッカケになりません?
>
> http://www.watch.impress.co.jp/game/docs/20051114/gra.htm
>
> ワタシはもちろん買います(^^;

勤務先のゲーム仲間に「やっとPSPを買える」と言ってる。
これとナムコミュージアムだけじゃ、なんとも後ろ向き。

これがある程度売れたらパロディウス全部ってのも希望。

ハイドリウムが面白そうとか物色してるが、ロードに2分とのことで
悩みどころ。

PS2でPS1ナムコミュージアムのゼビウスがちゃんと動かないのを確認。
つい最近まで知らなかった。
さっさとPS2ナムコミュージアム出してほしい。

SONY BMG問題とか、SonicStage/CONNECT Playのスパイウェア疑惑とか、
PS3の中古ゲーム対策特許疑惑とか、しばらくSONYは避けたい気分な
わけだけど。
松下不買はもう解除でいいか。

#GCのペーパーマリオRPGが娘とパパのカレントゲーム

OSTRA / Takeshi Yoneki

Subject: Re: あらま、おひさしぶりね。
To: Tsukasa Matsushima
Date: Tue, 22 Nov 2005 23:48:43 +0900 (JST)

> どこかに簡単な理論系(楽典、和声、対位、楽式、作曲等)サイトないかな、
> と検索しているうちに、なんかで引っかかったというワケさ。

「楽典 作曲」でググると2ページ目にでてくるな。
恥ずかしいなぁ。もっと順位下がるべきだよなぁ。
8年前のページじゃん。

OSTRA / Takeshi Yoneki

 HUNDOSHI-EDITのリファクタリングな日々。
 昔からプログラマは「ソースを綺麗にする」という行為を行っていた。しかし、それはプログラムの機能としては何も変わらないため、非プログラマの(特に上司の)理解を得られない行為であった。だが、ある程度の規模になったプログラムは一度「ソースを綺麗に」しないかぎり、無理な拡張を行うことになる。それはその拡張をするヒトもその後メンテナンスするヒトにも地獄である。こっそり「ソースを綺麗に」することも多かった。
 たいがいの腐ったプロダクトは温泉旅館的な拡張をひたすら続けて、些細な変更にも数十箇所に手を入れるといった、バグを入れ込まないわけがない状態になっている。「ソースを綺麗にする」重要性は昨今リファクタリングという言葉が輸入されてようやく陽の目を見たようだ。

 HUNDOSHI-EDITは数度の大規模変更を余儀なくされたプロダクトではあるが、肝心な部分が古臭いままだ。今回のリファクタリングもそこには手を付けない。内部的な構造の保持にHandleを多用している点だ。

 今回の変更点。現在進行形。

 CodeWarriorからXcode(gcc/g++)に移行するにあたって、gotoの除去。
 プラグイン関連の仕様拡張にともなって、CFString、CFURL等コアファンデーションAPI向けのクラスの用意。ICExtensionMapping.appから持ってきたが、ICExtensionMapping.appでは従来のコードとの決別という意味でCFString(UNICODE)向けクラスはCStringとしていた。HUNDOSHI-EDITにも元々CStringクラスは用意してあり、これはPascal/C文字列(ASCII/SHIFT-JIS)向けのものだ。名前がぶつかる。
 ええいと、クラス名の総入れ替え。CXxxxクラスは全てTXxxxクラスにする。CFString向けクラスはTCFString。CFStringとPascal/C文字列の統合はしない。相互変換が代入で簡単にできるようにしておく。同じくFSSpecとFSRefとCFURLの統合もしない。これも相互変換ができればよい。
 置換にはWindowsのPowerSoft Replacer PsBRとかいうツールを利用。デストラクタが置換されなかったがまぁ、それくらいはオッケイ。
 HUNDOSHI-EDITにはTFilePath/TDirectoryというPascalレコードのコンバートされた構造体と、CFilePath/CDirectoryという実篤/GripGrop開発以来のクラスが両方入っていた。構造体を廃棄し、CFilePath/CDirectoryをTFilePath/TDirectoryに名称変更。構造体とクラスのメンバはほぼ同一で互換があるので、えいやと入れ替えても旧構造体向けの関数はちゃんと動作する。
 TFilePath/TDirectory構造体向け関数のクラスメソッド移行はまだ途中。ファイル入出力をTFileIOベースのものに移行予定。
 標準ファイルダイアログ(ナビゲーション)の長い名前対応のため、リプライクラスの名前をTStringからTCFStringに変更。ウィンドウタイトルを保持する変数もTStringからTCFStringに変更。

 HUNDOSHI-EDITとしての機能はほぼ変わらない予定。Mach-O専用プラグインと長い名前対応程度か。変わったと気づかせない程度が目標。
 CFM Carbon版はCarbonLib 1.1じゃないと動かなくなるだろう。まぁ、しかたがない。
 HUNDOSHI-EDIT 3.1は今年中にでるかなぁ。

2005.11.22

 長らく使ってきた三菱電機のモニタディスプレイ。しばしば画面がビヨヨヨンとマルチスキャン失敗な変な状態になる。寿命だ。
 いいかげん移行しなくちゃいけなかったのだが、ようやく秋葉原ソフマップにて型落ちの液晶モニタディスプレイを買ってきた。今度も三菱電機の製品でRDT1711V。中国製。
 いままで1024x768になれていたわけだが、1280x1024がこんなに広いとは思わなかった。画面が広いだけでかなりのインパクト。

2005.11.24

Subject: Re: PSP
Date: Fri, 25 Nov 2005 00:31:26 +0900 (JST)

> ワタシは下のところで注文しましたが、ページ先頭の説明のところに、
> 日本版の本体でも動くって書いてありましたよ。

メッセサンオーにはなかったけど、TRADERにはありました。
もちろんゲット。
ソフトだけじゃしょうがないんでPSP本体はアキバヨドバで買ってきました。
ファームウェア2.0で、2.5にしないとAirMac Expressとは接続できないっぽい。
どのみち勝手ソフトは動かないんで2.5にアップデートの予定。

ゼビウスはまんまゼビウス。
ワンダースワンと違って縦長状態では武器ボタンが存在しないのが
悔しい点。横井軍平の偉大さを知る。

OSTRA / Takeshi Yoneki

注釈:
 このタイミングで既にPSPのファームウェア2.0はクラックされ、勝手ソフトが動作したらしい。とはいえ、どのみちグラディウス ポータブルはファームウェア2.5を要求する。

 ドルアーガの塔な日々。
 PSPは現在ドルアーガの塔専用機。ゼビウスもするから専用機ではないか。とはいえ、レトロゲーム専用機には違いない。2月にはグラディウスもでるし。

2005.11.28

Subject: Re: PSP
Date: Mon, 28 Nov 2005 21:03:10 +0900 (JST)

> とりあえずドルアーガは難なくクリア。
> ゼビウスは実はパッドでやるのはファミコン版以来。元々SONYのパッド
> とはどうも相性が悪く、最初のアンドアジェネシス到達がやっと。
> 初代ファミコンの十字キーはよかったなぁ、とここでも横井氏の偉大さ
> を知ることに。

PSPの重さはファミコン版ゼビウスでよく使われた持ち方ができないからねぇ。
温泉旅行で友達にDS+ゼビを渡したら無理やりその持ち方をしていたが、
画面が小さいこともあり、結構メタメタ。
かつてはいつまでもゼビウス終われないヒトだったんだけどね。
アーケードでやればそれなりに今もいけるんだろうけど。

#私は昔もせいぜい20万点プレーヤー。
#ドルアーガはいま44面。完全に攻略サイト頼り。

OSTRA / Takeshi Yoneki

 例のFirefoxが起動できない問題は結局OSを入れ替えても解決していなかった。
 まぁ、もう1.5に移行したんで迷宮入り。

2005.11.30

NAMCO MUSEUM BATTLE COLLECTION(PSP)
 国際版のナムコミュージアム。日本版との違いはゼビウスとかドルアーガの塔とか。日本版はVol.2でゼビウスとかドルアーガの塔が収録される。ドラゴンスピリッツが日本版Vol.2のみとなるので、やりたかったら結局日本版Vol.2も買うことになる。
 ほぼ本物のゼビウスがいつでもどこでもできるのはいいんだが、PSP自体が縦シューティングを意識してないマシンだというところが問題。
 ドルアーガは相変わらず59面でストップ(もちろん攻略情報見まくり)。

ポポロクロイス物語 -ピエトロ王子の冒険- PSP the Best(PSP)
 バグフィックスもある程度は行われているようなんで買ってきた。
 ディスクアクセスが多いとか、キャラクタの動くスピードが速すぎるとか、なんだかあまり好きになれそうにない。全般的にプロフェッショナルさを感じさせない出来。
 最大の問題は3D酔いならぬ液晶酔い。スクロール時(移動は全てスクロール)のぼけた画面は酔いを誘う。ゲーム設計のミスだろう。
 しかし、PSPってディスクアクセスが遅い+うるさいね。ハンディタイプのゲーム機としては失敗作だと思う。

リッジレーサーズ PSP the Best(PSP)
 全てのゲーム機にカーレースを。
 最初のリッジの綺麗バージョンはいいとして、なんでスピード感がないんだろう。不思議だ。まだクラス1しかやってないからかな。
 音楽がうるさくてエンジン音が聞こえないので音楽は切っている。

2005.12.05

「メモリースティックはなくなるの?」
http://pc.watch.impress.co.jp/docs/2005/1206/hot397.htm

 xxxはなくなるの?は20年前のソニーによる「ベータマックスはなくなるの?」という奇抜な広告を模したものであろう。
 rootkitの件以来、ソニー好きの多い世代、私も含めてX世代にすら見放されつつあるという現実。俺たちが見捨てたらもうソニーをブランド買いするヒトはいなくなる。
 かつて、10数年前、ソニーの社員はソニー製品を買っていた。ソニーが好きなヒトがソニーで働いていたのだ。いまはどうなのだろう。ソニー社員はソニー製品を買っているのだろうか。

2005.12.06

リッジレーサーズ PSP the Best(PSP)
 ヘッドホンでやるときちんとエンジン音が聞こえた。サウンドはヘッドホンに最適化されているようだ。つうかPSPのスピーカーはPC-9801のピポッ程度しか出せないアリバイ的なもの。Nintendo DSの方がまっとうに音が出る。サウンドでAV機器屋が花札屋に負けてどうする。
 音がちゃんと聞こえると迫力が変わり、スピード感も変わる。きっちり正しくリッジはリッジだ。リッジVより出来は良いかもしれない。ナムコさん良い仕事してます。
 それでも音楽の音量が大きいので少し下げてる。

スーパープリンセスピーチ(NDS)
 モノがなくなったり込み合ったりする前に本体と一緒に娘にクリスマスプレゼント。一生懸命わめきながら遊んでる。
 ワールド1のボスが倒せなくてお願いされたが、そもそもボス面だけやれっていわれてもできないんで、パパセーブを使って最初からやってみた。
 難度は5歳児でもなんとかなりそうな程度。でも任天堂にあるまじき、メッセージに漢字が入っている。喜怒哀楽ってのも5歳児には難しいなぁ。例のボスのヒントも漢字混じりだ。
 ともかくヒントがあることを教え、メッセージはママに読んでもらって再挑戦だ。
 歌いながら歩いてるノコノコを食ったり(食うのは姫ではなく傘なのだが)とちょっとなんだかなと思うのは私が大人だからだろうか。アクションゲームとしては入門用として良いのではないかな。佳作。
 あぁ、多分ちゃんとしたマリオシリーズの新作ハードコアアクションを期待していたファンは裏切られたと思っただろう。カービィやスタフィーが近いのかもしれない。

2005.12.06

リッジレーサーズ PSP the Best(PSP)
 ここぞって時にニトロを使う。あぁ、F-ZEROだ。ここ好き嫌い分かれるだろうなぁ。私はレースゲームがしたいんであってドライブシミュレーションに興味はないので全くもってオッケイ。

2005.12.07

ポポロクロイス物語 -ピエトロ王子の冒険-(PSP)
 第1章が終わった。そのうち面白くなるんだろうと思っていたが、どうもたいして面白くなる気配がない。戦闘があまり面白くないのが最大の問題点か。
 メッセージが続いているのにメッセージウインドウがいちいち一瞬閉じるのがなんとも素人臭い。音楽が「ゲーム音楽ってこういうもんでしょ」と勘違いしてる素人臭い。サウンドエフェクトも同様に素人臭い。戦闘時カーソルを合わせにくいのがプログラム的に素人臭い。頻発するディスクアクセスはそれを克服できなかった開発マネージャーもプログラマもどうにも素人臭い。
 同人ソフトとして見たら出来は良いのだろうが、あいにくこれは同人ソフトではない。
 シナリオ面は、どうも王子の旅立ちのきっかけが弱い。再度母の寝所に行ったときの謎の魔法使いのイベントも半強制的に見せるべきではなかろうか。そのイベントなしでも良いとしたのはなぜだろう。そのイベントを見るまでは城下町を出られない程度の強制はあってもかまわないと思うのだが。とはいえ、その謎の魔法使いのイベントも弱い。せめてブリオニアに有力な手掛かりがあるという確信が得られるようなイベントがあれば良かったのだが。
 キャラクタの掘り下げも全く不十分。ガミガミ魔王をもっと名前も含めて魅力的にできなかったのだろうか。子供相手のなめきったテレビアニメのような分かったつもりでいる勘違い素人の臭いがする。
 アマチュアリズムと素人臭いってのは違うのである。職人の力加減とそれを勘違いした素人の手抜きは全然違う。何がどうとはっきり言えないが、ワンダと巨像はプロの技術を利用したアマチュアリズムを感じる。塊魂も。逆にペーパーマリオRPGはひたすらプロフェッショナルである。
 ポポロクロイス物語は作品そのものへの製作者の愛を感じない。

2005.12.12

 BeOSの後継として最も正統派のZETAの日本語版のデモのためだけに白夜書房(恥ずかしい)のハッカージャパン(もっと恥ずかしい)を買ってきた。
 Athlon64マシンで起動するもののUSBキーボード・USBマウスどちらも効かない。しょうがないのでPS/2キーボードとPS/2マウスを引っ張り出してきて起動。
 ATIのビデオボードをちゃんとは認識せず画面は16色でなんだかなだが、これはドライバ待ちってことか。ネットワークデバイスも見つけてくれなかった。ともかくPCのOSはドライバがネック。

 Athlon64マシンになんとなくSlackware 10.2を入れてみた。GUI(KDE)も綺麗に動くし、ネットワークもちゃんと働く。ZETAがこのレベルに到達するのはいつぐらいだろう。

2005.12.13

 レコード店の新星堂からのメールが朝日ネットのスパムブロックにひっかかる。本文にあるURLにsaleという単語があるからだ。まぁ、宣伝メールを送るという行為において、現在どうしなくてはいけないかは教えてあげるつもりはない。

2005.12.19

Subject: Yonah
To: Tomonokai
Date: Mon, 19 Dec 2005 22:57:45 +0900 (JST)

 富士通と日電のYonahマシンが発表されたんで、Appleも1月にYonahマシンを
リリースせざるを得ないとの観測。
 とはいえiBookがデュアルコアってのも順番が変だよなぁ。シングルコア
Yonahじゃ魅力半減だし。
 いや、私は来年はパソを買う年じゃないけど。

OSTRA / Takeshi Yoneki

Subject: 例の件
To: K-ON
Date: Sun, 25 Dec 2005 20:48:32 +0900 (JST)

さて年の瀬モード突入。
なんだかしらないが、先月の映画「奇談」の公開と打ち切りの前後に
出版界に久しぶりにモロ☆ブームが到来し、新刊やら新編集やらが
ラッシュ。
ぱらいそさいくだ、の掛け声とともにこの5年ほど放置していたモロ☆
コレクションの補完をしている。知らない間に結構出ている。
先月から今月にかけて妖怪ハンターも新編集で文庫化された。
本人曰く「出来に不満足だった」という理由で放置されてた作品も
27年ぶりに収録された。
長らく妖怪ハンターは集英社のシリーズだったのだが、メフィスト連載
分は講談社から単行本化された。同じシリーズを連綿と別の出版社で
続けるのは漫画界では珍しかろう。

てなことはどうでもいいのだが、練プ連の定例はいつも通り正月2日に
行う予定ではあるが、参加希望者はその旨返信よろしく。

公式ビデオは死にぞこないの骸骨にしか見えないスティーヴ・ハウの
熱演するイエス2004年ライブ。または映画テルミン。

OSTRA / Takeshi Yoneki

 専門外の私には歴史的事実を判断するための前提知識も一次資料もない。百人斬り競争が東京日日新聞記者のでっちあげだというのは衛藤瀋吉氏がそう判断したからという程度でしか語れない。
 権威に盲従したとしかいえないが、それ以上どう言えるのか。

2006.01.10

Subject: Re: 2006年新年会
To: Tomonokai
Date: Thu, 12 Jan 2006 02:27:08 +0900 (JST)

> 日程:1月21日(土)
> 集合:JR新橋駅銀座口 17時45分
> 店:TO THE HERBS 汐留店

米木家大人2人子供1人参加希望。
大人の足で10分の距離は幼児に厳しいんで、大江戸線で直行します。

EM64T(AMD64)対応のMelomが予定通り進めばIA32のYonah、すなわち
今回発表された両Intel MacはベージュG3のような、Quadra 840 AVのような、
Macintosh 128Kのような、孤高のはみだしっ子になる可能性もあるんだなぁ
とオモタ。

まぁ、OSの本格的な64bit化が達成する頃にはリプレース対象だから
いいんだろうけど。

OSTRA / Takeshi Yoneki

 ちゃんとソニーから2006年の休日データが提供されている。
http://www.jp.sonystyle.com/Nws/Software_dl/Pda/Software/Bus/Pas/9999999999949.html
 いつまでこういう形のクリエのサポートを続けるか不明だが、まぁ止めたら正月に手入力するだけだ。
 いあまぁ、私が使っているのはPalm Vxなんでソニーとは関係ないのだが。パーム社が日本市場から撤退して久しいので、頼みはソニーだけになってしまっている。
 もはやPDAにはリプレース対象がPocket PC(Windows Mobile/Windows CE)くらいしかない。Linuxザウルスもなんだか今後はということでは怪しい。すでにシャープからはW-ZERO3というPocket PCが出荷されている。
 携帯電話に駆逐されてしまったということだよな。

2006.01.14

 電車で何度か普通のオジさんサラリーマンがNDSを90度まわしてプレイしているのを見かけた。脳を鍛える大人のDSトレーニング(またはその系列のシリーズ)である。どう考えても皆騙されてるぞ。おおぃ、相手は花札屋だぞ。真面目に捉えてどうする。

脳を鍛える大人のDSトレーニング(NDS)
 買ってきてちょこっと触ったが、音声入力部分があるので当面放置。音声入力なしモードでもいいんだけど、色を発音するのはそれなりに面白い。
 とはいえゲームとして面白いかというと、どうなんだ? 私は6x7とか9x6とかが微妙に反応が悪いと自覚した。

グラディウスジェネレーション(GBA)
 やってないグタディウスがなんだか溜まっている。手始めに買ってきた。来月PSP購入の本来の用途であるグラディウス ポータブルが発売されるのだが、これやったらグラディウス欲が結構満たされてしまった。

1080°シルバーストーム(GC)
 中古で安かったので買ってきた。
 倒れそうなのを回復するのにスティックをグルグルってのはちょっと興醒め。なんとかならなかったのか。
 これやるとN64版ができなくなっちゃうと思ったが、64版よりは簡単に滑ることができるので別物として考えるべきか。ウェーヴレースもF-ZERO Xも別物だし。
 64版の移植も欲しかったな。いやまぁ、面白くて良いゲーム。

スターソルジャー(GC)
 中古で安かったので買ってきた。
 グラフィックがイマドキになったスターソルジャー。実際イマドキになっただけ。

エターナルダークネス(GC)
 中古で安かったので買ってきた。
 こんな風に投売りでもされてないとアドベンチャーゲームをしなくなった。アドベンチャーゲームの方法論のマンネリ化が激しいのがその理由だ。
 エターナルダークネスはそれなりに戦闘のアクション性もあるが、バイオハザードのような厳しさはない。
 私がプレーしてるのをママと娘が見物。それなりに楽しいようだ。

ペーパーマリオRPG(GC)
 ラスボスとの戦闘でフローが確立できそうにないので一旦街に戻る。
 100階ダンジョンの50階でアイテム保持最大値を拡張して目いっぱいアイテムをそろえてからでないと勝てそうにない。
 まぁ、このへんでもういいかということ。娘は「ペーパーマリオやんないのぉ?」と言ってくるんだが。

ワンダと巨像(PS2)
 地味でストイックで余計な部分のないゲームシステム。なかなか良い。
 どうもレビューを見てると、このゲームを誉めないとセンスのないヤツって思われるんじゃないかという風潮がある。困った傾向だ。
 ザコキャラもアイテムをゲットすることも魔法を獲得することもない。HPの回復は時間で徐々に。多分エリアのワープなんかもないんだろうな。いや、本当にストイック。最近の任天堂のゲームの対極だろう。
 ICOの方が面白いのは事実。ICOとのつながりはシステム面では握力ってことか。
 いやまぁ、ICOもワンダと巨像もどっちも面白いよ。

塊魂(PS2)
 やけにゆっくりとまだやっております。30メートルの塊を要求されてるんだけどラストの面なのかな? 当分クリアできまへん。
 PSP版は指が痛いとの評判。

アーマード・コア フォーミュラフロント インターナショナル PSP the Best(PSP)
 それなりに面白いし、結構やってるが、だからどうしたなゲームではあるな。ううむ。
 メニュー操作等のUIのレスポンスが無茶苦茶悪い。UMDだからってのは理由にしちゃダメ。もっと工夫すべきだろう。頻発するディスクアクセスはなんとかすべきだ。
 ミッションがやりたい。ACLRでも始めようか。

[Hg]ハイドリウム(PSP)
 中古で。
 PSP買う前から注目。まぁまぁ面白い。とんでもなくハマるゲームではない(かどうかはヒトに依存かな)。パズルだし。いろんなギミックがいかにも洋ゲーテイストで、多少はマーブルマッドネスを思い起こさせる。でもかなり違うけどね。
 というか私はマーブルマッドネスそのものをやりたいんだな。ミサイルコマンドはNDSでできるようなんだが(未プレー)。

大戦略ポータブル(PSP)
 とりあえず確保。
 チュートリアル(ミッションモード)を始める。ACFFでUIの駄目さ加減に呆れてただけに、非常にまっとうにこなれた良いUIだ。面の最初のロード後はロードは発生しない。戦闘ムービーはロードが発生するが普通これはオフにするだろう。あとは例によっていつも通りBGMは腐ったマーチだが、これも普通はオフだ。SEは気に触るサウンドもなく良く出来ている。
 マニュアルに兵器図鑑がないが、これはゲーム中で参照可能ってことで問題ない。兵器の種類もゲームとしてのメリハリを重視した厳選されたラインナップのようだ。撤回。公式ページを見たら総数400種類とある。多くは同系改良型なんだろうが、やっぱり多いな。
 システム的には名作とされるキャンペーン版大戦略IIに近いのであろう(大戦略IIは未プレー)。イマドキのゲーム機には十分なCPUパワーがあるので、基本的にサクサクできる。かなり良い。思考ルーチンがどうなのかとかは進めないとわからないが、評判は悪くない。でもウォーシミュレーションは売れないだろな。
 音楽が残念だ。ネクタリスシリーズやファミコンウォーズシリーズ程度には気を使って欲しい。戦況が悪くなってきたらいやぁんな音楽になるとかアイディアは揃っているはずだ。なんにせよ腐れマーチは許せない。
 いやまぁ、あんまり進まない間にベスト版がバグフィックスされて出荷されるんだろうな。

 いま、NDSよりPSP向けのゲームの方が多くなった。

キャンペーン版大戦略II(PC)
 オンライン版を購入。
 とはいえ、やってないし、あんまりやる気もない。買ったって事実を忘れてた。どうもPC-98版のWindowsへのモロ移植っぽい。UIのセオリーがWindows以前のものなのだ。
 起動しているだけでCPUを食うのもどうかと思う。エミュレータじゃあるまいし。
 PCエンジンのエミュレータでスーパー大戦略でもやろうか。

2006.01.17

大戦略ポータブル(PSP)
 どうやらシナリオが問題視されており、2ちゃんねるの世界情勢-東アジアnews+に『【日韓】「嫌韓右翼が楽しむ右傾化ゲームだ」…『大戦略ポータブル』が槍玉に [01/09]』というスレッドが立っている。
 第二次朝鮮戦争に米軍・露軍・中国軍・日本軍が介入するというシナリオだからなぁ。大戦略シリーズには「現代大戦略2005 護国の盾・イージス艦隊」なんてのもあるから、最近のネットプチナショナリストな若者達をターゲットに売り捌こうという目論見か?
 チュートリアルをやってみて、「作戦名:収納」にて敵攻撃ヘリが全く攻撃してこなかった。なんかCOMのロジックが変でないか? それともチュートリアルの仕様か?

2006.01.18

 常々、ゲームメーカーは最新機種に過去の名作の移植をどんどんすべきと思っている。ハードは古くなれば壊れるものだし、アーケードマシンはいつまでもゲーセンにあるわけではない。重要なのは良いソフトであり、不安定なものの上にあるからには常に良い作品は移植を続けるべきだ。
 ゲーム開発者は新しいゲームを開発したいだろうが、多少なりとも文化という側面を考慮するなら、誰かが移植をしなくてはいけない。最新機への新規開発に比べれば手間は少ないんだろうし。
 任天堂がファミコンミニシリーズをリリースしたことでレトロゲームが流行しているが、単なる流行でなく定番にしてほしいものだ。
 ナムコミュージアムシリーズははそれなりに売れるそうで、PS版以来多くのゲーム機に移植されている。とにかく私としてはゼビウスとドルアーガの塔が遊べる環境を担保して貰えるだけで嬉しかったりする。
 しかしである。タイトーのPSPソフト「タイトーメモリーズ ポケット」のラインナップはあんまりだ。目玉はバルーンボンバーとエレベーターアクションとキャメルトライくらいだろうか(地味だなぁ)。16本収録とあるが、スペースインベーダーは別にあるとしてもアルカノイドもバブルボブルもタイガーヘリもダライアスもない。何出し惜しみしてるんだろう。ガッカリだ。個人的にはハレーズコメットを収録して欲しいのだが、当時ですら評価の低かったシューティングじゃ無理だろうな。
 ファミコンのロードランナーでなくアイレム版の移植を、ファミコンのスターフォースでなくテーカン版の移植をぜひPSPに。いやまぁハドソン版も買うけどね、多分。
 既に会社が消滅したゲームの救済とか、どこかやってください。お願いしますよ。

2006.01.20

 長いことタイトルもなにもかも思い出せないシューティングゲームがあった。ロボットが自機で変形があって海があって。なんとなくセガだと記憶。代田橋のゲーセンでよくやってたんで、時期的には80年代中盤か。当時はこれとHALLEY'S COMET(タイトー)とB-WINGS(データイースト)をよくやってた。いやまぁXEVIOUS(ナムコ)やSTAR FORCE(テーカン)やGRADIUS(コナミ)もよくやってたけど。TERRA CRESTA(日物)やEXED EXES(カプコン)はイマイチ好きになれなかった。
 さんざんググって見つけたのがEQUITES。開発がアルファ電子で、販売がセガだったんだ。
参考
http://www.geocities.jp/amusementgolf/robot.htm
http://www.yk.rim.or.jp/~mcp/htm/review/equites.htm
http://boma.tank.jp/bom_e2/equites.htm
http://www.ngy.1st.ne.jp/~momochi/untiku/alpha.htm
 ああ、スッキリ。
 このゲーム、もはや正規の方法でプレイするのは不可能だろうなぁ。セガの開発じゃないからセガのレトロゲームとしては傍流だろうし。歴史に残る名作といったゲームでもないし。

2006.01.22

ドルアーガの塔(PSP、ナムコミュージアム)
 はるか昔、ファミコン版のドルアーガの塔の攻略をMSX版の攻略情報を元に進めていた。何度もリトライし、59面をクリアしたところ、60面のやり方がその攻略情報には書いてなかった。ドルアーガの塔は未クリアのままであった。
 PSP版輸入ナムコミュージアムで、今度はウェブにある攻略情報(http://www24.big.or.jp/~yotchi/druaga/druaga.html)を元に進めた。59面で挫折後1ヶ月ほど放置していたが、なんとなく再開したらドルアーガを倒し、59面をクリアしてしまった。今度はバッチリ60面の儀式を遂行し、あれから何年経ったろう、アーケードから20年、ようやくドルアーガの塔のエンディングを見た。
 攻略情報なしではどうにもならないゲームは軽蔑に値すると常々思っているが、軽蔑しつつシステムの、サウンドの、ゲームとしての魅力はあるのである。ファイアーエムブレムも同様。

ファミコンウォーズDS(NDS)
 昨年NDS本体と同時に買ったのだが、ようやく本格的に始める。やっぱ面白い。大戦略ポータブルはこれに比べるとサウンドに限らずだいぶ劣る(大戦略にはもっとひどいのもあるからマシな方だとは思うが)。GBWA1+2も徐々に進める。

2006.01.25

 WindowsMediaPlayer10にl3codecp.acmが添付されており、それをWindows\system32に放り込みl3codeca.acmとりネームするとACMコーデックで高ビットレートのMP3を作成できる。
 WMP10のl3codecp.acmとWindows標準のl3codeca.acmはともにFraunhofer IISのMP3コーデックだが前者がprofessional、後者がadvancedとなっている。どういった経緯でWMP10にprofessionalコーデックが付属することになったのか知らないが、使えるものは使う。

 結構大量のCDが家にあるが、取り出しにくい場所にあるせいで実際に聞くのは既にリップされた一部の作品だけだ。頑張ってLPからキャプチャしたものもあるが、ともかくごく一部だ。
 とりあえず片っ端からCDをMP3にしておけば死蔵している音楽もたまには聴くことになるかもとリップ+MP3エンコードを始めた。
 現在の私のマシン環境では最も速いリップが可能なのは昨年組んだPCなのでWindowsのiTunesでWAVEにリップして、その後にACMコーデックか午後のこ〜だでMP3にする。

 MP3ファイルを溜めるのはMacの方にしているので出来たMP3をMacにコピーし、ID3タグは自作ID3TagEditでデータを付加。で、イマドキの環境では使いにくいなコレ。

ID3TagEditの改善希望点

1. 長い名前に対応していない
 これが一番痛い。
 これを作った当時はまだ31Byte制限でもあまり気にしなかったが、もはやMac OS XとWindowsXPが生活環境なので、iTunesでリップしたファイル名は思いっきり長いことも多い。

2. Shift JIS縛りがある
 NTFSやHFS+などのファイルシステムはUNICODEベースなのでウムラウトなどの入ったファイル名を日本語システムでも適切に扱えるのだが、ID3TagEditは内部がShift JIS(あるいはMacRoman)なので、どうあっても両立できない。

 現在使っているMP3プレーヤーのCreative MuVo N200を調べると、ファイル名は欧文和文混載でもオッケイなUNICODEらしい(VFATってそうだっけ?)。ID3タグはUNICODEが通るが、言語情報を日本語に設定してると欧文が化ける。逆に英語等に設定してると和文が化ける。ファイルシステムでできてることができない理由はないだろうに残念。
 ともかくもうUNICODEを使ってもたいして問題ないという結論を得た。
 「iTunesあるいはSoundJAMのID3タグにおける日本語の扱いの混乱について」の問題はiPodがシェアナンバーワンになり、UNICODEが普及するという形で解消したということだ。

 結局のところ、最新のファイルシステムにきちんと対応する必要があるということだ。で、ID3TagEditの改造に入る。
 最初に行ったのはSaneatsu Lite開発以来使ってきたC++クラスライブラリ(以下TTCL)のリファクタリングと機能強化。
 まずはHUNDOSHI-EDIT向けに作ったTTCLのサブセットのTTCL本体への統合。今までCore Foundation関連のクラスはなかったのだが、CFStringRefやCFURL等向けのクラスを加える。その際にクラス名のプレフィックスをCからTに変更。変更はRubyでスクリプトを書いて一気に。
 ファイル関連のクラスのファイル名をTString(C文字列をカプセル化したクラス)からTCFString(CFStringRefをカプセル化したクラス)に変更して、それなりにクラスの中身を書き換える。ファイルナビゲーションもFSSpecベースでなくFSRefベースのものにする。
 ソース中の非PowerPC判定や非Carbon判定での条件コンパイルを全て撤廃する。今回のリファインでTTCLは68KとOS 9以下のサポートを廃止する。
 ID3TagEdit本体の改造。TStringで書かれた部分で、必要なところをTCFStringで置き換える。ブラウザコントロールには変換をかけることなく直接CFStringRefが渡ることになる。
 ウィンドウのタイトルはCFSringRefを渡すAPIが新設されていた。
 問題はダイアログのエディットコントロールだが、UNICODEを扱うエディットコントロールのProcIDがあり、またデータの受け渡しにCFSringRefを使うことで、変換をかけることなくダイアログで文字列を扱える。またこのProcIDだと自動的にインライン変換になる。あぁ、やっと気付く真実。
 あとは文字列の加工なのだが、TCFStringは自身が文字列バッファを抱えているわけじゃないので扱いにくい。考えた末、UNICODE向けのTString、TUniStringを新設。いや、本当はTCFStringを統合する前にCUniStringはあったのだが、位置付けが微妙だったのだ。実際はより扱いやすい形にTUniStringをリファイン。
 いまのところsprintfを必要とする場合はTUniStringでなくTStringで処理してからTUniStringに変更したりしてるが、wsprintfなんかが欲しいところ。相当のものがMac OS Xにあるのかはまだ調べてない。
 概ね動くようになったらプロジェクトをCodeWarriorからXcodeに移行。

 実際に運用を始めると、もっと手間なしでID3タグを加工したいので、親ディレクトリをアルバム名として、親の親ディレクトリをアーティスト名として持ってくる機能を加えた。
 もう暫く運用したらリリースできると思う。

 Carbon EventやAppleScriptは必須度が低いのでまた今度。

2006.01.31

 しばらくNintendo DSとPlayStation Portableを使ってみて、製品コンセプトの違いというか、SCEの勘違い振りが明確になった。
 携帯型ゲーム機に求められるのはやはり手軽さで、UMDという光ディスク媒体を採用した点がPSPの致命的欠陥とわかる。アクセス速度の劣悪さが最大の欠陥だが、モーターを回すことでただでさえ貴重なバッテリーを猛烈に消費している。PSPはNDSに比べてバッテリーの持ちがかなり悪い。NDSでさえGBASPに比べ持たなくなっているのにである。

 GAME CUBEのディスクアクセスは非常に快適だ。Nintendo64はROMカートリッジだったので、GCがリリースされるまでレスポンシビリティに関して不安材料だったが、任天堂にとってユーザアクセシビリティは重要な課題のようで、きちんと解決してきた。もちろん「ロード中」が表示されるゲームは多いが、そもそもの最初の起動が速いのは見習うべき点である。ロードもPS2に比べかなり速い。専用ディスクと汎用ディスクの違い云々は判っている。ようは汎用ディスクを採用した点が間違いなのである。ゲーム機としての機能性を犠牲にするという判断をしたということが設計思想的に勘違いも甚だしい。
 PSPは時間の掛かるPS2のディスクロードにさらに輪をかけて遅い。この点だけで完全にPSPは失敗作であろう。

 どのゲームもデータの保存はおそらくSCE提供のライブラリを使っているようだ。セーブ/ロード画面が同じなのである。多分メモリスティックのセキュリティのためにこうなっているのだろうが、セーブ後ゲームに戻るのに×ボタンを要求する。明らかに不要なワンアクションが全てのゲームに入る。「ロードが完了しました」「×戻る」で再び「ロード中」になる。いまロードが完了したって言ったじゃねぇか。いったい何をロードしたの? わかっているけどこういうのを糞GUIという。
 ライブラリを使うなら使うで、もっとユーザアクセシビリティのことを考えて欲しい。Macintoshが登場してから20年、いまだにこんな糞GUIがまかり通ってるのが信じられない。
 もしかしたらGTAのセーブ/ロードはユーザアクセシビリティをまっとうにするため独自コードを作成し、そのためクラックされたのかと思う。いや、想像でしかないが。

 セーブ/ロード画面にディスクアクセスなしでは行けないのもレスポンシビリティを悪くしている。それだけならまだしも、バッテリーが切れそうなのでセーブして電源を切るいう普通の行動を考えると、ディスクを回して電力を消費してしまうのは愚行としかいえない。ゲームを遊ぶという行為をまっとうに考慮した製品とはとうてい思えない。

2006.02.01

 ケーブルテレビのアニマックスで再放送されているガンバの冒険。私が小学生の頃クラスで大流行。いや、当時の多くの小学生の心を鷲掴みにしたんだろう、高校時代の友達(当然小学校は違う)もガンバという言葉は普通に通じた。ここから出崎監督ファンになったヒトも多かろう。
 娘(6歳)もガンバがお気に入り。で、ようやく終盤になりノロイが登場した。あぁ、なんか聞き覚えがある。あれだ、Dr.エッグマンだ。
 ブラック魔王・ノロイ・バルゼー提督・モリアーティ教授はかなりの爺様なはずだが、Dr.エッグマンで現役かいな。

 ガンバの冒険の音楽を作ったヒトは昨年亡くなりました。ガンバの冒険の再放送が始まって作曲家をググッた直後だったんでビックリ。ファースト・ルパン三世の方が有名だけど。

 数年前、友達がハム太郎の映画のどこがダメなのかを語っていたのだが、そのとき出崎監督作品だとは知らなかった私は、なんでこいつがハム太郎を観に行くんだろうと思った。もちろん彼はあしたのジョーやガンバの冒険や元祖天才バカボンや宝島やエースをねらえ!以来の出崎監督ファンなのである(と思う。同世代だし)。

 ケーブルテレビでハム太郎の映画やらないかなぁ。いや、本当はジャングル黒べえが観たい。

2006.02.06

Subject: MP3
To: Tomonokai
Date: Fri, 10 Feb 2006 10:58:52 +0900 (JST)

MP3エンコーダの聴き比べをしてるんですが、以下の3つで全然違いが
わかりません。128kbpsで比べてます。

1. iTunes 6 for Windows
2. ACMのFraunhofer IIS Codecs (professional)(WMP10付属のもの)
3. 午後のこーだ。

どっかのタイミングでiTunesのMP3エンコーダーがSoundJAM由来のものから
別のもの(FIIS?)に切り替わったんでしたっけ。

OSTRA / Takeshi Yoneki

Subject: Re: MP3
To: Tomonokai
Date: Sat, 11 Feb 2006 12:52:39 +0900 (JST)

> 尾野です。ご無沙汰しております。
>
> マックのiTunesの話ですけど、
> iTunesについてを見ると
>
> Fraunhofer.....
>
> って出てきますよね。いつからそうなったのか分からないですけど。。。

尾野さんひさしぶりです。
最近高速になったPCだとCDのリップとMP3へのエンコードがやけに速いと
気づき手持ちのCDを無差別にMP3化してるんですが、iTunesのMP3エンコードの
音の悪かった頃の記憶しかなかったんで、今回比べてみて驚いたわけです。
比べてわかんない程度ならiTunesでリップ+エンコードするのがCDDBとの
相性もあり、一番楽だと判明。iTunesでエンコしまくってます。
iTunesでリップしたWAVEファイルはCDDBに従って、欧州の作品だと
有無を言わさずに欧文ファイル名になったりするんで、対応できる
ソフトがほとんどないというのも問題点。
128kbpsで現在13GBで、たぶん20GBには届かないでしょう。
今回初めてシャッフルプレーを体験中。知らないor覚えてない楽曲が目白押し。

OSTRA / Takeshi Yoneki

 遥か昔、FM放送(クロスオーバーイレブンか?)で一回流れたのをたまたま録音し、気に入った歌があった。確か番組の最後にずらずらと何を放送したかをアナウンスして、それでオインボゴインゴのペインらしいと知る。
 何年か経って、もっとちゃんと聴きたいと思ったが、オインゴボインゴなんてバンドは日本ではほとんど売ってない。誰も知らない。どのアルバムにペインが入っているかの情報もない。ベスト盤にはペインは入っていなかった。
 ベスト盤を含め3枚程買ってみたものの、その後オインゴボインゴは追求しようのないバンドになった。

 さて、あれから10数年。家にあるCDの無差別リッピングをしているときにオインゴボインゴのアルバムをを見てふと今ならiTMSで探せるじゃないかと気づいた。数秒で見つかった。試聴すると確かにあの歌だ。しかもアマゾンでも買える。

 オインゴボインゴは中心人物のダニー・エルフマンがその後映画音楽で活躍しているということで消え去らないバンドになったということだ。それとも米国は日本に比べなかなか廃盤にならないのだろうか。
 ナイトメア・ビフォアー・クリスマスのDVDはママが買って家にある。いやぁ、全く気づかなかった。

2006.02.12

Subject: Re: Win XPのファイルサイズ
To: Naoki Maruyama
Date: Tue, 14 Feb 2006 23:14:31 +0900 (JST)

> Windows XP
> professionalで扱える単一の最大ファイルサイズってどれくらいでしょうか?プリントサーバーのRipが3.99GBまでしかファイルを書き
> だせません。
> 4GB以上の単一ファイルをXPで扱う方法ってなにかありますか?もしくは扱えるOSって何がある?

Windows2000、XP、Mac OS 9、Mac OS Xのどれもファイルシステムは
4GB以上のファイルを普通に扱える。Windowsの場合はNTFS、Mac OSの
場合はHFS+を使う。
例えばDVカメラで撮ったビデオをXPでキャプチャすると、1本で13GB程度の
単一.aviファイルが出来る(9分で2GB)。

問題はOSでなくアプリケーション。
普通に書かれたアプリはファイルサイズ2GBまたは4GBの壁を持つ。
古いファイルAPIを使っているため。

ファイルI/Oの64bit対応したソフトを使わないといけない。
ムービーとかデータベース関係以外ではあまり対応したソフトは
ないかもしれない。

OSTRA / Takeshi Yoneki

Subject: ブーム
To: Niigata
Date: Sat, 25 Feb 2006 18:46:45 +0900 (JST)

 アルファレコードの版権(原盤権)をソニーが買ってからだいぶ経つが、
先日ようやく戸川純のアルファ時代のレコードのCDがリリース。
 ママは玉姫様と裏玉姫(当時カセットテープ)を予約。私は残りと
ゲルニカの改造への躍動を予約。
 現在我が家はにわか戸川純ブームになってる。

 改造への躍動は名盤とも言われているのに長らく入手方法もなく、
2002年の20周年記念盤(全部入り)も元が4200円であるにもかかわらず
現在中古で2万円。玉姫様も数年前に中古で1万円だと確認。
 でも今回のリリースも限定云々と書いてある。紙ジャケが限定って
だけならいいんだけどねぇ。

OSTRA / Takeshi Yoneki

Subject: グラ on PSP
Date: Sun, 26 Feb 2006 00:14:32 +0900 (JST)

 グラディウスやってますか?(^^;)
 イージーモードかつ自機当たり判定小さめかつセーブ・ロードを繰り返し、
Iのエンディングを迎える(当然一周目)。
 移植スタッフは中国人。ううむ、ゲームのエンドクレジットで中国人の名前を
見るのは初めて鴨、芹沢。
 現在同じようにセーブ・ロードを繰り返してIIを攻略中だけど、それでも
難しい。ボス連続面で詰まってる。これ、ボス単位でセーブを記憶してくれない。
 http://www.yk.rim.or.jp/~mcp/htm/review.htm
を読んでてつくづく俺ってシューティングの才能ないよなぁと感じた次第。

 ドルアーガは攻略情報に完全に頼ってついに60面を終了。20年ぶりくらいに
雪辱をはたす。いやまぁ、当時の攻略情報になぜか60面目のやり方が載って
なかったせいなんだけど。

OSTRA / Takeshi Yoneki

 私の手元にあるCDを全て無差別にリップしてMP3にした結果、Autobahnが12曲あると判明した。
 内訳は1974年のオリジナル、THE MIX、ミニマキ、非公式の米国のライブで4曲。ブートレグのライブが4曲。カバーが2曲。残り2曲は謎の変なミックス。
 Kraftwerkファンとしては多分少ない方なんだろう。

http://dddfoxx.hp.infoseek.co.jp/tp_kw_boot2.html
ブートレグ虎の穴

 少なくとも私で判明できる間違いを以下列挙。

EARLY DAYS
01.
これはRALF & FLORIANのANANAS SYMPHONIEの一部。アナログレコードからのコピーと思われる。
02.
これはKRAFTWERK 2のSTORMの一部。アナログレコードからのコピーと思われる。

2006.03.03

Subject: Re: グラ on PSP
Date: Sat, 04 Mar 2006 22:51:34 +0900 (JST)

 遅レス。

> 今はアーケードで結局一度もやらなかったグラIVを攻略中。

 グラ4は私もアーケードでやったことないな。
 グラ2のボス連続面を中断してグラ3を始めるものの、だんだん腹が
立ってきた。当時初回1コインで金輪際やるもんかと思っただけの
ことはある。
 こう考えるとグラ外伝って出来が良いと思う。とはいえ自分の弾がよく
見えない。
 サラマンダ全部とパロディウス全部ってのは出るんだろうか。

> ナムコミュージアム2はドラスピのためだけに買うかは未だ思案中。
> PS2の方で出たナムコミュージアムアーケードヒッツはネットで叩かれ
> まくってますね。まぁ、キーコンフィグ不可とか、DUAL-SHOCK以外での
> プレイ不可とかでは当然かと思いますけど。

 せっかくのアスキーファイティングスティックが!
 PS2で唯一遊べるゼビウスだというのに。PS oneを買えというのか。
 にしても相変わらず何か足りない。ギャプラスがないし、ニューじゃ
ないラリーXじゃ厳しい。

OSTRA / Takeshi Yoneki

http://www.watch.impress.co.jp/av/docs/20060306/dal226.htm
『藤本:確かに、バックアップ作業は何度でも簡単にできますね。問題はリストアがうまくいかない、ということなのですが、こちらはどうなっていますか?
大雲:まずリストアは、必ずネットワーク接続された環境でないとできません。リストアの作業を行なうと、弊社のデータベースに問い合わせが行き、ここで認証されるとリストアできるのです。またリストアについては各楽曲データとも3回まで可能となっています。』

 常識的に考えて、ロードできないものはセーブではないし、リストアできないものはバックアップとは言わない。これをバックアップと呼ぶのは詐欺である。
 つまりDRM付きWMAはバックアップできない。
 これで何を売ろうっていうんだろう。客は何を買ったのだろう。PCやHDDは壊れるものだ。ジュークボックスよろしく毎回コインを入れろっていうことか? 反吐が出そうな仕組み。

2006.03.06

 全所有CDの無差別MP3エンコーディングで、あまり聴いてなかったKRAFTWERK音源を楽しんでいる。まぁ、基本的にはコニー・プランク強化月刊がずーっと続いている。

BREMEN
 1971年のブレーメンでのライブ演奏のブート。RUCKZUCKではドラムとギターと電気フルートしか聴こえない。ドラムはクラウス・ディンゲル(たぶん)、ギターはミヒャエル・ローター(たぶん)、電気フルートはフローリアン・シュナイダー(たぶん)なので、中心人物だったはずのラルフ・ヒュッターのいなかった時期のものと思われる。
 RUCKZUCKはあの特徴的で格好良い電気フルートのエコー重ねで始まる。しかし、退屈なギターが始まるとほぼフルートが聴こえなくなる。フローリアンカワイソ過ぎ。途中でドラムとフルートの掛け合いになる部分があり、フローリアンの活躍を堪能できる。
 でも。これはどう聴いてもNEU!だろ。

KOLN(Oはウムラウト)
 どうもBREMENに似てるがなんか違うと思っていたが、聴き比べると上記BREMENのスピードを少し落としただけのものであった。1971年6月12日の公演がケルンなのかブレーメンなのかは知らないが、どちらかではあったのだろう。

LIVE IN COLOGNE
 これもケルン。実際にケルンでの公演かどうかは疑問だが確かめようがないのはブートの常。下記AUTOBAHN TOURに比較的近いようだが、まだこなれてない感じだ。ギターの音はない。電気バイオリンもない。ウォルフガング・フルーアもまだ自作エレドラに不慣れのようで、多少時期的に前であることはわかる。
 1971年とはだいぶ違ってより電子化されているRUCKZUCKがあり、フローリアンの電気フルートが大活躍で結構嬉しい(イントロはテープかもしれないが)。AUTOBAHNにも電気フルートがある。
 AUTOBAHNにドラムソロがあるのだが、自動車がバンバン走り去っていくところを表現したインプロのはずだった部分だ。トラブルなのか不慣れなのかエレドラしか聴こえない。
 AUTOBAHNではきっちり4人分の音が聴こえるので左側の音がラルフ・ヒュッター(たぶん)、右側の音がフローリアン・シュナイダー(たぶん)、リズムボックスっぽいドラムがウォルフガング・フルーア(たぶん)、ベースっぽいリズムセクションがカール・バルトス(たぶん)だと思う。フローリアンの歌いかたが妙に親父臭いイントネーションである。
 KRAFTWERKは完全に階級制で、ウォルフガングの人間リズムボックスとカールの人間シーケンサーという奴隷のリズム隊に、貴族のラルフとフローリアンのインプロが乗っかるのが基本形。それは80年代になっても変わらず。
 RUCKZUCKでキンコン叩いてるのはカールか?

AUTOBAHN TOUR
 1975年の米国(たぶん)でのライブ演奏のブートっぽいもの(公式でないのは当然として、ブートでもないそうだ)。ブートにしては結構音が良い。
 上記ブートのケルンに比べ格段に完成度が高い。皆米国ツアーで慣れたんだろう。自動車もバンバン走る。ただ残念なことにAUTOBAHNには電気フルートはなくなっている。メンバーは上記と同じ(たぶん)で、この編成は80年代でも変わらない。
 この頃のAUTOBAHNはオープニングのボコーダがない。
 2004年のライブ演奏(ミニマキ)はオリジナルアルバムに似せた音使いが特徴で、案外この頃のライブに近いサウンドに仕上がっている。一回転して戻っちゃったってとこか。
 TANZMUSIKで電気フルートの音が聴こえるが、鉄琴の音にまぎれて悔しいところ。
 曲名を直したとかいいながらKLINGKLANGにウムラウトが付いちゃってるのはご愛嬌。KLINGKLANGのイントロでの指癖みたいなのはTONGEBIRGEから。ずっとトンビルゲと読んでたが、英語じゃないんだからトンゲビルゲと読むべきだな。イカゲルゲ。

EARLY DAYS
 前半がLPの一部複製(しかも音が悪い)というブートで、どうもハズレを引いた気でいたのだが、どうやら最後の曲があのビートクラブ収録の例のやつだそうで、実はまだ見たことないんだけど、トラックは家にあったんじゃんと気付いた次第。オリジナルアルバム未収録の作品だったとは。ファーストのどこに入っててもおかしくない、というかファーストのダイジェストみたいな作品? まぁ、ほぼNEU!(ラルフがいないから鍵盤がない)。
 他には時期的にAUTOBAHN TOURに近いKOMETENMELODIEとTANZMUSIKが入っている。どうも4人分の音が入っていない気がする。カール加入直前の演奏であろうか。
 ともかく全部曲名が出鱈目なのはどういうこと。

TONE FLOAT
 KRAFTWERK前のORGANISATIONのブートにも上記ビートクラブの作品が収録されていたと知る。録音は同じようだがEARLY DAYS収録の方が微妙に長い(最後の変なエコーっぽいのが消えてる)。VOR DEM BLAUEN BOCK が正式のタイトルでいいのか?

2006.03.07

 ファイルサーバに置いてある写真の整理をしていたら、数百枚が同じ日付になっているのを発見する。2004年7月28日に何があったかはわからないが、もしかしたらnetatalkの問題と関係あるかもしれない。ともかく、原因は不明。
 そんなわけで、DiMAGE G400のExifファイルがExif情報として抱えている日付を元にファイル日付を変更するツールを作ることになった。なんか似たようなの昔作ったな。前のはFinePix 40iの日付が1年ずれてるのに気が付いて年を1進めるツールを書いたんだった。うるう年が関係するのできちんとUnixタイムを使った気がする。
 開発ツールとしては先日インストールしたVisual C++ 2005 Express Editionを使う。Microsoftが無償配布しているIDEだ。機能制限としてはリソースエディタがない、MFCもATLもない、64bit開発がない、デフォルトではPlatform SDK(いわゆるWin32 API)も付いてないと、初心者には不向きなものである。さいわいPlatform SDKのインストール方法は正式に公開されており(現在そもそも起動時のスタートページにヘルプ項目として挙げられている)、すぐにPlatform SDKをインストールすると良い。
 以前Platform SDKのインストールは、なんだか変なところにログインしてネットワークインストールを使う方法だったのだが、現在は全部普通にダウンロードしてローカルでインストールできるようになっている。評判悪かったのだろう(滅茶苦茶やりにくかった記憶だけある)。
 せっかくPlatform SDKを入れたのだが、どうせコンソールなツールなので標準ライブラリの記述だけでいけると考え、普通にCのライブラリで書いた。するとfopenやらsscanfやらが「それはやめてもっとセキュアな関数を使ってね」との警告にひっかかる。そのセキュアなやつが標準化されてるのかどうか知らないが、
#pragma warning(disable:4996)
で警告は消える。
 動かしてみて結果を見るとどうも1時間ずれる。mktimeの結果が1時間ずれる。どうも勝手に夏時間になってしまう。写真の日付は7月だから夏だけどさ、ここは日本だぞ。
 mktimeの説明をよく読むと環境変数TZがあるときにどうも何かしているらしい。『Cランタイムライブラリは、環境変数TZを使用して夏時間の動作を特定します』だそうだ。
 先日、unzip32.dllがTZなしだと9時間ずれた時刻でファイルを作ると知り、TZ=JST-9を設定したばかりだった。ということはMicrosoftのCランタイムライブラリはTZ=JST-9を正しく解釈できないということなのではないか。『set TZ=tzn[+ | -]hh[:mm[:ss]][dzn] 』『夏時間が使用されない地域では、dznに値を指定せずにTZを設定します』と説明されているが、夏時間の判定にバグがあると考えられる。
 まぁ、こんなところで躓いても気分が悪いので、標準ライブラリを使わずWin32 APIで書き直した。Win32 APIは環境変数なんて関係ないので気が楽。そもそもファイル作成日時は標準ライブラリではモディファイできないとわかったので、最初からWin32 APIを選ぶべきであった。迂闊。

2006.03.10

 全CD無差別リッピングは、途中から「もうiTunesのMP3エンコーダでいいや」ってことで、突貫工事、無事終了したのはだいぶ前。
 でも、他のコーデック、例えばlameのMP3コーデックを使うとなると、iTunesにWAVE出力させて、それをなんらかのエンコーダでMP3化しなくてはいけない。大抵は問題ないのだが、欧文文字のパスがあるとダメなソフトだらけである。レガシーWindows(95/98/Me)の日本語環境ではプログラムはパスをShift JISで扱わなくてはならず、NTとレガシーどちらでも動けるようにするにはレガシーに合わせてパスをShift JIS(欧米ではLatin-1)で扱うことになる。
 XPや2000はファイルシステムがUNICODEなので、日本語OSでも欧文文字のパスを扱えるのだが、そういったパスを扱えるエンコーダがないのである。
 iTunesはCDDB情報で得たタイトルで容赦なくファイル名にするし、アーティスト名やアルバム名でディレクトリを作る。欧文文字が出現する可能性は比較的高い。
 というわけで、要求仕様は、ファイルパスをUNICODEのまま扱うACMコーデックを使ったMP3エンコーダである。ものは試しということで、Visual C++ 2005 Express Editionでやってみる。ACMコーデックを使ったMP3エンコードって部分がC#では素直に書けないからC++。でもExpress EditionなんでGUIには.NET Frameworkを使う。しかも2.0。

 C++で.NETってのは、Objective-C++にも似て、2種類の互換性のないオブジェクト形式を扱うことになる。はっきりいって初心者はこんなもんに手を出しちゃダメ。C#でできることで我慢しときなさい。とはいえ.NETにはマルチメディア系の機能がごっそり抜け落ちてるんで、やりたいことがそっち系ならしょうがないなぁ。C++ Standard Editionでも買った方が良い。

 文字列もSystem::Stringとstd::wstringが混在。しかもSystem::Stringをstd::wstringにする方法がデフォルトでは存在しない。勘弁してよ。Objective-C++ならCFStringRefとNSStringは相互にやりとりできるのに。
 アンマネージからマネージへのコールバックも苦労した。説明読んでもよくわからないと思ったら、サンプルが間違ってやがる。これ、.NET 1.1向けのサンプル?
 で、きわめつけが、リストビューコントロールは複数のスレッドからのアクセスはダメときた。.NET 1.1ではOKだったのに.NET 2.0でダメになったらしい。GGG4Wは修正しなくちゃダメじゃん。Invokeを使えとか書いてあるが、どう使えばいいかはなかなかわからなかった。
 ええと、こんな苦労は初心者には無茶。MicrosoftはVisual C++ 2005 Express Editionをどんなヒトにどんなふうに使って欲しいのだろう。マネージだけで完結するならC#を使うのが良いわけで、C++には必然的にアンマネージが付いてまわるのだが、混在に厳しすぎやしないか?

 まぁいい、ともかく完成した。

2006.03.13

 AERAの電車の吊り広告の内容がなんともSPA!と似たようなものになっていた。いくら写真雑誌が低劣だからってSPA!はないだろ、SPA!は。
 それともこれが時代の要請ってやつか?

2006.03.14

 いや、ちっとも完成してない。
 実際に動かすとコケるコケる。どうしてこうもおちるかなと探ると、どうもVC++のSTLはスレッドセーフでないばかりか、マルチスレッドでのアクセスに向かないようだ。どうやったらそんな実装ができるのかは知らないが、ともかくマルチスレッドでのSTLの利用は慎重にということらしい。
 いや、これはリソースアクセスの衝突とかそういったレベルの話ではなく(それなら話は簡単だし解決もできる)単に挙動不審なだけだ。
 あんまりだよなぁ、VC++ 2005 Expressにはシングルスレッドライブラリの利用というオプションは存在しないのに。
 MFCもWTLもないわけで、STL(あるいは標準C++ライブラリ)を使うのが道理と思われるのが辛いところ。
 結局は別スレッドからは参照のみで入れるとか出すとかのコードは使わないことにした。今回はそれでいいけど、これじゃ今後のツールの設計に支障をきたすんで、WTLを使ってみるってのも考えるべきかもしれない。結局STLの何を使うかっていうと、配列と文字列だけなのだから。
 でもまだコケる。今度はコールバックの問題だ。delegateしてinvokeしてとかのコードはマネージならばOKなのだが、アンマネージからの呼び出しでは、しばらくするとスタックフレームが腐ってコケる。かなり重症。
 これはコールバック関数の型定義でCALLBACKまたはWINAPIというプレフィックスを付ける事で解決。ちなみにようは__stdcallなわけだが、VC++ 2005 Express付属のインクルードファイルにはCALLBACKもWINAPIも定義がない。素のままのVC++ 2005 Expressでは直接__stdcallと書く以外解決できないってことだ。もう、なんていうかね、破綻してる。
 こんなこと書いてあるドキュメントもない。混在環境のことももっと説明しろよ。今回はなんとか動くようにはなったが、なんとも納得できない。ちゃんとした説明が欲しい。

 で、ACMコーデック版はようやく動くようになったので、lame_enc.dllも使えるように改造。
 LameのABR(ビットレートの平均値を与える一種のVBR)エンコードをすると、iTunesの時間表示が正確じゃなくなると知る。先頭のビットレートと全体のデータサイズで計算してるってことなんだろうか。結構危なっかしい実装をしてるんだな。

2006.03.16

Subject: Re: 自己解決しますた
To: Satoshi Ikeda
Date: Sun, 19 Mar 2006 14:31:05 +0900 (JST)

> 色々探した結果、
> デバイスの設定→DirectMusic→「システムのタイムスタンプを使用」にチェック
> ……で解決しました。
> お騒がせしました……。
>
> まぁ、以前のバージョンだと、
> ACPI→標準PCに変えるという解決手段しかなかったらしいのですが。

これ、どのへんからのバージョンからかなぁ。私もときどきそうなってて、
バギーなソフトだなと思ってたんだが。
ともかくいま、「システムのタイムスタンプを使用」(Cubase SX2では
Use System Timestamp)にチェックを入れてみた。
まぁ、なんらかの解決がなされると嬉しい。
つうか、情報ありがとん。

最近はLAMEを使ったエンコードフロントエンドを書いてたりする。
iTunesでキャプチャするとWAVEファイルに欧文文字がなにげなく使われたり
するんだけど、そういうファイル名が通らないエンコーダばっかりで、
しょうがないんで自分で書いてる。
今日はAIFF対応した。

手持ちCDの無差別キャプチャが終了し、ブートやら非ブートやら公式やらの
AUTOBAHNばっかり聴いてる。

OSTRA / Takeshi Yoneki

 .NET Framework 2.0。
 どうもFormClosingのタイミングで、別スレッドをが終了するのを待つためSleepをさせると、その間にFormが死んでしまうらしい。なんだか変だ。
 Webで調べるとInvokeはようはSendMessageだそうで、WindowsのSendMessage機構に潜む特有のデッドロックの罠らしい。Sleepして別スレッドのステータスの変化を待つのが問題。既にSendMessage済で戻りを待ってる状態だとデッドロックする。
 まぁ、ともかく困ったな。下手に終了処理はできない。放置でいいってことか?

2006.03.20

「ホーム」へ戻る
「読まなくてもいいよ44」
OSTRACISM CO.
OSTRA / Takeshi Yoneki