So, I’ve figured out how FE8 draws its paths on the world map; it’s really a neat system. The paths graphics aren’t stored as whole graphics, but as little pieces which you can put together to draw any of the paths on the world map.
The path graphics data, which is pointed to by the path connections data at $8206674, starts at $8A97FC4 - that’s the graphics data for the Border Mulan - Castle Frelia path.
Each path is drawn in horizontal strips; for each strip, you can define their X and Y coordinates and how many tiles will be in that strip. For instance, let’s look at the Border Mulan data:
0C 08 03 01
These four bytes start off a horizontal strip for any path. The first two bytes are the X and Y coordinates of the top-left edge of the strip. The next byte indicates how many tiles this strip will contain. I’m not certain what the fourth byte is, but it appears to always be 0x1, and changing it causes crashing or garbage tiles to be drawn.
After this comes defining the tiles this strip will use, with two bytes per tile. Here are the three tiles the top strip of this path uses:
01 00 01 00 07 00
The first byte of the tile indicates what graphic to use. 0x1 gives a horizontal section of path at the bottom of the tile, ad 0x7 gives a tiny bit of corner rounding at the bottom-left of the tile.
The second byte is a sort of modifier to the tile graphic; it can affect the graphic’s position and orientation, and is used by corners and diagonal lines. For instance, while 0x7 0x0 gives a corner at the bottom left, 0x7 0xC gives a corner at the top-right of the tile.
Here’s the rest of the graphical data for the Mulan-Frelia path:
0C 09 04 01 02 00 02 00 06 00 07 00
0E 0A 05 01 07 0C 06 00 01 00 01 00 01 00
0F 0B 04 01 07 0C 02 00 02 00 02 00 FF 00 00 00
So, this first path has four horizontal strips; to end the list of strips, write out 0xFF000000 at the end of the last strip.
Lastly, this graphics data must be word-aligned, so don’t put the start of any lists at an offset that isn’t a multiple of 4.