[Edited for a couple of corrections]
This issue is to do with your aspect ratio for the viewing frustrom of the cameras. When you use the SET CAMERA VIEW command to instruct DarkBASIC Professional to place each camera view onto the area of the screen, the area of the camera view will always occupy a sqaure region. hence having a camera view place on one half the screen will stretch the view along it's height. The best approach I can think of to fix it is this:-
For each left and right side of the screen, create two new cameras
MAKE CAMERA 1
MAKE CAMERA 2
(Position each camera according to where each player will view your scene)
Do not use camera 0 as we will use this to view two plane objects which are being used to render the views of each other camera.
Setup an image to render the camera left camera view onto.
CREATE BITMAP 1, 512, 512
MAKE MEMBLOCK FROM BITMAP 1,1
MAKE IMAGE FROM MEMBLOCK 1,1
MAKE IMAGE FROM MEMBLOCK 2,1
DELETE MEMBLOCK 1
DELETE BITMAP 1
You now have two images for each of the cameras to render to. Each image can be textured onto two plane objects for viewing. The idea is that you will stretch the texture of each plane to meet the correct aspect ratio.
At this point, use the SET CAMERA TO IMAGE 1, 1 command to render your camera image for the left side onto the image, and SET CAMERA TO IMAGE 2, 2 to render the second camera onto the second image.
CREATE BITMAP 1, 512, 512
MAKE MEMBLOCK FROM BITMAP 1,1
MAKE IMAGE FROM MEMBLOCK 1,1
MAKE IMAGE FROM MEMBLOCK 2,1
DELETE MEMBLOCK 1
DELETE BITMAP 1
SET CAMERA TO IMAGE 1, 1, 512, 512
SET CAMERA TO IMAGE 2, 2, 512, 512
Note: You only need to call the above commands once, not every frame, since DarkBASIC Professional will continually render the camera views from each camera onto the two Images.
The next step is to texture your Images onto two plains.
Create two plain objects:
MAKE OBJECT PLAIN 1, 400, 600
MAKE OBJECT PLAIN 2, 400, 600
Now position each plain side by side:
POSITION OBJECT 1, -200, 0, 0
POSITION OBJECT 2, 200, 0, 0
(Assuming your video res is 800x600)
Texture each plain using the two images.
TEXTURE OBJECT 1, 1
TEXTURE OBJECT 2, 2
Position your default camera view to view each of the two plains so that they are directly in front of you, you will need to play with the correct position.
At this point, both plains will view a 3D scene and are then textured onto the two plains, the idea here though is that you can scale the textures to meet the correct aspect ratio of camera one and two.
One last thing, you will always need to view your 3D scene through cameras 1 and 2, never use camera 0 for your game scene, and create the plains outside of your world, somewhere where they will not interfere with your game's level or scene file.
This is just an idea of how to do it but see if it helps you, I'm sure someone can come up with a better solution that is less complicated.
MSI/AMD Athlon 1300, 256Mb, 60GbHD, SoundBlaster Live!, GeForce 4 MX440-64Mb, Win2K, DX9, DarkBASIC Pro(PUv4.1)