I have connected a Lassen iQ GPS module to my serial interface.
Maps are downloaded from Google Maps servers with a small script. Google maps consist of 128x128 pixel tiles. You have to specify your address, so that map tiles around your area are downloaded. There is also a parameter for number of tiles you want. Zoom levels are possible but require to have a few tile-sets, one for each zoom level.
GBAMP (GBA Movie Player) is used to store the program and data on a CompactFlash card (special thanks to chishm and DarkFader). Number of tiles is only limited by memory size of CF card.
Here is the CF folder for a map around my area consisting of 64 google tiles. I used this for testing. As you see, tiles are just ordinary GIF images.
If you are wondering, there is a formula to go from latitude and longitude (which are provided by GPS) to Google tile number.
Code will be published later after a few things are cleaned up a bit