Difference between revisions of "JPC file"

From Pikmin Technical Knowledge Base
Jump to navigation Jump to search
Line 1: Line 1:
{{note|The information gathered on this page is gathered from eff2d_world_map.jpc. This page is not finished.}}
+
{{note|The information on this page was gathered from eff2d_world_map.jpc. This page is not finished.}}
  
'''JPC files''' represent an indexed collection of JPA files. These files contain information on particle systems and store BTI images.
+
'''JPC files''' represent an indexed collection of [[JPA file]]s, and contain information on particle systems and store [[BTI file|BTI images]].
 
 
== File Header ==
 
  
 +
== File header ==
 
{| class="wikitable"
 
{| class="wikitable"
! Size of data || Description
+
! Data type || Description
 
|-
 
|-
|  0x0 (8 char) || String, “JPAC2-10”
+
|  0x0 (8 char) || String, <code>JPAC2-10</code>.
 
|-
 
|-
|  0x8 (uint16) || Number of BEM1 headers, Total number of defined emitters.
+
|  0x8 (uint16) || Number of BEM1 headers, total number of defined emitters.
 
|-
 
|-
|  0xA (uint16) || Number of BTI format textures (TEX1)
+
|  0xA (uint16) || Number of BTI format textures (TEX1).
 
|-
 
|-
 
|  0xC (uint32) || Total size of data excluding the TEX1 sections.
 
|  0xC (uint32) || Total size of data excluding the TEX1 sections.
 
|}
 
|}
  
Before the BEM1 section, every particle emitter starts off with 8 bytes of data:  
+
Before the BEM1 section, every particle emitter starts off with 8 bytes of data:
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
! Data Type/Size || Description
+
! Data type || Description
 
|-
 
|-
|  0x0 (uint16)|| Identifier
+
|  0x0 (uint16)|| Identifier.
 
|-
 
|-
|  0x2 (uint16)|| Unknown - Always set to 5
+
|  0x2 (uint16)|| {{unsure|Unknown - Always set to 5.}}
 
|-
 
|-
|  0x4 (uint8)|| Unknown - Crash handler mentions something about JPAWorkData
+
|  0x4 (uint8)|| {{unsure|Unknown - Crash handler mentions something about JPAWorkData.}}
 
|-
 
|-
|  0x5 (uint8)|| Unknown - Crash handler mentions JPAKeyBlock? Related to alpha? Crashes when changed to something else: https://i.gyazo.com/5507d06343f68515f91c630545947f87.png
+
|  0x5 (uint8)|| {{unsure|Unknown - Crash handler mentions JPAKeyBlock? Related to alpha? [https://i.gyazo.com/5507d06343f68515f91c630545947f87.pngCrashes when changed to something else].}}
 
|}
 
|}
 +
 
== BEM1 ==
 
== BEM1 ==
 
{| class="wikitable"
 
{| class="wikitable"
! Data Type/Size || Description
+
! Data type || Description
 
|-
 
|-
|  0x0 (4 char)|| String, “BEM1”
+
|  0x0 (4 char)|| String, <code>BEM1</code>.
 
|-
 
|-
|  0x4 (uint32)|| Value is always 7C since the data size of this section is static (124 bytes).
+
|  0x4 (uint32)|| Value is always <code>0x7C</code> since the data size of this section is static (124 bytes).
 
|-
 
|-
|  0x8 (uint16)|| Unknown - Doesn’t seem to do anything. Changing doesn’t crash.
+
|  0x8 (uint16)|| {{unsure|Unknown - Doesn't seem to do anything. Changing doesn't crash.}}
 
|-
 
|-
|  0xA (uint8)|| Can be set from 0-7. Crashes resulted when set to 7. Crash handler mentions JPADyanmicBlocks? Setting numbers higher than 7 will wrap around to represent 0-7.
+
|  0xA (uint8)|| {{unsure|Purpose unknown.}} Can be set from 0-7. Crashes resulted when set to 7. Crash handler mentions JPADyanmicBlocks? Setting numbers higher than 7 will wrap around to represent 0-7.
 
|-
 
|-
|  0xB (uint8)|| Bit flags? Upper 4 bits not used? Going right to left the 1st bit doesnt seem to do anything noticeable. 2nd seems to turn off particle cap. 3rd seems to determine if the particle system should fire continuously or once. 4th makes the particles parented to the emitter.
+
|  0xB (uint8)|| Bit flags. {{unsure|Upper 4 bits not used? Going right to left the 1st bit doesn't seem to do anything noticeable. 2nd seems to turn off particle cap. 3rd seems to determine if the particle system should fire continuously or once. 4th makes the particles parented to the emitter.}}
 
|-
 
|-
|  0x10 (float)|| Scale X, these scale values may be used for the shape that particles can spawn within.
+
|  0x10 (float)|| Scale X, these scale values may be used for the shape that particles can spawn within.
 
|-
 
|-
|  0x14 (float)|| Scale Y
+
|  0x14 (float)|| Scale Y.
 
|-
 
|-
|  0x18 (float)|| Scale Z
+
|  0x18 (float)|| Scale Z.
 
|-
 
|-
|  0x1C (float)|| Emitter's X offset from origin  
+
|  0x1C (float)|| Emitter's X offset from origin.
 
|-
 
|-
|  0x20 (float)|| Emitter's Y offset from origin
+
|  0x20 (float)|| Emitter's Y offset from origin.
 
|-
 
|-
|  0x24 (float)|| Emitter's Z offset from origin
+
|  0x24 (float)|| Emitter's Z offset from origin.
 
|}
 
|}
== Game.JPC Contents ==
+
 
 +
== Game.JPC contents ==
 
{| class="wikitable"
 
{| class="wikitable"
 
! ID || Description || Image
 
! ID || Description || Image
Line 63: Line 65:
 
|  0001|| Fart from Doodlebug ||  
 
|  0001|| Fart from Doodlebug ||  
 
|-
 
|-
|  0153|| Purple Pikmin Ghost ||  
+
|  0153|| Purple Pikmin ghost ||  
 
|-
 
|-
|  0154|| Blue Pikmin Ghost ||  
+
|  0154|| Blue Pikmin ghost ||  
 
|-
 
|-
|  0155|| Red Pikmin Ghost ||  
+
|  0155|| Red Pikmin ghost ||  
 
|-
 
|-
|  0156|| White Pikmin Ghost ||  
+
|  0156|| White Pikmin ghost ||  
 
|-
 
|-
|  0157|| Yellow Pikmin Ghost ||  
+
|  0157|| Yellow Pikmin ghost ||  
 
|-
 
|-
|  0169|| Purple Pikmin Idle Halo ||  
+
|  0169|| Purple Pikmin idle halo ||  
 
|-
 
|-
|  016A|| Blue Pikmin Idle Halo ||  
+
|  016A|| Blue Pikmin idle halo ||  
 
|-
 
|-
|  016B|| Red Pikmin Idle Halo ||  
+
|  016B|| Red Pikmin idle halo ||  
 
|-
 
|-
|  016C|| White Pikmin Idle Halo ||  
+
|  016C|| White Pikmin idle halo ||  
 
|-
 
|-
|  016D|| Yellow Pikmin Idle Halo ||  
+
|  016D|| Yellow Pikmin idle halo ||  
 
|-
 
|-
|  0281 || Green (Bulbmin) Idle Halo ||  
+
|  0281 || Green (Bulbmin) idle halo ||  
 
|-
 
|-
|  01E0|| Louie's Blue Antenna Glow ||  
+
|  01E0|| Louie's blue antenna glow ||  
 
|-
 
|-
|  01E1|| Louie's Blue Antenna Shine ||  
+
|  01E1|| Louie's blue antenna shine ||  
 
|-
 
|-
|  01E2|| Olimar's Red Antenna Glow ||  
+
|  01E2|| Olimar's red antenna glow ||  
 
|-
 
|-
|  01E3 || Olimar's Red Antenna Shine ||  
+
|  01E3 || Olimar's red antenna shine ||  
 
|}
 
|}
  
 
[[Category:File formats]]
 
[[Category:File formats]]
 
[[Category:Pikmin 2]]
 
[[Category:Pikmin 2]]

Revision as of 00:15, 13 June 2021

Editor's note: The information on this page was gathered from eff2d_world_map.jpc. This page is not finished.

JPC files represent an indexed collection of JPA files, and contain information on particle systems and store BTI images.

File header

Data type Description
0x0 (8 char) String, JPAC2-10.
0x8 (uint16) Number of BEM1 headers, total number of defined emitters.
0xA (uint16) Number of BTI format textures (TEX1).
0xC (uint32) Total size of data excluding the TEX1 sections.

Before the BEM1 section, every particle emitter starts off with 8 bytes of data:

Data type Description
0x0 (uint16) Identifier.
0x2 (uint16) Unknown - Always set to 5.[unsure]
0x4 (uint8) Unknown - Crash handler mentions something about JPAWorkData.[unsure]
0x5 (uint8) Unknown - Crash handler mentions JPAKeyBlock? Related to alpha? when changed to something else.[unsure]

BEM1

Data type Description
0x0 (4 char) String, BEM1.
0x4 (uint32) Value is always 0x7C since the data size of this section is static (124 bytes).
0x8 (uint16) Unknown - Doesn't seem to do anything. Changing doesn't crash.[unsure]
0xA (uint8) Purpose unknown.[unsure] Can be set from 0-7. Crashes resulted when set to 7. Crash handler mentions JPADyanmicBlocks? Setting numbers higher than 7 will wrap around to represent 0-7.
0xB (uint8) Bit flags. Upper 4 bits not used? Going right to left the 1st bit doesn't seem to do anything noticeable. 2nd seems to turn off particle cap. 3rd seems to determine if the particle system should fire continuously or once. 4th makes the particles parented to the emitter.[unsure]
0x10 (float) Scale X, these scale values may be used for the shape that particles can spawn within.
0x14 (float) Scale Y.
0x18 (float) Scale Z.
0x1C (float) Emitter's X offset from origin.
0x20 (float) Emitter's Y offset from origin.
0x24 (float) Emitter's Z offset from origin.

Game.JPC contents

ID Description Image
0000 Flies from Doodlebug
0001 Fart from Doodlebug
0153 Purple Pikmin ghost
0154 Blue Pikmin ghost
0155 Red Pikmin ghost
0156 White Pikmin ghost
0157 Yellow Pikmin ghost
0169 Purple Pikmin idle halo
016A Blue Pikmin idle halo
016B Red Pikmin idle halo
016C White Pikmin idle halo
016D Yellow Pikmin idle halo
0281 Green (Bulbmin) idle halo
01E0 Louie's blue antenna glow
01E1 Louie's blue antenna shine
01E2 Olimar's red antenna glow
01E3 Olimar's red antenna shine