summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Triple-layer-metatiles.md55
1 files changed, 29 insertions, 26 deletions
diff --git a/Triple-layer-metatiles.md b/Triple-layer-metatiles.md
index 95aa620..a36bd21 100644
--- a/Triple-layer-metatiles.md
+++ b/Triple-layer-metatiles.md
@@ -37,48 +37,51 @@ The changes we need to make to the game's code are fairly simple. We need to mod
The first function we tackle is `DrawMetatile` which is responsible for rendering the metatiles to VRAM. We overwrite the function with the following:
```C
-static void DrawMetatile(s32 metatileLayerType, u16 *metatiles, u16 offset)
+static void DrawMetatile(s32 metatileLayerType, u16 *tiles, u16 offset)
{
if(metatileLayerType == 0xFF)
{
// A door metatile shall be drawn, we use covered behavior
// Draw metatile's bottom layer to the bottom background layer.
- gBGTilemapBuffers3[offset] = metatiles[0];
- gBGTilemapBuffers3[offset + 1] = metatiles[1];
- gBGTilemapBuffers3[offset + 0x20] = metatiles[2];
- gBGTilemapBuffers3[offset + 0x21] = metatiles[3];
+ gOverworldTilemapBuffer_Bg3[offset] = tiles[0];
+ gOverworldTilemapBuffer_Bg3[offset + 1] = tiles[1];
+ gOverworldTilemapBuffer_Bg3[offset + 0x20] = tiles[2];
+ gOverworldTilemapBuffer_Bg3[offset + 0x21] = tiles[3];
+
+ // Draw transparent tiles to the top background layer.
+ gOverworldTilemapBuffer_Bg2[offset] = 0;
+ gOverworldTilemapBuffer_Bg2[offset + 1] = 0;
+ gOverworldTilemapBuffer_Bg2[offset + 0x20] = 0;
+ gOverworldTilemapBuffer_Bg2[offset + 0x21] = 0;
// Draw metatile's top layer to the middle background layer.
- gBGTilemapBuffers1[offset] = metatiles[4];
- gBGTilemapBuffers1[offset + 1] = metatiles[5];
- gBGTilemapBuffers1[offset + 0x20] = metatiles[6];
- gBGTilemapBuffers1[offset + 0x21] = metatiles[7];
+ gOverworldTilemapBuffer_Bg1[offset] = tiles[4];
+ gOverworldTilemapBuffer_Bg1[offset + 1] = tiles[5];
+ gOverworldTilemapBuffer_Bg1[offset + 0x20] = tiles[6];
+ gOverworldTilemapBuffer_Bg1[offset + 0x21] = tiles[7];
- // Draw transparent tiles to the top background layer.
- gBGTilemapBuffers2[offset] = 0;
- gBGTilemapBuffers2[offset + 1] = 0;
- gBGTilemapBuffers2[offset + 0x20] = 0;
- gBGTilemapBuffers2[offset + 0x21] = 0;
}
else
{
// Draw metatile's bottom layer to the bottom background layer.
- gBGTilemapBuffers3[offset] = metatiles[0];
- gBGTilemapBuffers3[offset + 1] = metatiles[1];
- gBGTilemapBuffers3[offset + 0x20] = metatiles[2];
- gBGTilemapBuffers3[offset + 0x21] = metatiles[3];
+ gOverworldTilemapBuffer_Bg3[offset] = tiles[0];
+ gOverworldTilemapBuffer_Bg3[offset + 1] = tiles[1];
+ gOverworldTilemapBuffer_Bg3[offset + 0x20] = tiles[2];
+ gOverworldTilemapBuffer_Bg3[offset + 0x21] = tiles[3];
// Draw metatile's middle layer to the middle background layer.
- gBGTilemapBuffers1[offset] = metatiles[4];
- gBGTilemapBuffers1[offset + 1] = metatiles[5];
- gBGTilemapBuffers1[offset + 0x20] = metatiles[6];
- gBGTilemapBuffers1[offset + 0x21] = metatiles[7];
+ gOverworldTilemapBuffer_Bg2[offset] = tiles[4];
+ gOverworldTilemapBuffer_Bg2[offset + 1] = tiles[5];
+ gOverworldTilemapBuffer_Bg2[offset + 0x20] = tiles[6];
+ gOverworldTilemapBuffer_Bg2[offset + 0x21] = tiles[7];
// Draw metatile's top layer to the top background layer, which covers object event sprites.
- gBGTilemapBuffers2[offset] = metatiles[8];
- gBGTilemapBuffers2[offset + 1] = metatiles[9];
- gBGTilemapBuffers2[offset + 0x20] = metatiles[10];
- gBGTilemapBuffers2[offset + 0x21] = metatiles[11];
+ gOverworldTilemapBuffer_Bg1[offset] = tiles[8];
+ gOverworldTilemapBuffer_Bg1[offset + 1] = tiles[9];
+ gOverworldTilemapBuffer_Bg1[offset + 0x20] = tiles[10];
+ gOverworldTilemapBuffer_Bg1[offset + 0x21] = tiles[11];
+
+
}
ScheduleBgCopyTilemapToVram(1);