Next up for DSmaps

From comments posted to this blog, as well as discussion in various forums elsewhere, it seems that the top three most-requested features are:

  • Search by placename, i.e. integrated geocoding.
  • Pre-fetch of the map tiles for a particular location to allow offline viewing.
  • Ability to pan and zoom using the stylus.

I propose tackling in this order and I’ve started looking at the options for geocoding. I’m currently leaning towards a web service provided by It seems to be comprehensive, fast, and totally free. One slight problem though is that when it returns co-ordinates for a place, it doesn’t suggest an appropriate zoom level for a map. I’m thinking of just guessing the best zoom based on the type of place (i.e. street, suburb, city, region, country, etc.) and the population, if available. But this isn’t always going to work very well so if anyone has any better ideas, please shout!

Some users continue to report file system corruption. Sure, this could be caused by something like a buffer overrun in my code, but I really don’t believe that it is. I have been using DSmaps for weeks on my R4DS, and in the last few days I have supplemented my test hardware with a second NDS and a CycloDS card. The plain and simple fact is that other than the issue with the creation of the top-level folder on FAT32 that was fixed in 0.2.1a, I haven’t got a sniff of file system corruption. I know however that a number of significant bugs have been fixed in libfat over the last few months, which I will incorporate into DSmaps as soon as the source is buildable from SourceForge. For the record: I’m absolutely not bagging libfat here in any way! It is an incredible piece of work, without which the homebrew community simply wouldn’t exist.


15 Responses to Next up for DSmaps

  1. kassanmoor says:

    i t is possible add off line satellite maps? because somo cities has not google maps, but has satellite view

  2. Curly Joe says:

    New features sounds good. I’m looking forward to it and offer testing if you need it. Let me know.


  3. jlamp says:

    The google maps API has its own geocoding options, which I have used on the backend of websites in the past (the request can even be made entirely through GET variables in a short URL and then returned as a string), but I suppose it would not be a feasible option in this case. It requires using a registered API key for each query, and even if you could use the same key successfully for everyone who installs your program, there are limits to the number of allowed geocodings per day, and as your application is already gaining popularity, you’d exceed those in no time 🙂

  4. jlamp says:

    Just to add one more thing – all of Google’s excellent features, including very good geocoding and retrieving directions, could be easily integrated if you had a dedicated server, using the API, as a middleman between the DS and google. In other words, instead of retrieving the data directly from Google, every request could be made to this server, which would be able then to handle complex requests that require full API registration. However, I realize that you are not likely to have a dedicated server, or space and bandwidth, just lying around.

  5. DMC says:

    @jlamp – Thanks for that. Yeah, the need to use a key is my major issue with using either Google or Yahoo as a geocoder. That said, you can pass ‘YahooDemo’ as the appid to the Yahoo geocoder and it seems to work just fine. I suppose there might be a daily limit which would bite eventually. Regarding the server idea, it does solve some problems. But I’d be concerned about latency. Also, it would become a single point of failure, whereas going directly to Google, Yahoo, or Microsoft with tile requests means that I’m taking advantage of all the redundancy those guys have.

  6. Dan says:


    This thing is awesome when it works. The problem is, after it downloads a few images, it’ll say “File not in PNG format.” It’ll do this repeatedly, sometimes accompanied by a file creation error 20. It won’t work again until I reboot. I haven’t had any issues with any other homebrew I’ve used. I’m wondering if the error handling after receiving bad data is to blame. Just a guess. I’m using an M3 Perfect Lite with a SanDisk SD card if it helps.

  7. DMC says:

    @Dan – thanks for the feedback. As I’ve been writing here and elsewhere, the ‘File not in PNG format’ and ‘error 20’ problems are consistent with either libfat issues or garbage coming up from the file system. As you might expect, the first error occurs when a cached map tile doesn’t appear to start with the correct PNG signature. And error 20 (a standard posix API error code) occurs when a portion of a path that should be a folder appears to be a file, e.g. the ‘foo’ in ‘/foo/bar’. I stand by my contention that these problems are occurring either in the file system library (libfat) or in the low-level driver (DLDI) that libfat uses to read/write sectors on the SD card. With respect, the fact that you don’t have problems with other homebrew doesn’t mean a whole lot. DSmaps stresses libfat a heck of a lot more than most other homebrew. It creates hundreds of folders and files in its cache folder – have a look at the contents of /DSMAPS and you’ll see what a I mean. Also, despite using DSmaps more than anyone else (and on two different hardware specs for the last week), I have not seen either of these errors.

  8. nores says:

    I think your program is one of the best homebrew that i have tested. All the features you’ll add are very interesting, but i would like and ‘offline’ option. I used to download an area when i’m ONLINE, but i’ll use it via cache later when i’m offline. But if for same reason i come to an area that hasn’t been downloaded, it freezes and can’t continue. Showin just a simple unavalaible message, is what i think will make better this homebrew. Anyway, if you add or not this feature, i’m looking for a new release nearly every day. ¿Will i have to wait for a long time?

  9. DMC says:

    @nores – Thanks for the comment. Yes, the offline support that I’m adding will allow the app to be put into ‘offline mode’, in which it won’t attempt to download when the user pans/zooms into an area that is not in the cache. Search will naturally be disabled in this mode too.

    Regarding the timing for the next release, I’m quite busy with my day job at the moment, so only working on DSmaps when I get the chance. All my efforts in the last week have gone into writing a little UI framework. Woopsi was just too much for my needs so I’ve decided to roll my own lightweight UI framework (it uses bits of libfb to help with text rendering). So the next release is at least 7-10 days away.

  10. Luka says:

    Awesome applicaiton, looking forward to future releases! Another feature I would suggest is to be able to switch between map view and satellite view (like on google maps) If it is a file size issue, then maybe just as a snapshot for the current view and as soon as the person zooms or pans it removes the file and switches back to map view. Just an idea.

    Anyway great work so far!

  11. DMC says:

    @Luka – Yeah, I like that ‘instant satellite view’ idea because I worry about the DSmaps cache filling up everyone’s SD card. Nice one! The problem however with getting satellite images from Google is that you need a key, so I might have to go to somebody else for the satellite stuff.

  12. JPrieto says:

    This homebrew provides a great functionality in an awesome way!. It works like a breeze. I have tested the possibility of offline viewing (If you formalize it via parametrization I think it would require also some parametrization on ‘max cache storage’ or ‘max cached pics’). Another interesting functionality would be zooming in and out at double/¿half? speed (as already your support in panning).
    I will field test it in offline mode in my coming travel to Copenhagen this Easter.
    Congratulations for an excellent work!.

  13. Mgamerz says:

    It’s been nearly a month now…

  14. Ken says:

    Wow. This is def the best homebrew app i have used in a long long time. Works wonderfully. I am def looking forward to cached maps and possible use of both screens…
    maybe you could have a “favorites” list where you can save multiple locations so you can “jump to them” quickly like you have the home location thing.
    For dual screen use, it might be cool to allow different navigation for each window, say like different zoomm levels for each, or start/finish type maps for directions.
    your brew is already great, i was just throwing out what was on my mind… GREAT work.

  15. DMC says:

    @Mgamerz – it has. I’ll post to explain where things are at.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: