I'm not so good in psyhics. But don't use matrices as ramps, use objects for that. And for the rolling of your car, you should make a kind of variable that increses when you steer and if the car is on a specified speed, then zrotate the car object with that variable, like this:
do
sync
rem acceleration and braking, VERY BASIC
if upkey#=1 then speed#=speed#+1
if downkey#=1 then speed#=speed#-1
rem steering
if leftkey()=1 then steer#=wrapvalue(steer#-3)
if rightkey()=1 then steer#=wrapvalue(steer#+3)
rem move and steer the car
move object car,speed#
yrotate object car,steer#
rem the rolling
rem first, check the speed
if speed# > 30
rem check if the left or rightkey is pressed
if leftkey()=1 or rightkey()=1
rem increse the rol variable
if leftkey()=1
carrol# = wrapvalue(carrol#-3)
endif
if rightkey()=1
carrol# = wrapvalue(carrol#+3)
endif
rem your car must slow down while rolling
speed#=speed#-1
endif
endif
rem the car should go back, if it's rolln over you could make that here
rem very simple is it like>
if speed# < 1
if carrol# > 0 then carrol#=carrol#-5
endif
rem roll the car
zrotate object car,carrol#
loop
I don't know if this code works but i'll think that it will work,
cheers,
jopie
if I = 1 then I = 1 else I = 0

Current project>> "MagEasy" simple 2D game creator..