Jump to content

Inserting maps and map changes with Tiled.


Nintenlord
 Share

Recommended Posts

Me and some other dude recently discovered a tile map making tool called Tiled. So naturally, I made an FE map inserter for it. And then I made an tutorial on how to use that inserter and making insertable maps in Tiled.

Required knowledge:
-How to use Nightmare.
-Offsets and pointers.
-Knowing the offset of some free space in the ROM.

Recommended:
-Basic hex editing knowledge.
-Arithmetic in hexadecimal, use your computers calculator for it.

Required tools:
-Tiled.
-Tiled map inserter and tilesets. Comes with all tilesets for all 3 GBA games.
-Nightmare, Chapter Data editor and Event reference editors.
-ROM.

Making an insertable map:

Start up Tiled and select New. Map size isn't that important as Tiled can resize maps, but start with something reasonable. You can't insert 1000x1000 tile maps to any GBA FE, so no point to make a map that size. The exact upper limit depends on the game and for FE7 it's 43x36 IIRC. Make sure orientation is Orthogonal and Tile size is 16x16:

newmap.png

Next, pick a tileset. You can only choose one tileset per map, so choose carefully. You can't change tileset later, either. Go to Map -> New Tileset. Click on the Browse... button and go to the folder where you put the tilesets that come with the inserter. Choose one of the tilesets in there. Do not use Mappy tilesets or reference tilesets as those won't work and you won't see the problem until you've inserted the map. Let the Tiled choose the name of the file to be the name of the tileset and make sure the Tile width and height are 16 and Margin and Spacing are both 0:

newtileset.png

Now you make the map. It can be pure shit for all I care, you're here to learn how to insert a map, not how to make a good map. If you want to learn how to make a good map, ask at Art and Spriting boards. Here's what I came up with for this tutorial:

mapmade.png

If the map isn't going to contain any map changes, your map is now done and you can skip ahead to the insertion part. If your map does have map changes, then continue reading. First, right click on your only layers properties and add a new property called "Main". This will tell the inserter which layer contains the actual map instead of map change:

mainproperty.png

So now, we make the map changes. Every change needs to be on it's own layer. One change can be something like a village gate closing, a village getting destroyed or a pathway appearing, so one change isn't restricted to one tile. You make the change by first adding a new layer and then adding the changed tiles to that layer. If a tile doesn't change, then you can leave that tile empty. And since empty tiles are transparent, you will see what the changed map will look like when you have the main layer visible:

firstmapchange.png

If you want to check that there isn't any extra tiles on the map change, you can make the map layer transparent. Now that you have the changed tiles set, you need to add properties to tell the inserter which tiles are going to be used in the map change. You will do that by using layer properties. This time, however, you need to add actual values to the properties. The properties for map changes are:
ID: The ID of the map change. Must be unique for every map change for this map.
X: The X coordinate of the top-left corner of map change
Y: The Y coordinate of the top-left corner of map change
Width: The width of the map change
Height: The height of the map change
Each one of these are required for the map change to work. Also, all of these values must be between 0 and 255 in decimal, not in hex. Here's what the properties of my destroyed village are:

mapchangeproperties.png

You can add any properties of your own to anything you may want as they are ignored by the inserter. However, I may add more properties for a future version of the inserter, so be careful with them. Also, I recommend giving each map change a unique and descriptive name, it will make future editing easier.
Repeat this for every map change you have and you are done. Be sure that every map change gas different ID, otherwise both the inserter and the ROM will get confused. Now, your map is done:

firstmapdone.png


Inserting a map:

Save your progress and exit Tiled. Start up Tiled map inserter and you should see the following:

inserterstart.png

Pretty empty, so we'll fill it up. Tiled file is the file you saved in Tiled, so choose it. The ROM is the ROM you wish to insert the map to and the Offset is the offset of some free space in the ROM. If your map has some map changes you wish to insert, check the Insert map changes? checkbox. Now, just because the map is in the ROM the game won't automatically know where it is, so you'll need to insert the pointers as well. You can do that with two ways, either you use Event reference editors to insert the pointers or you find out the offset of the pointers and let the inserter do it for you. Either way is fairly straightforward, so i won't cover them. Here's how it looks like when I insert my map to FE7 and replace Prologue map pointer and Ch2 map changes:

inserterready.png

Now that you have the map inserted and the pointers set up, you need to tell the chapter to load correct map, tileset and map changes. For that, open the ROM in Chapter Data Editor. There's plenty of data that makes the chapter, but we are only interested in these:

chapterdataeditor.png

You remember how the tilesets name was something 10001112? The name comes from Chapter Data Editor. First two digits the Object Set 1, the next two are Object Set 2, Palette is the next two while the last two are Tile Configuration. So put that data into the module and you'll get your map use correct tileset. Your tileset may also have some animations, in which case, choose the correct one, you can find it based on the name of the tileset and animation. Then, if your map had map changes, then you also choose the correct Triggerable Map Changes. Then save and exit Nightmare as usual and you are done. Now fire up the ROM and bask in the glory of your map:

result.png

The end:

Now, your map may be in the ROM, used by chapter and has correct tileset, but your map changes won't trigger. This is because map changes can only be triggered by events. As for how to edit events, that isn't part of this tutorial. There are plenty of event hacking tutorials on the web, most of them made by Arch/Supreme Overtroll (whom I taught myself, so he is good), that cover map changes:
Event Hacking for Dummies
General Archibald's Bootcamp of Event Hacking
If you can master both map and event making, you will have a near-total mastery over making custom chapters in Fire Emblem, so I recommend start learning. You'll have long way ahead of you, but it'll be fun. Sometimes. >_>

Edited by Primefusion
Fixing broken links
Link to comment
Share on other sites

  • 3 weeks later...

Hey, I have a quick question. When I'm trying to insert my map, it says that there is a map change without ID and It wont copy to the ROM. Do I have to have the properties for the main layer too?

Link to comment
Share on other sites

Idiotic question initialize:

What's the minimum tile resolution for a GBA map?

(I presume 15x10?)

Edited by Kysafen
Link to comment
Share on other sites

Idiotic question initialize:

What's the minimum tile resolution for a GBA map?

(I presume 15x10?)

Yes, the minimum size is 15x10, as that will produce a map that is the exact dimensions of the GBA's screen (240x160).

Link to comment
Share on other sites

-ROM. Currently only FE7 and some FE6 tilesets exist, so only those ROMs are supported. More support will be added in near future.

Wait, we have every tileset already found(or at least 98% of them), why not any FE8 and all of the FE6 ones?

Link to comment
Share on other sites

  • 1 month later...

Rather then posting my own topic I'll ask here. When I use nightmare and put the tilesets in correctly, it changes to the sacae plains tilesets... (The map layout stays the same as the map file I made on tiled and inserted though) Any suggestions?

post-3699-002736700%201312318986_thumb.png

It is using the tileset 0A003A0C and it is over

the prologue.

Edited by Cloud
Link to comment
Share on other sites

Just gave this a read, sounds awesome, I think I'll try and use it if I have any major tile change chapters (or else I'm too lazy to switch methods :P).

Arch/Supreme Overtroll (whom I taught myself, so he is good)

So since you and I kinda had the same teacher although Icy Toast never told me much and we both figured out most of events on our own does that mean I'm as cool as you? :P

Just kidding, inb4someonecallsmeoutformakingajoke

Link to comment
Share on other sites

^Haven't read your event tutorial, so I can't really recommend it.

Rather then posting my own topic I'll ask here.

Please post in your own topic, this is in Hacking Tutorials, not in Hacking Questions.

Link to comment
Share on other sites

  • 9 months later...

Tiled Map Insertion is SO much better than Mappy, way to go Nintenlord!

I have a small suggestion for the tutorial...when giving map changes ID numbers, I had assumed that they had to be hexidecimal numbers (because that's how it was when I inserted map changes with EA); the first time I tried to insert a map with more than 9 tile changes it would not insert, and it took me ages to figure out that I needed to be using '10' instead of 'A' for the ID numbers. Maybe mention in the tutorial that ID numbers must be decimal numbers? For the sake of morons like me. ^^;;;

Link to comment
Share on other sites

  • 11 months later...

Is it possible to use this program to make custom maps from scratch for Fire Emblem d20? Preferably in the form of a picture file.

If so, how do I get the FE 6, 7, and 8 Tile Sets available to use in the program?

Edited by AzureLight12
Link to comment
Share on other sites

  • 4 months later...
  • 3 weeks later...

I dont get it, what is this "write map pointer to.." and " write map changes to"? and that offset...is that the code of the chapter( Nightmarre+FE7 -> Event table references -> 0x00-0x01 sacaeplains = Pointer is 0x0834c74c)? I dont know where I will get it, I dont quite understand well

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...