@TheComet
Instead of setting the camera view individually 4 times and calling SYNC after setting each view, programatically change the camera within the main loop using only one SYNC call. In this example, I splits the screen into 4 views using only 1 set camera view call and one sync. To show that the FPS remains at 60 fps and isn't reporting a false value, I also calculate the frame rate using the timer. The FPS and the timer frame rate should be about the same.
rem split screen example
rem by latch
rem dec 28 2008
set display mode 1024,768,16
sync on
sync rate 60
gosub _init
tim=1000
do
for n=1 to 4
turn object left n,1
next n
gosub _four_screens
text 0,0,str$(screen fps())
text 0,20,"Actual Iterations per second : "+str$(1000/(timer()-tim))
tim=timer()
sync
loop
_init:
make matrix 1,1000,1000,25,25
for obj=1 to 4
make object cube obj,50
next obj
color object 1,rgb(255,255,0)
position object 1,200,25,800
color object 2,0
position object 2,200,25,200
color object 3,rgb(0,255,0)
position object 3,800,25,800
position object 4,800,25,200
position camera 500,50,500
obj=0
return
_four_screens:
inc y1,384
if y1 > 384
y1=0
inc x1,512
if x1 > 512 then x1=0
endif
x2=x1+511
y2=y1+383
set camera view x1,y1,x2,y2
inc obj
if obj > 4 then obj=1
point camera object position x(obj),object position y(obj),object position z(obj)
return
Enjoy your day.