I may not have understood what I was looking at. But it looked like the current copy of vfdlib has the font's just as part of the code (static arrays). And this is added to the fact that the small font (the only one I have used so far) doesn't look the same as the player's small font (which is smoothed out). I don't mind including code since I already have to build statically (making a hefty 1meg executable!).

Ok well right now squash supports any "database" format as long as music is kept as plain files (just like the current player does). It does take a while to load the first time (since it must read the first bytes of the file to determine if it really is a mp3 or an ogg). But I just added a master list feature that generates a masterlist of all songs on the player. Then the next time we just use that list instead of walking the filetree and probing each file for songiness.

Load time was 2 minutes (still is for first time), now it's down to like 5 seconds.

Also, for any file that ends in a 0, I read a corresponding file that ends in a 1 for the meta info. (Normally I read a corresponding file ending in ".info"). That pretty much fills up support for the current database format. The only thing missing is interpeting the playlists, which is pointless since squash doesn't have playlists.

libid3tag I had problems with concerning special characters like 'ö' and a few other problems (if I remember correctly). Anyway, you have plenty of options for mp3 files:

1) You can create the ".info" files on the PC and then transfer them over.
2) You can rely on the data in the old player's database which squash will read.
3) You can use oggs!