2004年1月4日から2004年1月1日までの日記を表示中

2004年 1月 4日 (日)

DirectSound

今日はほぼ一日,DirectSoundでどっぱまりでした.DirectSoundといってもWindowsのあれではなくてGBAの方なわけなんですが.タイマ動かしつつサウンドデータをDMAでFIFOに叩き込んで,DMAコントローラの割り込みで転送済みデータサイズを減らして,0になったらDMAとタイマ止めて・・・,と「Linuxから目覚める〜」と全く同じようにコーディングしたつもりなのに,何故か前の方のデータを再生すると,ちょっとだけはみ出て続きの領域に格納されたデータが一緒に再生されてしまう・・・.

色々調べた結果,どうもDMA終了割り込み時に転送済みサイズを16しか減らしていないのがダメらしく,ここを20にしたら(要するに早目にDMA転送を切り上げるようにしたら)きれいに音が出るようになったんですが,なんでFIFOのサイズより多く転送されてしまうのか,わけがわかりません.サンプリングレートもデータサイズもちゃんとあってるはずなのに・・・.というか,16byte転送につき1回割り込みかかるって,本当なのか???

というわけで

一応休み終わりなんで,正月休みの成果ということで,GBAのテトリスです.bzip2で圧縮されてるんで,適当に解凍してください.解凍後は,実機に転送するか,VBAで動かせます.背景は具満タン8についてたのを使ってます.効果音はザ・マッチメイカァズさんの物を利用させていただいてます.何の役に立つかもわかりませんが,一応近々ソースその他を含めてがらくた置場に置く予定です.今は,激しく汚くて・・・,ちょっと・・・.

で,「Linuxから目覚める〜」ですが,色々勉強になったものの,あれだけだとやっぱつらいですね.特にレジスタのアドレスとか,まとめて掲載したページが無いのが痛い.あと,やっぱ筆者さんがあっさりPhotoshop使って作業しちゃったりしてるのが萎えます.「Linuxから」とタイトルにつけたなら,画像変換はgimp+自作プログラムで,音声変換はsox+自作プログラムでという具合に,KNOPPIX上で気合いで完結させて欲しかった・・・.これなら最初からWindows+Cygwinとかの方が良くない?

2004年 1月 3日 (土)

ラスタースクロール

GBAでラスタースクロールに挑戦してみているのですが,動かすところで大はまりしてしまいました.-128〜127に正規化したsinのテーブルを作って,その値を使ってラインごとにずらしてスクロールさせたのですが,テーブルを引いた値が負の場合,キャストしようが何しようが,割算や右シフトで符号拡張してくれず,単にでかい正の数として扱われてしまいます・・・.あれこれ試した結果,charにしていたテーブルの配列の型をshortにしたら動いたわけですが,なんでなの???

試しにchar型とsigned char型をシフトするコードをコンパイルしてディスアセンブルしてみたら・・・,charの方はlsr(論理シフト)でsigned charの方はasr(算術シフト)・・・_|‾|○.調べてみたら,gccではcharはunsigned扱いなんですね・・・.まじで知らなかった・・・_|‾|○i|||.何年C使ってるんだってかんじです.はぁ,カッコワル・・・.ちなみに,ラスタスクロールはバッチリです.

icewm

そういえば,以前直ったと思っていたicewmの手前のウィンドウ閉じた際に奥の方にあるウィンドウが勝手に手前に出てきちゃう問題ですが,実はやっぱり発生するようです.一度気になるとすげー気になって仕方ないんですよね・・・.

2004年 1月 2日 (金)

デジカメ

横浜でビックカメラの前を通りがかったらデジタルカメラ袋なる福袋が売ってまして,そこそこのが欲しいなぁと思っていたところだったので,思わず買っちゃいました.中身はオリンパスのX-200という機種.結構でかいな・xDピクチャカードって何?・単三乾電池だと消費早っ!等々,軽く驚かされましたが,まあ,値段相応ってところですかね.

パッド

そういえば,ヨドバシではサンワサプライの達人というパッドを買ったのですが,これのは十字キーはあたりでした.ただ,全体の形が変で,すげー握りにくいのが痛い.

2004年 1月 1日 (木)

あけましておめでとうございます

ありがちですが,明けましておめでとうございます.正月でも,昼間っからだらだらとコーディングしてみたりゲームしてみたりしつつ,その間に適当に呑んだり食べたりしてます.

GBAでテトリス

最近のテトリスは壁際で回すと,回せない場合ブロックが動いてくれるんですなぁ.知らなかった・・・.早速実装しました.ていうか落下とか移動とかの条件判定部分をアドホックに書いていたため,高速落下時にブロックにめりこんだりタイミングによっては壁を突き抜けたりと厄介なバグ出まくりでしたが,きちんと判定部分を関数に分けて書き直したらきれいさっぱりバグがなくなりました.もっと早くやればよかったよぅ・・・.

2004年1月4日から2004年1月1日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2004年1月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ