広告消し
カテゴリ: 雑記
1ヶ月記事書かないと出る広告でちゃってるので消すために記事投下。


今はもっぱら卒業論文作成。毎日帰宅するのは深夜0時ほどでネタづくりはほとんどできません。
ぼちぼち絵とか書いてますが、投下するのはpixivになるとおもうので、ブログはまだまだ放置気味になるのかもしれないです。


Macでも東方の記事がぼちぼち広まってるようですね。
アクセス解析みたらいろんなとっからリンクはられてて驚きました。
記事以前から入れ替えはさかんに行われているイメージがなんとなくありましたが、WineBottlerからってのはあんまりなかったようですね〜。
Mac購入してすぐに書いた記事なんで手順には責任もてません;ファイルの構成も全然わからないときに書いたものです。プログラムのアンインストール関連はもっとしっかりした方法でやってください。あの通りやると多分あぶないです。。
あくまでテキトーに入れ替えて動いたっていうパターンをそのまま書いたにすぎません。必要以上の手順が書かれていると思います。以前のMikuinstallerのフォルダを削除〜とかフォルダ4つコピーとか。適当です。
まずフォルダ削除は不要だと思います。そのままでWine入れ替えても普通に使えるはず。DX9を入れていたなら再インストールも不要になるはず。4つってのもSharedSupportフォルダ内のフォルダを全部いれかえたかっただけ。重要なのは多分binフォルダ内部(includeフォルダなんていらんと思うなぁ)、特にwineの実行ファイル類。
もっと検証して入れ替えるべきだなぁ、と今は思う。今度もっとちゃんとしたの書きたいところです。



卒研ではプログラム書いてますがC++から少し離れてみて、基本に立ち返りC++機能を使わないC言語でもいろいろ書いてみてる。変数を関数とかの一番上に書く〜とかそういうのを今一度きっちりやってみる。C++はどこでも変数宣言できるけど、だからといってあちこちに変数宣言を書くことがいいことなのか、それとも悪いことなのか、変数宣言を書いた位置によってなにが変わるのかをきっちり確認したい。(意味ないけどね!)
メモリmallocとか。mallocの仕組みってあんまり理解してないなぁ。必ずfreeによって解放しなきゃいけないそうだけど、freeを呼ぶときにそれがmallocで確保されたものでまだ解放されてない〜とか中身ではどやって解決してるんだろう(アロケータってどうなってんだろう、ぐぐろう)。mallocを使えば1次元配列の要素からポインタとってポインタ型の配列にいれて2次元配列として使えるけど、そうした場合はmallocで確保した配列の先頭のポインタをfreeに渡せばポインタ型配列以外はちゃんと解放されるんだろうか(確認したらされてるような)。そもそも1次元配列を細切れにして2次元配列を作る意味はあるのだろうか(二次元配列のコピーが一回のmemcyでできるけど、それが果たしていいことなのか)。なんだか確認しないといけないことがたくさんあるなぁ。javaだと大して気にもしてなかったことが気になるようになってしまった。(意味なさそうだけど。)



GeForce9400MだけどCUDAもやってみた。ものによってはCPUよりもものすごくはやいはやい。
ただメモリ転送がくそ遅いようで、GPUメモリ不足から頻繁にデータ転送をしなくてはいけないような大容量データを扱うものでは今のGPUではCPUよりも遅くなってしまう。GPUに転送して、そのデータをGPUでイジリ続けられるようなプログラム(それこそグラフィック系とか、2次元のデータ解析とか)ではかなーりはやくなると思う。CUDAコアがものすごく少なくてメモリ転送がびっくりするほど遅いGeForce9400Mでも早くなるのだからTeslaとか使うと、、、ごくり。


うあー、もうこんな時間だー。寝るー。
2010-01-26 02:41 |  PageTop↑
GIFエンコーダ再び
カテゴリ: その他プログラム
どもです。年末ってことでいつも以上に忙しくなっています。
これこそが忙しいということなのか、単純に時間の使い方が悪いのかわかりませんが、
いろいろなことの締め切りが迫ってきてあたふたしております。


卒研もいつのまにやら共同研究(2名でひとつのテーマを研究)になっており、
しかもどういうわけか研究の方は全部オマエがやれ!と先生から言われてしまい、
卒研Extraモードが始まってしまいました。プログラムがメインといってもいいテーマなので、作成自体は日頃iアプリを作っていたおかげかサクサク進むものの、やっていることの意味(科学的な何か)をなかなか理解できず四苦八苦中。
院にいくのならむしろプログラムよりもそっちの方が大事なんだし、今の内に理解できるようになりたいところ。


で、タイトルに書きましたがGIFエンコーダーをまた作ってみました。
研究テーマ中に必要かもしれない!っていうこじつけで。。。(圧縮!アニメーション!などなど)

思えばあれをつくったのももう1年以上前。(これ
完成はしたものの圧縮速度が遅くあんまり使えないものになってたと思います。
しかしそれも半年前にHDDのデータクラッシュでデコーダ部を残して他消失。以後めんどくさくて触れてませんでした。


以前のはiアプリ用ってことでjavaで書きましたが今回はC++。
ネットと以前のデコーダのソースを見ながらいろいろ思い出つつ制作。
やはり一度つくったものであると詰まるポイント(でどう対処すればいいか覚えているもので
さっくり一日でできました。(アニメーションGIF作成機能付き)

以前のはクラスを増やしたくないっていう今思えばあんまりよろしくない選択で辞書テーブルの作成方法がいちいちバイト列全部をちまちま比較していくというまったくもって非効率なものになっていましたが、今回はLZW圧縮の解説でよくみるようなツリー構造の辞書テーブルを作成させることで大幅に速度が改善されました。

ピクセルデータから1バイト読むごとにツリーを1段階たどるという流れ。
ツリーの末端に達したら要素を追加しデータを出力。追加された1バイト値が根にあるツリーに移動し、再び1バイト読み込み1段階たどるということを繰り返すのみです。

以前の方式に比べると体感で10倍くらいの改善がされてますが、他ツールでgif化したときよりも圧縮率が悪いのが気になる。(gifは256色において可逆圧縮であるが圧縮率改善のために人間の目にはわからない程度に数10色減色するツールもある模様。これだと非可逆圧縮。)
辞書テーブルのリセットタイミングなんかの調整とかで圧縮率改善できないかなぁ。
2009-12-26 05:23 |  PageTop↑
卒研な日々
カテゴリ: 雑記
もう一ヶ月以上も更新してなかったんですね〜。

この一ヶ月は基本的に卒研。卒研の内容に関してはあまり多くのことは書けませぬ。

iアプリ関連では周囲でぷよぷよ(同じ色4つつなげたら消える落ちゲー)がはやり始めたので練習用に携帯用とことんぷよぷよを作ったくらい。iアプリではあるものの、個人用ということで効果音を原作から抜き出したりして使っちゃってるここで公開できそうなものじゃないです。
また他にもサークルの大会なんかが近くて、まとまった時間をとりにくかったのでブログを頻繁に更新するためのネタができにくかったですね〜。

今月の更新は次は大晦日くらいになるかも。。
今月中はとりあえず研究室関連で大忙しで不可能。

正月明けも今度は卒論書かないとだめなんできびしい感じ。。。


2月中旬を超えればまた活発に更新できるに違いない。。
2009-12-13 04:03 |  PageTop↑
Macでも東方
カテゴリ: 雑記
Macでもやっと原作東方動かせたー!
ちゃんといつもつかっているPSコン使って操作もできる。
これは大変便利ー。いちいちWindowsPCを起動しなくて済む。


□動作状況(13インチMacBookPro)
・紅魔郷⇒fpsに60fpsリミットがかからず倍速程度で動作。
・妖々夢⇒テキスト背景が黒く見える。問題なくプレイ可能。
・永夜抄⇒テキスト背景が黒く見える。問題なくプレイ可能。
・花映塚⇒テキスト背景が黒く見える。2P側に背景フォグがかからない。CPUに余裕があっても最大50fpsしかでない。
・文花帖⇒テキストが透明文字、文字淵のみの表示。問題なくプレイ可能。
・風神録⇒テキストが透明文字、文字淵のみの表示。問題なくプレイ可能。
・地霊殿⇒テキストが透明文字、文字淵のみの表示。CPUに余裕があっても最大50fpsしかでない。
・星蓮船(体験版)⇒テキストが透明文字、文字淵のみの表示。CPUに余裕があっても最大50fpsしかでない。


すごくたくさんのサイトでMacで東方をする方法は紹介されていますが方法を一応メモ。


□用意するもの
Mikuinstaller
最新版Mac用Wine(Darwine)
DirectX9 オフライン版
USB Overdrive(任意)
・MSゴシック(msgothic.ttc WindowsのFontsフォルダから。任意)
とりあえず東方するのに必要最低限のものは無料でそろう。

MikuinstallerはWineというWindows互換レイヤーを簡単に導入するためのツールです。
ただすでに開発は停止しており同梱されているWineのバージョンは低く、動作しないWindowsソフトが多く、東方では永夜抄までしか動作しないので、ここでは2つ目のリンク最新版Wineの内部ファイルを使ってMikuinstaller内のWineのバージョンアップを行います。
(リンクのWine単体でもMikuinstallerのようにexeダブルクリックでWindowsアプリを起動可能ですが、東方ではセーブデータを読み込めなかったり、フォントを自動でインポートできなかったりするのでMikuinstallerを使うのが良さげ。)


1.フォントのインストール
MSゴシックのフォントファイルをダブルクリック後、開いたウィンドウのインストールボタンをクリック。これでMacのシステムにフォントがインストールされ、Mikuinstallerで起動したWindowsアプリでWindowsでの動作と同じMS UI Gothicが使用可能になり、すごく見やすくなります。インストールしなくても動作はしますが、レイアウトが崩れたりして大変見にくくなります。

2.Mikuinstallerに最新版Wineを入れる
(Mikuinstallerをすでにインストールしている場合は古いのを削除、作業領域も削除しとくといいかも。(ユーザ)/ライブラリ/Application Support/Mikuinstallerを削除。)

Mikuinstallerのアプリケーションファイルをとりあえずデスクトップに展開。
WineのリンクからWineBottlerComboをDL後、中のWineのみをデスクトップにコピー。

Mikuinstallerを右クリック、パッケージ内容を表示。
Contents/Resources/Wine.bundleをさらに右クリック、パッケージ内容を表示。
Contents/SharedSupportを開く。

Wineを右クリック、Contents/Resourcesを開き、bin、include、lib、shareの4フォルダをコピーし、先ほどひらいたMikuinstallerのフォルダにペースト。ちょうど4フォルダを上書きしたことになる。


3.Mikuinstallerのインストール
Mikuinstallerをアプリケーションフォルダに、ぽいっっっ!


4.バージョンの確認
Mikuinstallerをクリックし起動。特にウィンドウはでないがバーの表示はちゃんとかわってる。Mikuinstaller⇒環境設定⇒winecfgをクリック。するとWindowsな表示の設定画面が洗われる。このときフォントを入れた場合はしっかりとWindowsらしいフォントになってるはず。Wineタブを開くとWineのバージョンを確認できる。1.1.32になってれば成功。


5.設定の変更
その画面で画面タブを開く。
仮想デスクトップをエミュレートにチェックを入れる。
これはウィンドウズっぽいデスクトップ環境ごとエミュレートする機能のようで、次回起動からその中にWindowsの窓が表示される表示になる。ここにチェックをいれないと風神録以降の東方は動かない。(Windowsのほうの窓を閉じるとアプリ終了。)


6.DirectXのインストール
オフライン版DirectXのインストーラをダブルクリック。(もし関連づけされていなくてダブルクリック起動できない場合は右クリック情報をみるからMikuinstallerに関連付けする。)
まずはファイルの解凍が行われる。適当にデスクトップにフォルダを用意してその中に解凍するといい。なおWindowsアプリ中のCドライブはWineが設定している内部的なCでシステムがインストールされているHDDのルートではない。
解凍が終わったら次はそのフォルダの中にあるexeをクリック。ウィンドウに表示される手順通りインストール。


7.東方の起動
Windowsのとき同様にth○○.exeをダブルクリックで起動できる。
とりあえず風神録が起動できればWine差し替えが成功していることになると思う。


8.USB Overdrive
ただこのままではジョイパッドは反応せず、キーボードでやることになってしまう。
ここでドライバ不要のコンバータを使用するためにUSB Overdriveを使う。
試用版は無料で使える。制限は多分設定する前に10秒間待たされるくらい。東方オンリーなら設定変更は頻繁には不要なので試用で十分かも?
USB Overdriveはジョイパッドなどでキーをキーボードの文字入力やマウスカーソルを動かすためのソフトなのでそのままでは使えない。
幸い東方はキーボード操作ができるのでここをうまく使う。
ショットに使いたいボタンをzキーに、ボムをxキーに…など割り当てれば間接的でもジョイパッドを使ってゲームができるようになる。キー配置は東方のマニュアルに書いてあるのでそちらを。(この方法だと東方のゲーム内でのキーコンはまったく効かない。)



以上です、もしこれみてWine導入してみた人はおつかれさま。
ちゃんとできたでしょうか。

地霊殿以降のfpsが上がらない問題に関してはひょっとしたらスペック不足かもしれないのでiMacとかなら問題ないかも。
東方以外にももちろんさまざまなWindowsアプリが動作します。
EDGEとかも普通に動作するし、JaneStyleも動いたり、Windowsから移行してきたけどあのアプリがどうしても!って場合は試してみるといい。
MacのFlashプレイヤーが重いので試しにWin版Firefoxを入れて試してみたけど、全然そっちの方が重かった。。。

2009-10-30 03:39 |  PageTop↑
プロフィール

書いてる人:つん(大学4年生)

まったりのんびり。書いてる人の息抜きブログです。

iアプリ公開中↓
『はい、どーも!!物置。2nd』

多分連絡先↓
metal_tsun@infoseek.jp

月別アーカイブ
バロメーター
iアプリ歴:2005年2月から今まで。
3DCG歴:2005年8月から今まで。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から今まで。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月から今まで。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
ブログ開始日2005/10/11


ブログ内検索