Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > media > contrib-updates > by-pkgid > d92c1067818520e9993c504b7fc33c2d > files > 54

libgammu-devel-1.19.0-1mdv2008.1.i586.rpm

In subdirs there are original ringtones and SMS tones
from various Nokia phones. They're saved in special
binary format used in phone's firmware. You can download them to your phone,
if it has downloadable ringtone(s) - use
"gnokii --setbinringtone file [location]". I tested Nokia 6150 5.22 and it was
OK. I hope, that Nokia will not change this format and you will be able to
use it with new phones too (update: 3310 seems to have different format).

I also noticed, that with Nokia 6150 some ringtones required small changes
(inserting space (0x20 char) after name displayed in phone's menu).
Maximal length of names for this phone is 12 chars (that's why "Moon & clouds"
is only "Moon & cloud", "Mexican Hat Dance" -> "Mexican Dance",
"Piano concerto" -> "Piano concer", "WalzeBrillant" -> "WalzeBrilla")

I wasn't also to restore Badinerie, Tchaikovsky,
Entertainer, Valkyrie, Four seasons, Auld lang syne, Bumblebee,
Brave Scotland, Liszt, Hungarian, Left Hand
(I had it in the file - it was no problem to save
it), because it was too long (ringtones in phone's firmware in flash
can be infinitely long, downloadable not - frame can be 317 chars long
only)... I had to short name in "Swan Lake" to "Swan" because of it...

In Get_Cool,Sunny_Walks,Tick tick ringtones there is and error - small
"pyk" on the end. It's not my fault, it was made by Nokia...

Similiary Hopping-down seems to cut (next Nokia fault ?)...

PS. I didn't compared many of these ringtones with original phones.
If there are differences, please let me know (my files could be broken too)

PS2. I tried to understand this format, but I didn't make it at all (too small
free time, etc.). Here are some observations:

Format is used by 0x40/0x9e and 0x40/0xa0 frames. General format is:

0x00,0x01,0xa0(0x9e),location,0x00,0xc1,0x01,?,name,0x00,0x00,0x02,
commands and tones?each probably in two bytes?,0x0b

where: location=0x00,0x01,etc.
       name=name in ASCII displayed in menu

If phone doesn't find 0xc1,0x01,? bytes in 7,8,9 byte, don't display ringtone
name and treat them (if there are next) as ringtone contenst

Marcin@MWiacek.com