Flipnote Files/PPM: Difference between revisions

animation offset table sz field is an u16, not u32.
Pbsds (talk | contribs)
 
(3 intermediate revisions by 2 users not shown)
Line 383: Line 383:
| 4
| 4
| Size of the background music.
| Size of the background music.
| The size of the background music in bytes in the audio data below, max size is 0x2000. 0x0 if not used/empty.
| The size of the background music in bytes in the audio data below. 0x0 if not used/empty.
|-
|-
| 4
| 4
Line 398: Line 398:
|-
|-
| 1
| 1
| Given Framespeed.  
| Current Framespeed.  
| This is the speed of the flipnote. It's in the range of 1-8. To get the correct value, you must take 8, and subtract the decimal value of this byte.
| This is the speed of the flipnote. It's in the range of 1-8. To get the correct value, you must take 8, and subtract the decimal value of this byte.
|-
|-
| 1
| 1
| Current Framespeed when BGM was recorded.
| Given Framespeed when BGM was recorded.
| This is the speed of the flipnote when the BGM was recorded/modified. It's in the range of 1-8. This is used to resample the sound to the new speed. To get the correct value, you must take 8, and subtract the decimal value of this byte.
| This is the speed of the flipnote when the BGM was recorded/modified. It's in the range of 1-8. This is used to resample the sound to the new speed. To get the correct value, you must take 8, and subtract the decimal value of this byte.
|-
|-
Line 420: Line 420:
*Then comes sound effect #3(if used)
*Then comes sound effect #3(if used)


To decode the sound data, you must multiply each byte by 16 and run it as 32000Hz PCM data.


----
The sound data is 4bit ADPCM with reversed nibbles @ 8kHz.


I have yet to figure out how to get rid of the noice when decoding sound...--[[User:Pbsds|pbsds]] 17:38, 6 June 2010 (UTC)
You can decode the sound yourself with "sox -t ima -N [input] [output]"


==Signature==
==Signature==


The last 0x10-bytes in a PPM are all-zero. The 0x80 bytes before that is a RSA-1024 SHA-1 signature over the whole PPM, excluding the last 0x90 bytes with the signature.
The last 0x10-bytes in a PPM are all-zero. The 0x80 bytes before that is a RSA-1024 SHA-1 signature over the whole PPM, excluding the last 0x90 bytes with the signature.