Thanks! How do you handle different terrain heights?
scrx = mapy16 - mapx16;
scry = mapx8 + mapy8 - GetSurfaceHeight(mapx,mapy)*12;
IIRC, this assumes origin is in top most tile, with increasing Y going down. So each step the terrain increases, you move the tile you draw up 12 pixels higher from the lowest point.