Difference between revisions of "Talk:Flipnote Files/PPM"

From DSiBrew
Jump to navigation Jump to search
 
(32 intermediate revisions by 7 users not shown)
Line 7: Line 7:
 
It doesn't work! Here is the code im using(i had to transelate it):
 
It doesn't work! Here is the code im using(i had to transelate it):
 
<source lang="">Dim $ImageOutput[4072]
 
<source lang="">Dim $ImageOutput[4072]
for x=0 to 46 step 1
+
for $x=0 to 46 step 1
{
+
for $y=0 to 7 step 1
for y=0 to 7 step 1
+
for $z=0 To 7 Step 1
{
 
for z=0 To 7 Step 1
 
{
 
 
ImageOutput[($x*64)+(16*$y)+(4*$z)]  = RawImage[($x*64)+(32*$z)+(4*$y)]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)]  = RawImage[($x*64)+(32*$z)+(4*$y)]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)+1] = RawImage[($x*64)+(32*$z)+(4*$y)+1]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)+1] = RawImage[($x*64)+(32*$z)+(4*$y)+1]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)+2] = RawImage[($x*64)+(32*$z)+(4*$y)+2]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)+2] = RawImage[($x*64)+(32*$z)+(4*$y)+2]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)+3] = RawImage[($x*64)+(32*$z)+(4*$y)+3]
 
ImageOutput[($x*64)+(16*$y)+(4*$z)+3] = RawImage[($x*64)+(32*$z)+(4*$y)+3]
}
+
Next
}
+
Next
}</source>
+
Next</source>
 
Output: [[Image:Test2.png]]
 
Output: [[Image:Test2.png]]
  
Line 27: Line 24:
 
  for x=0 to 46 step  
 
  for x=0 to 46 step  
 
-[[User:Remark|Remark]] 18:42, 24 December 2009 (UTC)
 
-[[User:Remark|Remark]] 18:42, 24 December 2009 (UTC)
 +
 +
Made no difference...--[[User:Pbsds|pbsds]] 21:08, 24 December 2009 (UTC)
 +
----
 +
If you would've used a sane language, you would've gotten a segfault. :-)
 +
 +
Please do some research on the tiling, my code is written for the 32x32 icons you see in the DSiMenu.
 +
 +
- [[User:Remark|Remark]] 21:52, 24 December 2009 (UTC)
 +
 +
----
 +
 +
I had to set the RawImage and the ImageOutput arrays to 1000 more pixels than needed to avoid the segfault.
 +
 +
I think i'll try again tomorrow. but now im off to bed:)--[[User:Pbsds|pbsds]] 00:39, 25 December 2009 (UTC)
 +
 +
----
 +
 +
WooHoo! im really close now!: [[Image:Test3.png]]--[[User:Pbsds|pbsds]] 14:43, 25 December 2009 (UTC)
 +
 +
----
 +
 +
Finaly got it!: [[Image:Test4.png]]--[[User:Pbsds|pbsds]] 21:26, 27 December 2009 (UTC)
 +
== Pallete ==
 +
i don't think my RGB pallete is perfect... Could someone post a RGB version of the pallete? My pallete have too sharp colors :( --[[User:Pbsds|pbsds]] 01:03, 4 January 2010 (UTC)
 +
 +
Maybe i should post my pallete so you guys can check if its wrong:
 +
 +
0 = FFFFFF
 +
 +
1 = 525252
 +
 +
2 = FFFFFF
 +
 +
3 = A4A4A4
 +
 +
4 = FF0000
 +
 +
5 = 7B0000
 +
 +
6 = FF7B7B
 +
 +
7 = 00FF00
 +
 +
8 = 0000FF
 +
 +
9 = 00007B
 +
 +
A = 7B7BFF
 +
 +
B = 00FF00
 +
 +
C = FF00FF
 +
 +
D = 00FF00
 +
 +
E = 00FF00
 +
 +
F = 00FF00
 +
 +
--[[User:Pbsds|pbsds]] 10:52, 4 January 2010 (UTC)
 +
 +
Use the following formula:
 +
(x / 32) * 256
 +
To convert between the scales 0-31 and 0-255.
 +
 +
Thanks!--[[User:Pbsds|pbsds]] 15:15, 5 January 2010 (UTC)
 +
 +
== Modifying the file? ==
 +
 +
Has anyone managed to get a modified PPM file running on the DSi? If so, can you update the wiki with your findings.
 +
[[User:Chronic667|Chronic667]] 20:40, 13 January 2010 (UTC)
 +
 +
I don't know much about that but i think there is a hash in there.--[[User:Pbsds|pbsds]] 14:19, 10 February 2010 (UTC)
 +
 +
:The last 144 bytes of the file are a hash / encypted block that changes for every minor change in the file.  When I was originally working on this with someone else (forgot his nick on here) we said that it could possibly be an AES cypher key or data block, I don't know if anything else was worked out behond this as I've not looked at the files since I worked out the basic file structure.  If your thinking of using FlipNote as an entry into the DSi for homebrew then the files do not seem to have any way to break them due to the lack of strings in the file.
 +
:Actually the last 144 bytes are split into 128 bytes of hash and 16 bytes of 0x00.
 +
:[[User:Steven|Steven]] 06:26, 11 February 2010 (UTC)
 +
::Has someone any idea what this checksum is? ;-) --[[User:Endres|Endres]] 18:29, 15 February 2010 (UTC)
 +
:Also, adresses 0x0088, 0x009A, and 0x009B change every save. The hash changes every save, too. EDIT: 0x0088 increases by 1 every save. --[[User:Matt|Matt]] 01:11, 21 May 2010 (UTC)
 +
 +
== Sound ==
 +
 +
I think i have found out a little about the sounds.
 +
 +
i think that in the first byte in a animation frame has an index for which sound to play.
 +
 +
Something like this: [[Image:Temp.png]]
 +
 +
--[[User:Pbsds|pbsds]] 15:52, 25 March 2010 (UTC)
 +
 +
Never mind that! this is what those bits does:
 +
if Unknown1 & 0x2 is true then there are two bytes after the color byte and before the line encoding which says how to move the previous frame horizontally before mixing it with the new frame.
 +
if those are set to  F7 00 then the last picture is shifted 8 pixels left( 247 - 256 = -8)
 +
and i think that if Unknown1 & 0x1 is true then there are two more bytes but these are for the vertical position.--[[User:Pbsds|pbsds]] 17:57, 26 May 2010 (UTC)
 +
 +
Sorry, i concluded this before finding more samples. this is currently not 100& correct, but if this bit is set to 0x2, then there will be to more bytes!
 +
And this do have something to do with moving the previous frame.--[[User:Pbsds|pbsds]] 20:40, 5 July 2010 (UTC)
 +
 +
== PPM.py ==
 +
 +
I just wanted to say that i rewrote PPMTool in python and renamed it PPM.py
 +
 +
This one has support for extracting frames too(i fixed the NewFrame problem ;) )
 +
 +
Download: http://www.mediafire.com/?clt4ad2wcmh
 +
 +
@Steven: Could you please update the documentation with my way of fixing the NewFrame stuff? I'm not that good with documentations... KTHXBAI! :D
 +
 +
--[[User:Pbsds|pbsds]] 15:49, 18 May 2010 (UTC)
 +
 +
== Regional Flipnotes ==
 +
 +
As of now, there is virtually no [normal] way of downloading flipnotes from a different region from Flipnote Hatena. But, hypothetically, couldn't you just save them to an SD card, copy the entire "private" directory, download to your computer, and post to the internet (as a .zip or .rar)?
 +
 +
Then the other could download, copy to SD card, and have flipnotes from the other region!
 +
 +
I will attempt to upload some of mine. (as a .zip)
 +
 +
-Austin --[[User:Austinburk|Austinburk]] 21:44, 2 July 2010 (UTC)
 +
 +
 +
It would work, but only if you rename the folder which contains the flipnotes.
 +
 +
you would have to rename it to "4B4755XX" replacing the XX with your region.(Region codes can be found here: [[Title list#Region Codes]])
 +
--[[User:Pbsds|pbsds]] 11:14, 5 July 2010 (UTC)

Latest revision as of 07:41, 18 July 2010

Could you guys post a example for decoding the preview image? i cant figure out the 8x8 tile thing. i will give credit to you:).Preview of what i have: FlipnoteImageDecodedByPBSDS.png--pbsds 09:29, 24 December 2009 (UTC)

See User:Remark/Icon2ppm.c. -- Remark 09:45, 24 December 2009 (UTC)

Thanks:)--pbsds 09:55, 24 December 2009 (UTC)

It doesn't work! Here is the code im using(i had to transelate it):

Dim $ImageOutput[4072]
for $x=0 to 46 step 1
	for $y=0 to 7 step 1
		for $z=0 To 7 Step 1
			ImageOutput[($x*64)+(16*$y)+(4*$z)]   = RawImage[($x*64)+(32*$z)+(4*$y)]
			ImageOutput[($x*64)+(16*$y)+(4*$z)+1] = RawImage[($x*64)+(32*$z)+(4*$y)+1]
			ImageOutput[($x*64)+(16*$y)+(4*$z)+2] = RawImage[($x*64)+(32*$z)+(4*$y)+2]
			ImageOutput[($x*64)+(16*$y)+(4*$z)+3] = RawImage[($x*64)+(32*$z)+(4*$y)+3]
		Next
	Next
Next

Output: Test2.png



You made a typo here:

for x=0 to 46 step 

-Remark 18:42, 24 December 2009 (UTC)

Made no difference...--pbsds 21:08, 24 December 2009 (UTC)


If you would've used a sane language, you would've gotten a segfault. :-)

Please do some research on the tiling, my code is written for the 32x32 icons you see in the DSiMenu.

- Remark 21:52, 24 December 2009 (UTC)


I had to set the RawImage and the ImageOutput arrays to 1000 more pixels than needed to avoid the segfault.

I think i'll try again tomorrow. but now im off to bed:)--pbsds 00:39, 25 December 2009 (UTC)


WooHoo! im really close now!: Test3.png--pbsds 14:43, 25 December 2009 (UTC)


Finaly got it!: Test4.png--pbsds 21:26, 27 December 2009 (UTC)

Pallete

i don't think my RGB pallete is perfect... Could someone post a RGB version of the pallete? My pallete have too sharp colors :( --pbsds 01:03, 4 January 2010 (UTC)

Maybe i should post my pallete so you guys can check if its wrong:

0 = FFFFFF

1 = 525252

2 = FFFFFF

3 = A4A4A4

4 = FF0000

5 = 7B0000

6 = FF7B7B

7 = 00FF00

8 = 0000FF

9 = 00007B

A = 7B7BFF

B = 00FF00

C = FF00FF

D = 00FF00

E = 00FF00

F = 00FF00

--pbsds 10:52, 4 January 2010 (UTC)

Use the following formula: (x / 32) * 256 To convert between the scales 0-31 and 0-255.

Thanks!--pbsds 15:15, 5 January 2010 (UTC)

Modifying the file?

Has anyone managed to get a modified PPM file running on the DSi? If so, can you update the wiki with your findings. Chronic667 20:40, 13 January 2010 (UTC)

I don't know much about that but i think there is a hash in there.--pbsds 14:19, 10 February 2010 (UTC)

The last 144 bytes of the file are a hash / encypted block that changes for every minor change in the file. When I was originally working on this with someone else (forgot his nick on here) we said that it could possibly be an AES cypher key or data block, I don't know if anything else was worked out behond this as I've not looked at the files since I worked out the basic file structure. If your thinking of using FlipNote as an entry into the DSi for homebrew then the files do not seem to have any way to break them due to the lack of strings in the file.
Actually the last 144 bytes are split into 128 bytes of hash and 16 bytes of 0x00.
Steven 06:26, 11 February 2010 (UTC)
Has someone any idea what this checksum is? ;-) --Endres 18:29, 15 February 2010 (UTC)
Also, adresses 0x0088, 0x009A, and 0x009B change every save. The hash changes every save, too. EDIT: 0x0088 increases by 1 every save. --Matt 01:11, 21 May 2010 (UTC)

Sound

I think i have found out a little about the sounds.

i think that in the first byte in a animation frame has an index for which sound to play.

Something like this: Temp.png

--pbsds 15:52, 25 March 2010 (UTC)

Never mind that! this is what those bits does: if Unknown1 & 0x2 is true then there are two bytes after the color byte and before the line encoding which says how to move the previous frame horizontally before mixing it with the new frame. if those are set to F7 00 then the last picture is shifted 8 pixels left( 247 - 256 = -8) and i think that if Unknown1 & 0x1 is true then there are two more bytes but these are for the vertical position.--pbsds 17:57, 26 May 2010 (UTC)

Sorry, i concluded this before finding more samples. this is currently not 100& correct, but if this bit is set to 0x2, then there will be to more bytes! And this do have something to do with moving the previous frame.--pbsds 20:40, 5 July 2010 (UTC)

PPM.py

I just wanted to say that i rewrote PPMTool in python and renamed it PPM.py

This one has support for extracting frames too(i fixed the NewFrame problem ;) )

Download: http://www.mediafire.com/?clt4ad2wcmh

@Steven: Could you please update the documentation with my way of fixing the NewFrame stuff? I'm not that good with documentations... KTHXBAI! :D

--pbsds 15:49, 18 May 2010 (UTC)

Regional Flipnotes

As of now, there is virtually no [normal] way of downloading flipnotes from a different region from Flipnote Hatena. But, hypothetically, couldn't you just save them to an SD card, copy the entire "private" directory, download to your computer, and post to the internet (as a .zip or .rar)?

Then the other could download, copy to SD card, and have flipnotes from the other region!

I will attempt to upload some of mine. (as a .zip)

-Austin --Austinburk 21:44, 2 July 2010 (UTC)


It would work, but only if you rename the folder which contains the flipnotes.

you would have to rename it to "4B4755XX" replacing the XX with your region.(Region codes can be found here: Title list#Region Codes) --pbsds 11:14, 5 July 2010 (UTC)