summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Allow-tiles-to-have-different-attributes-in-different-blocks-(including-X-and-Y-flip).md22
-rw-r--r--screenshots/extra-tiles.pngbin2871 -> 0 bytes
-rw-r--r--screenshots/polished-map-plusplus-extra-tiles.pngbin8060 -> 0 bytes
3 files changed, 6 insertions, 16 deletions
diff --git a/Allow-tiles-to-have-different-attributes-in-different-blocks-(including-X-and-Y-flip).md b/Allow-tiles-to-have-different-attributes-in-different-blocks-(including-X-and-Y-flip).md
index fdcd158..c60d7f2 100644
--- a/Allow-tiles-to-have-different-attributes-in-different-blocks-(including-X-and-Y-flip).md
+++ b/Allow-tiles-to-have-different-attributes-in-different-blocks-(including-X-and-Y-flip).md
@@ -8,7 +8,7 @@ For example, here's the `kanto` tileset. The tiles highlighted in fuchsia are ju
This tutorial will show you how to switch from per-tile \*_palette_map.asm files to per-block **\*_attributes.bin** files, which assign full attributes (not just colors) to the individual tiles of each block. By the end, you'll be able to make maps like [this](screenshots/redplusplus-goldenrod-city.png).
-(The code for this feature was adapted from [Pokémon Red++](https://github.com/TheFakeMateo/RedPlusPlus/).)
+(The code for this feature was adapted from [Pokémon Polished Crystal](https://github.com/Rangi42/polishedcrystal/).)
## Contents
@@ -22,7 +22,7 @@ This tutorial will show you how to switch from per-tile \*_palette_map.asm files
7. [Continue changing how tile attributes are loaded](#7-continue-changing-how-tile-attributes-are-loaded)
8. [Finish changing how tile attributes are loaded](#8-finish-changing-how-tile-attributes-are-loaded)
9. [Rename \*.blk to \*.ablk](#9-rename-blk-to-ablk)
-10. [Use more than 256 tiles in a tileset](#10-use-more-than-256-tiles-in-a-tileset)
+10. [Use up to 512 tiles in a tileset](#10-use-up-to-512-tiles-in-a-tileset)
## 1. Review how tilesets and VRAM work
@@ -741,20 +741,10 @@ And the tileset itself is a colorless image:
Note that Polished Map++ assumes you have also [expanded the tilesets to 255 tiles](Expand-tilesets-from-192-to-255-tiles). If you don't apply that tutorial, your maps will look incorrect.
-## 10. Use more than 256 tiles in a tileset
+## 10. Use up to 512 tiles in a tileset
-If you were paying attention during the review of how VRAM works, you'll have noticed that technically a map can use 512 different tiles. The tile ID goes from 0 to 255, and the bank bit is 0 or 1; 256 × 2 = 512. But even Polished Map++ can only load 256 tile graphics at once. So how can we go beyond this?
+If you were paying attention during the review of how VRAM works, you'll have noticed that technically a map can use 512 different tiles. The tile ID goes from 0 to 255, and the bank bit is 0 or 1; 256 × 2 = 512.
-That's what the "★" checkbox in the block editor is for. It basically lets you use the tiles in the "middle" two areas of VRAM instead of the "bottom" two areas. Polished Map++ can't show the actual graphics in those middle areas—unless you modify how pokecrystal works, they'll just contain font tiles and NPC sprites anyway—but it draws a cyan border around a tile to indicate that it's special.
+That's what the **512 Tiles** option is for. It lets your tileset graphic have up to 512 tiles instead of up to 256. By default, extra tiles are assumed to go in $1:80-FF first, and then $0:80-FF; the **$0:80-FF Before $1:80-FF** option inverts this. The default choice is made because Polished Crystal freed up its $1:80-FF VRAM to allow up to 384 tiles. Depending on which extra VRAM you free for tileset use, either choice might be more convenient.
-Keep in mind that pokecrystal and Polished Map++ show tile IDs that aren't quite the same as the internal hardware. They all agree about tile IDs $00 to $7F, which are in VRAM bank 0, but the tiles that Polished Map++ calls $80 to $FF are actually encoded as $00 to $7F in bank 1.
-
-For example, here's a block that uses tiles $0F, $0A, $0C, and $0D with the "★" attribute:
-
-![Screenshot](screenshots/polished-map-plusplus-extra-tiles.png)
-
-Those are actually tiles $8F, $8A, $8C, and $8D in bank 0. And those values in [charmap.asm](../blob/master/charmap.asm) correspond to the letters "P", "K", "M", and "N". Which is exactly what we see in the game:
-
-![Screenshot](screenshots/extra-tiles.png)
-
-There are plenty of ways to take advantage of some of that VRAM real estate for maps, instead of text and sprites. But that's beyond the scope of this tutorial. ;)
+Keep in mind that `LoadTilesetGFX` in [home/map.asm](../blob/master/home/map.asm) only loads 256 tiles. You'll have to devise your own scheme for loading extra tiles into whichever VRAM you want to use. There's no one-size-fits-all solution to recommend, since $0:80-FF is taken up for font tiles and $1:80-FF for NPCs' walking sprites. Polished Map++ won't care about how the code loads the graphics, as long as it sees a single tileset image with all the tiles in order.
diff --git a/screenshots/extra-tiles.png b/screenshots/extra-tiles.png
deleted file mode 100644
index f06c1ad..0000000
--- a/screenshots/extra-tiles.png
+++ /dev/null
Binary files differ
diff --git a/screenshots/polished-map-plusplus-extra-tiles.png b/screenshots/polished-map-plusplus-extra-tiles.png
deleted file mode 100644
index 65de84f..0000000
--- a/screenshots/polished-map-plusplus-extra-tiles.png
+++ /dev/null
Binary files differ