AngelSL Posted December 4, 2009 Posted December 4, 2009 Deciphering data/fielddata/mapmatrix/map_matrix.narc in Diamond/Pearl's contents. I would appreciate it if anyone that has looked into it before provide their insight. And if you figured out the structure of the contents, I'd appreciate it if you could post it here. I do know the structure of a NARC file, I'm looking into the contents of the map_matrix.narc file. If Alpha reads this, SCV said that you might know more about map_matrix.narc's contents. Shoutout.
Kaarosu Posted December 4, 2009 Posted December 4, 2009 Not sure if this is what you asked for Angel, but here it is anyways the content of map_matrix.narc
Alpha Posted December 4, 2009 Posted December 4, 2009 I wrote a nice page on the wiki just for you, AngelSl. http://projectpokemon.org/wiki/Map_matrix
Cryptix Posted December 17, 2009 Posted December 17, 2009 (edited) Hi. I'm also wondering about the map_matrix.narc file (for D/P). The "map" matrix is 30x30, indicating that there should be 1800 bytes following the map's prefix. Instead, there is 4500 bytes. Can anyone explain this discrepency? The matrix provided by "map" (if using the first 1800 bytes after the prefix) is in the shape of the D/P map, although the indexes don't match the maps in the 'land_data_realease.narc' file. For example, the matrix gives '411' as the location for Twinleaf town, but this should be map '0'?Edit: This index appears to map to the names in 'mapname.bin', rather than the maps. Does anyone know how to map the map indexes? I'm sure there is a relatively simple explanation, but I'm yet to find it. Edited December 17, 2009 by Cryptix
Alpha Posted December 17, 2009 Posted December 17, 2009 Hi. I'm also wondering about the map_matrix.narc file (for D/P). The "map" matrix is 30x30, indicating that there should be 1800 bytes following the map's prefix. Instead, there is 4500 bytes. Can anyone explain this discrepency? The matrix provided by "map" (if using the first 1800 bytes after the prefix) is in the shape of the D/P map, although the indexes don't match the maps in the 'land_data_realease.narc' file. For example, the matrix gives '411' as the location for Twinleaf town, but this should be map '0'?Edit: This index appears to map to the names in 'mapname.bin', rather than the maps. Does anyone know how to map the map indexes? I'm sure there is a relatively simple explanation, but I'm yet to find it. The extra data is unknown to me so far (as I haven't yet looked into it), but I do have some guesses as to what makes it up. As a matter in fact, the relationship to land_data_release is very very complicated. Land_data_release files are just the visual overlay of the maps, and very often more than one of these relates to a single map. Twinleaf is 0 according to graphics utilities only. Otherwise it is 411. The only actual program that can map out these complex regions is "AlphaRegion" though it's nowhere near completion yet...
Cryptix Posted December 18, 2009 Posted December 18, 2009 (edited) Hi Alpha. Thanks for the reply, although I am a bit unsure with what you meant by: As a matter in fact, the relationship to land_data_release is very very complicated. Land_data_release files are just the visual overlay of the maps, and very often more than one of these relates to a single map. Perhaps read my observations, and then we can discuss? Just to clarify my current understanding of the 'map_matrix.narc' and the 'land_data_release.narc' files: map_matrix.narc This file contains 245 entries (0 - 244) for Diamond/Pearl and 289 (0 - 288) for Platinum. Each entry corresponds to a "matrix" which indicates how to connect areas from the 'land_data_release.narc' (D/P) or 'land_data.narc' (Pt) file, by arranging each map index into a matrix of fixed dimensions. The 0th entry in this file corresponds to the entire "outside" map (for lack of a better word), and the other entries correspond to different dungeons. land_data_release.narc Known simply as land_data.narc in the Platinum ROM, this file contains 578 (0 - 577) entries for D/P and and 666 (0 - 665) entries for Pt. Each entry in this file describes a 32x32 (1024) square area; including how we can move our character through this area (i.e. the movement grid), which models are used, which textures are applied, etc. Personal Observations From my observation of these maps, I've come to the following associations (D/P): Map #000: Twinleaf Town Map #001: Lake Verity (Top Left) Map #002: Lake Verity (Bottom Left) Map #003: Lake Verity (Top Right) Map #004: Lake Verity (Bottom Right)/Route 201 (Left) Map #005: Route 201 (Middle) Map #006: Route 201 (Right) ... etc. I came to this conclusion by comparing the movement grids with the official Nintendo Power game guide and the 'map' matrix (attached). I have also mapped the indexes from the 'map_matrix.narc' file with each map in 'land_data_release.narc' and found the folllowing: The 0th matrix messes everything up, and except for this map, the matrices are actually fairly simple. Excluding the results from the 0th matrix, maps 179 onwards are indexed in at least one matrix except for maps 225, 226, 227, 326, 327, 547, 548, 549, 550, 551, 552. Most maps are indexed exactly once, except for 499, 500, 501, 502, 503, 504 (not sure what these matrices represent, yet) and 561-576 (this range represents the underground maps). Furthermore, the indexes from the 0th matrix seem to more accurately correspond the the entries in 'mapname.bin': 411 is 'T01' (Town 1) 334 is 'L01' (Lake 1) 342 is 'R201' (Route 201) 418 is 'T02' (Town 2) 343 is 'R202' (Route 202) etc... Anyway, I am continuing work on understanding the relationships between the files in the fielddata folder; and if anyone has further information (or wants to help), let me know. For anyone who wants to know, the tools I am using are: NitroExplorer (to extract NARC files) , and HxD (a free and portable hex editor). I am writing a lot of my own programs for analysing the NARC files, and I may release the code in the future. Edit: Offsets: http://pokemon.xafine.com/land_data_release-dp.txt http://pokemon.xafine.com/land_data-pt.txt http://pokemon.xafine.com/map_matrix-dp.txt http://pokemon.xafine.com/map_matrix-pt.txt 'map' matrix: http://pokemon.xafine.com/map.png Edited December 18, 2009 by Cryptix Added links, formatting.
Alpha Posted December 18, 2009 Posted December 18, 2009 (edited) Cryptix, all the information is known to me. I have what may be one of the only map tools. What it does is it searches through the ARM files to get the full correlation set. This set links the map index (Twinleaf = 411) to its encounter rate data, scripts, text, and event data. The map_matrix is used upon calling maps. When you cross that loading line from Route 201 into Twinleaf town, it loads all of this data, and then calculates where it is on that map matrix (just like your image) and then loads the graphical map "map03_27c" which is land_data.narc/0. Edit: AlphaMap, and its subprograms, and the Alpha-Py Series are not out for release yet. Edited December 18, 2009 by Alpha Program status
Cryptix Posted December 18, 2009 Posted December 18, 2009 Thanks Alpha, that's exactly the kind of information I needed. Time to start looking at the ARM files. =) Cryptix. Edit: Where can I find your tool? Have you released it yet? What about the source code?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now