I suggest to switch to mkgmap too. Old CGPSmapper makes too much problems with new Garmin's models. For example:
- GPSMAP 66: when other map covers the same area (in my case Europe Recreational) it is impossible to force search on map compiled with cGPSmapper. Disabling other map doesn't help, one have to remove it from GPS.
- GPSMAP 66, Edge: Bicycle routing uses highways, even if there is explicit attribute to disable bicycle on these roads.
- MapSource: sometimes when calculating hiking route, it can't cross tile's boundary by a path or track and makes a large detour by other roads.
The same map compiled by mkgmap works correctly.
There are other advantages of mkgmap:
- Compilation is much faster and resulting img are smaller.
- Mkgmap process source data and deals with many common problems like distance between nodes too short, road crosses itsef, number of nodes too big.
- Mkgmap does optimization like merging lines or removing objects too small.
- One can control creation of overview map by extending selected objects in source mp to higher layers.
- Compilation creates all data for a mapset, including tdb, index, preview map and typ file in one go.
- Result of compilation can be a standard mapset, new gmap type mapset or gmasupp.img for device.
- Mkgmap can add DEM layer basing on SRTM files in hgt format.
- Index file can be much bigger than for cGPSmapper.
- Mkgmap can create Unicode maps (but Garmin disabled free Unicode maps in many new devices).
- Mkgmap can convert code pages, for example you can use source in Unicode to create a map in CP1252.
There are very few disadvantages. The one I can recall is missing support for road signs ([SIGN] object in mp source).
You can run direct compilation with a command like this:
java -jar mkgmap.jar *.mp
but better to add some options for optimizing compilation. These can be put in a text file and used like this:
java -jar mkgmap.jar -c options.txt *.mp
All options are explained in mkgmap documentation.