You are not logged in.
Tilemap Studio is a tilemap editor for any Game Boy, Color, Advance, or SNES project, but with particular focus on the pokered, pokecrystal, and pokeemerald disassemblies. It's a counterpart to Polished Map: Polished Map is for editing overworld maps, as well as their associated tilesets and other data; Tilemap Studio is for editing tilemaps like the Town Map, Pokégear cards, slot machines, diploma, and other screens.
Tilemap Studio can open tilemaps in many different formats:
• Plain tiles: A simple sequence of tile IDs, top to bottom, left to right. Every platform uses this sometimes.
• GBC tiles + attributes: Meant for Game Boy Color tilemaps. Pairs of bytes combine 9-bit tile IDs (8-bit plus a bank bit), 8 palettes, X/Y flip bits, and priority and OAM1 (sprite-related bits).
• GBC tilemap + attrmap: Meant for Game Boy Color tilemaps with corresponding attrmaps, with tile IDs in one file and attribute bytes in the other.
• GBA tiles + 4bpp palettes: Meant for Game Boy Advance tilemaps. Pairs of bytes combine 10-bit tile IDs, 16 palettes, and X/Y flip bits.
• GBA tiles + 8bpp palette: Meant for Game Boy Advance tilemaps. Pairs of bytes combine 10-bit tile IDs and X/Y flip bits. Assumed to use a single 256-color palette.
• SGB border: Meant for pokered's gfx/red/sgbborder.map and gfx/blue/sgbborder.map. Pairs of bytes combine 8-bit tile IDs and SGB attributes (4 palettes and X/Y flip bits).
• SNES tiles + attributes: Pairs of bytes combine 10-bit tile IDs and SNES attributes (8 palettes, X/Y flip, and priority).
• RBY Town Map: Meant for pokered's gfx/town_map.rle. Bytes combine 4-bit tile IDs and run lengths; ended by a $00 byte.
• GSC Town Map: Meant for pokecrystal's gfx/pokegear/johto.bin and kanto.bin. Plain tilemaps ended by a $FF byte.
• SW Town Map: Meant for pokegold-spaceworld's gfx/trainer_gear/town_map.tilemap.rle. Plain tilemaps ended by a $00 byte.
• PC Town Map: Meant for Polished Crystal's gfx/town_map/*.bin. files. Bytes combine 6-bit tile IDs and X/Y flip bits; ended by a $FF byte.
• Pokégear card: Meant for pokecrystal's gfx/pokegear/*.tilemap.rle files. Plain tilemaps with run-length compression; ended by a $FF byte.
The first formats are meant for all kinds of Game Boy projects, GB, GBC, GBA, or SNES. The rest are more specific to the Pokémon disassemblies and various hacks using those bases, including Polished Crystal, Red++, Orange, and Prism.
Tilemap Studio can create a tilemap, tileset, and palette from an input image, and then it can edit the tilemap, but to edit the tileset or palette you'll need a different program.
A few tips:
• You can make a copy of a tileset image and color it in to view tilemaps better; Tilemap Studio will load any 8x8px-tile tileset image, regardless of colors, but it can't apply palettes to grayscale images.
• Use the Image to Tiles feature to generate a tilemap, tileset, and palette from a screenshot or mockup of how you want a static tilemap to look.
• Shift+click to flood-fill tiles; Ctrl+click to replace all of one kind of tile; Alt+click to swap two kinds of tile.
• Right-click in the tilemap to select from the tileset; right-click in the tileset to highlight in the tilemap.
• Left- or right-drag to select rectangles of tiles from the tileset or tilemap.
• Read the Help file for more details, including more mouse-controlled features which might be harder to discover than menu items and toolbar buttons.
• If you are using Windows, right-click install.bat and click "Run as Administrator". This will install Tilemap Studio to your account's AppData folder and place a shortcut on your Desktop. You will also be able to double-click a .tilemap file to open it in Tilemap Studio.
Last edited by Rangi (2020-11-13 22:47:00)
I am not very active on this forum. I only pop in from time to time.
Version 1.0.1 is out with a couple of bug fixes: RBY Town Maps get saved correctly, and adding multiple tilesets works even when they're offset.
This seems handy!
Wow, this will make customizing so much easier! I'm absolutely using this for Untitled Unova Game.
This is awesome. Thanks so much for all your work!
Version 2.0.0 is a major update: now it supports general-purpose GB, GBC, and GBA tilemaps! That means up to 1,024 tiles, 16 palettes, and all the attribute bits.
Anyone who's used Tilemap Creator, NTME, or NTME+, I'd recommend trying this out. Just read the top post and/or the Help file first; some of the mouse controls are convenient but not obvious.
The most significant missing feature is placing multiple tiles at a time, like Grosser Block in Advance Map, but I'm planning to add that in 2.1.
Tilemap Studio 2.1.0 is ready! It doesn't have multi-tile selection yet—although that's definitely next on the list—but it does 1x to 10x zoom; various GUI improvements and bugfixes; and palette creation, thanks to an optimization algorithm from superfamiconv.
Here's how it works. Say you have a mockup image (this one is by wowjinxy):
Open Tilemap Studio; press Ctrl+X for Image to Tiles; and choose your options. This is for a GBC game, we want the tile IDs and attributes stored in separate files, and following the existing Pokémon Crystal intro, we want the first tile to be $80, not $00.
Then just press OK and—if your image fits within the limits of the chosen format—it outputs the tilemap, tileset, and palette!
Palettes are in JASC format for GBA tilemaps; otherwise they use the same RGB macros as the pokered and pokecrystal disassemblies. They're automatically sorted from lightest to darkest colors, and optimized to use as few palettes as possible.
If you don't like the order that the tiles or palettes are in, that's fine; just rearrange them in your graphics or text editor. Then reopen the tilemap, and use Alt+click in the Tiles or Palettes tabs to rearrange the tilemap itself.
Version 2.1.1 has a couple of updates. The themes have been improved a bit, and there's a new dark High Contrast theme. Also, when you do Image to Tiles and make a .pal file, the tileset .png will be saved as grayscale 2-bit (for GBC) or 4-bit (for GBA). That means smaller files and simpler conversion to 2BPP or 4BPP Game Boy graphics formats.
Version 3.0.0 finally adds multi-tile selection! Just left-drag in the tileset or right-drag in the tilemap. If the tilemap format supports X+Y flip, those buttons will also make the entire selection flip when you place it.
This version was built with Visual Studio 2019, and it comes with some optimizations and bugfixes. It also supports SNES-format tilemaps.
I like this tool!
Version 3.1.0 is out, with some significant updates.
I've understood the GBA tilemaps better, so now there are separate 4bpp and 8bpp formats like NTME and Tilemap Creator have. The difference is mostly relevant for Image to Tiles: creating a 4bpp allows 16 palettes of 16 colors each, but an 8bpp allows one 256-color palette for the whole tileset.
The Image to Tiles feature is more powerful now:
You can pick any format to save palettes, including Paint Shop Pro JASC, Photoshop ACT, GIMP GPL, or a PNG or BMP image to easily see the colors. Plain tilemaps support 8BPP palette creation; this is relevant for GBA "affine" or "rotation/scaling" tilemaps. And, when the created tilemap opens, its width is correct by default.
There are other changes here and there, described in the changelog.
Last edited by Rangi (2019-11-24 18:55:27)
Here's one of the more useful 3.1.0 changes for Gen 2 ROM hackers: Town Map palette support!
Say you have a mockup of your Town Map:
Now you can create a palette for it:
So the tileset will be created as a monochrome image suitable to use in pokecrystal:
The colors got output to town_map.pal, but it also created town_map.asm, which assigns a single palette to each tile. (Unlike more general GBC and GBA tilemaps, where the same tile can have different palettes when it's used at different spots in the tilemap.)
Now when you're replacing all the Town Map files with your newly generated ones, you can copy the contents of town_map.asm into gfx/pokegear/town_map_palette_map.asm. (Note that you should just replace the town_map.png colors, not the pokegear.png ones. Also note the new "pertilepals" macro, which unlike "townmappals" uses actual numbers instead of PAL_TOWNMAP_* constants.)
You'll now have a properly-colored Town Map in the game!
(Credit to SaveState for the original image of Sinnoh.)
Last edited by Rangi (2019-11-24 18:57:20)
Tilemap Studio has its first release of 2020: 3.2.0. It's a pretty significant update from 3.1.0. You can download it and read the whole changelog at that link on GitHub.
The major changes have been in the Image to Tiles feature. The dialog has been reorganized; it lets you specify a color #0 to use for every palette (useful for transparent backgrounds); and if it can't build the tiles, the dialog reappears without losing your settings, so you can quickly edit the input image or fix the settings and try again.
Two other convenience features: Tilemap→Print can export to an image or copy to the clipboard; and Options→Auto-Load Tileset will load a tileset image with the same name as a tilemap.
There have also been some bugfixes, such as placing flipped multiselected tiles past the edges of the tilemap, or outputting JASC palette files (used for GBA graphics in pokeruby and pokeemerald).
Version 3.2.1 is released! It's mostly an internal improvement, using new C++17 features and fixing some issues found with static analysis. It does make the Image to Tiles dialog's Palette checkbox on by default, since that's the common setting, and it improves editing for RBY Town Maps.
It's been a year since version 1.0 of Tilemap Studio came out. It looked very different then:
Compared to now:
It started as just a Town Map editor with other plain tilemaps tacked on; by now it fully supports GB and GBC tilemaps, and even GBA and SNES. Although there's still plenty left to do.
For Friday the 13th, here's another Tilemap Studio update; version 3.2.2.
The most visually obvious new feature is the Brushed Metal theme:
Besides that, it also supports the pokegold-spaceworld Town Map format (prototype Gen 2 ended its Town Map data with $00 instead of $FF):
There's also F11 Full Screen mode, and some other improvements described in the release changelog.