今日はお休み。
と言っても、約二週間家を空けたのと、月末という事などで
家賃を払ったり、物を買いに行ったり色々。
で、近所のCD屋に何故かポルノグラフティのアルバムが
入荷されていなかったので、いきなり秋葉にゴー!
CDと「ピンポン」のDVD、
そして、休みが一日しか無いから急がなきゃ!などと、冷静に
考えてみれば、それなら なおさら急ぐ必要が無い
ような理由を付けて、ダイブしてみましたよ、macromedia FLASH MXに!
他、ごちゃごちゃと雑物購入して帰着。ふぅ。
で、「ピンポン」鑑賞。あぁ、もう言う事はありません。大満足です
(参考)。井筒のおっさん
は、窪塚洋介の演技がオーバーだとか色々言ってましたが、
全然OK、むしろ完璧! 全員がハマリ役という奇跡的な配役に
独りで感動してました。で、DVD特典のメイキングとか観たり。
やっぱCGスゴイわ。一番頭のオープニングカットとか、
最初どうやって合成しているんだろう?と思ったらなんの事は
無い、「全てCGでした」というオチにびっくりしました。
FLASH MXをインストールしてみたり。トライアル版を上書きして
インストールする形になるようで、以前読み込んだファイルの
履歴など、設定関係はそのまま残っていました。折角なので、
ユーザー登録しようと、フォームに記入したのですが、トライアル版
の時は連絡先など、かなり端折って書いても通ったのですが、
今回は抜けがあると色々と文句を言ってきたり。何度も
修正して(<何故そこまでいい加減に入れるのかは置いといて(^^;)
どうにか通った所、「既にE-mailアドレスが登録されています」と
出てそのままエラー終了。なんでやねん!という訳で文句メール
を書いて送ってみたり。
まぁともかく、これで気がね無く作ったデータを公開できると
いうもんです。50,000円分を取り戻すべく ヘボFLASHをガンガン
作りたい気分。てゆーか、50,000円に相当するヘボFLASHはむしろ
嫌かも。
そんな感じで、また明日より出張予定です。
出張。帰着。ぐったり。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張。
出張予定でしたが、風邪悪化のため休業。
一日中死亡。
少し早めに帰着。
ぐったり気味。
タマちゃん住民票登録って一体......。しかも、勝手に苗字
まで付けられているし。これがアリなら宇宙人の住民票も
アリなのかも。
そんな感じで明日から出張です。
今日はお休み。夕方頃起床(<寝過ぎです)
Linuxカーネル2.4.20をppcクロスビルドしてppcsimで実行してみた
のですが、状況に変化無し。
風邪気味でだんだん具合が悪くなって死亡。
日付け越え。
Cygwinの1.3.20-1がリリースされているようなのでインストール
してみました。でも、fork()問題回避のパッチを当てたsnapshotを
作る前にインストールしたのでsnapshotのbuildが重い重い(^^;
順序を逆にするべきでした。
そんな感じでプロ遊のCygwinについてのページにスナップショットの
ビルド方法の項目を追加してみました。御参考まで。
昼過ぎ起床。
今日は秋葉にちょっこりお出かけ。目的はFlash-MXを買う事。
52,000円也........んー、やっぱ高いなぁ。他をウロウロ。
デジカメも良いなぁ........ビデオキャプチャボードも良いなぁ......
USBのDVDドライブか........とか見ているうちにすっかり物欲アドレナリン
が薄まってしまい、結局、今日はいいやって事に。やっぱアレですね、
ちょっとでも迷いのある場合は、他のものを見ちゃいかんですな。
デジカメもビデオキャプチャボードもDVDドライブも、どう
考えたってそんなに使う訳無いんだから、値段は関係無いのです。
欲しいかも?いや、欲しい、欲しいぞ!買うしかっ!!くわっ!!
とスタパ斎藤風にいかなきゃダメです。
秋葉のSEGAに。大往生のスゴイのを見ました。一周目ラスボス
クリアでMAX 2300HIT越えって、あまりに凄過ぎてむしろ参考に
なりません(笑。二周目なんて口が開きっぱなしですよ(^^;。
斑鳩のスゴイのとか、色々見ることができました。
帰りに別のゲーセンで、「式神の城II」のロケテストをやって
ました。遂にというかやっとというか、640x480(SVGA?)の解像度の
シューティングゲームが登場です。パっと見は強烈に
綺麗。隣に並べられた他のゲームとは明らかに違います。
ついでにこの台だけフラットディスプレイになってました(^^;
そういやこれもありそうで今まで見たこと無かったかも。
バーチャ3の中型対戦台くらいしかフラットディスプレイの
筐体って見たことなかったし。因みに、どういう系統のハードウェア
なのでしょうね?最近はどれもPS/PS2系互換っぽかったり、
NAOMIだったり、従来基板の使いまわしといった感じだったので、
ちょっと新鮮。
で、ゲームは式神の城そのものって感じ。それだけ(ぉぃ;
gcc-2.95.2でカーネルを再コンパイルしてみたものの結果変わらず。
ふーむ。
そういや、CGサイトを眺めていると「おえび」なる言葉を使って
いました。「おえかきびーびーえす」の短縮形らしい。
なんだかなぁと思いつつも、やっぱ日本語は三文字もしくは
四文字に短縮するのが語感がよろしいと感じるのも確かです。
それにしても「ドラクエ」って気がついたらそう言っていた
ような気がしたのですが、これは誰が言ってもこうなりそう
な感じがします。逆にFFは語感がイマイチ。昔、ファミ通で
間違った短縮形としてFFを「ファイナンタ」とか言う例が
あったのですが、個人的にはそんなに悪くない気がしている
今日この頃。いや、何の略だかわかんないから、やっぱよく
ないか(ぉぃ;
昼過ぎ起床。休出。
おっかけの続き。
どうもイマイチよく判らず。pte_alloc()の結果として
0xc013fffcが返ってきますが、このアドレスはどうやらカーネル
の配置されている領域のすぐ後のヒープ領域から割り当てている
ような感じになっています。pte_alloc()の戻り値はページグループ
の様で、set_pte()でこのpgの領域に対して、アドレス変換後に返すべき
物理アドレスをセットしている様に見えます。従って、先日の
「何かずれているような」という状態のまま進展無し。
あぁ、そういや一応コンパイラを2.95系に戻してカーネルを
再コンパイルしようと思っていたんだった。という訳で
ツールをビルド。
そういや、
以前
オペレーターズサイドって音声コントローラのゲームの話を
書きましたが、これ、エロに展開すると、こいつぁかなりいける
んじゃぁなかろうかと思ってみたり。これと組み合わせて、
感情をパラメータとした自然発音を行なったり、超絶グラフィックで
自然な動きを付けたりすれば、これはもうっ!!(ぉぃ;
恋愛シミュレーションみたいのだと、組合わせが無限になって
今の時点では現実的ではないかも知れませんが、エロなら
組合わせが極端に少なくなると思われるので、今でも意外と
いけるかも。ビバっ!ハイテクのムダ遣い!。問題は、
プレーヤーにそれなりのボキャブラリーが要求される事。
あと、無口な人には遊べません。あ、問題の方が大き過ぎて
思ったよりいけてない気がしてきた。
とアホな事を書いている間にもツールのビルドは終了せず。
binutils-2.13を--target=powerpc-linuxでconfigureして
makeすると、
make[3]: Entering directory `/cygdrive/c/tane/develop/ppctools/binutils-2.13/build/gas' gcc -DHAVE_CONFIG_H -I. -I../../gas -I. -D_GNU_SOURCE -I. -I../../gas -I../bfd -I../../gas/config -I../../gas/../include -I../../gas/.. -I../../gas/../bfd -I../../gas/../intl -I../intl -DLOCALEDIR="\"/usr/local/ppcold/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O -c ../../gas/config/tc-ppc.c ../../gas/config/tc-ppc.c: In function `md_assemble': ../../gas/config/tc-ppc.c:2172: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2174: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2179: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2181: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2186: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2188: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2193: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:2195: warning: right shift count >= width of type ../../gas/config/tc-ppc.c: In function `md_apply_fix3': ../../gas/config/tc-ppc.c:5374: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:5381: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:5388: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:5395: warning: right shift count >= width of type ../../gas/config/tc-ppc.c:5523: Internal compiler error in simplify_subreg, at simplify-rtx.c:2452 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. make[3]: *** [tc-ppc.o] Error 1
日付け越え前に帰着。
KOJIさんとちょっこりお電話。
行きつけのセブンイレブンが15周年記念イベントをやるらしい。
15年というのはスゴイなと思ったのですが、人生の1/3を今住んでいる界隈で
過ごしている事からいくと、知っている限り10年クラスのコンビニなんて
そこらにザラにある事に気づいたりして。
そういやコンビニでCDやゲームが買えるようになってから久しいですが、
実際の所、売れているのかいなぁというのが気になった所。毎日見る限り、
あのゲーム群は もう何ヶ月のあのままだよなぁと思ったり。
ゲームやCDは買うと決めて買いにいく場合は、どこで買っても同じ
なのかもしれませんが、やはり専門店に行くと、他に出てる新しいゲームや、
いつの間にかベスト版になったゲームなどにも目が行ってしまいます。
そういった買い物感覚を無意識に求めてしまうから、ゲームやCD専門店が
コンビニに食われてしまう事が無いのかなぁなどと思ってみたり。
ロータリーエンジンをロリータエンジンと読み違えてしまうこの頃。
日付け越え前に帰着。
追っかけの続き。
イマイチうまくいっていない加減が判らず。
ppcのハードウェアアドレス変換を使用する際、PTE(PageTableEntry)
の先頭を決定するSDR1レジスタに値を入れますが、そこには
0xc0140000が入っていて、ここにpteの実体がエントリされているという
仕掛けになっているハズです。所が、pte_alloc_one()といった
pteの割り当てマクロの戻り値アドレスは0xc013fffcとかになっていて
何か微妙に合っていないような気分。うーむ。
日付け越え前に帰着。いつもより30分早く会社を出たら自転車がパンク
していて結局いつも通りの時間になったり。
WBSで「書ける携帯と称して」携帯のアンテナの先に付けるボールペン
を取り上げてました。アレぁ ねーだろうと思った。
チャンネル変えてMassu The Best Hit TV。宝生舞に
レミおばさん
(
平野レミ)が「こどもならタダで作れる」とかムチャクチャ
言っていたのに笑ったのですが、「ロボットなんて何十億円かけたって
人間と同じには作れないんだから」という言葉に、
ぎゃははは......あれ?意外と深いですよ?とか思ったりして。
追っかけの続き。
arch/ppc/mm/pgtable.c:__ioremap()→
arch/ppc/mm/pgtable.c:map_page()→
mm/memory.c:pte_alloc()→
include/asm/pgalloc.h:pte_alloc_one_fast()→
include/asm/pgalloc.h:pte_alloc_one()→
arch/ppc/mm/init.c:early_get_page()→
include/linux/bootmem.h:alloc_bootmem_pages()→
mm/bootmem.c:__alloc_bootmem()→
mm/bootmem.c:__alloc_bootmem_core()
取りあえずここまで。ふぅ、深いのう。因みに、i8259_init()入り口
から出口まで6526命令。その殆どをメモリのセットに
費やしている感じのようです。順路を見ていると、
mm/以下の共通ソースを通っては出てアーキテクチャ依存に
なったりまた共通ソースになったりと、括り出し方が微妙。
この辺、ちょっといじると、すぐ動かなくなりそうな予感が
します(^^;
日付け越え前に帰着。
先日の追っかけの続き。
ioremap()の実体である所のarch/ppc/mm/pgtable.c:__ioremap()を
見てみた所、mem_init_doneの状態によって、vという変数の内容を
切りかえるようになっていて、今回のトレースでは
「 v = (ioremap_bot -= size);」が実行されていました。
ioremap_botはグローバル変数の様で0xf0000000になっていて、
sizeは__ioremap()の引数で1byte、結果としてv=0xefffffffに
なっています。で、map_page()ページをノンキャッシュ領域
に予約した後、「return (void *) (v + (addr & ~PAGE_MASK));」
が戻り値となっているようです。addrはioremap()の引数なので
0xbffffff0、PAGE_MASKは(4096-1=0x00000fff)、従って
戻り値は0xeffffff0となる様です。ん〜〜?あってるじゃん(汗;
いやいや、よく見てみると、map_page()の使い方は
「map_page(v+i, p+i, flags);」となっていて、p(PhysicalAddress)
をv(VirtualAddress)にマッピングし直して、ioremap()の引数
で指定した物理アドレスをmap_page()の成功により仮想アドレス
にすりかえてioremap()の戻り値として返すという感じがしてきました。
となると、map_page()によるアドレス変換テーブルへの登録が
うまくないか、ppcsimのページアドレス変換がチョンボっている
かのどちらかという気がしてきました。後者の確率が高いと思われ(^^;
逆に何故にこのようなことをやっているのかと思ったのですが、
MPC860系とMPC6xx/7xx/7xxx+MPC10x系とのIOマッピングの違いを
仮想IOマップを介する事でIO領域の割りつけ差異を吸収しよう
という考えなのでしょうか?
日付け越え。
カーネル2.4.17の再コンパイル。取りあえず終了してppcsim上で実行
した所、データアクセスエラー。しかも2.4.19よりも早いタイミングで
ずっこけ(T_T)。うーむ、gcc-3.2.1のppcクロスコンパイラでは正しく
コンパイルできないのか?
少し追っかけ。
ioremapは積読されていたLINUXデバイスドライバ(二版)によると、
IO領域としてアドレス空間を予約する為の操作で、指定した物理
アドレス空間を直接アクセスする場合に使用する模様。あぁ、
つまんで読んだ時の事を徐々に思い出した気分(^^;。で、
arch/ppc/kernel/i8259.c:i8259_init()をトレースしてみると、
0xbffffff0から1バイトを予約しようとしている様子。
ここで疑問。一つは何故0xbffffff0なんだっけ?もう一つは
ioremap()の戻り値が0xeffffff0で、それが*pci_intackに
入っているのですが0xbffffff0は何処に?
まず、0xbffffff0を予約しようとしている部分を探すと、
arch/ppc/kernel/prep_setup.c:prep_init_IRQ()内で
i8259_init()が呼ばれており、その引数として
0xbffffff0がハードコーディングされていました。
static void __init prep_init_IRQ(void) { int i; if (OpenPIC_Addr != NULL) openpic_init(1, NUM_8259_INTERRUPTS, 0, -1); for ( i = 0 ; i < NUM_8259_INTERRUPTS ; i++ ) irq_desc[i].handler = &i8259_pic; i8259_init(0xbffffff0); /* PCI interrupt ack address for MPC105 and 106 }
昼過ぎ起床。
ちょっこりお出かけ。2ケツイ。
Cygwinのsnapshotをコンパイル。どうやらls -ltrでハングる現象は
直っている模様。
ゴロゴロしていると寒くて死亡。エアコンは動作しているのですが、
畳から1m辺りを境界に暖かい空気と冷たい空気の層に分かれている
感じになっているようだったので、押し入れにしまってあった
小型の扇風機を取り出して空気をかき混ぜてみました。気のせいか
ゴロゴロしてても耐えられるようになった気分。
CygwinのMailingListでCygwinのマスコットについて書かれていました
が、あのキャラはどうかと........
Linuxカーネルパラメータにfloppy=というのがあって、デバッグ用の
メッセージ出力を行なう事ができる様なのでppcsim実行で試して
みました。でも、一行
「floppy0: Setting flag 0x1」というのが増えただけで、
大して細かい事は判らず。
で、先日、カーネルを再コンパイル後、ppcsimで実行するとデータ
アクセスエラーで死亡する件の原因がなんとなく判明。
ずっこけザマは次のような感じ。EA=0xeffffff0 をバイトロード
した所、アドレス変換ONではこの実効アドレスはMMUマッピングされていない
アドレスで、結果データアクセスエラーになるというものでした。
この0xeffffff0が何なのかというと、pci_intackというポインタで
指されており、どうやらpciの割り込み返答レジスタの様です。
で、コードが以下の様になっていました。
less -N arch/ppc/kernel/i8259.c ----- 24 /* Acknowledge the irq using the PCI host bridge's interrupt acknowledge 25 * feature. (Polling is somehow broken on some IBM and Motorola PReP boxes.) 26 */ 27 int i8259_irq(void) 28 { 29 int irq; 30 31 spin_lock/*_irqsave*/(&i8259_lock/*, flags*/); 32 33 irq = *pci_intack & 0xff; 34 if (irq==7) { -----
20 int i8259_irq(int cpu) 21 { 22 int irq; 23 24 spin_lock/*_irqsave*/(&i8259_lock/*, flags*/); 25 /* 26 * Perform an interrupt acknowledge cycle on controller 1 27 */ 28 outb(0x0C, 0x20); 29 irq = inb(0x20) & 7;
昼過ぎ起床。休出。
Linux JF(Japanese FAQ) Project
のページを何気に眺めていると、BogoMIPS値について書かれた
文書がありました。このBogoMIPSというのがppcsim上で動かして
いたときに、何なのかイマイチよく判らなかったのがすっきり
判明。あと、
女性をLinuxに招くためのHOWTOとか謎の文書があったり(^^;
この文書にあるようなプログラマ的に優秀な女性でなくても、
顔出しOKな美少女のLinux素人でも良いような。
「なんだかせっていがいっぱいあってむずかし〜よぉ〜」
→(デフォルト設定値変更)→
「わーい、とってもかんたんになって私でもつかえるようになりました(^o^)
どうもありがとう」
みたいな。
海外ではどうか知りませんが、日本のUNIXオタクは
ショボい質問をすると、すぐにFAQを読めと言う感じがするので、
前述のサイクルを回してFAQで聞かれるような設定の質問などが
発生しないような改善を行なっていくのはアリかも。
スカイハイの原作本が売っていたので買ってみました。
ドラマはほぼ原作通りの様なのですが、個人的には
イズコの心理描画とかあるドラマの方が面白いと
感じました。あと、大抵の場合、原作よりも実写の方が
見た目の描画がライト気味になったり、チープになったり
する様に思うのですが、
スカイハイの原作の絵はリアルで結構恐いのですが、
それ以上にドラマの方が見た目の描画がリアルでなまめかしい
と思いました。
速報で部品が発見されたとか出たので、何の
事やらさっぱりわからなかったのですが、
スペースシャトルコロンビア号が着陸フェーズで空中分解した
らしい。
ポリー・ハッター。ハリー・ポッターのパクリ本。
ロシアの作家が書いたもので、結構売れているらしい。
ロシアには著作権保護の考えが一般にあまり浸透していない
ようで、こういったパロディ本や違法コピーメディアを
結構普通に売り買いしているらしい。ふーん。