You are on page 1of 27

Navteq navigation CD for RT3 structure

21/10/2006

1.

2.
3.

4.

Preliminary ......................................................................................................................... 3
1.1.
Disclaimer .............................................................................................................. 3
1.2.
Why this document................................................................................................. 3
1.3.
CD version(s) described ......................................................................................... 3
Main contributors ............................................................................................................... 4
General information ........................................................................................................... 4
3.1.
Localization by zones............................................................................................. 4
3.2.
POI localization by country, region, department city and district. ........................ 7
File structure....................................................................................................................... 8
4.1.
Files naming rules .................................................................................................. 8
4.2.
Files in the tree structure under the root................................................................. 8
4.2.1.
P_RR\CAT\ZZZDCP.CAT ................................................................................ 8
4.2.2.
P_RR\IND\ZZZCOM.IND ................................................................................ 9
4.2.3.
P_RR\INSCIV\LZWZZZ.S_C ......................................................................... 10
4.2.4.
P_RR\LET\ZZZTOP.LET................................................................................ 10
4.2.5.
P_RR\TOP\ LZWZZZ.TOP ............................................................................. 10
4.3.
Files in the root..................................................................................................... 11
4.3.1.
CONFIG.LOG.................................................................................................. 11
4.3.2.
DB_DWNL.OUT ............................................................................................. 11
4.3.3.
DCN.DAT ........................................................................................................ 11
4.3.4.
FRANC002.DEG ............................................................................................. 11
4.3.5.
FRANC002.DPL .............................................................................................. 12
4.3.6.
FRANC002.DRL.............................................................................................. 12
4.3.7.
FRANC100.DEG ............................................................................................. 12
4.3.8.
FRANC100.DPL .............................................................................................. 13
4.3.9.
FRANC100.DRL.............................................................................................. 13
4.3.10. FRANC.DEG ................................................................................................... 13
4.3.11. FRANCDET.DRS ............................................................................................ 14
4.3.12. FRANC_EX.DPS ............................................................................................. 14
4.3.13. FRANC_EX.DSS ............................................................................................. 14
4.3.14. FRANC_EX.RID ............................................................................................. 14
4.3.15. FRANC_XX.POI ............................................................................................. 14
4.3.16. FRANC_NOMSERV.DAT.............................................................................. 15
4.3.17. FRANC_NV.DAT............................................................................................ 15
4.3.18. FRANCCAT.POI ............................................................................................. 16
4.3.19. FRANCDPA.LZW ........................................................................................... 16
4.3.20. FRANCDSP.POI.............................................................................................. 16
4.3.21. FRANCPOI.DAT ............................................................................................. 17
4.3.22. FRANCXXX.DSC ........................................................................................... 18
4.3.23. FRANCXXX.DST ........................................................................................... 19
4.3.23.1.
FRANCSCC.DST ........................................................................................ 20
4.3.24. FRANSCC.IMP................................................................................................ 20
4.3.25. GRUPPO2.DAT............................................................................................... 20
4.3.25.1.
File header .................................................................................................... 20
4.3.25.2.
CodNazGuidSX............................................................................................ 20
4.3.25.3.
DIVIETI.DAT .............................................................................................. 21

5.

4.3.25.4.
DPN.CAT..................................................................................................... 21
4.3.25.5.
FRANC.Geo ................................................................................................. 21
4.3.25.6.
FRANC.TiT.................................................................................................. 21
4.3.25.7.
FRANC_EX.DMR ....................................................................................... 21
4.3.25.8.
FRANC_EX.DSR ........................................................................................ 22
4.3.25.9.
FRANC_UK.POI ......................................................................................... 23
4.3.25.10.
FRANCCAT.POI ..................................................................................... 23
4.3.25.11.
FRANCCHR.TXT.................................................................................... 23
4.3.25.12.
FRANCOM.LET...................................................................................... 23
4.3.25.13.
GENDET.DAT......................................................................................... 23
4.3.25.14.
Label.txt.................................................................................................... 23
4.3.25.15.
Map.ver .................................................................................................... 23
4.3.25.16.
PrefInt....................................................................................................... 23
4.3.25.17.
RdsTable................................................................................................... 23
4.3.25.18.
RdsTableLibere ........................................................................................ 23
4.3.25.19.
Release ..................................................................................................... 23
4.3.26. GUIDA_CHAMPERARD.POI........................................................................ 23
4.3.27. SCITTANAME.DAT ....................................................................................... 23
4.3.28. SIF.VER ........................................................................................................... 23
4.3.29. SW_VER.DAT................................................................................................. 23
4.4.
Summary .............................................................................................................. 24
4.4.1.
File size (TD3002900) ..................................................................................... 24
4.4.2.
File link ............................................................................................................ 26
Comment ajouter un POI.................................................................................................. 27

1. Preliminary
This is a draft version of the documentation.
In red, missing information or not double checked.

1.1.

Disclaimer

Copyright (c) 2006, Phil95@planete-citroen.fr, janfi67@planete-citroen.fr


This work is licensed under the Creative Commons Attribution-Noncommercial-No
Derivative Works 2.0 France License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ or send a letter to Creative Commons,
543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
All of the information, instructions, and recommendations on this document are offered on a
strictly "as is" basis. This material is offered without any warranty, expressed or implied. In
particular, any and all warranties of fitness for use or merchantability are disclaimed. Neither
the document writer nor any contributor shall be held responsible for any direct, indirect,
incidental or consequential damages, that may result from anything that is viewed on this
document, or anything you do as a result thereof. It is up to the reader to determine the
suitability of any directions or information viewed here.

1.2.

Why this document

Since years, a lot of people wanted to add their own POI to those already included in the
navigation CD for RT3. Most of people wanted to add radar or velocity camera, but some
others wanted also to add various customized POI (friends, )
Starting with version 5.5/6.6, the RT3 software lets the user select radar as a kind of POI. But
it is a useless option because there is no radar in the cartography itself.
The main goal of this document is to describe the data structure of the cartography to be able
to write a software which can customize POI known by they latitude/longitude and generate a
new version of the cartography
Another goal (perhaps more complex) would be to merge two (or more) CD for people (like
me) living near a border. In a day to day usage, its a pity the Major Road of Europe
cartography is totally blank after I cross the German border using a brand new bridge
followed by a small road.
And a lot of other usage may be found in the future

1.3.

CD version(s) described

This document is based on a CD Navteq for RT3 France 2005/2006 2nde edition (TR3002900).
These information dont apply to old CD structure (2004 and before, 2005 for certain
countries) without compressed files (if there is a LABEL.TXT file in the root or directories
with name containing letters like C_00 or L_00, this is an old one).

Filenames used in CD for other countries may change (see 4.1 Files naming rules).
Structures should be the same for newer versions as well as for other countries version.
File size, number of record, exact content (see 4.4.1 File size (TD3002900)) depends of
course of the cartography version and country.

2. Main contributors
Phil95 : Many thanks to phil95 for all his work. complete description of localization by zones,
the way to deflate compressed files, graphical representation of POI and maps
Ive just renamed GC, MC, PC into LS, MS et SS to ease the english translation of this
document.
dkomputer : Thanks. Without you, I still find a regular pattern into FRANCXXX.DSC
instead dividing it by 17.
Janfi67 : Im trying to collect all the available information and to summarize it in this
document. Sorry for my poor English.

3. General information
3.1.

Localization by zones

Places, POIs, cartography elements are often localized in this way


The European map is divided in a first level of 12 (horizontally) by 18 (vertically) large
squares of 256Km by 256 Km called LS.
Then each LS is divided into 256 medium squares (16 horizontally by 16 vertically) of 16Km
by 16 Km called MS.
Finally, each MS is divided into 256 small squares (16 horizontally by 16 vertically) of 1Km
by 1Km called SS.
Zones are numbered from 0x00 to 0xFF from West to East, then from South to North.
North
..
..

..
..

..
..

..
0x4E

.. 0xE3 .. ..
0xDF
0xD6
..
..
.. ..
0xED

..
..

0x3f

0x40

0x41

0x42

..

0x33

0x34

0x35

0x36

..

South
Inside a Small Square, a POI is fully localized by two coordinates, X and Y between 0 and
999.
POI coordinates are LS, MS, SS, X and Y. Another way to express them using a common
geodesic language is :
Formulas to translate LS, MS, SS, X, Y into E, N:
E = 256000 * LS mod 12 + 16000 * MS mod 16 + 1000 * SS mod 16 + X
N = 256000 * LS div 12 + 16000 * MS div 16 + 1000 * SS div 16 + Y

Formulas to translate E, N into LS, MS, SS, X, Y:


LS
MS
SS
X
Y

=
=
=
=
=

(E div 256000) mod 12 + 12 * (N div 256000)


(E mod 256000) div 16000 + 16 * ((N mod 256000) div 16000)
(E mod 16000) div 1000 + 16 * ((N mod 16000) div 1000)
N mod 1000
E mod 1000

Formulas to translate LS, MS, into column and line:


column = 16 * (LS mod 16) + MS mod 16
line
= 16 * (LS div 16) + MS div 16

Where mod is modulo, div is the integer division.


Due to the projection used for creating the planed map MS are not north south oriented
Column 0-120
Column 121 (102)
Column 122 191

: decreasing positive rotation


: minimum rotation (origin in this column)
: increasing negative rotation

This seems to indicate a kind of cylindrical projection with a center longitude of 102
E (false East) and N (false North) should be in meters with the given definition.
Sometimes coordinates are LS, MS, X, Y with X and Y from 0 to 15999

Metropolitan France plus Corse is divided in 18 zones from west to east then south to north:
0x2b : Corse sud
0x33 : Hendaye Cambo les bains
0x34 : BAGNRES-DE-LUCHON LAVAUR

0x35 : Cerberes Lisle sur la sorgues


0x36 : SIX FOURS LES PLAGES - CASTELLANE
0x37 : Corse nord
0x3f : Bidard MESSANGES
0x40 : AUCH - BEAUNE-LES-MINES
0x41 : GRAULHET CHNAS
0x42 : PERNES-LES-FONTAINES - VILLE LA GRAND
0x4b
0x4c
0x4e
0x57
0x58
0x59
0x5a
0x65 : QUIHEN-PLAGE LEFFRINCKOUCKE

3.2.

POI localization by country, region, department city and district.

This is another way to localize POI and places : It is used on some of the files and directories
of the navigation.
<root>\P_RR\CAT\
P : country
1 : Italie
2 : France
3 : Allemagne
4 : Belgique

RR : Rgion (area? Something else?) in the country

10 : Alsace

DEP : Dpartment in the area


001 : Bas-Rhin
002 : Haut-Rhin
For example, the \P_RR\CAT\DEPDCP.CAT file describes cities of the department,
identifying them by a number (after the name) and sometimes with one or more district
number (after the city number, 0xFFFF if there is no district)

4. File structure
The structure should be relevant for all versions with compression (to be verified)

4.1.

Files naming rules

The tree structure and the file names under the root dont depend on the country.
Of course, directory names depend on the country (see 3.2 POI localization by country,
region, department city and district.) but because of the presence of Major Roads of Europe
on all CD, the structure is still present on all CD. The only difference between CD is the
content of the files (more details for the CD country)
Some file names at the root level are always the same (they dont depend on country):

CONFIG.LOG
DB_DWNL.OUT
DCN.DAT
GRUPPO2.DAT
GUIDA_CHAMPERARD.POI (not present on all CD)
SCITTANAME.DAT
SIF.VER
SW_VER.DAT

Of course, the content is not the same.


All the other file names start by the country name encoded in 5 characters:

BENEL for Benelux (to be confirmed)


CEUR1 for MittelEuropa Sd (Switzerland, north of Italy)
CEUR2 for MittelEuropa nord (Austria, south Germany
EST_E for East Europe
FRANC for France
GERM for Germany
ITALY for Italy
SPAGN for Spain/Portugal

In the document, all file names are related to France but you can easily translate them for your
own CD.

4.2.

Files in the tree structure under the root


4.2.1. P_RR\CAT\ZZZDCP.CAT

List of cities ands districts of the department.


As many files as departments in the Area (RR) of country P

50 bytes records sorted by alphabetic order of city name field

Position
0 45
46-47
48-49

Content
City name
City number
District number in the city (0xFFFF if not significant)

4.2.2. P_RR\IND\ZZZCOM.IND
Points to the first POI (by category in the FRANCXXX.DSC files) related to city/district
52 bytes records (as many as entries in ZZDCP.CAT file, then 1 record per city or district)

Position
0-1
2-3
4-7
8 - 11
12 - 15
16 - 19
20 - 23
24 - 27
28 - 31
32 - 35
36 - 39
40 - 43
44 - 47
48 - 51

Content
City number
District number in the city (0xFFFF if not significant)
Index (from 1) of the first record in LZWZZZ.TOP related to the city/district.
(0xFFFFFFFF if not significant)
Index (from 1) of the first record in ZZZTOP.LET related to the city/district.
(0xFFFFFFFF if not significant)
Index (from 1) of the first record in FRANCSEM.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSAF.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSHR.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSTU.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSSH.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSSP.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSTR.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSAU.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSCC.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCMIC.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district. (to be
verified)

Open Point : Ceci est valide en France; il semble que pour certaines
catgories (SEM par exemple), il y ait des POIs en Italie (Pays 1) et que
la numrotation recommence a 0 pou la France (point a vrifier). Pour
d'autres catgories (SHR) la numrotation ne recommence pas a 0 pour la
France. Ceci a pour consquence que deux fichiers IND peuvent pointer a
tort sur les mmes POIs (a vrifier)

4.2.3. P_RR\INSCIV\LZWZZZ.S_C
Compressed file.

4.2.4. P_RR\LET\ZZZTOP.LET
20 bytes records, several records par city, used to accelerate street finding in a city.
Position
0-1
2-3
4 - 16
18-19
19

Content
City number
District number in the city (0xFFFF if not significant)
successive characters frequently used et the beginning of a street name
Index (starting from 1) of the first corresponding street for this city in
LZWZZZ.TOP
Number of streets beginning by the previous string (0xFF means more than
0xff)

4.2.5. P_RR\TOP\ LZWZZZ.TOP


Compressed file. Contains the streets list of cities in the department ZZZ sorted by alphabetic
order of street name field.
A city descriptor is 48 bytes long, each street uses 48 bytes.

4.3.

Files in the root


4.3.1. CONFIG.LOG

ASCII file describing versions of maps and databases used for the CD. It also contains
another information like:
Tipo calcolo coordinate = File Geo MRE_Q4_04.GEO
Longitudine = 10.200000 [gradi]
Latitudine = 52.800000 [gradi]

4.3.2. DB_DWNL.OUT
Binary file (ELF format?). Perhaps an executable file for traffic info

4.3.3. DCN.DAT
List of cities (indexed in the cartography ?)
54 bytes records, sorted by alphabetic order of city name field.

Position
0 45
46
47
48
49
50-51
52-53

Content
City name
Index to the first significant character of the city name
Country of the city
Area of the city
Department of the city
City number
District number in the city (0xFFFF if not significant)

4.3.4. FRANC002.DEG
Contains other lines (like railway lines, river ...) in medium resolution with coordinates inside
a MS.
A succession of variable length records
Position
0
1-2
3-5
3 3 + n*4
6 6 + n*4

Content
Kind of line/drawing?
15 MSB bits indicating the number of points: n
1 LSB bit indicating the presence of the following optional 3 bytes header.
See previous field for presence.
???
Succession of n points, 4 bytes per point :
@ = 3+(p*4) or 6+(p*4) with p from 0 to n
X : @ to @ + 1
Y : @ + 2 to @ + 3
with X and Y < 16000

4.3.5. FRANC002.DPL
Index file to access MS data in FRANC002.DRL
0xd800 records (indexed by MS number) of 0x12 bytes
Position
0-3
4-5
6-7
8-9
10 11
12 15
16 17

Content
Index in FRANC002.DRL for this MS
N1?
N2?
N3?
N = N1 + N2 + N3 : records number for this LS in FRANC002.DRL
Index in FRANC002.DEG for this MS
?

4.3.6. FRANC002.DRL
Contains roads in medium resolution with coordinates inside a MS.
Succession of 0x0E bytes records, each record describes a segment (2 ends, P0 and P1)

Position
0-3

4-7

8-9
10 - 11

Content
P0 description
X0 = P0 & 0x3fff (<16000)
Y0 = (P0 >> 14) & 0x3fff (<16000)
flag0 = (P0 >> 28) & 0x0f
P1 description
X0 = P1 & 0x3fff (<16000)
Y0 = (P1 >> 14) & 0x3fff (<16000)
flag1 = (P1 >> 28) & 0x0f
section ?
Index of associated name in FRANC_NV.DAT

4.3.7. FRANC100.DEG
Contains other lines like border in low resolution with coordinates inside a LS.
A succession of variable length records
Position
0
1-2
3-5
3 3 + n*8
6 6 + n*8

Content
Kind of line/drawing?
15 MSB bits indicating the number of points: n
1 LSB bit indicating the presence of the following optional 3 bytes header.
See previous field for presence.
???
Succession of n points, 8 bytes per point:
@ = 3+(p*8) or 6+(p*8) with p from 0 to n
X : @ to @ + 3
Y : @ + 4 to @ + 7
with X and Y < 256000

4.3.8. FRANC100.DPL
Index file to access LS data in FRANC100.DRL
0xd8 records (indexed by LS number) of 0x12 bytes
Position
0-3
4-5
6-7
8-9
10 11
12 15
16 17

Content
Index in FRANC100.DRL for this LS
N1?
N2?
N3?
N = N1 + N2 + N3 : records number for this LS in FRANC100.DRL
Index in FRANC100.DEG for this LS
?

4.3.9. FRANC100.DRL
Contains roads in low resolution with coordinates inside a LS.
Succession of 0x17 bytes records
Each record describes a segment (2 ends, X0, Y0 and X1, Y1)
Position
0-3
4-7
8-11
12-15
16-17
18
19 - 22

4.3.10.

Content
X0 (<256000)
Y0 (<256000)
X1 (<256000)
Y1 (<256000)
Section?
Flag associated with the section?
Pointer/index in FRANC_NV.DAT (associated name).

FRANC.DEG

Contain additional drawings in high resolution with coordinates in a SS.


A succession of variable length records
Position
0
1-2
3-5
3 3 + n*3
6 6 + n*3

Content
Kind of line/drawing?
15 MSB bits indicating the number of points: n
1 LSB bit indicating the presence of the following optional 3 bytes header.
See previous field for presence.
???
Succession of n points, 3 bytes per point:
@ = 3+(p*3) or 6+(p*3) with p from 0 to n
X = @ & 0x3ff
Y = (@ >> 10) & 0x3ff
flag = (@ >> 20) & 0x0f
with X and Y < 999

4.3.11.

FRANCDET.DRS

4.3.12.

FRANC_EX.DPS

Europe is mapped on a 12*18 grid of LS, each LS contains 256 MS. In other words, on
12*18*256 MS = 55296 MS.
MS = index in FRANC_EX.DPS mod 0xFF
LS = index in FRANC_EX.DPS div 0xFF
55296 records of 20 bytes.
Position
0-3
4-7
8-9

10 11

12 13
14-15

16
17

18-19

Content
Index/pointer to FRANC_EX.DSS (0xFFFFFFFF if not significant or 19-20 =
0xFFFF)
Index to FRANC_EX.RID (0xFFFFFFFF if not significant or 19-20 =
0xFFFF)
Not zero only if previous pointers are valid.
Same values as in 2-3 of FRANC_EX.DSR
From 0 to 0x0150 (336)?
Not zero only if previous pointers are valid.
Same values as in 4-5 of FRANC_EX.DSR
From 0 to 0x04CB (1227)?
From 0 to 0x1133 (4403)??
Rotation to apply to a MS to align it to a North-South meridian.
Negative at east of longitude 100200, positive at west.
1 unit is approximately 0.058
From 0 to 0x057 (87)?
This values seem to be related to geographical coordinates of the MS
Seems to be a signed number
From 0xFD (-3) to 0x047 (71)?
This values seem to be related to geographical coordinates of the MS (max
values at northwest, min values at south)
Kind of index (starting from 0) into FRANCDPA.LZW if the MS contains
something, 0xFFFF otherwise.
The record identifies a LS,MS. Data of a SS (belonging to this LS,MS) in
FRANCDPA.LZW can be found at value*256+SS

4.3.13.

FRANC_EX.DSS

4.3.14.

FRANC_EX.RID

4.3.15.

FRANC_XX.POI

9 files, XX = DA, DE, ES, FR, IT, NL, PO, SW, UK


Description per language (9) of the kind and category of P0I.

In each file, 70 records of 50 bytes sorted by alphabetical order of POI name field except
for the 2 lasts, BORGATE et RADAR_CONTROL (probably added lately)
Position
0 40
41 42
43 44
45 - 48
49

4.3.16.

Content
POI name in language XX
POI type (70 diffrent types diffrents. ex 0x11E4 for public sport airport,
23A1 pour city hall)
Number of POI in this type (in FRANCXX.DST)
Category of the POI in ASCII (3 characters followed by 0x00, see next field)
Category of the POI in hexadecimal
1 : SEM
2 : SAF
3 : SHR
4 : STU
5 : SSH
6 : SSP
7 : STR
8 : SAU
9 : SCC
A : MIC

FRANC_NOMSERV.DAT

Contains the name of all the POI..


37 bytes records, sorted by alphabetical order of POI name field.
Position
0 35

36

4.3.17.

Content
POI name. A same name may appear several times:
Index 1B02B : DE LA KIBITZENAU PISCINE
Index 317C8 : KIBITZENAU PISCINE DE LA
Index 376A4 : LA KIBITZENAU PISCINE DE
Index 55598 : PISCINE DE LA KIBITZENAU (canonical name)
Index in the previous field (name) :
18 DE LA KIBITZENAU PISCINE
12 KIBITZENAU PISCINE DE LA
15 LA KIBITZENAU PISCINE DE
1 PISCINE DE LA KIBITZENAU (canonical name)
The canonical name (also contained in FRANCXX.DST) is obtained by
writing it from index to end, then from start to index-1

FRANC_NV.DAT

Contains the names referenced in the cartography (Names from all Europe)
Variable length records not sorted.
Position
0n

Content
Name ended by 0x00

4.3.18.

FRANCCAT.POI

Contains the brands or generic names (TOTAL, SHERATON, HONDA) of the POI.
23 bytes records sorted by increasing number field .
Position
0 20
21-22

Content
Brand name ended by 0x00
Brand number, from 0x0001 to 0x0484 (some are missing like0x0C, 0x13
Did they pay enough money this year? Dont panic, if youre looking for a
McDonalds youll find it!!!)

Records after 1023 dont seems to be used (10 bits index only in FRANCPOI.DAT)

4.3.19.

FRANCDPA.LZW

7479040 (0x721F00) records of 16 bytes.


Each record represents a SS (coordinates LS, MS, SS are given by the access table
FRANC_EX.DPS)
Position
0-3
4
5-7
8-9
10 - 13
14 - 15

4.3.20.

Content
Pointer/offset in FRANCDET.DRS. 0x00000000 if not significant
Flag : values 0x00, 0x3F, 0x40 ???
Index in FRANCDSP.POI to the first POI inside this SS (0xFFFFFF if not
significant)
POI number in this SS
Offset/pointer to FRANC.DEG
If n is the value, 3*n represents the increment of the previous field ???

FRANCDSP.POI

For each POI contains information used by the display process (coordinates in a MS, pointer
in FRANCPOI.DAT, scale)
12 bytes records sorted by increasing LS, MS ands SS.
FRANCDSP.POI contains:
 All records of FRANCPOI.DAT
 Records with type 0x115C (NAMED PLACE / CENTRE VILLE) contrary to
FRANCPOI.DAT which doesnt contain such record. Records of this type point to
random records of FRANCPOI.DAT

Remark :
This file is used for display but doesnt contain full coordinates of POI. Pointers to this file
exist in FRANCDPA.LZW (thanks again phil95).
Data pointed in FRANCPOI.DAT are not all used during display. For example, the city name
is not used even if you are looking for information for this place.

Position
01

Content
12 LSB bits :
POI type (ex 0x11E4 for public sport airport, 23A1 pour city hall, 0x16A8 for
a restaurant)
4 MSB bits :
0x04 if this POI has an entry in the guide Champrard (a restaurant in the
guide has 0x56A8 for value)
0x08 if ??? (seems to be used with 0x1F04 sports complex, 0x1F3C
amusement park)
POI X-coordinate in its MS (0 to 15999)
POI Y-coordinate in its MS (0 to 15999)
Pointer (to obtain the real address in the file, decrease the value by 1) to the
POI record in FRANCPOI.DAT. not significant for type = 0x115C
Display flags?
Max scale to display the POI?

2-3
45
6-9
10 - 11

4.3.21.

FRANCPOI.DAT

Contains address, type phone number and localization of all POI.


293780 variable length records: a variable length string (at least 0x00) followed by 27 bytes.
No obvious sort. Records seem to be grouped by set of SS, MS et LS, but some are at other
place in the file and the same LS, MS et SS can be found elsewhere in the file.

Position
0n
n+1
n+2
n+3
n+4 n+5

n+6 n+9
n+10 n+13
n+14 n+15

Content
POI address (a same address may appear several time, but there are separates
POI)
SS where the POI is.
MS where the POI is.
LS where the POI is.
12 LSB bits :
POI type (ex 0x11E4 for public sport airport, 23A1 pour city hall, 0x16A8 for
a restaurant)
4 MSB bits :
0x04 if this POI has an entry in the guide Champrard (a restaurant in the
guide has 0x56A8 for value)
0x08 if ??? (seems to be used with 0x1F04 sports complex, 0x1F3C
amusement park)
Index (starting from 1) of the canonical name of the POI in
FRANC_NOMSERV.DAT
Pointer in SCITTANAME.DAT to the city where the POI is.
Display flags?
Max scale to display the POI?

n+16 n+19

These for bytes are bits fields :


Bits 0..6 of n+16, bits 4..7 of n+17 : Y-coordinates of the POI in its SS
Y = (n+17 >> 4) + ((n+16 & 0x3f) << 4)
Bits 0..3 of n+17, bits 2..7 of n+17 : X, X-coordinates of the POI in its SS
X = ((n+17 & 0x0f) << 6) + (n+18 >> 2)
Bits 6,7 of n+16, bits 0..7 of N+19 : index (starting from 0 !) in
FRANCCAT.POI if the POI has a brand name like SHELL,
BALLADINS, AGIP
Index in FRANCCAT.POI slightly exceed 1024, but remaining bits of this
field dont seems to be include into the index.
idxFRANCCAT = n+19 + ((n+18 & 0x03) << 8)

n+20 - n+27

Bits 0,1 of n+18 : ?? take the value 0 or 2


Phone number (0x0F if no significant digit, 9 bytes, MSB and LSB part of
each byte swapped)

4.3.22.

FRANCXXX.DSC

8 files, XXX = SAF, SAU, SEM, SHR, SSH, SSP, STR, STU
There is one file per category, except for MIC restaurant: Michelin (POI number = 0) and
SCC (NAMED PLACE/centre ville). These files are used during a search, not for a simple
display on the map.
17 bytes records.
Records number is not coherent with the POI number in FRANC_XX.POI
Position
01

2
3
4
56
7-8
9 - 12

Content
12 LSB bits :
POI type (ex 0x11E4 for public sport airport, 23A1 pour city hall, 0x16A8 for
a restaurant)
4 MSB bits :
0x04 if this POI has an entry in the guide Champrard (a restaurant in the
guide has 0x56A8 for value)
0x08 if ??? (seems to be used with 0x1F04 sports complex, 0x1F3C
amusement park)
Country where the POI is.
Area where the POI is.
Department where the POI is.
City where the POI is.
District where the POI is.
Pointer (to obtain the real address in the file, decrease the value by 1) to the

POI record in FRANCPOI.DAT.


If the same pointer appears several times (synonyms), all the other values in
the records are the same except of course for the next field
Index (starting from 1) of the POI name in FRANC_NOMSERV.DAT. There
is one record for each name, not only for the canonical name.
For each synonym, the other fields of the record are the same. Sometimes, 2
canonical names have identical records (except this field). It can be :
 The same POI with 2 canonical names (ex : complexe sportif de lill,
centre sportif dill)
 Different POI with the same genericname (ex 13846 CLUB
MUNICIPAL DE TENNIS).
There are some exceptions :
 In FRANCSSP.DSC, there is one record with this field set to 0 (index
start at 1). Does it mean no name?
 10B in FRANCSSP.DSC (which doesnt seem to be a canonical
name)

13 - 16

French CD contains POI in Monaco et Andorre (zone 1 0x0A and 0x0D)

4.3.23.

FRANCXXX.DST

9 files, XXX = SAF, SAU, SCC, SEM, SHR, SSH, SSP, STR, STU
There is one file per category, except for MIC restaurant: Michelin (POI number = 0).
These files are used during a search, not for a simple display on the map.
49 bytes records, sorted by increasing values of LS, then MS then SS.
Record number per POI type in coherent with POI number in FRANC_XX.POI
Position
01

2 37
38
39
40
41 - 42
43 44
45 48

Content
12 LSB bits :
POI type (ex 0x11E4 for public sport airport, 23A1 pour city hall, 0x16A8 for
a restaurant)
4 MSB bits :
0x04 if this POI has an entry in the guide Champrard (a restaurant in the
guide has 0x56A8 for value)
0x08 if ??? (seems to be used with 0x1F04 sports complex, 0x1F3C
amusement park)
Canonical POI name (the same name may appear several times, but there are
different POI)
SS where the POI is.
MS where the POI is.
LS where the POI is.
POI X-coordinate in its SS (0 to 999)
POI Y-coordinate in its SS (0 to 999)
Pointer (to obtain the real address in the file, decrease the value by 1) to the
POI record in FRANCPOI.DAT.

4.3.23.1. FRANCSCC.DST
Structure of FRANCSCC.DST is simpler than FRANCXXX.DST one, probably because
there is only one POI type in this category, NAMED PLACE/centre-ville
44 bytes records, sorted by decreasing order of city magnitude .
Position
0 35

Content
Canonical POI name (the same name may appear several times, but there are
different POI)
SS where the POI is.
MS where the POI is.
LS where the POI is.
POI X-coordinate in its SS (0 to 999)
POI Y-coordinate in its SS (0 to 999)
Values from 1 to 8. magnitude of the city (8 for capitals, 7 for Marseille
and Lyon, 1 pour les Paris districts). Luxemburg is 5, Dublin is 3

36
37
38
39 40
41 42
43

4.3.24.

FRANSCC.IMP

Structure is identical to FRANCSCC.DST one, but there is far less records.

4.3.25.

GRUPPO2.DAT

Set of files grouped into a unique one, probably to load them quicker in memory

4.3.25.1. File header


23 bytes records, describing the files embedded in GRUPPO_2.DAT

Position
0 14
15 - 18
19 - 22

Content
File name ending by \0
Pointer in GRUPPO_2.DAT to the beginning of the embedded file
Length in byte of the embedded file.

4.3.25.2. CodNazGuidSX
Binary file with something like 0E 15 16 17 19 1F 20

Same values for France and Germany

4.3.25.3. DIVIETI.DAT
3 bytes records?
If records are 3bytes long words, sorted in ascending order.
Position
0
1
2

Content
From 0x10 (16) to 0xff (255) ?
From 0 to 0x21 (33) ?
From 0 to 0x3e (62) ?

4.3.25.4. DPN.CAT
List of city , department ... names
54 bytes records, sorted by alphabetic order of city name field.
Same structure as DCN.DAT

4.3.25.5. FRANC.Geo
49 bytes long file
Position
0 - 13
14 - 15
16 - 36
31 37
39 - 44
46 48

Content
Hex values (same for FRANC & GERM)
FF 7B 01 50 00 66 01 4C 02 D4 02 10 00 2E
Hex values
71 97 for FRANC 6D CE for GERM
Hex values (same for FRANC & GERM)
00 44 0F 21 00 08 6A FF 00 36 E2 FC 12 0C D8
Map version ended by \0x00 (TMP54.01)
Code of the map country (ended by \0x00) FRANC, GERM,
0x03 0xE8 0x01 (at least for FRANC and GERM)
4.3.25.6. FRANC.TiT

4.3.25.7. FRANC_EX.DMR
216 (12*18) records of 68 bytes describing a SS.

Position
0-3
4-5
6-7
8 - 11
12 - 15

Content
Index/Pointer in FRANC_EX.RID

Index (from 1) of the first record in FRANCSEM.DSC related to the


city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSAF.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.

16 - 19
20 - 23
24 - 27
28 - 31
32 - 35
36 - 39
40 - 43
44 - 47

48 49
50 - 51
52 53
54 55
56 57
58 59
60 61
62 63
64 65
66 67

Index (from 1) of the first record in FRANCSHR.DSC related to the


city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSTU.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSSH.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSSP.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSTR.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSAU.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCSCC.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district.
Index (from 1) of the first record in FRANCMIC.DSC related to the
city/district. 0xFFFF if there is no POI of the type in the city/district. (to be
verified)
Number of SEM POI in this SS
Number of SAF POI in this SS
Number of SHR POI in this SS
Number of STU POI in this SS
Number of SSH POI in this SS
Number of SSP POI in this SS
Number of STR POI in this SS
Number of SAU POI in this SS
Number of SCC POI in this SS
Number of MIC POI in this SS

4.3.25.8. FRANC_EX.DSR
Contains data about MS which have a valid pointer/index to FRANC_EX.DSS and
FRANC_EX.RID in FRANC_EX.DPS.
8 bytes records, sorted by ascending order of MS
Position
0 -1
2-3
4-5
6-7

Content
MS number (SS,MS)
From 0 to 0x0150 (336)?
Same values in 8-9 in FRANC_EX.DPS
From 0 to 0x04CB (1227)?
Same values in 10-11 in FRANC_EX.DPS
From 0 to 0x563D (22077)?
0 for the first MS of a LS, increasing with MS number. Index or pointer to
something related to SS (and sorted by increasing SS)?

4.3.25.9. FRANC_UK.POI
4.3.25.10. FRANCCAT.POI
4.3.25.11. FRANCCHR.TXT
4.3.25.12. FRANCOM.LET
4.3.25.13. GENDET.DAT
4.3.25.14. Label.txt

4.3.25.15.

Map.ver

ASCII file with something like TMP54.01. Map version ?


4.3.25.16. PrefInt
4.3.25.17. RdsTable
4.3.25.18. RdsTableLibere
4.3.25.19. Release

4.3.26.

GUIDA_CHAMPERARD.POI

4.3.27.

SCITTANAME.DAT

List of city containing a POI


Variable length records, they seem to be geographically sorted by increasing value of
LS, MS, SS (just a guess by reading the names)
Position
0n

4.3.28.

Content
City name ended par 0x00

SIF.VER

ASCII file describing CD release.

4.3.29.

SW_VER.DAT

ASCII file ( 0210 ) ?

4.4.

Summary
4.4.1. File size (TD3002900)
File name

File size

Record
number

P_RR\CAT\ZZZDCP.CAT

P_RR\INSCIV\LZWZZZ.S_C
P_RR\LET\ZZZTOP.LET

20
0x14
48 0x30 / city
48 0x30 / street

P_RR\TOP\ LZWZZZ.TOP

FRANC002.DEG
FRANC002.DPL

114111

52296
0xd800

FRANC002.DRL
FRANC100.DEG
FRANC100.DPL

216
0xd8

FRANC100.DRL
FRANC.DEG
FRANCDET.DRS
FRANC_EX.DPS
FRANC_EX.DSS
FRANC_EX.RID
FRANC_XX.POI
FRANC_NOMSERV.DAT
FRANC_NV.DAT
FRANCCAT.POI
FRANCDPA.LZW
FRANCDSP.POI
FRANCPOI.DAT

52296
0xd800
52296
0xd800

70
0x46
4313154
0x41D042
49741
0xC24D
1053
0x041D
7479040
0x721F0
343095
0x53C37
293780
0x47B94

FRANCXXX.DSC
FRANCXXX.DST
FRANCSCC.DST

Sort

50
0x32
52
0x34

P_RR\IND\ZZZCOM.IND

CONFIG.LOG
DB_DWNL.OUT
DCN.DAT

Record size

49316
0xC4A

54
0x36
variable
18
0x12
14
0x0E
variable
18
0x12
23
0x17
variable
20
0x14
20
0x14

City name

50
0x32
37
0x25
variable

POI name

23
0x17
16
0x10
12
0x0c
Variable : min28
Variable : min 0xB
17
0x11
49
0x31
44
0x2C

MS

LS

POI name
no
number

LS, MS, SS
?

LS, MS, SS
City magnitude

FRANSCC.IMP
GRUPPO2.DAT

CodNazGuidSX
DIVIETI.DAT
DPN.CAT
FRANC.Geo
FRANC.TiT
FRANC_EX.DMR
FRANC_EX.DSR
FRANC_UK.POI
FRANCCAT.POI
FRANCCHR.TXT
FRANCOM.LET
GENDET.DAT
Label.txt
Map.ver
PrefInt
RdsTable
RdsTableLibere
Release
GUIDA_CHAMPERARD.POI
SCITTANAME.DAT
SIF.VER
SW_VER.DAT

1617
0x0651
18
0x12

44
0x2C
23
0x17

1400
0x578
1784

3?

City magnitude

54
0x36
49
0x31

216
0xd8
9118
0x239e

68
0x44
8
0x08

3874?

4?

28355
0x6CE3

variable

LS, MS, SS ?

4.4.2. File link

Pointeurtovers
Pointer
a record
Indice to
Index
vers
access a record
Fait rfrence
Implicit
reference
untoenregistrement
a record

FRANCXXX.DST
SCITTANAME.DAT

SEARCH

FRANCCAT.POI
FRANCPOI.DAT

FRANCDSP.POI

FRANC_NOMSERV.DAT

FRANCXXX.DSC

SEARCH

FRANCDPA.LZW
DCN.DAT

FRANCDET.DRS

FRANC.DEG
P_RR\CAT\ZZZDCP.CAT

FRANC_EX.DSS

FRANC_EX.RID
P_RR\TOP\ LZWZZZ.TOP

DISPLAY

P_RR\IND\ZZZCOM.IND

FRANC_EX.DPS
P_RR\LET\ZZZTOP.LET

FRANC002.DEG
FRANC002.DPL
FRANC002.DRL
FRANC_NV.DAT
FRANC100.DRL
FRANC100.DPL
FRANC100.DEG

5. Comment ajouter un POI


Si vous avez bien tout lu et tout compris, ce paragraphe est inutile Mais a fait toujours du
bien de rcapituler.
1. Calculate POI coordinates: LS, SS, MS, X et Y (both versions, with short and long X,
). How to do that? I dont know yet
2. I suppose the POI is already in a SS which has an entry in FRANCDPA.LZW.
Otherwise its more complex.
3. Create a new entry in FRANCDSP.POI with the type, long X and Y, a pointer (already
existing if you dont need to shearch for this POI) to FRANCPOI.DAT, a scale and
associated flags. Where to create this entry? I dont know
4. in FRANCDPA.LZW
a. increase by 1 the POI number located in LS, MS, SS.
b. increase by 1 all the index to FRANCDSP.POI following the modified entry.

5. Pour permettre la recherche, il y a des tapes supplmentaires, insertion dune entre


dans FRANCPOI.DAT, FRANCXXX.DST, FRANCXXX.DSC,
FRANC_NOMSERV.DAT, SCITTANAME.DAT, ZZZCOM.IND mais cest une
autre histoire. Et puis, si vous ajoutez les radars, je doute que vous soyez saisis du
besoin irrpressible de vous diriger vers le plus proche ;-)
Attention, ce document nest quun draft, je ne garantis ni la mthode ni le rsultat