How are you managing your map? Are you loading it all in at once, or building it as you move around?
I have knocked this bit of code up to show you one way to scroll around using viewoffset.
rem A Wizard Did It!
setvirtualresolution(640,480)
setclearcolor(0,255,255)
ship=createsprite(0)
shipx=getdevicewidth()/2
shipy=getdeviceheight()/2
setspriteposition(ship,shipx,shipy)
setspritecolor(ship,255,255,255,255)
island=createsprite(0)
setspriteposition(island,600,400)
setspritecolor(island,0,255,0,255)
setspritesize(island,30,40)
maxscroll=400
minscroll=0
do
x#=getjoystickx()
y#=getjoysticky()
if x#<>0 or y#<>0
scrollx#=scrollx#+x#
scrolly#=scrolly#+y#
if scrollx#>maxscroll
scrollx#=maxscroll
endif
if scrollx#<minscroll
scrollx#=minscroll
endif
if scrolly#>maxscroll
scrolly#=maxscroll
endif
if scrolly#<minscroll
scrolly#=minscroll
endif
SetViewOffset( scrollx#, scrolly# )
endif
setspriteposition(ship,shipx+scrollx#,shipy+scrolly#)
Sync()
loop
It's not what you are asking for but perhaps you would prefer a smooth scroll to a push scroll one? No physics but it should easily be possible to change it to a physics based movement routine.