波紋ができた!
#define bit 5
#define mode 1//画面モード
#const size mode!0*3
#const bit2 (1<<bit)-1
#include "hspext.as"
screen 0,160,160,mode
mref vram1,66
dialog "",16 : if stat=0 : end
buffer 2,,,mode : picload refstr
wx=winx : wy=winy : mref vram2,66
gsel 0
emath bit
dim d,winx,winy : dim sin,winx,winy : dim cos,winx,winy
repeat winx : x=cnt : repeat winy : y=cnt
dx=winx/2-x : dy=winy/2-y
tmp=dx*dx+(dy*dy) : emsqr tmp2,tmp<<bit : d.x.y=tmp2>>bit*2
ematan at,dx,dy : emsin sin.x.y,at : emcos cos.x.y,at
loop : loop
repeat
a++ : redraw 2 : boxf
repeat winx : x=cnt : repeat winy : y=cnt
dd=d.x.y+a&bit2
emsin w,dd
w=w
>>2 : dx=w*sin.x.y>>bit : dy=w*cos.x.y>>bit
x2=x+dx : y2=y+dy
if wx<=x2|(x2<0)|(wy<=y2)|(y2<0) : x2=x : y2=y
memcpy vram1,vram2,size,(winy-1-y)*winx+x*size,(wy-1-y2)*wx+x2*size
loop : loop
redraw 1 : await 16
loop