2007年3月の日記

<2007年04月 2007年02月>

文字数とバイト数

トップページのカウンターを強化しました。
結局ロック処理は行わず、開いた結果が変だったらしばらく待ってもう一度読み直し、それでも変ならバックアップから読みにいくという方式にしました。
バックアップも壊れていたらもうカウントは諦めます。

ところでBomber丸WorldのHTML表示、どうにも不安定だと思っていたら、配列の大きさ決定のところで、バイト数でカウントすべきところを文字数でカウントしていたため、長いマルチバイト文字の文章だった場合メモリエラーが起こっていました。
昨日の時点で把握できなかったのは、部分文字列のためのバッファに全体のデータを入れていたために、部分文字列のバイト数<全体の文字数となっていたからでした。
あと、タグの後の最初の1文字をうまく自動改行できなかった問題を解消しました。

1175352231.png

良く頑張った自分

Shift_JISのデータがどんな範囲を取りうるかをあまり意識していなかったため嵌りかけました。
読み込んだ1バイトがマルチバイト文字の1バイト目の可能性がある間はスキップするという処理を書いていたのですが、実際には、マルチバイト文字の2バイト目はどんなデータが来てもよいので、「1バイト目にあった場合はマルチバイト文字の1バイト目として機能するデータ」が2バイト目に来る可能性もあったわけで、そういうのまでマルチバイト文字の1バイト目として解釈するとまともな文字列として矛盾が出るわけです。
だから、直前に見たのがマルチバイト文字の1バイト目ならば次は1バイト目じゃないという結果を返す関数を作ってみたのですが、この関数が、理由はよくわかっていないのですがあるタイミングで判断を誤って逆の結果を返してしまい、結果としてそれが原因だとは想像もつかないエラーが出てしまい、根本的な原因を見つけるのに時間がかかってしまいました。
結局のところ、マルチバイト文字の1バイト目が来たら忘れないうちにさっさと2バイト目を読み込んでしまうことでこの問題は解決しました。
そんなわけで、表示に関してはyaneTextDrawよりも充実したものが出来上がりました。
表示結果がイタリック体や打消し線・下線付きでも正確であることや、理屈の上ではyaneTextDrawより数倍画像生成が速く、解像度変化への対応も自動で可能であり、「外字」という特別な枠組みを設けずに素直にimgタグで画像の表示が可能で、テキスト表示の拡張であるがゆえにただの文字列からある程度自由な装飾まで可能であり、自然な形で自動改行もされ(ただしワードラップは未対応のはず)、セリフ表示への利用向けに特定文字数相当の部分のみの表示などなど、RPGのセリフ枠に使うためにかなりyaneTextDrawとは違うものになりました。
まあ、良く頑張った自分。ということで。

イタリック体の問題

なーんかBomber丸WorldのHTML表示、文字列の大きさの計算で手間取ってます。
とりあえずGetTextExtentExPoint使ってみるかーというところで、戻り値のそれぞれの文字までの距離の配列alpDxはマルチバイト文字に対してどうなるかがわからないとか、まあ、そんなところなんです。
あと、HTML解析で一部の重要な実体参照が使えるようになったりもしました。
なんというか、イタリック体の処理が面倒ですね。
あまり使いどころがないのに!

ParserとRenderer

日記PHPに既に書いた日記の編集機能をつけました。
以前に編集フォームだけ作って放置していたのをやっと実装できました。

で、Bomber丸WorldのHTML表示、内容的には別に進展してないんですが、HTML解析の部分と、解析結果から画像を作る部分が、両方ともそれなりに複雑で、そして完全に切り離せそうな処理だったので、HTML表示クラスのアシスト用として別のクラスに切り離しました。

おまえがゆく道

やぁ。メテオスの全惑星のBGM録音し終えましたよ。

・ブラーボ(ジオライト).wma
最初はやっぱりコイツでしょう。
オンラインでは二千円もするため買ってないんですが、どう変わっているのでしょう。

・ファンキ~ホ~ン(ビュウブーム).wma
ジオライトに負けず劣らず陽気なヤツです。
嫌でも常時アクセルになってしまいます。

・自然の楽園(サボン).wma
ゲーム音楽に聞こえない、というかそもそも音楽にすらなっていません。
これ流すと飼ってる鳥たちが大騒ぎします。

・異星人(ギガントガッシュ).wma
逆に誰が聞いてもゲーム音楽と思いそうなものを。
スーパーロケット最高。

・ユーロピアン(レイヤーゼロ).wma
全消しできそうで失敗しやすい惑星でした。
粘りすぎは自滅のもと!

・電磁色(グランネスト).wma
地味だが着実に打ちあげ続けるメカペット。
危ないときは嫌な音が出ます。

・ナンバー5(ヒュージィ).wma
001番のBGMが好きなんですがメテオ数の調整が難しいですね。
ごぉぉ~ん!ぼわぁ~ん!

・体内バブル(アーニマ).wma
初めて聞いたときは生々しいサウンドを気味悪がったものでした。
すーほっ、はーっ。すーほっ、はーっ。すーはーすーはー…

・ファミコミック(メックス).wma
代表的なピストン惑星です。
ファミコンっぽい曲名ですがファミコンには出せない音が大半です。

・メイジャー(メガドーム).wma
メテオスオンラインでピストンができるようになった惑星です。
メガドーム球場へようこそ!

・大地のリズム(ウドー).wma
たった一度のピストンをいかに長く続けるかが鍵となる惑星です。
レアメタルが来て死に掛けました。

・アラーラー(ダウナス).wma
一番ピストンに成功しやすい惑星ですね。
私はこれで500万点出しました。

・メタリア(グラビトール).wma
二次点火以降でないと飛ばない変則的な惑星。
3分以降、二次点火する暇がなくなるんですけどね。

・荒野のカウボーイ(アナサジ).wma
攻撃力に優れた惑星らしいです。
個人的にはオンラインのほうが曲は好きかな。

・キララ(ラスタル).wma
なんというか、細かくて硬いいろんなもの、そんなイメージ。
カタマリ降下と着地の音が好きなんですよ。

・マジカルスピード(ワイヤロン).wma
初遭遇時、あまりに飛ばなかったのでシュートで後押ししたものでした。
カタマリが崩れるバグはここが特にひどかったように思います。

・ブービー(ブビット).wma
たたったたったたぶぁーぶぁー。
燃えカスを溜めすぎないことが大切ですね。

・ふゆのゆきづれ(フリーザム).wma
惑星防衛力ナンバー1、雪と氷の惑星です。
なんというか和風。

・ステッピン(フォルテ).wma
タテだとむちゃくちゃぶっ飛ぶ星です。
感じのいいジャズですね。

・よみがえれ!(コロニオン).wma
ピョンピョン跳ねる系の惑星ですね。
元のコロニオン星はどうだったんでしょうね。

・恐怖の館(ゲルゲル).wma
粘度の高いマグマの惑星です。
なぜかホラー仕立ての寂しげな曲です。

・ロック魂(ファイアム).wma
サラサラ溶岩の炎の惑星です。
いかしたロックです。

・トランスペース(ヒートヘッズ).wma
白熱しすぎて湯気が出そうです。
「臭い」という声が聞こえるとの噂です。

・カフェでボッサ(サードノヴァ).wma
白熱どころか蒸発どころかプラズマ化しちゃってます。
生まれたばかりのこの星にはボサノバです。

・ボンゴ(ジャゴンボ).wma
ジオライトいじめ常連さんの一人でした。
この音楽はケチャというそうです。

・シャイニング(オレアナ).wma
ゆったりとした挙動の水中惑星です。
明るい曲はいいですな。

・ガララン(ケイビオス).wma
安くしてよ少しぐらい。安くしてよ少しぐらい…
もう少し負けて。もう少し負けて。ただでくれ。ただでくれ…

・独音楽隊(フロリアス).wma
ファンファーレらしいファンファーレはいいですね。
花の惑星なのに結構な攻撃派です。

・スクラッチショー!(ルナ=ルナ).wma
落ちる途中のメテオで画面が埋まる変わった惑星です。
塊の落下も遅く傍から見るより難しい惑星でした。

・休日の歌声(スターリア).wma
女神スターリアの住む巫女さんの星。
いや、ほんと真面目ねー。嫁さんにほしいよ。

・時空空間(ヘブンズドア).wma
宇宙最強七賢さんのテーマ。
わけのわからない呪文でメテオを消し飛ばします。

・惑星メテオス(メテオス).wma
宇宙の災厄全ての元凶、つまりラスボス。
一番一般的なゲームに近い音の使い方をしています。

CDIBForResource

HTML表示のうち、imgによる画像表示はauto_resourceを使うことにしたので、auto_resourceの画像用カスタマイズバージョンを作っていました。
で、ついでにサウンド用も作ってやろうと思ったのですが、こちらは終了時にメモリエラーが出てうまくいきませんでした。
どうにもプログラムの最後の最後にメモリ解放しようとすると、もう既になくなっているコンポーネントにアクセスしようとして失敗しているらしく、そのあたりをうまく回避できるように試行錯誤していたのですが、そうすると今度はどうしても別のところで別のエラーを起こしてしまい、結局元のサウンドが使えない状態から進展はありませんでした。
まあ、CDIB32用のができたのでそれはそれで進展だったのですが。
さて、それじゃ大きさ計算のほうも進めておくか!

fontタグとsize属性

ひっさびさにHP作成論を更新しました。
どこをどう更新したのかというと、fontタグのsize属性のページを作ったんです。
なぜ作ったのかというと、まあ、これまでの流れで想像がつく人もいると思いますが、Bomber丸WorldのHTML表示の参考にするためなんですね。
で、そのHTML表示のほうはというと、一応解析結果をデバッグ用テキストに出力するプログラムを書いて、BRタグを解析開始するコードを間違って消してしまったことに気付き、直しました。
今は実際に表示する前に画像を大きさを計算する処理を作っているところですが、どうにもyaneFontの実装が怪しい気がするのでそのあたりを自分で作るため、Font関係を色々調べている途中です。

HTMLめんどくさー

簡易HTMLまだやってます。
とりあえず表示に関わるタグのみを残して他は全部はずすことにしました。
まあ要するに論理タグとやらの全面廃止です。
HEADも、BODYも、INPUTも、Aも、Pも、使いません。
ほんと、太字にするとか、画像を表示するとかばっかりです。
…が、それはそれでIMGとか、BRとか、単体で効果のあるタグは周りの文字列に影響を与えるほかのタグとは違った処理になるので面倒だったりします。

今日は誕生日!

ランダムバナーリンク集公開しました。
サンプルデータとしてうちへのリンクが入っていますが削除してかまいません。

メテオンキャプターをまた更新しました。
今回はキー操作での手動保存と設定の記録です。
どちらも時間の都合上ややいい加減なつくりになっていますがとりあえず使えます。

ランダムバナーリンク集

Bomber丸Worldのための簡易HTML表示、タグ名と属性名と属性値を解析するところまではできたのですが、その結果を使って表示に反映するのは思ったより面倒で、どうしたものか思案中です。
あと、Aタグはどう扱うべきか、あるいは無視するべきか、そしてIMGタグは是非対応させたいのでそのためのデータは用意してあるけど、INPUTタグとかは果たして必要になるのかどうか、BやIタグは画面の拡大率によって影響が変化するけどどう吸収していけばよいか、そのあたりも悩みどころです。

それとは関係なく、明日の更新のためにランダムバナーリンクをいじってました。
うちで使ってる表示するたびにバナーが変わるリンク集です。
もともとKENT-WEBのCGIの改造から始まったものなので100%オリジナルというわけではないのですが、KENT-WEBのCGIならではという部分はほぼ完全になくなったはずなので、そろそろ公開してもいいかなと。

簡易HTML表示

Bomber丸Worldのための簡易HTML表示を作りかけてました。
作りかけてるからにはできてません。
とりあえず今はタグ名の抽出まではできているつもりです。
だったらbとかiとかはすぐにでも実装できそうな気はするけど…。
やっぱり閉じタグとか属性とかを考えると面倒なのです。

みほん

今日はDSのメテオスで曲の録音とメテオスオンラインでダークマターがイレイザーで消えるか実験してました。

それはそうとして、MeteonCaptorの画面写真、ソフト自体の画面写真ですが、本物のウィンドウと極めて紛らわしい画像であるため、薄く「みほん」の文字を重ねることにしました。
これのために、久しく使っていなかったPixiaを使ってみたのですが、全然思ったように動かず悪戦苦闘。
もっと簡単に文字を入れられるソフトとかないですかねぇ。
さすがに文字を入れるためにだけPixiaというのは大げさですし。
そのあたりさえ何とかなれば他のソフトの画面写真にもどんどん「みほん」の文字を入れていきたいのですが。

メテオンキャプター終わり

というわけで、フォルダ指定と表示も出来上がったので、これでもうメンテナンスにあわせた変更以外については終わりといえそうです。
設定の保存とかは要望があればその都度、ということで。
ダウンロードページに多少書き加えればもういいかな。

3日連続メテオンキャプター

このあたりでそろそろメテオンキャプターももうよさそうです。
強いて言えばフォルダ指定を簡単にできるようにするぐらいで。
連続撮影防止アルゴリズムの発想はよかったと思います。

そうそう、ゲーム記のトップページも更新できました。

メテオンカオター

メテオンキャプターをバージョンアップ、は特にしていないのですが、ファイル名がMeteonCaotorになっていたのであわてて修正し、アップしなおしました。

で、今はゲーム記のトップページを自動的に作るPHPプログラムを作っています。
PHPで正規表現なんてあまり使わないから久々にPHPマニュアルを引っ張り出してしまいましたよ。
ゆくゆくはトップページだけじゃなくそれぞれのコンテンツまで出張して自動コンテンツ表示をJavaScriptに頼らなくても済むようにしたいです。

メテオンキャプター

昨日言っていたソフト、今日出来上がりました。
一日半で作り上げた割には結構設定項目が充実してたりします。
今のところ、片仮名二文字の人がVista環境で動かせなかったり、XP環境の人で文字化けしたりする人がいるようです。
ドキュメントや配布ページもいい加減なのでこのあたりもきちんとしていかないトナー。

メテオンキャプチャ

NeoMupl、DirectMusicでの再生を実装しました。
これによりDirectShowでの再生で起こるMIDI終端のブツ切れがなくなったほか、音源が複数あれば切り替えもできるようになりました。
また、それに加えてDirectShow、DirectMusic双方でテンポチェンジができるようになりました。
そして、今更ながら項目の削除も出来ました。

そういえばメテオスオンライン。
なにやらランキング大会とやらでいろんなルールで楽しくやっていて、それには試合終了した瞬間の画面写真を証拠写真として提出することが推奨されているらしく、毎回試合するたびに画面写真を取り捲るのは面倒なので、キャプチャ用のソフトを作ってみることにしました。
とりあえず試合終了は、「生存」「GameSet」「TimeUp」の3つかな。
「滅亡」のあとには確か必ず「GameSet」が来たはず。

カウンターが吹っ飛んだ

トップページを見ればわかると思いますが、カウンターが吹っ飛びました。
最近はバックアップを取ってないし、そもそも地味で目立ってないし、それ以前に私自身忘れかけてたので、もう戻さなくていいかと思ってます。
でも今後のためにロック処理はきっちりしておかないと。

それはそうと、爆ボンのページのバトルステージ4と7を詳しく書きました。
「よくばりはまれ」と「みずのせせらぎ」です。

それと、ふにゃさんのBGMの睡眠時用アレンジ、あれをMIDIファイルじゃなくてプログラムで制御することにしました。
というのも、Bomber丸Worldでも同じようなことをしようと考えていて、その練習もかねてDirectMusicToolを使ってみようと思い立ったのです。
そうでなくとも今の状態だと眠った次の瞬間に起こすとボリュームがおかしくなるので、そのあたりの不自然さの解消もかねています。

なんてひどいステージ!

でっかいステージ完成しました。
本当に作るのが楽しかったです。
その代わりテストプレイがかなり苦痛だったのですけれども。
20分かけて半分ぐらいまで上ったら操作ミスでチクリとやられてしまいましたよ。
もっともっとショートカットルートを用意したり救済手段を講じていかないと本気で嫌がらせステージになりそうです。

SetStretchBltMode

ふにゃさんの全体像画面、出来上がりました。
画面をはみ出すほど大きいステージだと縮小表示されるのですが、その縮小結果が最初やたらと黒々としたものになっていたので、どうなってるのかと思い、調べてみたら、SetStretchBltModeで縮小方法が変更できて、これの初期値が黒優先となっていたために暗い色ばかりになってしまっていたようでした。
それなりの画質で高速なものとか、高画質で低速なものなどがありましたが、通常チップは最初にマップチップそのものを高画質のStretchBltで縮小し、その結果をBitBltでどんどん使っていくという方式で速度を確保し、キャラチップのほうはその都度それなり画質のStretchBltで表示するようにしました。
なお、全体像では背景色は手抜きのため黒となっておりますのであしからず。
でっかいステージも9割方できてきました。

ところで、この高画質StretchBlt、実はTokioGLと縮小結果がほぼ同じなんですよね。
それでいてこのスピード、素人が練習で作った描画アルゴリズムとは根本的に違うのか、あるいはハードウェアで対応しているんでしょうかね。

NeoMuplは、プレイヤークラスをDirectShow、DirectMusic、普通は使わない無音の3タイプを作って、それらを一箇所で扱えるようにしていました。
DirectMusicは今のところ実装していないんですけどね。
あと、項目のプロパティの画面を作ったりしてました。
一応編集機能が、今実装できるものに関しては全部作り終わって、後はその変更結果を実際のデータに反映するところに来ています。

1173711171.png

複数行入力対応InputBox

ふにゃさんの残り一枠、コインにしようかとも思ったのですが、もともとふにゃさんは集めるゲームであり、集めなければならないものと集めたほうがいいものが混在していた場合、混乱する可能性が高いためやめておいたほうがよさそうです。
単なる1UPという線もあるのですが、ミスするとアイテムや敵の状態なども含めて全部元の状態に戻ってしまうためこのあたりの公平さを考えると実装が難しそうです。
通過するとヒントが表示されるというのもよさそうだと思ったのですが、これはこれで追加データが必要になるため避けたいところです。
冗談で、すぐ眠れるエリアというのも考えてみたのですが、空中にあった場合全然使えないし、そもそもゆっくり待って眠らせる楽しみがなくなってしまいます。
とにかく、実装が簡単で、現状のゲームに大きな影響を与えなくて、あればあったで嬉しいものが望ましいのです。

エディタのほうでは、拡張InputBoxに複数行入力機能をつけて、マップタイトルの複数行入力を可能にしました。
あと、メニューを作るだけ作って実装していなかった全体像(1.05ではメニューを消すのを忘れてました)を作り始めました。
大きすぎるマップなんかは縮小表示しますが、もう色々面倒くさいので、中層マップしか表示しないようにしています。

ソーティングとDirectMusic

こないだの限界突破したLineConstructorとByteEdit、今日アップしました。

NeoMuplのDirectMusicをどのように使うか決めるため調べものしてました。
MIDIの再生にはDirectShowよりもDirectMusicのほうが、読み込みが速かったり演奏が正確だったりして適しているのですよ。
で、DirectMusicですが、DirectX 7 for Visual Basicが、機能面や手軽さからよさそうだったので使うことにしました。
そうそう、自動ソート機能も実装しました。
ファイル名順、タイトル順、再生日時順の3つを、昇順と降順の2種類用意したので、合計で6種類のパターンから選べます。
曲を追加したときに並べ替えられるのはもちろんのこと、再生日時順のときだけ、再生するたびに並べ替えが実行されます。

IIB

うむ、とりあえずインデックスカラー・インデックスカラー・ブレンド比率が並ぶデータだから、拡張子はiibにしようと思います。
ヘッダに必要そうな情報は、まず識別情報に、インデックスカラーに使うビット数、ブレンド比率に使うビット数、画像のサイズに、圧縮方式やパレット内の色の表現方法の識別コードも必要かな。
そして拡張ヘッダ。
ヘッダの次に来るのがパレットデータで、生の色の情報。
あとは決められたビット数で、インデックスカラー・インデックスカラー・ブレンド比率を最後まで続けて、必要ならば圧縮も。
うんうん。決まってきた。

ブレンディング

ふにゃさんのとげとげの拡張をするついでに、最後に一つ余ったキャラ枠をどう使うか考えてました。
順当なところで1アップか、あるいは取らなくてもいいけど取ったバナナの数にカウントされるボーナスアイテムか、それとも他のものにするべきか、そして決まったところで、アイテムの外観はどうするか、そのあたりが決まっていないのです。

それはそうと、画像フォーマットを一つ考えてみました。
インデックスカラーの長所で、パレットを差し替えれば画像全体の色が変えられたり、パレット番号何番は服の色、などと色に論理的な意味がつけられたり、そういうところを活かしつつ、なおかつたくさんの色を無理なく表現できてインデックスカラーの苦手そうなアンチエイリアシングもしやすい形式です。
まず、パレットは意味のある必要最低限の色だけを用意しておいて、画像本体には、どの色とどの色をどんな割合で混ぜ合わせるかのデータを入れるのです。
もしかしたら似たようなのが既にあるかもしれないのでまた調べてみます…。

LongScroll

VB6のスクロールバーの最大値を32767から2147483647に仮想的に引き上げるクラスを作ってみました。
方法としては、従来のスクロールバーの値域0~最大32767を0~好きな値にマッピングしているので、指定した値が32767を超えるとスクロールバーの指す値が大雑把になってきます。
例えば最大値を65534にすると、スクロールバーで指定できる値は、0、2、3、4、8・・・となりますが、もちろんその間の値もプログラム側で数値指定してやれば取ることができます。

とりあえず、これをByteEditとLineConstructorにつけてやって、ファイルサイズ制限や読み込み行数制限を取っ払ってやりました。
ByteEditのほうはヘルプも最新のスタイルシートを使ってリニューアルです。

NeoMuol

Frieve Editor、使い始めてみました。
コンセプト的にはうちにあるメモちらしと似たようなもの、というか、ああいうのを作ろうと思っていて撃沈したのが今のメモちらしだったりするのですが。
というわけで、実に使いやすいです。
機能がいいくせにメモちらしより起動も動作も軽快と来たもんだ。
まだまだ使いこなすには程遠いようですが、テキトーにカードを散らかして遊ぶのもなかなか良いです。
こんなところでまでメモちらし負けてるよぅ…。

NeoMuplはリストと設定の読み書きまで。
識別子として「NeoMupl015」と書くべきところを間違えて「NeoMuol015」にしてしまったせいで読み込めなかったりもしましたが、もう大丈夫です。
読み書きの処理自体は今のところ問題はないようです。

ふにゃさんの裏話を一つ更新しました。
とげとげの話です。
…が、どうやら次のバージョンでまた何かあるようです。

1173192669.png

広いだけじゃないのだ

NeoMuplのファイル読み書きを作り始めました。
VB版とは互換性を持たせない方向で。
う~ん、もしかすると読み込みだけなら旧バージョンのものも可能かもしれませんが…。

ふにゃさんの広いステージ、7割ぐらいできてきました。
いやー。のってくると楽しいもんですね。
部分部分で一つのステージとして成り立つほどのボリュームがありながら、更に他の部分での行動を受けて変化してゆき、取れなかったアイテムが取れるようになったりアクセスが楽になったり。
さすがに滅茶苦茶時間のかかるステージなのであっさり死んでしまうような嫌な仕掛けは少ないですが、それでもところどころに失敗するとそれで終わりという場所、特に順番を考えるべき場所は数箇所設けています。

基本的な再生機能

NeoMuplの再生がちゃんとできるのを確認できたので、再生終了後の処理なども実装して、途中バージョンをまたアップしておきました。
ダブルクリックした場合はループ再生になります。
ファイルメニューなんかは全体的に未実装なのでご注意くださいませ。

自動車免許

自動車学校行ってきました。
いい加減免許を取ろうとね。

NeoMuplは、再生用クラスを用意して、再生メニューもとりあえず実装して、一応鳴るようにはなったはず…。

なんて広いステージ!

ふにゃさんの追加用極悪ステージを作っています。
なんというか、もう、めげそうです。
ふにゃさんのスペックの限界まで広いステージを作ってるんですが、やっと今下から2割ほど使い切ったところです。
空間を広く使うとどうしても大きな空白ができてしまうのですが、その部分にまで意味のあるコースを作ってしまうといくらなんでも探すのが大変すぎるということで、その部分にはわざわざ来てくれた人のために何かブロックで絵でも描いておこうかと思っています。

NeoMuplは、DirectShowだけでなくMIDIに関してはDirectMusicも使えるように方法を思案中です。
やっぱりMIDIのループ再生にはDirectMusicが一番向いていると思うのですよ。

MusicPlayer6、公開しました。

ええもう、善は急げということで、MusicPlayer6を公開してしまいました。
実はドライブの変更ができないという欠陥があったりしますが、そこのあたりはあまり気にしちゃいけません。
欠陥品は正しく使いましょう。
ひそかに詰め合わせにはVB版NeoMuplも混入していたりします。
あとMusicPlayerシリーズなんか話にならないほどの欠陥品のMIDIPlayerも。

C#版NeoMuplは、ドラッグ&ドロップで曲をリストに追加するところまでできました。
途中、ToStringがnullを返しているのに気づかずリストボックスが頓珍漢なエラーを出すという事態もありましたが、なんとか原因を見つけて直すことができました。
C#版は常に最新版をアップするかどうかは未定です。

爆ボンの操作説明3を更新しました。
ボムジャンプ関連を紹介しています。
お手玉ひどい。

<2007年04月 2007年02月>