Ok, here's the function I use to split an image up into separate tiles.
function loadTileset(path$, _TileSize, _ImgNeedle)
tmpImg = 9999
m1 = 1
load image path$, tmpImg
make memblock from image m1, tmpImg
delete image tmpImg
width = memblock dword(m1,0)
height = memblock dword(m1,4)
rows = height / _TileSize
cols = width / _TileSize
m2 = 2
make memblock m2, _TileSize*_TileSize*4+12
write memblock dword m2, 0, _TileSize
write memblock dword m2, 4, _TileSize
write memblock dword m2, 8, depth
color as dword
for r = 0 to rows-1
for c = 0 to cols-1
for y = 0 to _TileSize-1
for x = 0 to _TileSize-1
pos = (((y+r*_TileSize)*width)+(x+c*_TileSize))*4 + 12
color = memblock dword(m1, pos)
pos2 = ((y*_TileSize)+x)*4 + 12
write memblock dword m2, pos2, color
alpha = color >> 24
write memblock byte m2, pos2+3, alpha
next x
next y
make image from memblock _ImgNeedle, m2
inc _ImgNeedle
next c
next r
delete memblock m2
delete memblock m1
endfunction
VanB, isometric really does add so much more depth to a 2D game. I'm going to take a look into a more sophisticated collision system which would allow for more precise collision with tiles which only use half its space. Think of a square cut diagonally. If I get that working, then technically you could fake the isometric tiles (i say fake because the system isn't true isometric) as long as they're drawn properly.

"Any sufficiently advanced technology is indistinguishable from magic" ~ Arthur C. Clarke