MGE, that seemed to solve the problem, but now apon closer look, it seems this method didn't change the dotting of the particles, it simply made more particles, thus the dots are brighter as the particles are on light blend:
image at full speed(trail looks great at slow speeds):

current code:
Global leftover:Float=0
Const dotspacing:Float=5
Function UpdatePlayer()
Local RadPx:Float
Local RadPy:Float
If KeyDown(KEY_SPACE)
If burning = False burning = True
pdx:+AngleToDX(protation)*ACCELERATION
pdy:+AngleToDY(protation)*ACCELERATION
Else
If burning = True burning = False
End If
protation = PointsToAngle(512,384,MouseX(),MouseY())+90
If MouseHit(1) And Not dead
PlaySound shoot_sound
Local bul:TBullet = New TBullet.Create(512,384,protation)
End If
If MouseHit(2) And Not dead And BOMBS
'PlaySound shoot_sound
Local bom:TBomb = New TBomb.Create(512,384)
BOMBS:-1
End If
'old method for thruster trail
'If burning And Not dead
' EmitParticle(Cos(protation-90) * -9 + 512, Sin(protation-90) * -9 + 384, firepart2, 10, True, 180, 3, ,True)
'End If
If pdx > TOPSPEED pdx = TOPSPEED
If pdx < -TOPSPEED pdx = -TOPSPEED
If pdy > TOPSPEED pdy = TOPSPEED
If pdy < -TOPSPEED pdy = -TOPSPEED
If protation > 360 protation = protation - 360
If protation < 0 protation = protation + 360
'new method for thruster trail
Local distance:Float=Sqr(pdx*pdx+pdy*pdy) 'this is how far the ship moved this frame)
Local dx:Int = pdx/distance 'make (dx,dy) a unit vector in the direction of the ship's movement
Local dy:Int = pdy/distance
If burning And Not dead
Local t:Float = 0
While t<distance
Local _x#=(Cos(protation-90) * -9 + 512) - t*dx
Local _y#=(Sin(protation-90) * -9 + 384) - t*dy
EmitParticle(_x, _y, firepart2, 10, True, 180, 3, ,True)
t:+dotspacing
Wend
End If
px :+ pdx
py :+ pdy
If HEALTH < 1 PlayerDie()
If deadtimer > 115
ParticleExplosion(512,384,starpart,70,15,Rnd(2.11,3.99))
dead = False
deadtimer = 0
End If
If player_st = 20
player_st = 1
player_shield = False
End If
DrawImage landingpad,-px+1024,-py+768
If Not dead
SetRotation protation
DrawImage player_img,512,384
SetRotation 0
If player_shield
DrawImage shield_img,512,384
player_st:+1
End If
Else
SetAlpha .2
SetRotation protation
DrawImage player_img,512,384
SetRotation 0
SetAlpha 1
deadtimer:+1
End If
targetrot:+5
If targetrot > 360 targetrot = 0
If targetrot < 0 targetrot = 360
SetRotation targetrot
DrawImage target_img,MouseX(),MouseY()
SetRotation 0
End Function
Function PlayerDie()
PlaySound boom_sound
dead = True
ParticleExplosion(512, 384, playerpart, 10, 40,,True)
ParticleExplosion(512, 384, firepart, 10, 40, .25)
ParticleExplosion(512, 384, firepart2, 10, 40)
'"Push" enemy's, particles, and bullets off to where they were (don't follow player)
For Local e:TEnemy = EachIn EnemyList
e.x:+px-512
e.y:+py-384
Next
UpdateParticlesZ(,px-512,py-384)
UpdateBullets(px-512,py-384)
px = 512
py = 384
pdx = 0
pdy = 0
burning = 0
player_shield = False
HEALTH = 10
End Function