開発日誌
今月の写真
このページについて
このページは 過去の日記 - 2004年12月 です。
最新の日記・他の月の日記
2004年12月4日(土)
忙しい
 12月のボーダフォンのカタログを貰って来て、中を見るとVodafone 3G端末がずらり…。料金の欄を見ていて気づいたのですが、Vodafone 3G端末の場合、ボーダフォン同士ならどんなに大きな容量のメール(たとえ300KBでも)受信料が無料になるようです。相手がVodafone 3G端末なら気にせず写メールやムービー写メールが送れるし、こっちが3G端末なら、送ってもらった時にサーバーメール転送を使ったり、PCに送ってもらうように頼む必要が無い…。まだ未発表の今後の端末に期待したい。 
2004年12月5日(日)
秋葉へ
まずは行きつけのサイトの紹介を…
メタリッククローバー(以下メタクロ)の「上京日記」オススメです。展開は 泣けて→少し笑えて(東京に住む人間としては)→ドキドキして→笑える という感じです。ゲーム作品で受賞するというのは…やはりすごいですね。「メタクロのトップページ」→「日記エッセイ」から入れます。

 昨日は、用事のついでに秋葉原に行ってきました。着いたのが16時30分くらいだったので、色々と歩く事はできませんでしたが、本来の目的の電子部品屋に行き、その後中古PCショップなどへ。友達と一緒に行ったので、ああいう店やこういう店にも…。(ご想像にお任せします)しかし中古ノートPC高いですね。中古で、こんなに古くてOSもなくてHDDもなくて…なんでこんなに高いの!!

 主にPCを使うのは自宅→デスクトップを自作しようという考えになったのですが、学校で使いたい時もあるし…今はThinkPad560Eを持って行くことがあるのですが、USBもなく、CPUはMMX Pentium 166MHz。もう少し使えるノートPCを安価で手に入れたい!!ということで中古PCを調べてます。最後に一言。その日に飲み会もあったのですが、会費3000円を払うならじゃんばらにあったPentiumIIIを買ったな…。
2004年12月6日(月)
少しのぞいてみると
 ボーダフォンショップの前を通りかかったので、少しのぞいてみると、Vodafone3Gの展示用端末が置いてありました。実機ではなく展示用です。(動きません)置いてあったのは802SEと702NK、702MOでした。802SEはキーが結構凹んでいたので、押せるのか?と思ったのですが、ちゃんと押せました。ヒンジ部のカメラも意外とスムーズに動かせました。702MOは…この画面の大きさで果たして売れるのだろうか…。802SEも702MOも閉じた状態で持った感じはいいのですが、開くと60xSHやnudio程ではないが、少し幅広い感じが…。702NKは…なんだこのモチッとしたボタンは!!という驚きが…。この狭い空間にキーを押し込めたからですかねぇ…。端末の写真は本家のホームページで。

 最近IBMのPC事業の話題が騒がれていますが、A4で絶妙な重さで高機能。キーボードにHomeとEndがある…。こういうPC、他にないのですがねぇ…。重くて高機能なのはいくらでもありますが…。ただThinkPadでもXシリーズとTシリーズ以外には魅力を感じませんが…。
2004年12月18日(土)
電源を探しに
 久々の更新です。学術研究発表会や中間・期末テストと忙しくて…。学術研究発表会前日にファンが停止していて、空けてみるとコンデンサが膨れていたことが発覚…という部室のPCの電源を交換するために、電源を探しに秋葉まで…。このPCはDuron650MHz搭載というすばらしいスペックなのですが、Windows2000がサクサク動き、普段はゲーム専用でまだまだ現役。当然昔のM/Bが載っているので…5Vの電力が必要だったり…。

 (もちろん)安い電源を探しに出かけたのですが、下手な格安電源を買って壊れるのも嫌なので、どれを買うか迷い続け、PCショップを10件以上回りました。どのショップも電源は奥の方や目立たない場所にあるので探すのが大変…。そして結局買ったのが、Antec製のSMARTPOWER350W(SL350)です。Antecというブランドと3年保障、4500円(俺コンハウス)という価格に惹かれました。帰ってから調べてみると、結構古い製品で、廉価版の模様。交換前の電源(Seventeam ST-301HR )よりはいいのかな…。どんな電源かは、両者とも、多数の電源の腑分けをしている「てらさんのゴミ箱」を参照。電源は選ぶのが難しい…。
2004年12月27日(月)
全然更新していない…
 ここ最近、Vectorで見つけたゲームをやってばかり…。冬休みとはいえ、試験が近いので勉強もしなければ…。

 ついこの前まで相互リンクをしていた、某所がMovableTypeを導入しました。MovableTypeはXREA内では結構人気があるようで(PHPとMySQLに対応しているから?)、今となってはそんなに珍しいものではありませんが…。MovableTypeは記事の見出しのRSS配信に対応していて、普段使っているブラウザのOperaはRSSリーダー機能がついているので、新着記事の見出しの一覧表示ができるようです。またまたβ版に手を出していて、使用しているOperaのバージョンは8.0です。

 少しずつですが、プログラムの設計をしています。レポMakerとは違って、ゲーム作品のほうです。当初、BCCでDirectXを扱うライブラリを作り、Delphiからそれを呼び出す予定でしたが、
  1. DirectX8ではSurfaceのHDCを取得できず、DirectX9を使う必要がある
  2. DirectX9は普及率が低い
  3. DirectX7(DirectDraw)を使うとHDCの取得はできるが、αブレンディングができない(Direct3Dを組み合わせるとできるらしい)
という問題に直面しました。αブレンディングの処理をこちら側でプログラムする方法もあるのですが、それだとハードウェアの機能をフルに活用できず、実行速度の問題が…。この問題を何とかしようと、 (Google先生)で調べていると、TAlphaBitmapというクラスを発見!!しかもインラインアセンブラでMMX命令を使い高速化を施しているというのには参りました。最近大学のサークルで個人的にPICというマイコンでアセンブラ勉強したのですが、こういう場面でもアセンブラの知識が必要なんですね…。

 さらに前述のゲームの設定画面を見ていて、フルスクリーンを実現するWindowsAPI、ChangeDisplaySettingsを見つけたので…DirectXが不要になってしまいました…。速度をあまり必要としないゲームなので、これでなんとかなるだろう…。今回得た情報はレポMakerでも応用できそうです。
2004年12月28日(火)
TFullScreenForm
 前に日記で書いたWindowsAPIを使ってフルスクリーンを実現するウインドウを作ってみました。タスクバーを隠すのってBorderStyleとWindowStyleプロパティを変更するだけでよかったんですね…。今更気づきました。ただDelphiの
ChangeDisplaySettings(var lpDevMode: _devicemodeA;
dwFlags: Cardinal): integer;
では第一引数が参照渡しになってしまっているので、C++から使う時のようにNULL(nil)を渡してフルスクリーンの解除ができないため、
function ChangeDisplaySettings_(lpDevMode: pDevMode;
dwflags:DWORD):integer;
stdcall external 'user32.dll' name 'ChangeDisplaySettingsA';
をしてDLLから直接呼出しして使う事にしました。

 Alt+TabやWindowsキーを押してアプリケーションの制御が他に移った時に、フルスクリーンを解除する処理を加えようとしたのですが、フルスクリーン化した際に、borderstyleがbsNoneだとApplication.OnDeactivateイベントが発生してしまうようで、上手くいかず、結局コメントアウト。時々みかけるたちの悪いプログラムになってしまいそうです。某ソフトで開発されたアドベンチャーゲームもフルスクリーンを解除できていませんが…。(しかもウインドウを切り替えられないし…)

 ソースを公開しておきます。使い方ですが、FullScreenWidthとFullScreenHeightを設定して、FullScreenをTrueにするだけです。上記の問題の対策方法やアイデアなどがあれば教えて下さい。
追記
コンポーネント版も作りました。
2004年12月29日(水)
TiMidity++
 TiMidity++というソフトを発見しました。ソフトウェア音源で、好きな音源ファイル?を組み合わせて再生できるのが特徴です。ただこのソフト使い方が全然分からない。とりあえず再生できる状態にして、サウンドフォントとやらをいくつかインストールしてみたのですが、楽器によっては結構いい音を出す(トランペットがなんか格好よかった…)のですが、悪いのは悪い…。でもWindows標準付属の「Microsoft GS Wavetable SW Synth」よりはいい音を出しているのかなぁ…。YAMAHA MidRadioPlayer内蔵音源との比較は微妙。Linux版もあるようです。

 元はMIDIをWaveに変換するものだったらしいので、Waveファイルを作成することができます。ゲームのBGM作成に使えるかなと思ったのですが、寄せ集めができると各楽器の音の著作権やライセンスが一体どうなっているのかが分からない…。とりあえずはMU2000で再生して、オンボードのサウンド機能で録音ですかね…。
2004年12月30日(木)
BUFFALOのマウス(3)
BUFFALOのマウス
 ついにBUFFALOのチルトホイールマウスを買ってしまいました。価格は3280円+15%くらいポイント還元。ユーティリティソフトをインストールして、早速使ってみましたが…。

○もった感じ
 つまみ持ちの自分としては結構いいです。
○クリック感
 ちょっとボタンが深いのでは??ダブルクリックがしにくい。あとカチカチうるさい。センタークリックも固い。
○横スクロール
 使える場面が少ない。以前のマウス(写真左)で、ホイール押し回しを横スクロールに割り当てていた時はできたはずの横スクロールが、BUFFALOのユーティリティではうまくできない。これはユーティリティソフトの問題か?
○ホイール
 結構いい。これで以前のマウスで起きていたスクロールが止まらない問題も解消。回した感じもいい。

 ん〜まぁまぁですね。あとケーブルがちと短いかも。

 ついでに携帯売り場も見てきたのですが、3G端末のデモ機が置いてありました。やっぱり海外製の端末は…。702sMOなんか予測ボタンを押さないと予測候補が出ないし・・・それじゃ全然意味無いじゃんか!!あと個人的には最近のSHシリーズは…。902SHもやはりデカイんですよ。2軸ヒンジのせいで余計に大きく感じる…。小さいほうがいいと言う訳ではないのですが。

 端末を手に取ってると分かるのですが、90xとか60xとか40xの違いが分からない人結構いますね…。(周囲の人の会話から…。確かに分かりにくい。)ちょっと説明を

90x,80x,70xシリーズ
 いわゆる3G端末。WCDMAという通信方式に対応していて、より高速で通信できる。サービス面ではパケットフリーやより大きな容量のメールのやりとり、テレビ電話(一部)など、大容量のサービスを受けられる。パケット通信料は60xシリーズより安い。MMS対応モデルはボーダフォンの電話番号からならどんなに大きなメールでも受信料無料。海外でも使える(一部)。DoCoMoのFORMAに相当。

60xシリーズ(旧JX-5x)
 パケット通信に対応する。40x、30xより高速で通信できる。スーパーメールやボーダフォンライブ!の通信料は、実際に通信したデータ量(パケット)に比例する。スーパーメールは通常12KBまで送信可能。50KB、100KB、256KB(対応する端末のみ)のアプリを利用できる。

40x,30x(旧JX-0x)
 昔からのスカイメール、ロングメール対応機。ロングメールは6KBまで送信可能。メールは全て1通あたりの料金になる。アプリは50KBまで。(対応する端末のみ)
2004年12月31日(金)
今年を振り返って…
○昨日の日記の書き忘れ
 VineLinux3.1にKylixをインストールしてみました。本当にWindows版のDelphiそっくり…。しかしポップアップメニューとかの一部が文字化けし読めない…。設定が悪いのだろうか。

 今日で2004年も最後です。今年の目標は…全然達成できていませんね。しかし、C++やDirectXを勉強したりして、C++用の情報を見て、Delphiでプログラムするということもできるようになり…。さて今年の目標を書き換えますか…。では良いお年を。