Thank you for this nice doc! After looking at it briefly I've started suspecting that "pointers" are offsets relative to subsections of subfiles (aka LBL1 is a subsection of LBL), and therefore your method is fine.
Well, I wasn't talking only about headers, I was talking about some data referring other data through specifying the offset. You can't fix that without deep IMG format knowledge.
But your doc and the fact that you can convert CarteBlanche convince me that your way is just fine.
Also, I've discovered another way:
1) Unpack the pseudo-NT IMG with GMapTool
2) For every YYYYYYYY.GMP
2.1) for every XXX subfile inside YYYYYYYY.GMP
2.1.1) save a copy of YYYYYYYY.GMP as YYYYYYYY.XXX
2.1.2) replace the GMP header with XXX header in YYYYYYYY.XXX
3) Pack the map with GMapTool
This method has a disadvantage: the map size increases 6-7 times.
But it also allowed me to open CarteBlanche with mapedit. And also all maps converted this way (I've tested NT and pseudo-NT) work fine on Garmin devices.
It seems to me that both NT and non-NT maps can be stored using GMP and not using GMP (I've checked, see above).
So, maybe GMP is not relevant to NT at all? Maybe NT is just another way of storing/encoding individual subfiles?
Can you try your method of "offset subtracting" on NT maps? And then use those maps on Garmin devices?
Bookmarks