2004年1月3日の日記を表示中
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月3日の日記を表示中
[コメントを書く]