Displaying the minimap is very slow when there are a lot of tiles to display (large window/small tiles). This only happens when using the Win32 client -- it's instantaneous when using the SDL client under Windows. This is probably because the SDL surface is created with each window, when the Win DC is recreated each time a tile is displayed...

With this code, the minimap displays itself in 60ms instead of 500ms when using David Gervais tiles. And redrawing the screen with David Gervais tiles when playing in fullscreen mode takes 500ms instead of 4 seconds. And this also fixed the problem with unmapped tiles not refreshed properly...

In fact, the slowdown is caused by calling Term_putch() to display the minimap tiles. Term_putch() queues a tile with transparency = 0, which is inefficient in the case of the Win32 client, since the original code first blits the terrain tile, then ANDs the overlay mask and finally ORs the overlay tile. In this case, the costly StretchBlt() function is called three times to do 0 AND something...

Using Term_queue_char(tile, tile) in display_map() instead of the previous code should also do the trick.