HSP¥Ý¡¼¥¿¥ë
¥µ¥¤¥È¥Þ¥Ã¥× ¤ªÌ䤤¹ç¤ï¤»


HSPTV!·Ç¼¨ÈÄ


̤²ò·è ²ò·è Ää»ß ºï½üÍ×ÀÁ

2008
0313
Shinya¸ÇÄêFPS10²ò·è


Shinya

¥ê¥ó¥¯

2008/3/13(Thu) 20:43:11|NO.14158

FPS¤ò¡¢¤Ï¤Æ¤Ê¥À¥¤¥¢¥ê¡¼¤Ç¸¡º÷¤¹¤ë¤È
>Frame Per Second¤Îά¡£Æ°²è¤Î¤Ê¤á¤é¤«¤µ¤òɽ¤¹»Øɸ¡£1Éô֤˲¿Ëç¤Î²èÁü¤òɽ¼¨¤·¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£
¤È¤¢¤ê¤Þ¤¹¡¥
#include "d3m.hsp"
repeat title "1ÉÃ´Ö¤Ë fps:"+d3getfps()+" ²ó¥ë¡¼¥×(ɽ¼¨)¤·¤Æ¤¤¤Þ¤¹¡¥"+cnt await 1 loop
¸ÇÄêFPS¤Ï¡ÖFPS¤Î¸ÇÄê¡×¤È¥°¥°¤ì¤Ð¿§¡¹½Ð¤Æ¤­¤Þ¤¹¤¬¡¤³§¤µ¤ó¤Ï¤É¤Î¤è¤¦¤ÊÊýË¡¤ÇFPS¤ò¸ÇÄꤷ¤Þ¤¹¤«¡¥
¥ª¥ê¥¸¥Ê¥ë¤ä´ûÃΤÎʪ¤ò´Þ¤á¤´°Õ¸«¤ªÂÔ¤Á¤·¤Æ¤¤¤Þ¤¹¡¥



¤³¤Îµ­»ö¤ËÊÖ¿®¤¹¤ë


As

¥ê¥ó¥¯

2008/3/14(Fri) 00:19:16|NO.14180

FPS£±£²£°¤Î¾ì¹ç¡¢

FPS£±£²£°°Ê¾å¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¡¢
GetSystemTime¤ò»È¤¤£¶£°/£±£²£°¤Î¥¿¥¤¥ß¥ó¥°¤ÇÉÁ²è¤¹¤ë¤è¤¦¤ËÄ´Àá

FPS£±£²£°°Ê²¼¤Ë¤Ê¤ë¾ì¹ç¡¢
̵»ë



Shinya

¥ê¥ó¥¯

2008/3/14(Fri) 09:01:15|NO.14197

>GetSystemTime¤ò»È¤¤£¶£°/£±£²£°¤Î¥¿¥¤¥ß¥ó¥°¤ÇÉÁ²è¤¹¤ë¤è¤¦¤ËÄ´Àá
¤½¤Î¾ì¹ç¤ÎÄ´Àá¤Ï await ¤Ç¹Ô¤¦¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡¥
¤½¤ì¤Ë¤·¤Æ¤âGetSystemTime¤ò»È¤¦¤È¤¤¤¦¤Î¤Ï¶Ã¤­¤Ç¤¹¡¥(timeGetTime¤«QueryPerformanceCounter¤·¤«»×¤¤É⤫¤Ð¤Ê¤«¤Ã¤¿)



Shinya

¥ê¥ó¥¯

2008/3/14(Fri) 12:35:09|NO.14199

°Ê²¼¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤ÇFPS¤ò¸ÇÄꤷ¤è¤¦¤È»×¤¤¤Þ¤·¤¿¤¬¡¤¤¢¤Þ¤êÀºÅÙ¤¬¹â¤¯¤¢¤ê¤Þ¤»¤ó¡¥
await¤ÎÀºÅÙ¤¬1ms¤Ê¤Î¤Ç·×»»¾å¤ÎÃÍ¤È¸íº¹¤¬½Ð¤Æ¤·¤Þ¤¤¤Þ¤¹¡¥
¤½¤ì¤«¤é¥×¥í¥°¥é¥à¤Î¥ë¡¼¥×Ãæ¤Ë await 1 ¤òÃÖ¤¯¤À¤±¤Ç 64 FPS ¤·¤«½Ð¤Ê¤¤¤Î¤Ï¤Ê¤¼¤À¤í¤¦..¡¥

#include "d3m.hsp" #define ctype limitFPS(%1, %2) 1000.0*%1/(%2*%2) repeat ; ; ²¿¤é¤«¤Î½èÍý ; repeat 10 color 255, 255, 255 boxf loop ; ; fps=d3getfps() wt=limitFPS(fps, 32) await wt title "fps:"+fps+", wait:"+int(wt) loop
FPS¤¬²¼¤¬¤ë¤È¸íº¹Î¨¤¬¾å¤¬¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤È¤³¤È¤ó¥×¥í¥°¥é¥à¤ò¹â®²½¤µ¤»¤ë¤«¡¤await¤ÎÀºÅÙ¤ò¤É¤¦¤Ë¤«¤·¤Æ¹â¤á¤é¤ì¤Ê¤¤¤«¤È¸¡Æ¤¤·¤Æ¤¤¤Þ¤¹¡¥
¤È¤ê¤¢¤¨¤º¤½¤Î¤¿¤á¤Î¥â¥¸¥å¡¼¥ë¤ò£±¤ÄÙϤ¨¤Þ¤·¤¿¡¤°ú¤­Â³¤­²¿¤«°Õ¸«¤ò¤ªÂÔ¤Á¤·¤Æ¤¤¤Þ¤¹¡¥

#module #uselib "ntdll.dll" #func ZwQueryPerformanceCounter "ZwQueryPerformanceCounter" #uselib "kernel32.dll" #func VirtualProtect "VirtualProtect" int,int,int,int #defcfunc timer /* | ¡Ú³µÍ×¡Û | ¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é¤Î·Ð²á»þ´Ö¤òÉÃñ°Ì¥Þ¥¤¥¯¥íÉäޤÇÆÀ¤ë */ if(get_time==0) { get_time=$83ec8b55,$458df8c4,$78bb50f8,$53123456,$345678b8,$dfd0ff12,$f875da2b,$c3c91bdd ddim time, 1 lpoke get_time, 11, varptr(time) lpoke get_time, 17, varptr(ZwQueryPerformanceCounter) VirtualProtect varptr(get_time), length(get_time)*4, 0x40, varptr(res) } res=callfunc(res, varptr(get_time), 0) return time #global offset_time=timer() repeat title ""+(timer()-offset_time) await 1 loop



As

¥ê¥ó¥¯

2008/3/14(Fri) 21:18:14|NO.14217

Ê̤ËGetSystemTime¤È¤«¤Ï¤É¤¦¤Ç¤â¤¤¤¤¤Î¤Ç¤¹¤¬¡°¡°¡¨



½èÍý¤¬½Å¤±¤ê¤ã½èÍý¤¹¤ë¤Ê¡¢½èÍý¤¬Áᤱ¤ê¤ãÉé²Ù¤«¤±¤í¤Ã¤Æ¤³¤È¤Ç¤¹¡°¡°¡¨




#define fp 32 #include "d3m.hsp" #define ctype limitFPS(%1, %2) 1000.0*%1/(%2*%2) repeat ; ; ²¿¤é¤«¤Î½èÍý ; //¥Ç¥Õ¥©¥ë¥ÈFPSÃͤè¤ê¤âÄ㤤 if fps<=fp{ redraw 0 repeat 10 color 255, 255, 255 boxf loop color pos 0,0 mes "fps:"+fps+", wait:"+int(wt) redraw 1 title "fps:"+fps+", wait:"+int(wt) }else{ await wt } ; ; fps=d3getfps() wt=limitFPS(fps, fp) loop



Shinya

¥ê¥ó¥¯

2008/3/14(Fri) 23:04:05|NO.14233

As¤µ¤ó¥¹¥¯¥ê¥×¥È¤Þ¤ÇÍ­Æñ¤¦¤´¤¶¤¤¤Þ¤¹¡¥¶ñÂÎŪ¤ËFPS¤ÎÄ´ÀáÊýË¡¤¬Ê¬¤«¤ê¤Þ¤·¤¿¡¥
//¥Ç¥Õ¥©¥ë¥ÈFPSÃͤè¤ê¤âÄ㤤
if fps<=default_fps{ ;­¡ ;½èÍý }else{ ;­¢ await wt }
¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤¿¤È¤³¤í¡¤³Î¤«¤ËFPS¤ò¥Ç¥Õ¥©¥ë¥ÈÃͤËÀ©¸Â¤µ¤»¤ë¤È¤¤¤¦Ì̤ǤϤ褤ÊýË¡¤«¤â¤·¤ì¤Þ¤»¤ó¤¬­¡¤È­¢¤Ç¤Ï1Éô֤ˤ«¤«¤ë¥¦¥§¥¤¥È¤¬°ã¤¤¤¹¤®¤ÆFPS¤¬Íɤ餤¤Ç¤·¤Þ¤¤¤Þ¤¹¡¥
¥¦¥§¥¤¥È¤ò¶ÑÅù¤Ë¤¹¤ë¹©Éפ¬É¬ÍפΤ褦¤Ç¤¹¤¬¡¤¤Þ¤À½èÍý®ÅÙ¤Èawait¤ÎÀºÅÙ¤ËÌäÂ꤬¤¢¤ë¤è¤¦¤Ç¤¹¡¥

#define fp 25 #include "d3m.hsp" #define ctype limitFPS(%1, %2) 1000.0*%1/(%2*%2) repeat ; ; ²¿¤é¤«¤Î½èÍý ; //¥Ç¥Õ¥©¥ë¥ÈFPSÃͤè¤ê¤âÄ㤤 if fps<=fp{ redraw 0 repeat 10 color 255, 255, 255 boxf loop color pos 0,0 mes "fps:"+fps+", cnt:"+cnt redraw 1 title "fps:"+fps+", wait:"+int(wt) }else{ await wt } ; ; fps=d3getfps() wt=limitFPS(fps, fp) loop
await¤Î¸íº¹¤ò·×¬¤·¤ÆÅý·×Ū¤Ë¥¦¥§¥¤¥È¤ÎÀºÅÙ¤ò¹â¤á¤é¤ì¤Ê¤¤¤«¸¡Æ¤¤·¤Æ¤ß¤Þ¤¹¡¥



Shinya

¥ê¥ó¥¯

2008/3/14(Fri) 23:47:43|NO.14237

FPS¤Î·×¬´Ö³Ö¤òºÙ¤«¤¯¤¹¤ì¤Ð¡¤¥¦¥§¥¤¥È¤Î¤«¤«¤ê¤¹¤®¤Ë¤è¤ëFPS¤ÎÍɤ餮Åù¤Ï·Ú¸º¤µ¤ì¤ë¤Ï¤º¤Ê¤Î¤ÇFPS¤ò100msÉÃËè¤Ë·×¬¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡¥

#module "bkfps" #uselib "ntdll.dll" #func ZwQueryPerformanceCounter "ZwQueryPerformanceCounter" #uselib "kernel32.dll" #func VirtualProtect "VirtualProtect" int,int,int,int #defcfunc timer /* | ¡Ú¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é¤Î·Ð²á»þ´Ö¤ò1ÉÃñ°Ì¥Þ¥¤¥¯¥íÉäÎÀºÅÙ¤ÇÆÀ¤ë¡Û */ if(get_time==0) { get_time=$83ec8b55,$458df8c4,$78bb50f8,$53123456,$345678b8,$dfd0ff12,$f875da2b,$c3c91bdd ddim time, 1 lpoke get_time, 11, varptr(time) lpoke get_time, 17, varptr(ZwQueryPerformanceCounter) VirtualProtect varptr(get_time), length(get_time)*4, 0x40, varptr(res) } res=callfunc(res, varptr(get_time), 0) return time #defcfunc getfps /* | ¡ÚFPS¤ò¼èÆÀ¤¹¤ë¡Û */ if(get_fps==0) { get_fps.0=$53ec8b55,$08758b56,$463b068b,$892f7404,$d2330446,$b9085689,$0000000a,$834bd88b get_fps.8=$548b3fe3,$56010c9e,$b9f3e208,$00000028,$d233d88b,$3fe38343,$0c9e5489,$e083f6e2 get_fps.16=$8644ff3f,$08468b0c,$c3c95b5e VirtualProtect varptr(get_fps), length(get_fps)*4, 0x40, varptr(res) dim structFPS, 67 prm=varptr(structFPS) } structFPS=int(timer()*10) return callfunc(prm, varptr(get_fps), 1) // ¥ë¡¼¥×¤ÎÀèƬ¤ËÄêµÁ(limitFPS¤ò»È¤¦¾ì¹ç) #define global limitEntryFPS offset_time=timer() // FPS¤ò¸ÇÄꤹ¤ë¤¿¤á¤Î¥¦¥§¥¤¥È¤òÊÖ¤¹ #define global ctype limitFPS(%1, %2) 1000.0*(double(%1)/(%2*%2)+offset_time-timer()) ;1000.0*(double(%1)/(%2*%2) + offset_time-timer() ¡Ý await¤Î¸íº¹) ; limitFPS(fps, fmax) ; fps : FPSÃÍ ; fmax : À©¸Â¤¹¤ëÃÍ #global #define fp 25 repeat limitEntryFPS fps=getfps() ; ; ²¿¤é¤«¤Î½èÍý ; //¥Ç¥Õ¥©¥ë¥ÈFPSÃͤè¤ê¤âÄ㤤 if fps<=fp{ redraw 0 repeat 10 color 255, 255, 255 boxf loop color pos 0,0 mes "fps:"+fps+", cnt:"+cnt redraw 1 title "fps:"+fps+", wait:"+int(wt) }else{ wt=limitFPS(fps, fp) await wt } loop
¸ú²Ì¤Ï¤¢¤Þ¤êÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¤¬¾¯¤·¤Ï¤è¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥



As

¥ê¥ó¥¯

2008/3/14(Fri) 23:56:06|NO.14239

¥¦¥§¥¤¥È¤Î°ÌÃÖ¤ò¥°¥í¡¼¥Ð¥ë¤ËÊѤ¨¤¿¤é°ÂÄꤷ¤¿¤ß¤¿¤¤¤Ç¤¹¡£
¤¿¤À¡¢µ¬Äê¤ÎFPSÃͤȼºݤÎFPSÃͤ¬°ã¤¦¤Î¤Ç¤¹¤¬¡¦¡¦



#define fp 40 #include "d3m.hsp" #define ctype limitFPS(%1, %2) 1000.0*%1/(%2*%2) repeat ; ; ²¿¤é¤«¤Î½èÍý ; //¥Ç¥Õ¥©¥ë¥ÈFPSÃͤè¤ê¤âÄ㤤 if fps<=fp{ redraw 0 repeat 10 color 255, 255, 255 boxf loop color pos 0,0 mes "fps:"+fps+", cnt:"+cnt redraw 1 title "fps:"+fps+", wait:"+int(wt) } ; ; fps=d3getfps() wt=limitFPS(fps, fp) await wt loop



Shinya

¥ê¥ó¥¯

2008/3/15(Sat) 02:24:18|NO.14246

As¤µ¤óÊÖ»ö¤É¤¦¤âÍ­Æñ¤¦¤´¤¶¤¤¤Þ¤¹¡¥²ò·è¤·¤Þ¤·¤¿¡ª
>¥¦¥§¥¤¥È¤Î°ÌÃÖ¤ò¥°¥í¡¼¥Ð¥ë¤ËÊѤ¨¤¿¤é°ÂÄꤷ¤¿¤ß¤¿¤¤¤Ç¤¹¡£
>¤¿¤À¡¢µ¬Äê¤ÎFPSÃͤȼºݤÎFPSÃͤ¬°ã¤¦¤Î¤Ç¤¹¤¬¡¦¡¦
FPS¤¬µ¬Äê¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¤Î¤Ï¡¤

­¡¡¡limitFPS(%1, %2)	1000.0*(double(%1)/(%2*%2) + offset_time-timer() - await¤Î¸íº¹)

¤Çawait¤Î¸íº¹¤ò´Þ¤á¤Ê¤¤Ê¬ ¡Öoffset_time-timer() ¡Ý await¤Î¸íº¹¡×¤ò0¤È¤ß¤Ê¤·
­¢¡¡limitFPS(%1, %2)	1000.0*%1/(%2*%2)
¤È¤·¤Æ¤¤¤¿¤Î¤¬¸¶°ø¤Ç¤¹¡¥

¡¡¼ÂºÝ¤³¤ì¤Ç¤¢¤ëÄøÅÙÆ°¤¤¤Æ¤¤¤¿¤Î¤Ç­¢¤Ï¡¡offset_time-timer()¡áawait¤Î¸íº¹
¤¬¤¦¤Þ¤¯À®¤êΩ¤Ã¤Æ¤¤¤ë¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¤¤È¤ó¤À´ª°ã¤¤¤ò¤·¤Æ¤¤¤Þ¤·¤¿¡¥
¥¦¥§¥¤¥È¤ÎÃͤò·×»»¤·¤¿¸åloopÌ¿Îᤫ¤érepeatÌ¿Îá¤Ë°Ü¤ë´Ö¤Ètimer()´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹´Ö¤Î»þ´Ö¤ò̵»ë¤·¤Æ¤¤¤Þ¤·¤¿£÷£÷£÷
¤Ç¡¢¤³¤ì¤ò¦Á¤È¤¹¤ë¤È­¢¤Ï
¡¡offset_time¡Ýtimer()¡Ýawait¤Î¸íº¹¡Ý¦Á¡á£°
¤¬À®¤êΩ¤Ã¤Æ¤¤¤¿¤È¤­¤Î·×»»¼°¤Ç¤¹¤Í¡¥¦Á¤ò¬Äꤷ¤Æ¤¤¤ì¤Ðawait¤Î¸íº¹¤âʬ¤«¤ë¤Î¤Ë..¡¥¤È¤ó¤À¸«Íî¤È¤·¤ò¤·¤Æ¤¤¤Þ¤·¤¿orz



naznyark

¥ê¥ó¥¯

2008/3/15(Sat) 02:43:32|NO.14247

»²¹Í¤Þ¤Ç¤Ë¤³¤ó¤Ê¤Î¤â¡£·ê¤¬¤¢¤ë¤±¤É¡£

#define fp 33 #include "d3m.hsp" #const BASEWAIT 1000.0 / fp basetime = d3timer() skip = 0 repeat ; ; ²¿¤é¤«¤Î½èÍý ; fps = d3getfps() targettime = basetime + BASEWAIT * cnt //¥Ç¥Õ¥©¥ë¥ÈFPSÃͤè¤ê¤âÄ㤤 if ( d3timer() < targettime ) { redraw 0 repeat 10 color 255, 255, 255 boxf loop color pos 0,0 mes "fps:"+fps+", cnt:"+cnt + ", skip:" + skip redraw 1 title "fps:"+fps repeat await 1 if ( d3timer() >= targettime ) : break loop } else { skip++ await 1 } loop



Shinya

¥ê¥ó¥¯

2008/3/15(Sat) 13:14:37|NO.14271

naznyark¤µ¤óÍ­Æñ¤¦¤´¤¶¤¤¤Þ¤¹¡¥
>»²¹Í¤Þ¤Ç¤Ë¤³¤ó¤Ê¤Î¤â¡£·ê¤¬¤¢¤ë¤±¤É¡£
»þ´Ö¤Ï°ìÄê¤Ë²á¤®¤ë¤Î¤Ç½èÍý»þ´Ö¤òÀ©¸Â¤·¤Æ¸ÇÄêFPS¤òºî¤ê½Ð¤¹¤Î¤Ç¤¹¤«..¡¥
»þ´Ö¤¬²á¤®¤ë®¤µ¤è¤ê¤â¥×¥í¥°¥é¥à¤¬Áö¤ë®¤µ¤¬¤º¤Ã¤È¾å²ó¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¤È¤Æ¤âFPS¤Ï°ÂÄꤷ¤Æ¤¤¤Þ¤¹¡¥¼ÂºÝ¤Ë¤³¤³¤Þ¤Ç°ÂÄꤹ¤ë¤Î¤«¤È¶Ã¤­¤Þ¤·¤¿¡¥¤È¤Æ¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡¥

¡¡¥¹¥­¥Ã¥×̵¤·¤ÎÊýË¡¤Ç¤Ï¤³¤ó¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤·¤¿¡¥
#module "bkfps"
#uselib "ntdll.dll" #func ZwQueryPerformanceCounter "ZwQueryPerformanceCounter" #uselib "kernel32.dll" #func VirtualProtect "VirtualProtect" int,int,int,int #defcfunc timer /* | ¡Ú¥·¥¹¥Æ¥àµ¯Æ°»þ¤«¤é¤Î·Ð²á»þ´Ö¤ò1ÉÃñ°Ì¥Þ¥¤¥¯¥íÉäÎÀºÅÙ¤ÇÆÀ¤ë¡Û */ if(get_time==0) { get_time=$83ec8b55,$458df8c4,$78bb50f8,$53123456,$345678b8,$dfd0ff12,$f875da2b,$c3c91bdd ddim time, 1 lpoke get_time, 11, varptr(time) lpoke get_time, 17, varptr(ZwQueryPerformanceCounter) VirtualProtect varptr(get_time), length(get_time)*4, 0x40, varptr(res) } res=callfunc(res, varptr(get_time), 0) return time #defcfunc getfps /* | ¡ÚFPS¤ò¼èÆÀ¤¹¤ë¡Û */ if(get_fps==0) { get_fps.0=$53ec8b55,$08758b56,$463b068b,$892f7404,$d2330446,$b9085689,$0000000a,$834bd88b get_fps.8=$548b3fe3,$56010c9e,$b9f3e208,$00000028,$d233d88b,$3fe38343,$0c9e5489,$e083f6e2 get_fps.16=$8644ff3f,$08468b0c,$c3c95b5e VirtualProtect varptr(get_fps), length(get_fps)*4, 0x40, varptr(res) dim structFPS, 67 prm=varptr(structFPS) } structFPS=int(timer()*10) return callfunc(prm, varptr(get_fps), 1) // ¥ë¡¼¥×¤ÎÀèƬ¤ËÄêµÁ(WaitOflimitFPS¤ò»È¤¦¾ì¹ç) #define global limitEntryFPS offset_time=timer() // FPS¤ò¸ÇÄꤹ¤ë #define global WaitOflimitFPS(%1, %2) _wait@bkfps=1000.0*(double(%1)/(%2*%2)+offset_time-timer()):\ offset_time=timer()+_wait@bkfps/1000.0 : await _wait@bkfps ; WaitOflimitFPS fps, fmax ; fps : FPSÃÍ ; fmax : À©¸Â¤¹¤ëÃÍ #global #define FPSMAX 33 limitEntryFPS repeat ; ; ²¿¤é¤«¤Î½èÍý ; redraw 0 color 255, 255, 255 boxf color pos 0, 0 mes "cnt:"+cnt redraw title "FPS¤ò"+FPSMAX+"¤Ë¸ÇÄê fps:"+fps ; ; fps=getfps() WaitOflimitFPS fps, FPSMAX ; ; ²¿¤é¤«¤Î½èÍý ; wait 1 loop



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