Sawakita
Youngster
aka Noodles
Posts: 41
|
Post by Sawakita on Sept 27, 2010 13:01:22 GMT -5
the last variable (x) represents how many blocks the connected map is shifted horizontally. So if you put: x = 4 then your connected map's top left corner should be moved to the right of four blocks, rather than aligned with the map above.
Exactly what problem are you experiencing? (also a screenshot would be helpful to understand the trouble)
|
|
|
Post by Miksy91 on Sept 27, 2010 13:36:48 GMT -5
The connection doesn't seem to exist It just shows trees as border blocks. EDIT: I made a quick test by using the map connection bytes of Route 40 (Down), and ended up with the same result. The connection isn't appearing. Also, now I only have 2 connections for New Bark although it used to have 3. Might that cause the problem ? *The connection to right (to Route 27) is working however...
|
|
Sawakita
Youngster
aka Noodles
Posts: 41
|
Post by Sawakita on Sept 27, 2010 13:53:29 GMT -5
Did you edit the connection byte? Did you insert the connection data in the right order? ~RedThis should be connection of cinnabar in route 5's header, right? Unless you repointed Cinnabar data, connection data should be: 08 69 40 ab c7 0a 0a 00 00 69 cf08: ok 69 40: connection strip pointer (no idea where you got 471c) ab c7: it seems that you applied north formula instead of south formula 0a 0a: ok 00 00: ok 69 cf:it seems that you applied north formula instead of south formula
|
|
|
Post by Miksy91 on Sept 28, 2010 5:44:58 GMT -5
Actually, I tried editing the connections with JohtoMap, therefore they may be in wrong order. I'll check what hex editor shows in the connection data.
|
|
Sawakita
Youngster
aka Noodles
Posts: 41
|
Post by Sawakita on Oct 2, 2010 7:08:43 GMT -5
I built a program (in VB 6.0), that checks if your connections are correct. I tested it on a clean ROM of Blue: it works perfectly when the coefficient of shift is >=0; but when shift is <0, formula seems to be different. For example it seems (although I'm not sure) that "BIGNESS" is not actual connected map's width (N/S connection) or height(W/E connection), but the visible width (or height), depending on the current map's width (or height). Also "current map position (RAM)" seems to be calculated differently.
Is there anyone that can confirm it?
==================================
EDIT: In the end of the first post, Event Displacement formula should be fixed. If I'm not wrong the correct formula is:
C6EF + (Map width) + (Map width + 6) * (rows above) + (X movement)
==================================
EDIT2: After doing some research, I found out that Tileset Headers aren't 0x0C bytes long, but rather 0x0B bytes long. In fact when calculating the tileset_header's offset the program multiplies Tileset_ID by twelve (decimal), but when loading Tileset_header into RAM it only loads 0x0B bytes.
That byte was probably originally planned to indicate another grass-tile (like second-last byte), or some other feature for the tiles, but then removed during game development.
|
|