There is a way through code, but it can get slow to do it per-frame, and it only works on a single layer, but can be used in a loop to capture the whole map:
var surfaces = [];
var c = CreateColor(0, 0, 0, 180);
var i = GetNumTiles();
while (i--) {
var surf = GetTileImage(i).createSurface();
surfaces.unshift(surf);
}
var width = GetLayerWidth(layer);
var height = GetLayerHeight(layer);
var l_surf = CreateSurface(width << 4, height << 4, Colors.clear);
for (var y = 0; y < height; y++) {
for (var x = 0; x < width; x++) {
l_surf.blitSurface(surfaces[GetTile(x, y, layer)], x << 4, y << 4);
}
}
return l_surf;
A version exposed through the API would be much, much faster, I hope.
FJ: If you do start the map engine, make it so you can string them together. I've always wanted to have free-form maps like in Pokemon, but cannot do so in the current Sphere. Make it so you can string maps together!