edit
check this out, you will need the media files from the spheremapping demo.
Rem ***** Main Source File *****
Rem Project: SphereMapping
Rem Created: 01/08/2002 22:33:07
rem Tested for: U6.0
rem Init for best performance
sync on : sync rate 60 : backdrop off : hide mouse
if check display mode(1024,768,32)=1 then set display mode 1024,768,32
phy start
rem Loading screen
load bitmap "media\gfx\backdrop.jpg",1
copy bitmap 1,0,0,640,480,0,0,0,screen width(),screen height()
sync : delete bitmap 1
rem Load model
load object "media\scout\scout2.x",1
load image "media\sky\space.jpg",1
set sphere mapping on 1,1
set object specular 1,0
rem Make sky
make object box 2,1100,1000,1000
texture object 2,1
set object cull 2,0
set object light 2,0
rem Set camera
position camera 0,0,-120
rotate camera 0,0,0
rem Setup ship for cruise
x#=0 : y#=-100 : z#=0
position object 1,x#,y#,z#
rem Setup prompt
load image "media\gfx\prompt.bmp",2
load image "media\gfx\strapblank.bmp",3
strapx1=0 : sprite 1,strapx1,480-63,2
strapx2=1024 : sprite 2,strapx2,480-63,2
set sprite alpha 1,196 : set sprite alpha 2,196
`rem Set particle effect
`load image "media\gfx\fire.bmp",4
`make particles 1,4,40,100.0
`position particles 1,0,-500,0
`set particle velocity 1,0.2
`set particle speed 1,0.004
`set particle gravity 1,-3
`set particle life 1,2
` make a particle emitter
` make a particle emitter
phy make particle emitter 10, 512, 0.01, 0.0, 0.0, 0.0, 1.0, 0.0, 1.5, 0.0
` texture the particles
load image "media\gfx\fire.bmp", 4
texture object 10, 4
ghost object on 10
` set emitter properties
phy set emitter life span 10, 0.001
phy set emitter size 10, 10.0
phy set emitter max size 10, 20.0
phy set emitter growth rate 10, 4.0
phy set emitter start color 10, 150, 200, 255
phy set emitter end color 10, 0, 0, 0
phy set emitter linear velocity range 10, -5, -5, -5, 5, 5, 5
rem Load and loop space sound
load sound "media\sounds\space.wav",1 : set sound volume 1,80 : loop sound 1
load 3dsound "media\sounds\jet.wav",2 : set sound volume 2,0
rem Main loop
do
rem Rotate and move ship
roll#=wrapvalue(roll#+0.5)
turn#=wrapvalue(turn#+0.1)
y#=0-(cos(roll#)*100)
x#=cos(turn#)*50
z#=50+(sin(roll#)*100)
position object 1,x#,115+y#,z#
xrotate object 1,wrapvalue(90+roll#)
yrotate object 1,wrapvalue(180)
zrotate object 1,0
rem Move strap line
dec strapx1 : if strapx1<=-1024 then strapx1=strapx2+1023
dec strapx2 : if strapx2<=-1023 then strapx2=strapx1+1024
sprite 1,strapx1,screen height()-63,2
sprite 2,strapx2,screen height()-63,3
rem Move camera with ship slightly
position camera 0,135+(y#/1.1),-100
zrotate camera wrapvalue(((cos(turn#)*5)))
rem Set emission position of particles
` position particles 1,x#,(115+y#)-(sin(roll#)*58),z#-(cos(roll#)*58)
phy set emitter position 10,x#,(115+y#)-(sin(roll#)*58),z#-(cos(roll#)*58)
` rotate particles 1,wrapvalue((0-roll#)-90),0,0
rem Position sound of engine
position sound 2,x#,115+y#,z#
position listener 0,115,-100
scale listener 0.5
rem Then play engine sound
if sound playing(2)=0 then loop sound 2
vol=sound volume(2) : if vol<100 then set sound volume 2,vol+1
phy update
rem Update screen
sync
rem Endloop
loop
Dark Physics makes any hot drink go cold.