Flipnote Files/PPM: Difference between revisions

signature info added.
Pbsds (talk | contribs)
 
(6 intermediate revisions by 3 users not shown)
Line 207: Line 207:
|-
|-
| 0000
| 0000
| 4
| 2
| Size of the offset table
| Size of the offset table
|-
| 0002
| 2
| Padding
|-
|-
| 0004
| 0004
Line 379: 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. 0x0000000 if not used/emtpy.
| The size of the background music in bytes in the audio data below. 0x0 if not used/empty.
|-
|-
| 4
| 4
| Size of sound effect #1
| Size of sound effect #1
| The size of the sound effect #1 in bytes in the audio data below. 0x0000000 if not used/emtpy.
| The size of the sound effect #1 in bytes in the audio data below, max size is 0x2000. 0x0 if not used/empty.
|-
|-
| 4
| 4
| Size of sound effect #2
| Size of sound effect #2
| The size of the sound effect #3 in bytes in the audio data below. 0x0000000 if not used/emtpy.
| The size of the sound effect #3 in bytes in the audio data below, max size is 0x2000. 0x0 if not used/empty.
|-
|-
| 4
| 4
| Size of sound effect #3
| Size of sound effect #3
| The size of the sound effect #3 in bytes in the audio data below. 0x0000000 if not used/emtpy.
| The size of the sound effect #3 in bytes in the audio data below, max size is 0x2000. 0x0 if not used/empty.
|-
|-
| 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 416: 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.