2008年12月25日から2008年12月21日までの日記を表示中
2008年12月25日 (木)
■年賀状
まだ作ってないし.やばい.どうしよう.とりあえず手元の 64bit版XPで動かないはがきスタジオを今年こそ卒業したい (ここ2年は VMware の Windows2000 上で動かして印刷してたw) ので明日近所のデポで筆まめでも買ってくるか.
ちなみに mixi では1月に既出ですが,今年出したのはこんなのでした.色々あれであちこちモザイク入ってますが,まあ何となく雰囲気はわかるかなと.かなり大変だったけど今見るとなんか全然普通だな・・・.
ツールはいつも通りパワーポイントで写真とかの素材もパワポのクリップアート.いじってるところも多いけど.「ま」のハイリア語のフォントはゲバサイトさんのを使わせて頂きました.左下の「お」は知る人ぞ知る某しら「」氏の絵を使わせて頂いてます.
[コメントを書く]
■冬コミ
こちらもまだ何もチェックしておりませぬ.COOL&CREATEさんとこの新譜はライブDVDなのか・・・.うぬぬぬ.まあ,色々明後日頑張る方向で.今年は初日も行ってみようかと思っていたりもする・・・.
[コメントを書く]
2008年12月24日 (水)
■pidgin-2.5.3 for Windows
なんか終了時に刺さるらしい.たしかに昨日「このプログラムは応答なんたらかんたら」とか出てたような.「Windowsではよくあること」とか思って気にせず閉じたけど,確かに Pidgin でそうなったことは今までなかったような.公式でも出るらしいです.そしてここに報告が・・・.
yazさんによるとどうもこれの変更があやしいとか.でもそこを revert してもだめとかそんな話も.明日あたりにでも試してみるかー.
[コメントを書く]
■縦画面Ustream
縦画面のゲームを Ustream の横画面にあわせて配信するにはどうすればいいんだろうなーと思って調べみたらコナ研さんの記事がヒット.なに,Doracast なんてツールがあるのか.・・・なんか超すごそうなツールですなこれ・・・しかも Flash なの? すげえなぁ.
バージョンがちょっと違うのか,手元の環境だと設定項目が若干違うようで多少うろたえましたが,いじっているうちに大筋が見えてきて無事90度回した状態での配信に成功.うっひょーぴったり収まっとる.こりゃすげえ.コナ研さんのナイスまとめに感謝.
すごすごいと Twitter に書いてエスプレイド遊んでいたら何人かの方が IRC に (;´Д`)'`ァ'`ァドキドキ.その後 DC でアンデフ動かしてみたりサターンで怒首領蜂動かしてみたり.どれもアレでしたが,特にアンデフがひどかった・・・orz.でも久々にやった怒首領蜂はすごく面白かったなぁ.
ちなみに映像はこんな感じで接続してました (ずれてたらごめん).TVC-XGA2 のアナログRGBのスルー出力をディスプレイ(MDT242WG-SB)につなぎつつ,S映像の方をMTVX2006USBにつないでPC上で表示させる感じ.キャプチャするには微妙でしょうけど,まあ Ustream ならこれくらいでもいいのかな,と.本気でキャプチャするなら XPC-4 + PV4 とか? わからんけど.
<映像編> 基板 ┳ XRGB-3 ┳ TVC-XGA2 ┳ MDT242WG ┃ ┃ ┃ サターン ━┛ ┃ ┗ MTVX2006USB ━ PC ┃ DC ━ DV-VGAデミロ ━┛
基板や SS は XRGB-3 の 21ピンの RGB ポートにつないでます.DC でも VGA 非対応なゲームは 15kHz モードにして XRGB-3 経由にする感じですかね.それも出ないやつは S映像でXRGB-3 経由?何だか間抜けだけど・・・って.遅延?よくわかりません><
音声の方は全部ミキサに突っ込んでます.超便利.ヒタヒタさん本当にありがとう.
<音声編> 基板 ┳ XRGB-3 ┳ M-10 ┳ スピーカー ┃ ┃ ┃ サターン ━┛ ┃ ┗ MTVX2006USB ━ PC ┃ DC ━┛
ていうか PV4 について見てたら特に入り用でもないのになんか欲しくなってきたぞ・・・.
[コメントを書く]
2008年12月23日 (火)
■uim.el
たまたま別のところ経由で発見.ASCIIから戻れない? うーん,そんなの設定しなくても uim 全体のキーバインドでいけるはずなんですが・・・.と思っていたら続きがあって,残念ながら既にお別れされてしまった後のようです (´・ω・`).Undo おかしいのかー.うーん,Canna あたりと同じようになるように作ったんだっけ? もう忘れてしまった・・・. SKK だと特別に変だったりするのかなぁ.
[コメントを書く]
■pidgin-2.5.3 for Windows
出てたのでyazさんパッチを当ててビルドして置きました.こちらからどうぞ.
[コメントを書く]
■チェンブレ
[コメントを書く]
■spu-gcc-4.3
リストDMAで色々試してたらコンパイル時に変なエラーがが.
spu-gcc43 -Wall -g -O3 -c listdma_spe.c -o listdma_spe.o listdma_spe.c: In function 'main': listdma_spe.c:51: error: unrecognizable insn: (insn 191 55 60 4 listdma_spe.c:26 (set (reg:SI 209) (plus:SI (const:SI (plus:SI (symbol_ref:SI ("dma_list") [flags 0x200] <var_decl 0x403decf0 dma_list>) (const_int 120 [0x78]))) (const_int 13 [0xd]))) -1 (nil)) listdma_spe.c:51: internal compiler error: in extract_insn, at recog.c:1990 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make: *** [listdma_spe.o] エラー 1
↓これがまずいらしい
mfc_list_element_t dma_list[16] __attribute__((aligned(8))); ... dma_list[15].notify = 1;
↓こんな風に16byteアラインすると大丈夫.
mfc_list_element_t dma_list[16] __attribute__((aligned(16))); ... dma_list[15].notify = 1;
まー,mfc_list_element_t の notify がこんなんだから色々例外っぽいけど・・・.あと,超どうでもいい話ですが上のソースには罠があって,リストの最後の要素の notify を 1 しても完了後にストールしてくれないので意味ないです.というか mfc_read_list_stall_status 呼ぶと返ってこなくなるので注意.
typedef struct mfc_list_element { uint64_t notify : 1; /** Stall-and-notify bit */ uint64_t reserved : 16; uint64_t size : 15; /** Transfer size */ uint64_t eal : 32; /** Lower word of effective address */ } mfc_list_element_t;
[コメントを書く]
2008年12月22日 (月)
■SPUの右シフト
コメントに書くと長そうなのでこっちにー.団子厨さんから以下のようなコメントを頂きました.
> 128ビットアラインメントされてないアドレスをロードすると
> 下位4ビットが無視される。
> 128ビット境界を跨ぐデータをロードする場合、2回ロードを発行して、
> それぞれ右シフト+左シフトして重ね合わせることになる。
> この際、シフト命令が補数をとる形式だと下位4ビットがそのまま使うことが
> できる。
おお!なるほど! それは考えたことがなかった! というわけで早速試してみたんですが,ちょっとうまくいかないっぽいです (´・ω・`)
アドレスをシフト値に使うということなので,ビットで指定する spu_rlmaskqwbytebc ではなくバイトで指定する spu_rlmaskqwbyte の話になるかと思うんですが,たとえば以下のコードでbuf の中の「CDEFGHIJKLMNOPQR」を1個のレジスタに読み出したいようなシチュエーションでの利用ということでいいんですよね?
char buf[] __attribute__((aligned(16))) = "ABCDEFGHIJKLMNOP" "QRSTUVWXYZabcdef" "ghijklmnopqrstuv" "wxyz"; vec_char16 v, vp, v1, v2; vp = (vec_char16 *)(buf + 2); v1 = vp[0]; v2 = vp[1]; // ビッグエンディアンなので1個目を左シフト,2個目を右シフトする v = spu_or(spu_slqwbyte(v1, (int)vp), spu_rlmaskqwbyte(v2, (int)vp));
残念ながら,これはうまくいかないっぽいです.動かすと,vの中身は「\0\0\0\0\0\0\0\0\0\0\0\0\0\0QR」か「CDEFGHIJKLMNOP\0\0」になってしまいます.
シフトの大きさは (bufのアドレス + 2) としていますが,これは (16の倍数 + 2) になっているので,左シフトでも右シフトでも下位4bitしか見ないのであれば「2」を指定したのと同じになるはずです.
が,実際は,spu_rlmaskqwbyte は指定されたシフト値の符号を反転した後,下位5bitを取り出して,その数分右シフトします.また,バイト単位で左シフトする命令の spu_slqwbyte も同じように下位5bitを使います.なので,上記コードでは,シフト値として「2」が渡されるとは限らず,bufのアドレス次第では「18」になってしまう可能性があります.
で,18 になってしまうと,18 バイト左シフトされた1個目の値は全部 0 で埋まってしまいます.右シフトの方は「-14」を指定したのと同じことになるので14bit右シフトしてくれて丁度いいのですが・・・.
また,vpの下位5bitが 18 でなく 2 だった場合,左シフトは 2バイトでいい具合なんですが,今度は右シフトが「-30」を指定したのと同じ扱いになってしまい,結果が全部 0 で埋まってしまいます (´・ω・`)
というわけで,アドレスをそのまま使って2回に分けてロードしたベクタの合成には使えないかなーという感じなのですが,どうでしょう・・・.わざわざ5bit分使うのは16バイトの右シフトにも対応させたかったからなんですかね・・・.うーん.
あと,ここまで書いて気がついたんですが,SPEではそういう必要が生じたらシャッフル命令を使ってこんな風にやるのが普通なのかもしれません.
char buf[] __attribute__((aligned(16))) = "ABCDEFGHIJKLMNOP" "QRSTUVWXYZabcdef" "ghijklmnopqrstuv" "wxyz"; vec_char16 v, vp, v1, v2; const vec_uchar16 vshuf2 = (vec_uchar16){ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; vp = (vec_char16 *)buf; v1 = vp[0]; v2 = vp[1]; v = spu_shuffle(v1, v2, vshuf2);
[コメントを書く]
■Anthy
12月9日版のG-HAL氏パッチを当てたAnthyを使っているわけですが,恐ろしいパターンを発見してしまいました.
「そのでばいすに」を変換すると,普通は「その + デバイスに」になってくれると思います.が,うっかり間違えて文節を伸ばしてしまって「園で + 倍すに」とした上で1回確定してしまうと,その後何度文節を直して確定しても「そのでばいすに」→「園で + 倍すに」で固定されてしまいます・・・.
今んとこ復帰するには last-record2_default.utf8 をエディタで開いて「園で」とかを探して手で消すしかないような.うーむ,うまいこと設定で回避できないものか・・・.他の人どうっすかねー.まあ,覚えてくれないよりは遥かにいいのかも知れませんがw
[コメントを書く]
- G-HAL 2008/12/24(水) 22:19:36
- 重ね重ね申し訳ありません。
学習量をケチろうとしてカタカナ語やひらがな語?を覚えない設定にしたまま、一般公開時に戻していませんでした。
confファイルで
DONOT_LEARN_GUESS _
DONOT_LEARN_HIRAGANA _
DONOT_LEARN_KATAKANA _
DONOT_LEARN_KIGOU _
DONOT_LEARN_MUHENKAN _
DONOT_LEARN_ZENHAN _
DONOT_LEARN_NUM_ANK _
DONOT_LEARN_NUM_JIS _
DONOT_LEARN_NUM_KANSUUZI _
DONOT_LEARN_NUM_SEPARATED_ANK _
DONOT_LEARN_NUM_SEPARATED_JIS _
DONOT_LEARN_NUM_ZIPCODE _
すると、ありとあらゆる変換を覚える様になります。 - nosuke 2008/12/25(木) 00:42:25
- うおお,こんにちは.いつもお世話になっております.
そしてコメントありがとうございます.
早速追加してみたところ,ばっちり復活できるようになりました!
わーい.
2008年12月21日 (日)
■celltripperとか
ちょこちょこいじってたらちょっとスコアが伸びました.でも何でこれで伸びるのかさっぱりわかりません.むしろ遅くなっておかしくない筈なのに(;´Д`)
ところで spu-gcc の組み込み関数の一覧見てて気になったんですが,spu_rlmaskqwbytebc って何のためにあるんですかね.spu_slqwbytebc とかだと spu_slqw とあわせて1〜128ビットの左シフトとかに使えそうだけど, spu_rlmaskqwbytebc は負の数で指定しないといけないという謎仕様のせいで spu_rlmaskqw と組み合わせてもきれいに右シフトに使えないっぽいんですよね・・・.simdmath 見ても使われてないようだし.謎だ・・・.
[コメントを書く]
- 団子厨 2008/12/22(月) 02:52:31
- 多分こういうことでは?
128ビットアラインメントされてないアドレスをロードすると下位4ビットが無視される。
128ビット境界を跨ぐデータをロードする場合、2回ロードを発行して、それぞれ右シフト+左シフトして重ね合わせることになる。
この際、シフト命令が補数をとる形式だと下位4ビットがそのまま使うことができる。
- nosuke 2008/12/23(火) 01:04:14
- おお,ありがとうございます!
なるほど!そういう使い方があったか!
というわけで早速試してみたんですが,残念ながらどうもこれには
使えないっぽいです.詳細は22日のエントリに書いてみました.
勘違いしてたらごめんなさい・・・
2008年12月25日から2008年12月21日までの日記を表示中
公式でも出るですか。ふーむ。
結局まだ何も試していなかったりするんですが,
↓みたいな手段もあるみたいです
http://wassr.jp/user/mojin/statuses/LH86btLGpO
http://developer.pidgin.im/ticket/7849
http://developer.pidgin.im/raw-attachment/ticket/7849/nla-fix.2.patch
情報ありがとうございます。