HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1129
ついついOSが変わると処理が遅くなります。6解決


ついつい

リンク

2014/11/29(Sat) 17:15:13|NO.66231

HSPDXでシューティングを作っていますが、
恥ずかしながらずっとHSP3+windowsXPで制作しています。

62FPS程度で安定動作し、ステージ1が形になってきたので、
他のPC(OS)で実行テストしたところ、win7、win8でも20から40FPSの
ガクガクとした動作になってしまいます。

awaitやes_syncの値を変えても同じでした。
また、他のごく単純なスクリプトでテストしても、やはり重くなります。
エディタ、というかHSP3.4を使っても同様です。

質問の内容的にソースは貼らずに質問してしまいますが
同様の症状は発生しているものなのでしようか?こ
また、こういった現象に対処法はあるのでしょうか?

皆さんのご意見を聞かせていただけると助かります。
よろしくお願いします。



この記事に返信する


kanahiron

リンク

2014/11/29(Sat) 18:00:17|NO.66234

HSPDXは内部的にDirectX7のDirectDrawを使っていますが、WindowsVista以降ではソフトウェアエミュレーションとして実装されているため(?)極端に遅くなる環境があるそうです
参考 :http://hsp.tv/play/pforum.php?mode=pastwch&num=41575
これはどうしようもないですね…



暇人

リンク

2014/11/29(Sat) 20:37:05|NO.66239

これでも重い?

#include "hspdx.as" wx=640:wy=480 es_ini ; system初期化 es_screen wx,wy,32,,1,1 ; スクリーン初期化 if stat :end chrsx=64:chrsy=64 ; キャラクタのサイズを指定 buffer 3 picload dir_exe+"\\sample\\hspdx\\testchr.bmp" es_buffer 0,2,0,,1 //テクスチャ使用 if stat :end es_size 64,64,60 es_pat 0, 0,64 es_area -64,-64,wx,wy gsel 0,1 es_cls es_sync wait 100 repeat 200 a=rnd(64):spd=rnd(10)*25+250 x=rnd(640):y=rnd(480) es_set cnt,x,y,0 es_adir cnt,a,spd es_flag cnt,$6200 loop *gmain fps_cnt++ color 0,60,40 es_exboxf 0,0,wx,wy stick ky,$1f if ky&$e0 : goto *owari ; [ESC]中断チェック es_draw pos 0,0:es_mes "fps="+fps es_sync 16 ; 1/60? await 0 if t ! gettime(6) {fps=fps_cnt:fps_cnt=0} t=gettime(6) goto *gmain *owari end



hokio

リンク

2014/11/29(Sat) 22:28:17|NO.66243

私の経験だとXP時に作ったものがWIN8で動かすと極端に遅くなります。
条件としてはes_screenのp5が0(フルスクリーンモード)かつes_syncのp2が0か1のときにおこります。
ウインドウモードにするかes_syncのp2を2にすると高速に動作します。
ほかの人の環境でどうなるかわかりませんが参考までに。



ついつい

リンク

2014/11/30(Sun) 12:22:00|NO.66244

暇人さまありがとうございます。
このソースで試させていただきましたが、なるほどウインドウモードでは
61フレーム出ていました。
同じように自分のソースで、await、es_vsyncを変更して試してみましたが、
以前と同じように40FPS程度でした。内部処理の数の違いでしょうか?

hokioさまありがとうございます。
ウインドウモードでes_syncのp2を2にしてみましたが、変わりありませんでした。

引き続き、テストしてみたいと思います。


この現象はhgimgやその他の画像処理系プラグインでも同様の結果になるのでしょうか?
今後Win7以後の環境で動作させるにあたって、もういっそHSPDXFIXを使わずに、
直接描画をすべきか…どういう方向性にすべきか、迷いますね…

vista以降でHSPを使ってシューティング開発している方はどうしてるのかな…



暇人

リンク

2014/11/30(Sun) 12:58:29|NO.66245

NO.66239ので重くなるなったりCPU使用率が凄く上がったりしなければ
>同じように自分のソースで、await、es_vsyncを変更して試してみましたが、
重要なのはそこじゃなくて
DirectDraw系の描画命令を使わないようにする事

es_screenのDirect3D使用をONして
全てのes_bufferのテクスチャ使用をONにしたり
es_clsをes_exboxfにしたり
es_copyをes_excopyにしたり
es_mesは使わないようにとか

>この現象はhgimgやその他の画像処理系プラグインでも同様の結果になるのでしょうか?
重いのはDirectDrawでDirect3Dじゃ無い



ついつい

リンク

2014/12/1(Mon) 00:07:05|NO.66260

暇人さま
>es_clsをes_exboxfにしたり
>es_mesは使わないようにとか

目から鱗とはまさにこのこと!
上記2点を変更しただけで、劇的に安定しました。

全般的に組みなおすようなことにならなくて本当に助かりました。

ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.