Todays update are these.
You can select low or high res rendering during runtime now.
Low looks like crapp on big screen but looks good on an small screen like an mobile phone.
It also runs at 56-60 fps on my slow zte skate

High runs around 46 fps.
I also added so anyone that want to pitch in can get an headstart by simply selection to show sprite the renderer uses during runtime.
The biggest part is that i have solved how to convert standard screen cordinates to world cordinates.
All info and changes are here.
Anyone else that have made any progress?
rem
rem AGK Application
rem
rem Landscape App
//setorientationallowed(1,0,1,0)
setsyncrate(0,0)
REM // original snes mostly used 256x224
SetVirtualResolution(320, 240)
#Constant ScrWidth 320
#Constant ScrHeight 240
global mapSpriteNumber,Kart_Sprite,zoom#,Render_Detail,Debugging
REM // Prepare the track sprite
mapImageNumber = LoadImage("Mario_Circuit_1.png")
//SetImageMagFilter( mapImageNumber, 0 )
//SetImageMinFilter( mapImageNumber, 0 )
mapSpriteNumber = CreateSprite(mapImageNumber)
SetSpritePosition(mapSpriteNumber, 0, 0)
SetSpriteAngle(mapSpriteNumber, -90)
SetSpriteActive ( mapSpriteNumber, 0 )
REM // Prepare our kart
Kart_Image = LoadImage("kart.png")
Kart_Speed#=120.0
Kart_Turn_Speed#=120.0
SetImageMagFilter( Kart_Image, 0 )
SetImageMinFilter( Kart_Image, 0 )
Kart_Sprite = CreateSprite(Kart_Image)
fixspritetoscreen(Kart_Sprite,1)
setspritesize(Kart_Sprite,64,64)
SetSpriteAnimation( Kart_Sprite, 32, 32, 4 )
SetSpritePosition(Kart_Sprite, ( ScrWidth/2 )-32, ScrHeight-64)
REM // This is world rendering cordinates converted to screen x=0 and y=0
REM // Makes it really simple to use an dummy sprite for raycasting that
REm // uses screen cordinates.
REM // ScreenToWorldX( ScrWidth/2 )=0 , ScreenToWorldY( ScrHeight )=0
REM // any screen x -160 and screen y -720 will get right positions in the renderer
X#=-160
Y#=-720
REM // This is the default angle and points to the right side of the screen
REM // The same as agks default sprite angle.
ang#=0.0
REM // Setup the start screen with the player in the top left corner of the track
SetViewOffset( X#, Y# )
SetSpriteOffset( mapSpriteNumber, ScreenToWorldX( ScrWidth/2 ) , ScreenToWorldY( ScrHeight ) )
SetViewZoomMode(1)
global GFT#
do
GFT# = GetFrameTime()
zoom# = 8.0
Setspritevisible(mapSpriteNumber,1)
if Render_Detail =0
High_Render()
else
Low_Render()
endif
if Debugging=0 then Setspritevisible(mapSpriteNumber,0)
//scroll the world
if GetDirectionY() <-0.02
X#=X# + (cos(ang#) * (Kart_Speed#*GFT#))
Y#=Y# + (sin(ang#) * (Kart_Speed#*GFT#))
endif
if GetDirectionY() >0.02
X#=X# - (cos(ang#) * (Kart_Speed#*GFT#))
Y#=Y# - (sin(ang#) * (Kart_Speed#*GFT#))
endif
SetViewOffset( X#, Y# )
SetSpriteOffset( mapSpriteNumber, ScreenToWorldX( ScrWidth/2 ) , ScreenToWorldY( ScrHeight ) )
setspriteframe(Kart_Sprite,1)
//rotate the map
if GetDirectionX() <-0.02
SetSpriteAngle(mapSpriteNumber, GetSpriteAngle(mapSpriteNumber) + (Kart_Turn_Speed#*GFT#))
ang#=ang#- (Kart_Turn_Speed#*GFT#)
setspriteframe(Kart_Sprite,3)
endif
if GetDirectionX() >0.02
SetSpriteAngle(mapSpriteNumber, GetSpriteAngle(mapSpriteNumber) - (Kart_Turn_Speed#*GFT#))
ang#=ang#+ (Kart_Turn_Speed#*GFT#)
setspriteframe(Kart_Sprite,2)
endif
print("Detail Track sprite " )
print("Fps = "+str( Screenfps() ) )
print("screen to world/x = "+str( ScreenToWorldX( ScrWidth/2 ) ) + " y = "+str( ScreenToWorldY( 240 ) ))
print("view offset/x = "+str( GetViewOffsetX() ) + " y = "+str( GetViewOffsety() ))
REM // Grabb the whole screen so we get the kart and all the text
SetScissor(0, ScrHeight, ScrWidth,0)
// escape on computer and back button on device
if GetRawKeyState(27)=1 then end
if GetPointerPressed()
if GetPointerX()<32 and GetPointerY()<32 then inc Render_Detail
if GetPointerX()>ScrWidth-32 and GetPointerY()<32 then inc Debugging
if Render_Detail>1 then Render_Detail=0
if Debugging>1 then Debugging=0
endif
Sync()
loop
Function High_Render()
for i = ScrHeight to 80 step -1
SetSpritepositionbyOffset( mapSpriteNumber, ScreenToWorldX( ScrWidth/2 ) , ScreenToWorldY( ScrHeight ) )
SetViewZoom(zoom#)
SetScissor(0, i, ScrWidth, i + 1)
DrawSprite(mapSpriteNumber)
zoom# = zoom# - 0.05
if zoom#=<0.2 then exit
next i
SetViewZoom(0.2)
endfunction
Function Low_Render()
for i = ScrHeight to 80 step -2
SetSpritepositionbyOffset( mapSpriteNumber, ScreenToWorldX( ScrWidth/2 ) , ScreenToWorldY( ScrHeight ) )
SetViewZoom(zoom#)
SetScissor(0, i, ScrWidth, i + 2)
DrawSprite(mapSpriteNumber)
zoom# = zoom# - 0.1
if zoom#=<0.2 then exit
next i
SetViewZoom(0.2)
endfunction