On the Dreamcast / Naomi if a texture has the ‘MipMap’ flag set, then you have to take special care when addressing the textures.
Basically MipMapping means that there are a bunch of textures of different resolutions stored in texture ram. Depending on how large the image is to appear on screen a different texture will be used. We don’t emulate MipMapping yet, but that doesn’t mean we can just ignore it.
The way the textures are stored in memory means that the lowest resolution textures are stored first. Therefore if your texture should be 512×512, there are copies at 1×1, 2×2, 4×4, 8×8, 16×16, 32×32, 64×64, 128×128 and 256×256 stored in video ram before it.
Depending on the texture mode (bpp, palettized, compressed etc.) and size of the texture, you have to apply the correct offset to get the full resolution texture. Previously we were just drawing the first one every time, which was the source of the issues seen in the Ikaruga and Border Down screenshots in the previous update. By selecting the correct texture things look much better.
Ikaruga



Border Down


as a bonus.. Radirgy now looks better





.. as does Karous (but still texture problems on the player?)








.. Choco Marker








.. and Spiker’s Battle













… and as a result, it’s a little bit slower again ;-)