Tags : PC

このTagsの登録数:30件 表示 : 16 - 20 / 30

Jan 20, 2008

WinXP@VirtualBox/2

ポスト @ 1:27:29 | PC

先日のとは逆に,VirtualBox/2でWinXPを動かしたときのムービーなぞ置いてみる。OS/2キャプチャ環境の制約によりフレームレートが1.5fps程度なので,見づらいとは思いますけどご容赦。

Vbox2-XP.avi (640*400 XviD 2MB++)

まだゲストのXPから外にネットワークが通じないので大した遊びも出来ませんけど,.NET Framework 2.0ベースの割と重めのアプリが普通に動いております。でも…Windowsキーは効かないし,やっぱり機能の多いOSをホスト側にするのが正しい道だと思うなぁ。

Jan 06, 2008

MCP2@VirtualBox

ポスト @ 0:49:50 | PC

ちょいとVirtualBoxでOS/2を動かしたときのムービーなぞ置いてみる。冬コミでCD-ROMに入れたヤツの低解像度版ですけどね。

VboxWPS.avi (512*384 XviD 8MB++)

ちなみにホストはCore2Duo E6300なマシンにVista Business。ゲストは見ての通りOS/2 MCP2+XRJC004。使用したVirtualBoxは1.5.2のWin-x86用だったかな。フレームレート調整したので再生速度はもしかして1.2倍くらいに高速化されちゃってるかもしれませんけど,それを割り引いてもご覧の通りサクサクです。

Jan 30, 2007

WO!

ポスト @ 22:29:07 | PC

今日は職場でISO9001の内部監査があり,昨年秋から担当委員を拝命した自分が被監査役だったものでちょいと精神的に果てちゃいまして,残業もほどほどにとっとと帰宅しました.で,思わず時間が出来たものですから,昨夜「週末までお預け」とか書いた筆も乾かぬうちに,OS/2マシンにRadeon X300を装着しちゃいました.てへっ.

結果からいうとまっすぐゴーばっちりグーでございますよ.

SNAPはもちろん1920x1200x32bppx60Hzでそのまま使えますし,肝心のビデオ再生のほうも,WVGUIでSNAPプラグインでの出力はもちろん,X300(ID=1002:5B60h)もしっかりサポートのWarpOverlay!最新版でWO出力もなんら問題なくイケました.

…ああ,なんて素晴らしい再生品質なんだWarpOverlay!

SNAP出力は画質的には満足なものの,やはりフレーム書き換え途中が画面上に見えちゃうんですよね(VSYNC同期をやっていないんでしょうかね?).WO!はその点も抜かりなく,結果として「動画を見ていて再生品質に気になる点が何もない」という,いまどき至極当たり前のようでいて実はなかなかOS/2では得難い視聴環境を提供してくれます.Out to desktop機能を使えばこうしてブラウザで遊びながらの壁紙モード再生も出来ますしネ.

余談として,先のコミケでこっそり頒布したSDiLe/2(謎)の最大化ウィンドウ表示も試してみましたが,画像のフェードイン/フェードアウトがi945Gより一段階スムースのようです.時代遅れで低価格品のX300とはいえ,やっぱり買って良かったな,と.

Jan 29, 2007

勇者Radeooon

ポスト @ 23:57:38 | PC

昨年晩秋,榊さんが「いっせいに…」ってつぶやくくらいにガッサリと我が家のPCの臓物を入れ替えたんですが,OS/2マシン用にチョイスしたマザー(ASUS P5LD2-VM SE)はやっぱちょっと失敗だったかもしれない.先のらぶりぃ本にもちょびっと書いたんですが,オンボードデバイスを散々吟味した上で買ったのに,その肝心のオンボードデバイスが役に立たないのですよ,奥さん.

  • オンボードGbE 82573L(8086:109A)がOS/2から使えない
  • i945G(GMA950)はSNAPでオーバーレイが効くが,WVGUIから使えない

前者はBUFFALOのRTL8169なPCI GbEカード+chagrinさんGomi NICを用意する事で回避したのですが,後者はそのままなんとかなりそうで,でもダメー.ふつーにダメー.WVGUIでビデオアウトプットにSNAPプラグインを指定して動画を再生させようとすると,システムを10秒くらい固めた挙げ句,WVGUIが何も言わずに落ちます.SNAPのオーバーレイがフルサポートじゃない(gactrlのオーバーレイテストでいくつかの項目が未サポートと言われる)から…なのかなぁ?それでもまぁビデオアウトにDIVEを指定すれば画面更新速度的には全然問題なくフルスクリーンムービーが楽しめるのですが,なんかね,色がね…32k色っぽいというか,まっすぐゴーなほっぺたが年輪巻いちゃうというか.

MPlayerの移植版が出たのでちょっと期待したんですけど,こちらも画質的には同等以下で,さらにSDL的全画面のめんどくささ(うちはワイドモニタなので,4:3な全画面をきっちり4:3で表示させたいときはいちいちそのアスペクト比をモニタのメニューから指定し直さないといけない)もあって,ちと本格使用には耐えません.

てなわけで,旧Radeon9600+WarpOverlay!環境と同等とまでとは言いませんけど,少なくともSNAPオーバーレイでWVGUIを楽しめるように,ビデオカードを増設する事にしました.SNAPが使えるPCIeなカードはそう多くないので,市場から無くなる前に買っといた方がよかんべぇ,って理由もあります.選んだのは無難にASUSのRadeon X300SEなやつ.通販で購入して今日届きましたが平日はPCを弄る暇が無いので装着は次の週末までお預けです.結果はまた後日.

K3100004.jpg

ところで最初に箱のイラストを見たとき「少佐?」って思ったのはヒミツだ.(よく見りゃ全然似てない)

Aug 25, 2006

Qt3 for OS/2 #2

ポスト @ 12:04:18 | PC

引き続きQt3ライブラリ検証.

昨日詰まったビルドですが,とりあえずconfigureでStaticリンクではなくDynamicリンク(DLL利用)を選択したら無事最後まで通りました.

さてTutorialsとExamplesを一通り試してみたところ,Tutorialsは全部問題なく動きますが,ExamplesのうちいくつかがSYS3184を発生して落ちます.たとえばxframe.exeで「Select font...」ボタンを押した瞬間にSYS3184,i18n.exeでjpwを選んでOKしてもSYS3184,listviews.exeは起動した瞬間にSYS3184.これらがPsiがハングアップする原因と同一かどうかは判りませんが,少なくとも現状のQt3ライブラリは日本語環境にてなにかしら問題があるのは間違いなさそうです.

で,もうちょっと突っ込んで見てみたいわけですけど,はて,どうすりゃええのん??VisualStudioとかデバッガが存在する環境でのデバッグは仕事柄さんざんやってるんですけど,OS/2でのデバッグなんて自作CGIのprintfデバッグしかやったことないモンで,一般的にどうすればいいのか皆目見当も付きません.藁をも掴む思いでVisualAgeC++ 3.6.5を導入し,そのデバッガを起動してxframe.exeを食わせてみたら…

ソースコードデバッグ出来るやん( ´∀`)

変数の値とかは見れませんが,ソースコードとリンクしてのスタックトレース,ステップ実行等が問題なくできますし,SYS3184の例外もばっちりキャッチ出来ました.gccビルドのプログラムですけどobjにコンパイルしてilinkでリンクしているからVACPPでもデバッグ出来るのカナ?よくわかりませんがまぁ事足りたんで深くは追求するのはやめておきますw

で,問題のSYS3184発生箇所はqstring.cpp内の関数 qt_os2QString2MB() にありました.

QCString qt_os2QString2MB( const QString& s, int uclen )
...
    while ( ucLeft ) {
        rc = UniUconvFromUcs ( uo, &ucPtr, &ucLeft, (void**)&mbPtr, &mbLeft, &nonIdent );
        if ( rc == ULS_BUFFERFULL ) {
            size_t mbDone = mblen - mbLeft;
            size_t ucDone = uclen - ucLeft;
            // assume that ucLeft/mbLeft is an approximation of ucDone/mbDone
    --->    mblen = mbDone + (ucLeft * mbDone) / ucDone;
            mbBuf.resize( mblen + 1 );
            mbPtr = mbBuf.data() + mbDone;
        } else if ( rc != ULS_SUCCESS ) {
...

SYS3184はゼロ除算例外なので,ucDone が 0,つまり UniUconvFromUcs() 後に ucLeft = uclen ってことですね.ここのif 部分は

UniUconvFromUcs()でUCS文字列をネイティブ文字コードに変換するが,処理途中で出力バッファを使い果たしたら,処理済み入力データの分量からあとどのくらいバッファサイズを増やせばいいのか計算して,バッファを拡張し処理を継続する.

ってなことをやりたいようですが,出力バッファは先に

size_t mblen = uclen;
QCString mbBuf( mblen + 1 );

という風に定義されており,DBCS文字相手では最初から分量が不足しているようです.結果,UniUconvFromUcs()は1文字も処理せずULS_BUFFERFULL(バッファフル)を返し,追加分量計算で処理済み入力データが0なのにそれを除数に使ってしまってゼロ除算例外,と.

試しに

size_t mblen = uclen * 2;
QCString mbBuf( mblen + 1 );

と2倍の容量を出力バッファに与えてやったらSYS3184は発生しなくなりました.が,DBCS文字は化けてたり文字の左半分しかレンダリングされていなかったりで,一時の(今も?)Odinみたいなレベルです.DBCSサポートに関しては根本的にブラッシュアップしないとダメそうです.

ここまでの検証結果をTracに報告して今日は終了.