You are not logged in.
In my hack Gold Sunset horizons, when I resized the map of Azalea town, at its border between Azalea town and route 33 (union cave exit) there is a wall of random tiles all over the resized area.I even tried to resizing it to smaller and regular size. I even loaded default maps of both Azalea town and route 33 from original version but that wall of random tiles is still there. What should I do to fix this. I used gold map.
or you will get this design
It can be passed but it is still a problem.
Last edited by CH666 (2014-05-02 10:53:00)
Don't you have a backup of an older version without the bug?
Anyway, that glitch is occurring because you need to adjust map conections. Have a look at this thread: http://hax.iimarck.us/topic/311/
If you go back, to the original sizes of both Azalea and route 33 it should get fixed, unless Gold Map itself modified some map connection data (never used goldmap, so I can't tell)
Thanks but can you give the step by step method of connecting these locations like the one given on that page...I am sorry but I ain't much good in map editing and it would take very long time if I attempt to do this myself or can someone download, fix it and send me back .ips file? Pleeeease?
Last edited by CH666 (2014-05-02 11:57:38)
Sorry...I don't know spanish (not much...though I am learning).
Is it much of a problem if you had to make the height of Azalea town equal to the height of Route 33, like in the original (both have height = 9)? It makes things much easier. Maybe you don't even have changed that, which is good.
If so, the connections that are giving you problems are Route33: west to Azalea Town, and, Azalea Town: east to route 33. Pick a clean Pokemon Gold ROM and find these two connection data in the second map headers. Then paste that data in your hack rom in the same positions.
For example, route 33 west connection data is, from pokecrystal.asm:
; WEST to Azalea Town
db GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN ; connected map (group, id)
dw (AzaleaTown_BlockData + AZALEA_TOWN_WIDTH - 3) ; strip pointer
dw $c830 ; strip destination
db 9, AZALEA_TOWN_WIDTH ; (connection strip length, connected map width)
db 0, ((AZALEA_TOWN_WIDTH * 2) - 1) ; yoffset, xoffset
dw ($C807 + 39) ; window
Just keep in mind that the offsets in gold will be different, but most likely somewhere close to those of Crystal. I don't remember where second map headers start in gold/silver, but shouldn't be hard to find them.
While making this hack I first changed height of Azalea town from 9 to 12 (maybe that caused the whole problem) then I changed it back to 9 but it is still the same problem.
Last edited by CH666 (2014-05-02 13:56:29)
You can simply update the map connection values back to what they originally were if you aren't even planning on modifying that connection anymore (and if map size is indeed what it was before). Use Johtomap or a hex editor to do this.
I don't even know why you're using GoldMap - it does nothing in a better way expect for the usage of extended tilesets if even that.
If for some reason you can't get Johtomap to run, you can hex edit the map connection data back to normal which is right after all the other data of the Secondary Map Header (GoldMap shows where this is located in the rom as well).
Yeah Miksy that's what I told him, but then again I won't get why a map editor will mess up map connection data. If he went back to original h/w, that's the only thing I can think of.
Anyway, if you wanted Azalea to have a height of 12 blocks it's just about editing these two map connection data accordingly (r33 west and azalea east). It's not very difficult, although it can be a tedious work nonetheless.
These are the things you'll have to work around:
connected map width
I'm going to assume that you expanded Azalea from below since it's much easier to do that in a map editor than from above.
While this is not the map you are working with, it should still be of help and you can use it as a reference:
Basically, in a connection between two certain maps A and B, the strip of map A is what can be seen of the other map B from said map A. In the image above, strips are the black rectangles. In your case, strip length is the number of blocks covered vertically. It's 9 blocks for "Azalea to R33" and 12 blocks for " R33 to Azalea". As for the strip pointer, it's the offset of leftmost and upmost block of the strip (SP in the image).
For Strip destination, h-align, and v-align, you'll have to use some formulas, which depend on the type of connection (north, south, west, east):
North: C703 + X + V
West: C700 + (w+6) * (Y+3) + V
South: C703 + (h+3) * (w+6) + X + V
East: C6FD + (w+6) * (Y+4) + V
h: Height of origin map
w: Weight of origin map
Y: vertical offset
X: horizontal offset
V: 0 for Pokemon Gold / Silver and 100 for Pokemon Crystal
North: (h*2) - 1
West: (-2) * Y
East: (-2) * Y
North: (-2) * X
West: (2*w) - 1
South: (-2) * X
And finally for the window:
North: C701 + (h) * (w+6) + V
West: C706 + (2*w) + V
South: C707 + w + V
East: C707 + w + V
Something regarding the X and Y offsets: Since your connection is horizontal, X offset is always 0. Y offset can be calculated by taking the top end of both origin map and connected map and count how many blocks the latter is separated from the former. As long as you expanded Azalea town from below, Y offset will be 0 too. If you expanded it from above it will be 3 or -3.
Notice how youll have to do all of this twice, once for each map. Once, Azalea will be origin map and R33 will be connected map, and vice versa.
Last edited by Crystal_ (2014-05-02 19:01:59)
Hey miksy I checked the map data in gold map and I found only thing different between original and modified was secondary map data.
I can't use Jhotomap because of netframework problem with my computer.
So, how should I replace the modified data to original while using Goldfinger hex editor (sorry I know you would be very annoyed with such a basic question...haha).
Open both rom files with a hex editor. See what the data is like in the original rom file and make the data in your hacked rom file to match that.
Of course I know that but What offset should I go to or how do I locate it? Should I type in whole address with a dollar sign or just last four digits?
You go to the offset where secondary map header is because the data under the secondary header is there of course :)
Then you just change the necessary stuff back to normal. I'd imagine some of the first 10 bytes, starting at the address where the header is, being something else.