-------------------------------------------------------------------------- 【 ソフト名 】パズドラルート解析君GPGPU版 【 バージョン 】1.30 【開発者/協力者】企画プログラム、pippi。デバッグ、ジュンキンス。グラフィック、アド吉。 【 使用言語 】HSP、C++、HLSL 【 必要環境1 】WindowsXP以降(98/me/2000などは動作不能) 【 必要環境2 】DirectX9.0c以降 【 必要環境3 】DirectX9.0c対応、シェーダーモデル3.0対応グラフィックボード GeForce 6 Series以降 (GeForce 6 Series GeForce 7 Series GeForce 8 Series GeForce 9 Series GeForce 100 Series GeForce 200 Series GeForce 300 Series GeForce 400 Series GeForce 500 Series GeForce 600 Series) Radeon R500 世代 (X1xxx)以降 (R500 世代 (X1xxx) R600 世代 (HD 2xxx/HD 3xxx) R700 世代 (HD 4xxx) Evergreen 世代 (HD 5xxx) Northern Islands 世代 (HD 6xxx) Southern Islands 世代 (HD 7xxx)) Intel Graphics GMA X3100以降 (GMA X3100 GMA X3500 GMA 4500 GMA X4500 GMA 500 GMA 3150 GMA 3650/3600 HD Graphics HD Graphics 2000/3000 HD Graphics P3000 HD Graphics 2500/4000) 【 必要環境4 】最大テクスチャサイズ4096×4096以上 【 必要環境5 】VRAM 700Mb以上 【 動作確認済OS】Windows 7 64bit 【 取扱種別 】フリーソフト 【 内容 】ベンチマークソフト、ゲーム攻略ソフト 【 HP 】http://blog.livedoor.jp/toropippi/ -------------------------------------------------------------------------- ■概要 これはパズドラのパズルの部分のコンボルートを解析するという名目でつくられたグラフィックボードの能力を測るベンチマークソフトです。 計算にはGPGPUの技術を使用しています。 GPUの計算部分はDirect3D 9よりHLSL(sm3.0)(プログラマブルシェーダ)を使っています。 CPUの計算部分は主にC++、画面表示などはHSPで作られています。 このソフトではGPUの処理速度のみならず、GPUメモリ〜CPUメモリの相互転送速度もベンチマーク結果に影響してきます。 「GPU time」も少なからずCPUの速度、メインメモリの周波数に左右されます。 また、プログラマブルシェーダで書かれていると言ってもシェアードメモリ(共有メモリ)を全く使っていないため、 本来のGPUのスペックをフルに引き出せてはいないという事には注意してください。 ■パズル解析としての使用方法 マウス左クリックで最初の画面のドロップをフリックできます。 キャプチャでは、iPhoneなどで撮った画像をドラッグ&ドロップで読み込むことができます。当然そのときiPhoneはパソコンにつないでください。 ■ベンチマークとしての使用方法 詳細設定では検索オプションの、解析ルート長を設定できます。 これはデフォルトで13マスで、約600万パターンの経路計算が行なわれます。 最大は16マスで、約1億パターンの経路計算が行なわれます。 経路長も設定により若干のベンチマーク結果の変化があるでしょう。 また解析するドロップの状況によって、発生するコンボのパターンが変わってきてしまうので当然のごとくベンチマーク結果も変わってきます。 なので2つのグラフィックボードの処理能力を比較したい場合、解析設定とドロップ配列は同じ条件にして解析してください。 解析し終えたら最後に解析結果が同じであることを確認してください。 当然、計算中は動画の再生、ウィンドウの拡大縮小移動など、GPUひいては画面出力に負荷のかかる作業をするとベンチマークスコアが悪くなります。注意してください。 さらに、わずかですが、同じ設定同じプログラムでもグラフィックボードの設計の違いで演算処理の答えが異なってくる場合があります。 なるべくどのような環境でも正しく動く用にプログラムは組んで有りますが、もしそのようなことがあれば私のブログにコメントください。 その時は、比較ベンチマークの項目とグラフィックボードの名前をそれぞれ書き込んでくれると助かります。 ■他のプログラムとの連携 スクリーンショットの読み込みはドラッグ&ドロップでできる一方、「ScreenShotIn」フォルダに画像データを入れるとドラッグ&ドロップしなくても画像読み込みできます。 また画像データではなく数値データでドロップ色を指定することもできます。 同じく「ScreenShotIn」フォルダに「.txt」ファイルをドロップ30個の色を以下の数値でint型配列変数(30配列)で入れると、それを読み込みます。 色と数値の対応 0 : 対応なし (エラーになります) 1 : 青 (水) 2 : 赤 (炎) 3 : 緑 (木) 4 : 黄 (光) 5 : 紫 (闇) 6 : 回復 (ハート) 7〜:対応なし (エラーになります) ファイルの名前は何でもかまいません。画像かテキストかは拡張子で鑑別されます。 フォルダ内にいれられた画像またはテキストは読み込みとともに自動削除され、その後自動的に解析が始まります。 また設定により、解析結果のルートを数値データで出力することが可能です。 ルートは、1マスごとの位置座標が0〜29の位置データの連続配列となって「kekka.txt」に出力されます。 位置座標というのは6×5マスのパズル盤の左上から「0」、右にいくごとに1増えていき、「5」で一番上の段の一番右の場所を表します。 「6」は2段目の一番左になります。 これは他のプログラムから、本プログラムで解析したルートを読み込むためにある「開発者向け」機能です。通常使用で使う機能ではありません。 (※今現在の仕様では、出力されるルートデータは本来表示される検索結果の一番上にくる経路のみとなっています。) これによって、ボタン操作なしにこのソフトを動かし続けることが可能となります。 全自動で動くプログラムなどに活用してください。 ■このソフトが起動できないという方へ 基本的に、古いPCまたはatomのネットブックなど、スペックの低い環境で起こることが多いようです。 まず "同時レンダリングターゲット数が4未満です。\nプログラマブルシェーダーは古いグラフィックカードやオンボードでは動作しません。\n終了します。" "最大テクスチャサイズが4096未満です。\nプログラマブルシェーダーは古いグラフィックカードやオンボードでは動作しません。\n終了します" と出る方は、申し訳ございません。そのご環境では動きません。 次に、「d3dx9_43.dll」がないから動かない旨の文章がでた方は とりあえず、d3dx9_43.dllでグーグル検索してください。Direct Xのインストールか、d3dx9_43.dllをダウンロードしてきてこのソフトの.exeのある階層に入れるかで解決するはずです。 ですが、そもそもこのエラーがでる環境というのはハードウェアの対応Direct Xの.Verもかなり古い可能性があり、このエラーが解決しても今度は内部エラーがでる可能性が高いと思われます。 そのような場合申し訳ございませんが、そのご環境では動きません。 次に内部エラーが出るという方。 以下にエラー番号と、その内容を記します。これはHSPエラー詳細のコピペですが、何かの解決に結びつけばと思います。 HSPエラー1 システムエラーが発生しました  「システム」となってはますが、HSPエラー2〜41として定義されてない問題が起きた場合にこれが表示されるようになってます。基本的には処理に問題がある何かしらのコーディングミスがあると考えてください。 HSPエラー2 文法が間違っています  読んで字のごとくです。HSPヘルプブラウザで命令や関数の説明をよく確認して、パラメータを間違えてないか確認してください。また、「HSP」+「(命令・関数名)」のようなキーワードで、GoogleやYahoo!で検索すればサンプルもヒットするはず。(ただ、HSP2時代のソースコードもあるので注意)  HSP拡張プラグインの命令を利用しているならば、そのプラグインのヘッダーファイル(「*.as」ファイル)をスクリプト内でちゃんとインクルード(#include命令)してるか確認を。 HSPエラー6 パラメータの型が違います  HSPには整数値型、文字列型などがありますが、命令や関数のパラメータで指定すべき「型」(かた)が間違ってます。たとえば、pos命令は整数値、または整数値が代入されてる変数を指定しないといけません。ここで「"」(ダブルクオート)で括られた文字列、または文字列が代入されてる変数を指定するとエラーです。  特に数字は注意が必要で、整数値としての数値なのか、文字列としての数値なのかを間違えないようにしてください。(int関数を使えば文字列の数字を整数値に変換可能、型をチェックできるvartype関数もある) HSPエラー7 配列の要素が無効です  配列変数がらみで何かしらの問題がある場合に表示されます。dim命令やsdim命令での、変数のバッファ確保も忘れずに(→エラー番号20)。 HSPエラー8 有効なラベルが指定されていません  ラベル名「*〜」がらみで何かしら問題があります。打ちミスなどで存在しないラベルを指定してる、ラベル指定のパラメータを忘れてる。 HSPエラー9 サブルーチンやループのネストが深すぎます  repeat-loop命令のループ処理に問題があります。ネストは「(ループの)深さ」のことです。ループを強制的に抜ける場合はbreak命令、ループの先頭に戻る場合はcontinue命令を利用し、一時的に抜ける場合はgosub命令やbutton命令(gosubタイプ)を利用します。ループ中にgoto命令やbutton命令(gotoタイプ)の処理を絶対に行わないようにしてください。 HSPエラー10 サブルーチン外のreturnは無効です  サブルーチン処理を行うgosub命令は、ジャンプ先で必ずreturn命令で処理を戻す「gosub〜return」の組み合わせが必要です。goto命令やbutton命令(gotoタイプ)の処理でサブルーチンの途中から抜けだしてしまうような誤った処理です。 HSPエラー12 ファイルが見つからないか無効な名前です  何かしらのファイル読み込み処理やフォルダ関連の処理で、指定の場所に読み込みたいファイルが存在しない場合に表示されます。 HSPエラー13 画像ファイルがありません  画像ファイルを読み込んで表示するpicload命令の処理で起こります。 HSPエラー14 外部ファイル呼び出し中のエラーです  外部プログラム(実行ファイル)を起動するexec命令に問題があり、起動実行に失敗してます。何かしらパラメータの指定ミスがあるか、無効なパラメータを指定してると考えられます。 HSPエラー16 パラメータの数が多すぎます  読んで字のごとくです。命令や関数のパラメータ(引数)の数が多すぎます。たとえば、mes命令のパラメータは1つ、pos命令はパラメータは2つです。それよりもたくさんのパラメータを指定してしまうとエラーになります。ヘルプブラウザで命令や関数の説明をよくチェックしてみてください。パラメータの区切りは半角「,」(コンマ)です。「.」(ピリオド)ではありません。  また、if命令で「{ 〜 }」の閉じ忘れでもこのエラーが表示されます。 HSPエラー19 0で除算しました  「除算」とは割り算(÷)のことで、HSPの演算表現で言うと「/」(スラッシュ)、余りを出す「\」(円記号)の部分に問題があります。たとえば『10÷0=?』のように、0で数値を割ることは数学的に不可能なのでエラーになります。  また、「/」か「\」を含む文字列を「"」でくくり忘れてる場合にも表示されます。 HSPエラー20 バッファオーバーフローが発生しました  変数の領域バッファのデータが想定したサイズからオーバーフロー(溢れる)した場合に表示されます。コップを1つ用意しといたら、そこにバケツ1杯分の水を注がれたような感じです。  変数の領域サイズをsdim命令であらかじめ確保しておくか、memexpand命令で拡張してください。 HSPエラー21 サポートされない機能を選択しました  機能として利用できない処理があります。文字列から数値を演算(減算−、乗算×、除算÷)している、パレットモードのウィンドウでgmode命令(モード3以降)のgcopy命令を行う、axobj命令のActiveXコントロールを利用できない環境、objprm命令で存在しないオブジェクトIDを指定してる、などなど原因は多数あり。 HSPエラー33 オブジェクト数が多すぎます  オブジェクトを大量に設置するような処理になってませんか? HSPエラー38 外部DLLの呼び出しに失敗しました  HSP拡張プラグイン(*.dll、*.hpi)を実行ファイルと同じ場所(フォルダ)に存在しない時に表示されます。また、拡張プラグインとその拡張命令の定義ファイル(*.as)のバージョンがずれてる場合にも起こりえます。 HSPエラー40 関数の戻り値が設定されていません  ユーザー定義関数(#defcfunc)で、用意した関数の結果を返すreturn命令にパラメータを指定していません。必ず関数そのものが結果を返すようにしてください。 HSPエラー41 関数を命令として記述しています  エラー文字列そのまんまです。HSP2時代は命令形式だったものが、HSP3では関数形式に仕様変更したものがあり、書き方が変わったものがいくつか存在します。(strmid関数、int関数、instr関数、rnd関数などなど) エラー1以外では、設定によっては動かせる可能性があります。そのような場合は下記のメールアドレスや私のブログのコメント欄にご報告下さい。 ■アンインストールのしかた インストール形式ではないので、フォルダごと削除して終わりです。 ■連絡先 efghiqippi@yahoo.co.jp ■著作権 著作権は、pippiが保有します。 ■更新履歴 ver 1.30 画像解析の精度を大幅に向上 ver 1.23 「ScreenShotIn」内に入れた画像ファイルの読み込み時にたまにフリーズするバグを改善 ver 1.22 結果画面でも「ScreenShotIn」内の検索を行うように変更。 int型配列変数を記録したテキストデータでドロップ色を設定できる機能を追加。 コンボ数が多くなる順で計算したとき、同じコンボ数でも全体攻撃ありを表示結果の上に持ってくるように修正 全体攻撃1つをコンボ数+2個分として計算する機能の削除 ver 1.21 画像認識のときスクショを直接「ScreenShotIn」に保存するとエラーが出る不具合を修正 ver 1.2 画像認識をRGB形式からHSV形式でやるようにアルゴリズムを変更 ver 1.1 モンキーランナーで全自動運用できるように特殊設定追加 ver 1.0 グラフィック更新 処理の高速化 ver α 画像認識機能追加 ベンチマーク結果のツイート機能追加 検索条件設定機能追加 処理の大幅高速化 ver β 開発開始 検索時の解析ルート長の設定機能追加