I'm glad you solved your screen capture issue. You may want to also look into
SET CAMERA TO IMAGE for the performance boost.
GET IMAGE can be pretty slow.
I wanted to throw this out there for an idea on the effect transition. It's a bit of a cheesy effect, but you could probably get something pretty fantastic by using a shader.
DBP code:
set display mode 640, 480, 32
sync on
sync rate 60
color backdrop rgb(20, 20, 20)
autocam off
position camera 0, 50, -150
point camera 0, 0, 0
set ambient light 0
hide light 0
make light 1
position light 1, 0, 140, -160
for i = 1 to 20
make object cube i, 60
color object i, rgb(255, 0, 0)
position object i, rnd(100) - 50, rnd(100) - 50, rnd(100) - 50
rotate object i, rnd(360), rnd(360), rnd(360)
next i
do
for i = 1 to 20
turn object left i, 1
next i
if keystate(16) = 1 then ScreenShift()
set cursor 0, 0
print "Screen FPS: ", screen fps()
print "Press 'Q' to enter battle!!"
sync
loop
end
function ScreenShift()
make camera 1
color backdrop 1, rgb(20, 20, 20)
position camera 1, camera position x(), camera position y(), camera position z()
point camera 1, 0, 0, 0
set camera to image 1, 100, 640, 480
set cursor 0, 0
print "Screen FPS: ", screen fps()
sync
delete camera 1
make object plane 100, 64, 48
texture object 100, 0, 100
set object transparency 100, 2
position object 100, camera position x(), camera position y(), camera position z()
rotate object 100, camera angle x(), camera angle y(), camera angle z()
turn object left 100, 180
move object 100, -40
move object up 100, 0.01
move object left 100, 0.01
scale object 100, 101,101,0
load effect "shader.fx", 1, 0
set object effect 100, 1
repeat
inc colorShift#, 0.015
set effect constant float 1, "colorShift", colorShift#
set cursor 0, 0
print "Screen FPS: ", screen fps()
sync
until colorShift# >= 1.0
for i = 1 to 20
color object i, rgb(rnd(255), rnd(255), rnd(255))
position object i, rnd(100) - 50, rnd(100) - 50, rnd(100) - 50
rotate object i, rnd(360), rnd(360), rnd(360)
next i
repeat
inc slideShift#, 0.015
set effect constant float 1, "slideShift", slideShift#
set cursor 0, 0
print "Screen FPS: ", screen fps()
sync
until slideShift# >= 1.0
delete object 100
delete effect 1
endfunction
shader.fx code
float colorShift = 0.0;
float slideShift = 0.0;
texture colorTexture < string Name = ""; >;
sampler2D colorSampler = sampler_state
{
Texture = <colorTexture>;
};
struct PSInput
{
float4 Col : Color;
float2 UV : TEXCOORD0;
};
struct PSOutput
{
float4 Col : Color;
};
PSOutput PS( PSInput In, PSOutput Out)
{
float4 Pixel=tex2D(colorSampler,In.UV);
if (colorShift < 1.0) {
Pixel.x = Pixel.x + colorShift;
Pixel.y = Pixel.y + colorShift;
Pixel.z = Pixel.z + colorShift;
Pixel.w = 1.0;
} else {
if (frac(In.UV.y *10) > slideShift)
{
Pixel.x = 1.0;
Pixel.y = 1.0;
Pixel.z = 1.0;
Pixel.w = 1.0;
} else {
Pixel.x = 0.0;
Pixel.y = 0.0;
Pixel.z = 0.0;
Pixel.w = 0.0;
}
}
Out.Col = Pixel ;
return Out;
}
technique screenShift
{
pass p1
{
PixelShader = compile ps_2_0 PS();
}
}
Good luck with your project! (I'm an FF6 snob myself.

b][/b])
Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.