2006-04-01から1ヶ月間の記事一覧

ARM Assembler Tips(2)

ARM アセンブラでライトバックを使うと、なんか偉くなった気分になれるので非常に爽快だ。 例えば x86 系の PUSH にあたる命令は、 STR r0,[sp] ADD sp,sp,#-4 って書くよりは、 STR r0,[sp,#-4]! こうやって書く方がカッコイイ。あとついでに効率が良い。 …

BREW で MicroThread(2)

MicroThread は、スタック切り替えで関数を実行途中で停止出来るようにすることによって実現出来ます。 id:yaneurao さんのやね本2にこの実装が詳しく書かれています。 Windowsプロフェッショナルゲームプログラミング2【CD-ROM付】 (Game developer books)…

BREW で MicroThread

デキタ━━━━(゚∀゚)━━━━!! class Hoge : public MicroThread{ public: void OnMove(){ if( !isExecute() ){ start(); }else{ resume(); } } virtual void run(){ int x = 0; for( int i = 0 ; i < 100 ; i++ ){ x += 2; suspend(); } } }; これでちゃんと、ローカ…

描画のキャッシュ(4)

昨日のをさらに改善してみました(`・ω・´)

描画キャッシュ(3)

思いついた。こんなのはどうだろう。

描画キャッシュ(2)

OO的にキャッシュするのであれば、こんな感じだろうか。

描画キャッシュ

描画のキャッシュって、いまいちどうやるかわからなかったり。

みなさん常識と思っているでしょうが、それはウソです!

off

http://www.sasebo.nagasaki.med.or.jp/kenkou/uso.htm な、なんだってー!!(AAry

IMEの起動キーでわかるトシの差

off

http://neta.ywcafe.net/000572.html Windows 使い始めの頃は Alt 押してたよ(((( ;゜Д゜)))ガクガクブルブル

理科のテスト

off

http://app.blog.livedoor.jp/kuroemon21/tb.cgi/50419969 こういう発想が出来る子は2倍の点数でも良いと思う。

The People's Mario

off

http://dhost.info/terminal71/flash/mario.html 最高(ノ∀`)b

アルファ矩形

こいつは線形補間テーブルさえあれば、アルファブレンドと同じ方法で求められます。

Youtube等の猫動画特集

off

http://blog.egone.org/archives/50182631.html テラカワイス(´ω`*)

BREW のアルファブレンド

大分前に id:enra さんが高速なアルファブレンドを行うための手法を書かれていた(id:enra:20050124)ので、それを見ながら実装してみました。

ISHELL_Browse

BREW2.1、BREW3.1 でネイティブブラウザを起動する方法。 #if defined( BREW31 ) // BREW3.1 用の Browser class Browser{ public: int Browse( const char* url ){ STRCPY( &_url[ 0 ] , "ez2urlto:" ); STRCAT( &_url[ 0 ] , url ); return ISHELL_BrowseU…

Stream クラス

{ FileInputStream fis = FileManager::OpenFileInputStream( "data.dat" ); DataInputStream dis = DataInputStream::Create( (InputStream)fis ); dis.Read( buf , size ); // fis.Close(); // 必要ない // dis.Close(); // 必要ない } { ByteArrayOutputS…

ピタゴラスイッチ

off

http://video.google.com/videoplay?docid=6176491654107670145 Sugeeeeeeee!!!!11111

mod 圧縮

http://pc8.2ch.net/test/read.cgi/tech/1137502541/680 ※追記:現在はここにあります http://brew.s214.xrea.com/pukiwiki/?%B0%B5%BD%CCmod%A5%ED%A1%BC%A5%C0 このプログラムのミソは、圧縮 mod を実行しているところもそうなのだけれど、それよりモジュ…

BrainF*ck

http://www.takaaki.info/programming/esoteric/bf.html すばらしすぎる言語だ(ノ∀`)

仮想デストラクタ(2)

修正案その1 昨日のコメントの通り。 class ClassID{ public: enum EType{ Hoge , Hogehoge , }; }; class Base{ public: virtual ~Base(){} virtual ClassID::EType GetID() = 0; }; class Hoge{ public: virtual ClassID::EType GetID(){ return ClassID:…

仮想デストラクタ

こんなプログラムを見た。 class Base{ public: Base() : _id( 0 ){} Base( int id ) : _id( id ){} int GetID(){ return _id; } private: int _id; }; class Hoge : public Base{ public: Hoge( int id ) : Base( id ){} }; class Hogehoge : public Base{ …

行数カウントバッチ

単体のファイルの行数を数えるソフトはいくらでもあるんだけど、複数のフォルダのファイルの合計行数を知るためのソフトが見つからない。 なのでバッチで作ってみました。 echo none>out.txt for /r . %%a in (.) do copy out.txt+"%%a\*.*" out.txt これで…

IMEDIA_SetVolume

A5509T で、 IMEDIA_SetVolume( pMedia , volume ); IMEDIA_Play( pMedia ); こういうプログラムを書いても、音量は変わってくれない(A5509T だけじゃなくて、BREW2.1 全部かも)。 どうやら、再生中以外は IMEDIA_SetVolume() に失敗するようだ。 なので、…

RGB666

どうやら RGB666 は、こんな形式らしい。 nnnnnnnn nnnnnnrr rrrrgggg ggbbbbbb もちろんリトルエンディアンの場合はバイト単位でリバース。 ……4バイト使うなら RGB888 でいいじゃねえか余計な形式増やすな( ゚Д゚)ゴルァ!!

IDISPLAY_MeasureTextEx

この関数、めちゃめちゃ遅い。 どれぐらい遅いかってと、1ループに3,40回呼び出しただけで、BREW2.1 だとタイマが正常に動作しなくなって、サウンドが止まって、キーが効かなくなる。要するに時間が掛かりすぎてフリーズしてる状態になる。 もしかした…

byte から int への変換

byte から int への変換を行う場合、Windows なら、 uint32 n = *(uint32*)&buf[ off ]; これだけで良いのだけれども、BREW の場合はメモリを 4 バイト単位でアクセスしなかった場合、かなりやばい動作をするので、 uint32 n1,n2,n3,n4; n1 = buf[ off + 0 ]…

VC6 の string

string str0 = "aaaaa"; string str1 = str0; string str2 = str0.substr(); string str3 = string( str0.substr() ); if( str0.c_str() == str1.c_str() == str2.c_str() == str3.c_str() ){ printf( "equal" ); }else{ printf( "non equal" ); } equal 工…

プロジェクト終了

off

忙しい時期は終わったっぽいですヽ(´ー`)ノ 反省点もいっぱいあるし、次のプロジェクトに向けてあらかじめいろんなクラスやツールを作っておきますか。。

エンドレスバトン

off

id:tailliar さんから回ってきました(`・ω・´)

4bit パレットの転送(2)

昨日のルーチンだと、画像に変形を加えるようなルーチンだとうまくいかない。 インデックスの値の偶奇が交互に来ることを前提に作っているからだ。 変形を加えながら転送をする 8bit のルーチンが、 dst = (void*)((byte*)dst + dx * sizeof( void ) + dy * …