ID: PASSWORD:

だらだらと書き連ねる
もさもさdevel日記
GPM


日記鯖システム管理者からのお知らせ

  • HTTPSに対応し、http://ds.sen-nin-do.nethttps://ds.sen-nin-do.net のどちらでも日記鯖にアクセスできるようになりました。 なお、当面はHTTPとHTTPSのどちらも利用可能としますが、将来的には http://ds.sen-nin-do.net へのアクセスは https://ds.sen-nin-do.net へ転送する予定です。
  • 都合により日記鯖のURLが http://ds.wa-mo.to/ から http://ds.sen-nin-do.net/ に変更となりました。 突然で申し訳ありませんが、よろしくお願いいたします。(2019/01/27)
  • 日記鯖の仕様変更、不具合対応等については、こちらの記事もご覧ください。

ここで書き連ねる予定のこと
  • 日本では希少なアマチュアゲーム機開発(DreamCast(KallistiOS)、GameCube、GBAなど)関連
  • それに付随したライブラリ等のこと
  • 仕事でやっていたWindowsCE関連とPocketPC開発の愚痴
  • メンタルヘルス(吃音/神経症/精神心療科)について少々
  • その他のプログラム/趣味/日常のこと多数
この日記は、basefontにSH G30 フォント(ミラー)とmonospaceを指定しています。
たまに、18禁サイト・過激なネタサイトへのリンクが張られます(ダイレクトなリンクは可能な限り避けるように努力します)。
<お願い> 意見、感想、タレコミの類は掲示板までお願いします。
Writen by GPM

台風、というか曇り

キャプチャーいじって、配線周りの拡張して、もんもんと考え事をして一日終わる。

コントローラのアナログ入力について考える。
最近のゲームには方向入力がデジタル・アナログ両対応のものがある。
アナログ入力は、そのまま使用できるが、デジタル入力はそのまま使用できない。
・押したキーの時間に応じてアナログの押し具合に相当した値に置き換えて、仮想アナログ入力値のベクトルを進める
・離したキーは、時間に応じて仮想アナログ入力値のベクトルを戻す
書いてしまうとまとまっているように見えるが、これらのデータをどのように持てばよいか、ベストといえる案が自分の中でまとまっていない。
悶々と考える。
# 明日以降に続く?

妙に体調のいい日

一気に涼しくなりました。

仮想アナログ入力?の話の続き。
まず悩んだのが、ベクトルを座標((0,0)からの(x,y))で持つか、角度と長さで持つか。
角度と長さで持つと、ボタンを離したときの戻しが、(現在の長さ - 減算値)で済みます。
全てのキーが離されたときも、角度を持っているので向きが維持できます。
ん? ひょっとしてベクトルとは別に現在の入力情報を維持してないとダメなのか。
向きが45°で入力キーがニュートラルのときに真上を押すと、垂直方向にゆっくりと向いていってくれないといけない。
そんでもって、ベクトルも補正される・・・んじゃなくて、ニュートラル時は(0,0)-(0,0)の45°なんだから、ここから(0,0)-(0,127)の90°になっていけばいいのか。
ベクトルと入力方向は非同期でもいいのか。
なんか小言っぽいなぁ・・・まぁ、この日記はメモだし(w

"キー入力"でgoogleしたら引っかかったサイト。
GBAプログラム研究所
なんかスクリーンショットとか豊富でかなり先進的なんですけど。
つか、GCのディスクをPCのDVDドライブに入れてみたら認識すらしませんでした。CD-Rにも入れてみたけど同様でした。
逆に、GCに8cmのオーディオCDを入れたら認識してくれるのか? 15cmのCDは物理的に入らなかったので、8cmのDVD-Rとか出てくれないと、ブータブルなディスクを作ることは出来ないのか?
ちょっともったいない気がする・・・。

唯一のGCエミュレータ?らしい"Dolwin"でgoogleしてみて見つけたサイト。
趣味のRipping
リッピングがメインのサイトみたいですが、トップのFC pad on USBに漢気を感じました。
有益な情報がありそうなので、帰ってからよく読もうと思います。
この日記、メモだし。

ベクトルの角度を算出するにはどうすればいいか。googleして見つけたサイト。
直線(ベクトル)の角度を求める

rad = ( acos( X / sqrt( X^2 + Y^2 ) ) / π ) * 180

以上の公式で rad は 180 〜 0 〜 -180 になるので、360°で扱いたい場合は、ゼロ度境界軸で(360 - rad)する必要がある。
ちなみに、(X/sqrt(...))だと(0,0)-(1,0)がゼロ°になる。(Y/sqrt(...))だと(0,0)-(0,1)がゼロ°になる。
で、sqrtが遅い。ドリキャスでdouble(and float)なんて使う気にならない。
かといって、テーブルで持てるほど平方根の数値幅は狭くない。

んで、"平方根"と"高速化"でgoogleして見つけたサイト。
高速sqrt()関数(K's Net for PlayStation's Programing)
高速な平方根のロジックを公式から解説されてます。
帰ったら実装してみよう。この日記、メモだし。

韓国から来ているPGの人がビザの更新に帰るらしい。
で、それの案内のメールの文章の添削を頼まれた。
釜山(プサン)を「プサン」と読めずに「'かまやま'ってどこですか?」と聞いたら、かまやまじゃなくてプサンと切り替えされた。
メールが展開される人の半分は読めないだろうから、読みがなつけてもらったんだよーだ:-D

秋分の日

平方根のコード。
unsigned long lsqrt( unsigned long lValue, unsigned long lRate )
{
    unsigned long lBase, lRes, lNum, lDiv;

    if( lValue <= 0 ) return 0;
    lBase = lValue;

    do
    {
        lRes = lBase;
        lNum = lValue * lRate;
        lDiv = (lNum / lRes);
        lBase = (lDiv + lRes) / 2;
    } while( lBase < lRes );

    return lRes;
}
lValue がルートに入る値で lRate が計算(桁上げ)精度です。
10万倍するとキャリーが発生して解が狂ってきます。
とはいえ、1万倍(ex:√2≒14142)ぐらいの精度があればゲームユースでは不自由しないと思います。
ああ、もう寝るぞ〜・・・。

ちょっと訂正。
lsqrt( ((255 * 255) + (255 * 255)) * 1000 ) でキャリーしました。
・・・512倍ぐらい?

Perlでhtmlファイル群の特定のタグを置き換えるスクリプトを組む。
Perlなんてやったことなかったので、リファレンス探しながらあーでもないこーでもないと試行錯誤しながら組んでみました。
何とか完成させ、置換え対象のルートに移動して、いざ実行。
・・・感動。
手作業でやったら途中で投げるだろう作業がほんの十数秒。
つーか、スクリプトで置換えがこんなに簡素に出来るなんて、いい意味でショックです。
ソースをまたいで置換えなんて・・・夢のようです。
あと、置換え対象ディレクトリは、階層化されてるんですけど、サブルーチンが再帰呼び出しできるので、下層にも楽に潜れます。
知ってる人からしたら当然、というか既に通過している場所なんでしょうけど。

アナログ入力やらacos遅いなぁ問題、の結論。
もうめんどくさいのでfloat使います。
そもそも、身骨削って最適化しても無駄と言う結論に至りました。
作る過程がつまらなかったら形になるまで息が続かないような気がしてきたし・・・今までもそうだったし。
作る過程が楽しくて、さらに完成後もみんなで遊べて楽しい。そんなゲームにしたいなぁ>TurnTurret
# 完成するまで持つかも不明なわけだし
ってことで、だらだら小言書いてもしょうがないので寝ます。

それ、俺の仕様だから

朝、久々に寝坊する。
とはいえ、最近の通常出勤ペースからの寝坊なのでコアタイムには遅れない。

午前中。
資料をぬぼーっと眺めながらウトウトしかける。
おとついの作業が響いているなぁ・・・。

昼。
あまり食うと確実に寝る、と思ったのでがっつりした物は避ける。
それでも眠くなる。
誰か助けて・・・。

昼その2。
ミントとガムに助けられてようやくエンジンがかかる。
ごめんなさい、駄目社員で。

職場懇談の飲み会に参加。
「IT用語でえろいのはなんだ?」と語る反面、女の子にメイクされる人がいたりはじけまくっていた。
新しく入ってきたリーダーは星野監督に匹敵しそうなぐらいの強力キャラだということが判明するし、このチームもメンバ変わったなぁ・・・。

ひとり疎外感

最近、一気に暇になってしまった(というか、指示待ち時間が多い)せいか、一人だけ取り残されているような感覚をよく覚える。
前の会社を辞めて、それまで執着していたものを全て捨てて・・・まさに、生まれ変わったつもりでここまで来たけれど、僕はまだ昔いた場所を忘れられないのかもしれない。
一緒に仕事する人はたくさんいても、仕事場以外では結局独りだし、辛いのは昔のままだ。それを意識すると一気に職場が息苦しくなる。
それに加えて、最近息切れしているような気さえする。
また、抱え込んでいる。
また、自分の中で押し殺している。

明日先生に話せれば、話するか。

Fatigue

TrunTurret。
移動・旋回周りを実装・デバッグ。
キーボードでも意外にスムーズに動いた。一番操作しにくいのはハットスイッチと十字キーかもしれない。
弾と爆破のエフェクトを早めに準備して、次は攻撃の当たり判定を実装しよう。

カウンセリングの日。
昨日は、夜遅かったのだが、意外にもすっきりと目覚めた。
最近、C760をあまり触っていない。
時間が空いたときの日記書きぐらいにしか使えていない。
とはいえ、エディタが持ち歩けるだけでも随分幸せだったりするのだが:-D

耐え忍ぶ月末

F-ZERO攻略本買って、ワゴンのゼルダ買ってくる。

よしやるぞと思った矢先に眠くなったので寝る。

まだまだ残暑

TurnTurret。
砲弾周りの処理を実装し始める。
とりあえず、指定ベクトルへの移動を実装する・・・といっても戦車の旋回ルーチンを使いまわしがきく形にしているだけなんだけど。
次は、砲弾の寿命とかあたり判定か。

近所の99円コンビニ行ったりゼルダやったり寝たり。
金が無いときは寝るに限る・・・っつーかだるくて無気力なのが正直なところか。
もっと涼しくなってくれよ。

ひさびさ

最近、おぼろげながら朝の目覚まし(コンポ)に一応反応するようになってきました。
忙しかった頃は、ガンガンなっていようがまったく平気(駄目だろ)で、KUMU氏が泊まりに来たときに「俺が起こされたわ!! なんでお前平気やねん」といわれた頃があるぐらい。
忙しすぎるのは駄目ということか。

C760。
keyHelperを入れ替える。
ついでに keyhelper.conf と keyhelper.xml を入れる。
# ~/Stting に入れればいいなんて知らなかった。
タスクセレクタがあるのも知らなかったし、知らないことづくしだったりする。

SNES9xをC760で動かしたい為に、SDL-1.2.6をビルドしてみる。
・・・動かない? 表示が何か崩れているようである。
1.2.6で試したのが悪かったのか?
調べようとしたらバッテリー警告が出たので、調査ストップ。
素直に1.2.5にしとけばよかったか?

帰宅。
んで、9x@C760。
QVGAで動いたんだけど、画面が180度逆転していてゲームにならない。
さっさと1.2.5に入れ替える。
ばっちり、動いとる。ファミ探は問題なく遊べる。
ただ、-hiオプションをつけないと題字がきちんと表示されない。
シミュレーションやらアドベンチャーやら操作系を駆使しなくていいゲーム専用ですな。

TurnTurret。
戦車が弾撃てるようにする準備。
if( 1/*リピート制限中でなければ*/ ) Entry_Shot(...); /*箱庭の弾幕リストに登録*/
みたいな処理を書くだけ書く。
仕事でデータのファイル保存・読出をしないといけない。
旧バージョンのデータもちゃんと読めないといけないらしい。
考える力をそちらに回さないといけないので、具体的なロジック実装は週末までお預けだろう。

夜になると冴えてくる

ちょっと前から、掲示板にキーボードスレを立ててキーボードの情報をメモしていたのですが、ついにイカスデザインのキーボードを発見。
flexis FX200USB(Akiba PC Hotlineの紹介/日本販売元)。
小型で、USBで、デザインが面白い。ぜひとも欲しい。
# 実は少し前に大須で見かけていたりするのだけれど:-P

仕事場のT口くんと「リファクタリングとはなんぞ?」という話になる。
自分が「動いているものにあえて手をつけるのはリファクタリングじゃないぞ」と言ったら、「動いているものにも恐れずに よりシンプルに設計しなおす。これもリファクタリングですぞ」と言い返された。
ちょうどスラドでリファクタリングは趣味の世界?というトピックがあったので、ちょっと考えてみた。

リファクタリングっていうのは、「システムの外郭を変えずに中身をシンプルにする」って作業?であり、それを行うにあたって無茶はしない(エンバグしたり、デグレードしたりしない)のが前提だと思うんですが。
T口君の言っていることは、とても危険を伴う作業なんじゃないかなぁと思います。
# テスト前だから見直すのもありだと思うけど、現状はジョブが山積みで十分に見直す時間がないって背景もある。なんにしても言い方が荒っぽい。
# まぁ、T口君はここ見てないから、関係ないか:-P

撮り貯めたキャプチャー動画の編集をする。
前々から時間が経つにつれ、音がずれていく現象に悩まされていたんですが、解決法を発見。
VirtulDubを使って音ズレを補正する
VirtualDub(日本語パッチ)で直せるらしい。
試してみたけど、30fpsだとちょっと違和感があるような気がするけど、あからさまにずれるよりマシか。
似非映像マニアよろしく勘ぐるのもアレか>自分

Quick Link
google / スラド / UnrealTournament体験版 / 4Gamer.net / Zaurus-ja@SourceForge.jp / Linux Zaurus Antenna@はてなアンテナ / 切込隊長BLOG 〜俺様キングダム / 高橋がなりブログ 虎の声 - SOD / 白瀬 慧(しらせ あきら)のページ - ねこみみにみみずく / Scene Research Station / *** polygon prompt : unknownnodes / 四畳半社長