|
 | ̤²ò·è |
 | ²ò·è |
 | Ää»ß |
 | ºï½üÍ×ÀÁ |
|
2011/5/24(Tue) 20:30:26|NO.39372
buffer¾å¤Ë¤¢¤ë¥Õ¥ë¥«¥é¡¼¤Î²èÁü¤«¤é¡¢
ÆÃÄê¤Î1¿§¤ÎºÂɸ¤ò¹â®¤Ë¸¡º÷¤¹¤ë½èÍý¤òºî¤ê¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£
¼èÆÀ¤·¤¿¤¤ºÂɸ¤Ï1ÅÀ¤Ç¡¢²èÁü¤ÎÃæ¤Ç³ºÅö¤¹¤ë¿§¤Îdot¤Î¤¦¤Á¡¢¡¢ºÇ¤âº¸¾å¤Î¥Ô¥¯¥»¥ë¤Ç¤¹¡£
²èÁü¤Î¥µ¥¤¥º¤Ï1920*1020¤Ç¤¹¡£
ưºî¤¹¤ë¥Ç¥â¥¹¥¯¥ê¥×¥È¤È¡¢´Êñ¤Ê¥¢¥ë¥´¥ê¥º¥à¤Î¥³¥á¥ó¥ÈÀâÌÀ¤¬¤¢¤ë¤ÈÂçÊѽõ¤«¤ê¤Þ¤¹¡£
¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£
|
|
2011/5/24(Tue) 21:05:43|NO.39374
¤¨¤¨¤È¡¢pget¤è¤ê¤âVRAM¤òľÀÜpeek¤·¤¿Êý¤¬¤º¤Ã¤È®¤«¤Ã¤¿¡¢
¤È¤É¤³¤«¤Î¥Ö¥í¥°¤Ë½ñ¤¤¤Æ¤¢¤Ã¤¿µ¤¤¬¡Ä
¼ÂºÝ¤½¤¦¤Ç¤¹¡£»î¤·¤Þ¤·¤¿¡£
mref¤ÇVRAM¤òÊÑ¿ô¤Ë³ä¤êÅö¤Æ¡¢´èÄ¥¤ì¤Ð¤Ç¤¤ë¤Ï¤º¡Ä¡Ä
|
|
2011/5/24(Tue) 22:30:44|NO.39378
ÅÓÃæ¤Þ¤Ç¤ä¤ê¤Þ¤·¤¿¡¢Ì¤´°À®¤Ç¤¹¤±¤É»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤¢¤ÈCookie¤µ¤ó¤Î¤¤¤¦¤È¤ª¤êpget»È¤¦¤è¤ê¡¢vram(DIB¥»¥¯¥·¥ç¥ó¡©)¤Ë½ñ¤¹þ¤ó¤À¤Û¤¦¤¬Áᤤ¤Ç¤¹¡£
pget2¤Èpget¤ò°ìËü³¬²ó¤¹¤È¡¢
pget2 1s120m
pget 21s200m
#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
#define pget2_setup mref vram,66
#define pget2(%1,%2) r = peek( vram, (2+ %1 *3)+( (SCREEN_HEIGHT-1- %2)*SCREEN_WIDTH*3 ) ):\
g = peek( vram, (1+ %1 *3)+( (SCREEN_HEIGHT-1- %2)*SCREEN_WIDTH*3 ) ):\
b = peek( vram, (0+ %1 *3)+( (SCREEN_HEIGHT-1- %2)*SCREEN_WIDTH*3 ) )
#define »ØÄꤷ¤¿¿§¤Îº¸¾å¤Î¥Ô¥¯¥»¥ë¤òõ¤¹(%1,%2,%3) x = -1:y = -1:repeat SCREEN_WIDTH * SCREEN_HEIGHT :\
b = peek( vram, (0+ (cnt%SCREEN_WIDTH) *3)+( (SCREEN_HEIGHT-1- (cnt/SCREEN_WIDTH))*SCREEN_WIDTH*3 ) ):\
if(b == %3):g = peek( vram, (1+ (cnt%SCREEN_WIDTH) *3)+( (SCREEN_HEIGHT-1- (cnt/SCREEN_WIDTH))*SCREEN_WIDTH*3 ) ):\
if(g == %2):r = peek( vram, (2+ (cnt%SCREEN_WIDTH) *3)+( (SCREEN_HEIGHT-1- (cnt/SCREEN_WIDTH))*SCREEN_WIDTH*3 ) ):\
if(r == %1):if(x+y<(( (SCREEN_HEIGHT-1- (cnt/SCREEN_WIDTH))))+(cnt%SCREEN_WIDTH))):x = ( (SCREEN_HEIGHT-1- (cnt/SCREEN_WIDTH)))):\
y = (cnt/SCREEN_WIDTH))):\
loop
pget2_setup//1:276 21:200
color 125,120,12
boxf 90,90,888,888
»ØÄꤷ¤¿¿§¤Îº¸¾å¤Î¥Ô¥¯¥»¥ë¤òõ¤¹ 125,120,12
title ""+x+" "+y

| |
|
2011/5/24(Tue) 22:33:14|NO.39379
>ºÇ¤âº¸¾å¤Î¥Ô¥¯¥»¥ë¤Ç¤¹¡£
¡Ê£²¡¤£°¡Ë¤È¡Ê£°¡¤£²¡Ë¤¬Âоݿ§¤À¤Ã¤¿¤È¤·¤Æ¡¢
¤É¤Á¤é¤¬¡ÉºÇ¤âº¸¾å¡É¤Ë¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡¦¡¦¡¦
|
|
2011/5/24(Tue) 22:44:07|NO.39380
¤ß¤Ê¤µ¤ó¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£vram¤òpeek¤¹¤ë¤Î¤¬¤è¤¤¤È¤Î¤³¤È¡¢»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¹¥¥ë¤¬½½Ê¬¤Ç¤Ê¤¯¡¢vram¤Î¹½Â¤¤¬¤¤¤Þ¤¤¤ÁÍý²ò¤Ç¤¤º¤ËÆñ¹Ò¤·¤Æ¤¤¤Þ¤¹¡£¡£
f3d¤µ¤ó¤ÎÊýË¡¤À¤È£±¥Ô¥¯¥»¥ë¤ÎrgbÍ×ÁǤò3¤Ä¤È¤âpeek¤·¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£
¥ª¡¼¥È¥Þ¥È¥ó¤Ç£±¿§¤À¤±¤Îɾ²Á¤«¤é²ó¤·¤Æ¤¤¤Ã¤¿Êý¤¬¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£
peek¤Èwpeek¤ÎÁȤ߹ç¤ï¤»¤âµ¤¤Ë¤Ê¤ê¤Þ¤¹¡£¡Ê̵°ÕÌ£¡©¡Ë
¤¿¤ó¤¹¤µ¤ó¡¢º¸¾å¡¢¤È¤¤¤¦É½¸½¤¬Àµ³Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£¼ºÎ餷¤Þ¤·¤¿¡£
ÂоݤȤʤëbuffer¤Ë¤Ï¡¢¸¡º÷Âоݤ理¬1dot¤À¤±¤·¤«¤Ê¤¤¤È¤¤¤¦²¾Äê¤È¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
|
|
2011/5/24(Tue) 23:26:34|NO.39383
¡¡¤¢¡Á¡¢¤¹¤ß¤Þ¤»¤ó¡£¼ÁÌä¼Ô¤È¤ÏÊ̿ͤʤ¬¤é¤Õ¤Èµ¿Ìä¤Ë»×¤Ã¤¿»ö¤¬°ì¤Ä¡£
¡¡f3dÍͤÏVRAM¥Ç¡¼¥¿¤ò°ú¤½Ð¤¹°Ù¤ËmrefÌ¿Îá¤Î66ÈÖÌܤòÍøÍѤ·¤Æ¤¤¤¿¤ï¤±¤Ç¤¹¤¬¡¢mrefÌ¿Îá¤Î96ÈÖÌܰʹߤòÍøÍѤ·¤Æ¤âƱ¤¸»ö¤¬¤Ç¤¤ë¤«¤â¤È»×¤¤¤Þ¤·¤¿¡£
¡¡§¤Þ¤º¤ªÌÜÅö¤Æ¥¦¥£¥ó¥É¥¦¤ÎBMSCR¹½Â¤ÂΤò¼èÆÀ
¢¡§Â³¤¤¤Æ¡¢¡¤Ç¼èÆÀ¤·¤¿BMSCR¹½Â¤ÂΤ«¤é¤ªÌÜÅö¤Æ¥¦¥£¥ó¥É¥¦¤ÎVRAM¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼èÆÀ
£¡§¹¹¤Ë¡¢¢¤Ç¼èÆÀ¤·¤¿¤½¤Î¥Ý¥¤¥ó¥¿¤òdupptrÌ¿Îá¤ÇÊÑ¿ô¤ËÍî¤È¤·¹þ¤à
¤¡§£¤ÇÊÑ¿ô²½¤·¤¿¥Ç¡¼¥¿¤ò»²¾È¤·¤Æ¸¡º÷¤¹¤ì¤Ð£Ï£Ë
¡¡¤È¡¢¹Í¤¨¤Æºî¤Ã¤Æ¤ß¤¿¤Î¤¬°Ê²¼
//¥¦¥£¥ó¥É¥¦£É£Ä¤«¤é£Ö£Ò£Á£Í¥Ç¡¼¥¿¤ÎÆþ¤Ã¤¿ÇÛÎó¿ôÃÍ·¿ÊÑ¿ô¤òºî¤ë¥½¡¼¥¹¤Î¤Ï¤º
//¤Á¤Ê¤ß¤Ë¡¢£Ö£Ò£Á£Í¥Ç¡¼¥¿¤Ï¡¢£±¥Ô¥¯¥»¥ë¤ò24bit¤Çɽ¸½¤·¤Æ¤¤¤ë¤Î¤ÇÃí°Õ
//Äê¿ô¤ÎÄêµÁ¡§¾Ü¤·¤¯¤Ï»²¹Í¥µ¥¤¥È¤ò»²¾È¤µ¤ì¤¿¤·
#define TARGET_BUFFER 1 //º£²ó¤Î¼Â¸³¤ÇÄ´¤Ù¤ëÂоݤˤ¹¤ë¥Ð¥Ã¥Õ¥¡¤Î£É£Ä
#define VRAM_POINTER 5 //BMSCR¹½Â¤ÂΤÇVRAM¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼¨¤¹ÇÛÎóÈÖ¹æ
#define VRAM_SIZE 16 //ñ°Ì¤Ïbyte¡¢Æ±¹½Â¤ÂΤÇVRAM¤Î¥µ¥¤¥º¤ò¼¨¤¹ÈÖ¹æ
//¡TARGET_BUFFER¤òºî¤ê¡¢¤½¤Î(0,0)ºÂɸ¤Î¿§¤ò(255,128,0)¤ËÄêµÁ¤¹¤ë
buffer TARGET_BUFFER, 2, 2, 0
color 128, 192, 64
pset 0, 0
color 10, 20, 40
pset 1, 0
//¢¥¦¥£¥ó¥É¥¦ID¤«¤éBMSCR¹½Â¤ÂΤò·Ð¤Æ¡¢VRAM¥Ç¡¼¥¿¤Ë¥Ð¥Ã¥Õ¥¡¤Î¥Ç¡¼¥¿¤òÆþ¤ì¤ë
¥¦¥£¥ó¥É¥¦ID = TARGET_BUFFER
mref BMSCR¹½Â¤ÂÎ, 96+¥¦¥£¥ó¥É¥¦ID
dim VRAM¥Ç¡¼¥¿, BMSCR¹½Â¤ÂÎ(VRAM_SIZE)/4
dupptr VRAM¥Ç¡¼¥¿, BMSCR¹½Â¤ÂÎ(VRAM_POINTER), BMSCR¹½Â¤ÂÎ(VRAM_SIZE)
//£¿§(0),¿§(1),¿§(2)¤Ë¡¢TARGET_BUFFER¤Î(0,0)ºÂɸ¤Î(R,G,B)¤òÂåÆþ¤¹¤ë
¿§ = 0, 0, 0
repeat 3
memcpy ¿§(cnt), VRAM¥Ç¡¼¥¿, 1, 0, 8+(2-cnt)
//²¿¸Î¤«8byte¤Î¶õÇò¤¬¤¢¤ë¡£¤³¤Î¶õÇò¤Ï¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¼¡Âè¤ÇÊÑÆ°¤¹¤ë
loop
//¤·ë²Ì¤òɽ¼¨¤¹¤ë
gsel 0
mes "Buf"+TARGET_BUFFER+"¤Î¸¶ÅÀ¤Î¿§¤Ï("+¿§(0)+","+¿§(1)+","+¿§(2)+")"
mes bmscr¹½Â¤ÂÎ(15)
//¥»²¹Í¤Þ¤Ç¤Ë¥í¥°¤Ë³ÆºÂɸ¤Ë¤ª¤±¤ë1byte¤ÎÃͤò½Ð¤·¤Æ¤ß¤¿
repeat 16
k = 0
memcpy k, VRAM¥Ç¡¼¥¿, 1, 0, cnt
logmes "cnt="+cnt+" : "+k
loop
¡¡²¿¸Î¤«¡¢BMSCR¹½Â¤ÂΤ«¤é¼èÆÀ¤·¤¿¥Ý¥¤¥ó¥¿¤È¼ÂÂ֤κÂɸ¤¬¤º¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£BMSCR¹½Â¤ÂΤ«¤é¤Î»²¾È¤Ï¤¤¤±¤Ê¤¤»ö¤À¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡©
¡¡¾°¡¢BMSCR¹½Â¤ÂΤÎÃæ¿È¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Á¤é¤Î¥Ú¡¼¥¸¤ò»²¹Í¤Ë¤·¤Þ¤·¤¿¡£ http://dream.freespace.jp/puma/iroiro/struct/bmscr3.htm

| |
|
2011/5/25(Wed) 00:55:00|NO.39384
memcpy¤Çºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¤Ê¤ª¡¢»ä¤Î´Ä¶¤Ç¤Ï¥Ç¡¼¥¿¤ÎºîÀ®¤Ë8663ms,¸¡º÷¤Ë2293ms¤«¤«¤ê¤Þ¤·¤¿¡£
CPU¤ÏCeleron 1.20GHz¡¢
¥á¥â¥ê¡¼¤Ï504MByte¤Ç¤¹¡£(512MByteÅëºÜ¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬...)
;Ã̤Ǥ¹¤¬¡¢
ÀΡ¢°ã¤¦¼ïÎà¤Î¥×¥í¥°¥é¥à¤òºî¤Ã¤¿¤È¤¤Ë¡¢
HSP¤Çºî¤Ã¤¿½èÍý¤È¡¢C++¤Çºî¤Ã¤¿DLL¤Ç»þ´Ö¤òÈæ³Ó¤·¤¿¤È¤³¤í¡¢
HSP¤¬2É䰤餤¤Ç½èÍý¤µ¤ì¤¿¤â¤Î¤¬C++¤ÎDLL¤Ç¤Ï0.03É䰤餤¤Ç½èÍý¤Ç¤¤Þ¤·¤¿¡£
¤Á¤Ê¤ß¤Ë¤½¤Î¥Ñ¥½¥³¥ó¤Ï
CPU 550MHz ¥á¥â¥ê¡¼ 384MByte¤Ç¤·¤¿¡£
#define xsize 1920
#define ysize 1020
#uselib "winmm.dll"
#func timeGetTime "timeGetTime"
screen 1,xsize,ysize
gsel 0,1
mes "¥Ç¡¼¥¿¤òºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£"
gsel 1,0
redraw 0
timeGetTime
delta=stat//³«»Ï»þ¹ï
repeat xsize
x=cnt
repeat ysize
color rnd(255),rnd(255),rnd(255)
pset x,cnt
loop
loop
color 0,0,255
pset 100,100
timeGetTime
delta=stat-delta
redraw
r=0
g=0
b=255
mref vram,66
gsel 0,0
title strf("¥Ç¡¼¥¿¤ÎºîÀ®¤Ë%dms¤«¤«¤ê¤Þ¤·¤¿¡£",delta)
*setting
cls
mes "¸¡º÷¤¹¤ë¿§¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£(RGB)"
input r,64,24
rid=stat
input g,64,24
gid=stat
input b,64,24
bid=stat
button "¸¡º÷",*search
button "¥é¥ó¥À¥à",*random
stop
*random
gsel 1,0
x=rnd(xsize)
y=rnd(ysize)
pget x,y
r=ginfo(16)
g=ginfo(17)
b=ginfo(18)
gsel 0,0
objprm rid,r
objprm gid,g
objprm bid,b
mes strf("¤³¤Î¿§¤Ï(%d,%d)¤«¤éÁªÂò¤·¤Þ¤·¤¿¡£",x,y)
stop
*search
cls
mes "¸¡º÷Ãæ"
sizeperline=3*xsize
if(sizeperline&0x3){//4¤ÎÇÜ¿ô¤Ç¤Ê¤¤¤È¤¤Ï¼¡¤Î4¤ÎÇÜ¿ô¤Ë¤¹¤ë¡£
mes "²£¤Î¥É¥Ã¥È¿ô¤¬4¤ÎÇÜ¿ô¤Ç¤Ê¤¤¤Î¤Ç¡¢¼¡¤Î4¤ÎÇÜ¿ô¤Ë¤·¤Þ¤¹¡£"
sizeperline=(sizeperline&fffffffc)+4
}
target=b|(g<<8)|(r<<16)//¿§¤ÎÈÖ¹æ
mes strf("¼¡¤Î¿§¤Î¸¡º÷¤ò³«»Ï¤·¤Þ¤¹¡£:#%06x",target)
buf=0//°ì»þÊÑ¿ô
redraw 0
timeGetTime
delta=stat//³«»Ï»þ¹ï¤òµÏ¿
repeat ysize
offset=sizeperline*(ysize-cnt-1)
y=cnt
repeat xsize
memcpy buf,vram,3,0,offset+cnt*3
//memcpy¤Èlpeek¤Ç¤Ï¤É¤Á¤é¤ÎÊý¤¬Áᤤ¤Î¤«¤È»×¤¤¡¢ÃÖ¤´¹¤¨¤Æ¤ß¤ë¤È¡¢
//¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
//1Byte¥ª¡¼¥Ð¡¼¤·¤Æ¤¤¤ë¤Î¤¬¸¶°ø¤Î¤è¤¦¤Ç¤¹¡£
// buf=lpeek(vram,offset+cnt*3)
if(buf==target){
mes strf("°ìÃפ·¤Þ¤·¤¿¡£(%d,%d)",cnt,y)
}
loop
loop
timeGetTime
delta=stat-delta//½èÍý»þ´Ö
redraw
mes "¸¡º÷¤¬½ªÎ»¤·¤Þ¤·¤¿¡£"
title strf("½èÍý»þ´Ö¤Ï%dms¤Ç¤·¤¿¡£",delta)
pos 0,0
button "Ìá¤ë",*setting

| |
|
2011/5/25(Wed) 12:00:20|NO.39385
¥â¥¸¥å¡¼¥ë¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡£
¤¿¤Ö¤óÂçÄñ¤Ï®¤¤¤Ç¤¹¤¬¡¢Ãµ¤¹¿§¤ÎÀÄÀ®Ê¬¤ÈƱÃͤο§À®Ê¬¤¬Â¿¤¤²èÌ̤À¤È¤à¤Ã¤Á¤ã»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¡£
//color¤ÇÁªÂò¤µ¤ì¤Æ¤¤¤ë¿§¤Î¥Ô¥¯¥»¥ë¤òõ¤¹
#module
#deffunc findpixel var x,var y
#uselib "msvcrt.dll"
#func memchr "memchr" int,int,int
r=ginfo_r:g=ginfo_g:b=ginfo_b
mref vram,66
sx=ginfo_sx
sy=ginfo_sy
lsize=(sx*3+3)&0xfffffffc
vsize=lsize*sy
pvram=varptr(vram)
idx=0
repeat
memchr pvram+idx,b,vsize-idx
if stat==0:idx==-1:break
idx=stat-pvram
if idx\lsize\3:idx++:continue
if idx\lsize/3>=sx:idx++:continue
if wpeek(vram,idx+1)==(g|r<<8):break
idx+=3
loop
if idx==-1:x=-1:y=-1:return
x=idx\lsize/3
y=sy-1-idx/lsize
return
#global
screen 0,1920,1020
color 1,2,3
pset 10,20
findpixel x,y
color
mes ""+x+","+y
|
|
2011/5/26(Thu) 00:32:00|NO.39387
¤ß¤Ê¤µ¤ó¡¢ËÜÅö¤Ë¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
vram¤ò¸«¤Æ¤¤¤¯¤È¤¤¤¦ÊýË¡¤¬ºÇ¤â¤è¤¤¤È¤¤¤¦·ëÏÀ¤Ë»ê¤ê¡¢
¤È¤ê¤ï¤±koju¤µ¤ó¤Î¥³¡¼¥É¤¬¤Û¤Ü¤½¤Î¤Þ¤ÞÍÑÅӤ˹礦¤â¤Î¤Ç¤·¤¿¡£
ËÜ·ï¤Ï¡¢¤³¤ì¤Ë¤Æ²ò·è¤È¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£
|
|
2011/5/26(Thu) 08:14:20|NO.39388
ttp://hsp.tv/play/pforum.php?mode=pastwch&num=13849
¾å¤ß¤¿¤¤¤ÊÊýË¡¤ò»È¤Ã¤Æ¡Ö»ØÄê¿§¤À¤±¤Î²èÁü¡×¤òºî¤Ã¤Æ¤ª¤±¤Ð
¾ò·ï¤¬´Êñ²½¤Ç¤¤ë¤«¤â¡©
|
|