<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.lumasworkshop.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AwesomeTMC</id>
	<title>Luma&#039;s Workshop - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.lumasworkshop.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AwesomeTMC"/>
	<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/wiki/Special:Contributions/AwesomeTMC"/>
	<updated>2026-06-04T06:16:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=AST_(File_Format)&amp;diff=1020</id>
		<title>AST (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=AST_(File_Format)&amp;diff=1020"/>
		<updated>2026-03-17T03:33:55Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: Loop enabled is the unknown at 0xE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:File formats]]&lt;br /&gt;
&#039;&#039;&#039;AST&#039;&#039;&#039; files are audio streams found in several JAudio2 games, including &#039;&#039;Super Mario Galaxy&#039;&#039; and &#039;&#039;Super Mario Galaxy 2&#039;&#039;. Both games store their &#039;&#039;&#039;AST&#039;&#039;&#039; files in the &amp;lt;code&amp;gt;AudioRes/Stream&amp;lt;/code&amp;gt; directory.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For a comprehensive list linking &#039;&#039;&#039;AST&#039;&#039;&#039; files to the Galaxy they&#039;re used in, check the [[List of Music]] page.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
AST file header, 0x40 bytes in length.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || File magic. &#039;&#039;&#039;STRM&#039;&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Size of all sound blocks. &#039;&#039;File Size - Header Length&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Audio format. 0 = ADPCM, 1 = PCM16&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Bit depth.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Number of channels.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Loop enabled? 0xFFFF = true. 0 = false.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Total sample count.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt32 || Loop start in samples. &lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt32 || Loop end in samples. &lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt32 || Unknown. Seems to be the size of the first block.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt32 || Unknown. Always 0.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt32 || Unknown. Always 0x7F000000.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Byte || Always 0. Likely padding.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || || End of Header.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== BLCK ==&lt;br /&gt;
AST file contain multiple BLCK sections, each containing sound data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || Block magic. &#039;&#039;&#039;BLCK&#039;&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Block size.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte || Unknown. Likely padding for alignment.&lt;br /&gt;
|- &lt;br /&gt;
| 0x20 || Byte || Sound data.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
[https://www.lumasworkshop.com/tools/#audio-tools Luma&#039;s Workshop - Audio Tools]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
[https://www.lumasworkshop.com/guides/?d=Changing%20Background%20Music Luma&#039;s Workshop - Changing Background Music]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.lumasworkshop.com/guides/?d=Importing%20New%20Music%20Tracks Luma&#039;s Workshop - Importing New Music Tracks]&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=BTI_(File_Format)&amp;diff=1019</id>
		<title>BTI (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=BTI_(File_Format)&amp;diff=1019"/>
		<updated>2026-03-07T04:04:58Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: BTIs have a bool &amp;quot;is palette enabled&amp;quot; in them&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
BTI is an image file format similar to TEX0, TPL and BREFT file formats. The only difference is the file header.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
The file format is very simple and starts with a file header followed by the image data. All data is written in [[big endian]].&lt;br /&gt;
&lt;br /&gt;
=== File Header ===&lt;br /&gt;
The following table shows the file header. It is 0x20 bytes long. There is no magic to identify BTI files,&lt;br /&gt;
so tools may do some plausibility checks to identify them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;textbox grid alt center&amp;quot; style=&amp;quot;border:1px; solid:#aaaaaa; max-width:743px&amp;quot; rules=all&lt;br /&gt;
|- style=background:lightgray&lt;br /&gt;
! colspan=3 | File Header (&#039;&#039;Table inspired off of [http://wiki.tockdom.com/wiki/BTI_(File_Format)#File_Header this]&#039;&#039;&#039;)&lt;br /&gt;
|- style=background:#f2f2f2&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || &#039;&#039;&#039;Image format&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Byte || &#039;&#039;&#039;Enable alpha&#039;&#039;&#039; (0x00 means alpha is disabled, anything higher means alpha is enabled)&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || UInt16 || &#039;&#039;&#039;Width&#039;&#039;&#039; of the image in pixels&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || &#039;&#039;&#039;Height&#039;&#039;&#039; of the image in pixels&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Byte || &#039;&#039;&#039;Wrap S&#039;&#039;&#039;[http://www.amnoid.de/gc/bti.txt] (0x01 for posteffect.bti, 0x00 for others). Probably repeat, clamp or mirror wraps for U projection maps&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Byte || &#039;&#039;&#039;Wrap T&#039;&#039;&#039;[http://www.amnoid.de/gc/bti.txt] (0x01 for posteffect.bti, 0x00 for others). Probably repeat, clamp or mirror wraps for V projection maps&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Boolean || &#039;&#039;&#039;Is palette enabled?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Byte || &#039;&#039;&#039;Palette format&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || &#039;&#039;&#039;Number of palette entries&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || &#039;&#039;&#039;Offset to palette data&#039;&#039;&#039;, relative to the start of the file header&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Boolean || &#039;&#039;&#039;Mipmap Enable&#039;&#039;&#039; Whether the texture will use mipmaps or not&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Boolean || &#039;&#039;&#039;EnableEdgeLOD&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Boolean || &#039;&#039;&#039;Clamp LOD Bias&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Boolean || &#039;&#039;&#039;Max Anisotropy&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Byte || &#039;&#039;&#039;Minification filter type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Byte || &#039;&#039;&#039;Magnification filter type&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Byte || &#039;&#039;&#039;Min LOD&#039;&#039;&#039; The minimum LOD clamp, scaled by 8. Usually 0 so the 0th Mipmap level is used.&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Byte || &#039;&#039;&#039;Max LOD&#039;&#039;&#039; The maximum LOD clamp, scaled by 8. This should practically have the same value as MipmapCount.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Byte || &#039;&#039;&#039;Total number of images&#039;&#039;&#039;, thus number of mipmaps + 1. Apparently unread by the engine itself, it only uses the MipmapEnable flag and the max LOD field.&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || Byte || style=background:lightgray | &#039;&#039;&#039;Unknown&#039;&#039;&#039; Probably Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt16 || &#039;&#039;&#039;LOD Bias&#039;&#039;&#039; The LOD bias of the texture, scaled by 100.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt32 || &#039;&#039;&#039;Offset to image data&#039;&#039;&#039;, relative to the start of the file header&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || colspan=2 style=&amp;quot;background:lightgray; text-align:center;&amp;quot; | End of file header&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Palette Data ==&lt;br /&gt;
{| class=&amp;quot;textbox grid alt center&amp;quot; style=&amp;quot;border:1px; solid:#0000a0; max-width:743px;&amp;quot; rules=all&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;background:#000080; color:white;&amp;quot; | Image Formats (&#039;&#039;Table inspired off of [http://wiki.tockdom.com/wiki/Template:Image_Formats this])&lt;br /&gt;
|- style=&amp;quot;background:#b0b0f0&amp;quot;&lt;br /&gt;
! ID !! Name !! Bits per pixel !! Block width !! Block height !! Block size !! Type&lt;br /&gt;
|- style=&amp;quot;background:#d0d0f0&amp;quot;&lt;br /&gt;
| 0x00 || I4 || 4 || 8 || 8 || 32 bytes || Gray&lt;br /&gt;
|- style=&amp;quot;background:#f0f0ff&amp;quot;&lt;br /&gt;
| 0x01 || I8 || 8 || 8 || 4 || 32 bytes || Gray&lt;br /&gt;
|- style=&amp;quot;background:#d0d0f0&amp;quot;&lt;br /&gt;
| 0x02 || IA4 || 8 || 8 || 4 || 32 bytes || Gray + Alpha&lt;br /&gt;
|- style=&amp;quot;background:#f0f0ff&amp;quot;&lt;br /&gt;
| 0x03 || IA8 || 16 || 4 || 4 || 32 bytes || Gray + Alpha&lt;br /&gt;
|- style=&amp;quot;background:#d0d0f0&amp;quot;&lt;br /&gt;
| 0x04 || RGB565|| 16 || 4 || 4 || 32 bytes || Color&lt;br /&gt;
|- style=&amp;quot;background:#f0f0ff&amp;quot;&lt;br /&gt;
| 0x05 || RGB5A3 || 16 || 4 || 4 || 32 bytes || Color + Alpha&lt;br /&gt;
|- style=&amp;quot;background:#d0d0f0&amp;quot;&lt;br /&gt;
| 0x06 || RGBA32|| 32 || 4 || 4 || 64 bytes || Color + Alpha&lt;br /&gt;
|- style=&amp;quot;background:#f0f0ff&amp;quot;&lt;br /&gt;
| 0x08 || C4 || 4 || 8 || 8 || 32 bytes || Palette (IA8, RGB565, RGB5A3)&lt;br /&gt;
|- style=&amp;quot;background:#d0d0f0&amp;quot;&lt;br /&gt;
| 0x09 || C8|| 8 || 8 || 4 || 32 bytes || Palette (IA8, RGB565, RGB5A3)&lt;br /&gt;
|- style=&amp;quot;background:#f0f0ff&amp;quot;&lt;br /&gt;
| 0x0A || C14X2 || 16 || 4 || 4 || 32 bytes || Palette (IA8, RGB565, RGB5A3)&lt;br /&gt;
|- style=&amp;quot;background:#d0d0f0&amp;quot;&lt;br /&gt;
| 0x0E || CMPR || 4 || 8 || 8 || 32 bytes || Color + 1 bit Alpha (compressed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
[http://avsys.xyz/upload/files/Wexos%27s%20Toolbox%20v1.0.2.0.zip Wexos&#039;s Toolbox] can convert PNG files into BTI images. (Only supports certain pallets.)&amp;lt;br&amp;gt;&lt;br /&gt;
[https://szs.wiimm.de/ Wiimms SZS Tools] can convert BTI and PNG images in any direction. It may also convert the image and palette formats and add or remove mipmaps on the fly.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/KillzXGaming/Switch-Toolbox Switch Toolbox] can open BTI images and convert them into PNG files.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/Lord-Giganticus/BTIConv BTIConv] is a cross platform solution to convert BTI and PNG images in any direction. Built in NET 6.0&lt;br /&gt;
== Libraries ==&lt;br /&gt;
[https://github.com/SuperHackio/Hack.io/tree/master/Hack.io.BTI Hack.io.BTI] Windows only C# library to help manipulating BTI images&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=BAS_(File_Format)&amp;diff=818</id>
		<title>BAS (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=BAS_(File_Format)&amp;diff=818"/>
		<updated>2025-01-31T08:01:21Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: Initial BAS page (still very WIP)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BAS&#039;&#039;&#039; stands for (presumably) &#039;&#039;&#039;B&#039;&#039;&#039;inary &#039;&#039;&#039;A&#039;&#039;&#039;udio &#039;&#039;&#039;S&#039;&#039;&#039;equence. It is used in several JSystem games, including Super Mario Galaxy and Super Mario Galaxy 2.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
Every BAS starts with this header. It is 0x8 in size.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 || Entry Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || UInt16 || Unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 *|| Pointer (in memory) to a class that implements virtual methods for:&lt;br /&gt;
* void doNothing(); // you can put anything here, just make sure one virtual function comes first. &lt;br /&gt;
* u32 *getSound(JAUSoundAnimation *);&lt;br /&gt;
* u32 getNumSounds(JAUSoundAnimation *);&lt;br /&gt;
in that order. Put 0 for default behavior. Always 0 in SMG/SMG2.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
It is then followed by an array of sound entries:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SoundEntry[Entry Count] || Array of sound entries.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sound Entry ==&lt;br /&gt;
0x20 in size, including padding.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt32 || Sound ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || End Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Pitch&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32|| Flags:&lt;br /&gt;
bool useEndFrame(?) = (flags &amp;gt;&amp;gt; 6) &amp;amp; 0x01&amp;lt;br&amp;gt;&lt;br /&gt;
(Still unknown/unused but set: 32, 16, 4)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt8 || Volume&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || UInt8 || Pitch Factor&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || UInt8 || Loop Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || UInt8 || Panning&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt8 || Volume Factor&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || UInt8[7] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(References: [https://github.com/SuperHackio/Hack.io/blob/master/Hack.io.BAS/BAS.cs Hack.io.BAS], [https://github.com/XAYRGA/bastool/blob/master/bastool/BinaryAudioSequence.cs bastool], [https://github.com/SunakazeKun/pyjaubas/blob/main/pyjaubas/bas.py pyjaubas])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=816</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=816"/>
		<updated>2025-01-29T17:12:42Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: More formatting...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image/Texture Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&lt;br /&gt;
&lt;br /&gt;
bool IsGlobalColorAnimation = (flags &amp;gt;&amp;gt; 0xC) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsGlobalTextureAnimation = (flags &amp;gt;&amp;gt; 0xE) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br /&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsEnableProjection = (flags &amp;gt;&amp;gt; 0x14) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsDrawForwardAhead = (flags &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsDrawPrintAhead = (flags &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsEnableTexScrollAnim = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
TlingS = if ((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br /&amp;gt;&lt;br /&gt;
TlingT = if ((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&lt;br /&gt;
&lt;br /&gt;
bool IsNoDrawParent = (flags &amp;gt;&amp;gt; 0x1B) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsNoDrawChild = (flags &amp;gt;&amp;gt; 0x1C) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags:&lt;br /&gt;
BlendMode = (blendFlags &amp;amp; 0x03). See [[JPA (File Format)#Blend Mode|Blend Mode]]&amp;lt;br/&amp;gt;&lt;br /&gt;
SourceFactor = (blendFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x0F. See [[JPA (File Format)#Blend Factor|Blend Factor]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DestinationFactor = (blendFlags &amp;gt;&amp;gt; 6) &amp;amp; 0x0F. See [[JPA (File Format)#Blend Factor|Blend Factor]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags:&lt;br /&gt;
AlphaCompareType0 = (alphaFlags &amp;amp; 0x07). See [[JPA (File Format)#Compare Type|Compare Type]]&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaOperator = (alphaFlags &amp;gt;&amp;gt; 3) &amp;amp; 0x03. See [[JPA (File Format)#Alpha Operator|Alpha Operator]]&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaCompareType1 = (alphaFlags &amp;gt;&amp;gt; 5) &amp;amp; 0x07. See [[JPA (File Format)#Compare Type|Compare Type]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags:&lt;br /&gt;
bool DepthTest = (zModeFlags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
DepthCompareType = (zModeFlags &amp;gt;&amp;gt; 1) &amp;amp; 0x07. See [[JPA (File Format)#Compare Type|Compare Type]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool DepthWrite = (zModeFlags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;bool IsEnableTextureAnimation = (TextureFlags &amp;amp; 0x01)&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;bool IsPrimaryColorAnimEnabled = (ColorFlags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnvironmentColorAnimEnabled = (ColorFlags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 1&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 1&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = (flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x1&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = (flags &amp;gt;&amp;gt; 0x10) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = (flags &amp;gt;&amp;gt; 0x11) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = (flags &amp;gt;&amp;gt; 0x10) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = (flags &amp;gt;&amp;gt; 0x11) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = (flags &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = (flags &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = (flags &amp;gt;&amp;gt; 0x17) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf (Influence?) Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]].&lt;br /&gt;
&lt;br /&gt;
Note that due to masking, SUBTRACT isn&#039;t used.&lt;br /&gt;
&lt;br /&gt;
bool UseSecondTextureIndex = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding/Unused?, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
&lt;br /&gt;
bool NoInheritRotate = (flags &amp;gt;&amp;gt; 0x11) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool AirDrag = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseEnterTime = (flags &amp;gt;&amp;gt; 0x13) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseDistanceTime = (flags &amp;gt;&amp;gt; 0x14) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseFadeIn (flag &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseFadeOut (flag &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || XZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIFETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCITYDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blend Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BLEND&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || LOGIC&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blend Factor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ZERO&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SOURCE_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || INVERSE_SOURCE_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || SOURCE_COLOR (Duplicate?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || INVERSE_SOURCE_COLOR (Duplicate?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || SOURCE_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INVERSE_SOURCE_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || DESTINATION_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || INVERSE_DESTINATION_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compare Type ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NEVER&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LESS_THAN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || LESS_THAN_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || NOT_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || GREATER_THAN_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || GREATER_THAN&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ALWAYS&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alpha Operator ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || AND&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || OR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || XOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XNOR&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=815</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=815"/>
		<updated>2025-01-28T19:28:07Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: Finish off documenting what I currently know&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image/Texture Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&lt;br /&gt;
&lt;br /&gt;
bool IsGlobalColorAnimation = (flags &amp;gt;&amp;gt; 0xC) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsGlobalTextureAnimation = (flags &amp;gt;&amp;gt; 0xE) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br /&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsEnableProjection = (flags &amp;gt;&amp;gt; 0x14) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsDrawForwardAhead = (flags &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsDrawPrintAhead = (flags &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsEnableTexScrollAnim = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
TlingS = if ((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br /&amp;gt;&lt;br /&gt;
TlingT = if ((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&lt;br /&gt;
&lt;br /&gt;
bool IsNoDrawParent = (flags &amp;gt;&amp;gt; 0x1B) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsNoDrawChild = (flags &amp;gt;&amp;gt; 0x1C) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags:&lt;br /&gt;
BlendMode = (blendFlags &amp;amp; 0x03). See [[JPA (File Format)#Blend Mode|Blend Mode]]&lt;br /&gt;
SourceFactor = (blendFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x0F. See [[JPA (File Format)#Blend Factor|Blend Factor]]&lt;br /&gt;
DestinationFactor = (blendFlags &amp;gt;&amp;gt; 6) &amp;amp; 0x0F. See [[JPA (File Format)#Blend Factor|Blend Factor]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags:&lt;br /&gt;
AlphaCompareType0 = (alphaFlags &amp;amp; 0x07). See [[JPA (File Format)#Compare Type|Compare Type]]&lt;br /&gt;
AlphaOperator = (alphaFlags &amp;gt;&amp;gt; 3) &amp;amp; 0x03. See [[JPA (File Format)#Alpha Operator|Alpha Operator]]&lt;br /&gt;
AlphaCompareType1 = (alphaFlags &amp;gt;&amp;gt; 5) &amp;amp; 0x07. See [[JPA (File Format)#Compare Type|Compare Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags:&lt;br /&gt;
bool DepthTest = (zModeFlags &amp;amp; 0x01)&lt;br /&gt;
DepthCompareType = (zModeFlags &amp;gt;&amp;gt; 1) &amp;amp; 0x07. See [[JPA (File Format)#Compare Type|Compare Type]]&lt;br /&gt;
bool DepthWrite = (zModeFlags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;bool IsEnableTextureAnimation = (TextureFlags &amp;amp; 0x01)&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;bool IsPrimaryColorAnimEnabled = (ColorFlags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&lt;br /&gt;
bool IsEnvironmentColorAnimEnabled = (ColorFlags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = (flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x1&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = (flags &amp;gt;&amp;gt; 0x10) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = (flags &amp;gt;&amp;gt; 0x11) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = (flags &amp;gt;&amp;gt; 0x10) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = (flags &amp;gt;&amp;gt; 0x11) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = (flags &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = (flags &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = (flags &amp;gt;&amp;gt; 0x17) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf (Influence?) Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]].&lt;br /&gt;
&lt;br /&gt;
Note that due to masking, SUBTRACT isn&#039;t used.&lt;br /&gt;
&lt;br /&gt;
bool UseSecondTextureIndex = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding/Unused?, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
&lt;br /&gt;
bool NoInheritRotate = (flags &amp;gt;&amp;gt; 0x11) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool AirDrag = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseEnterTime = (flags &amp;gt;&amp;gt; 0x13) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseDistanceTime = (flags &amp;gt;&amp;gt; 0x14) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseFadeIn (flag &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool FadeUseFadeOut (flag &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || XZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIFETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCITYDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blend Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BLEND&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || LOGIC&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blend Factor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ZERO&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SOURCE_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || INVERSE_SOURCE_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || SOURCE_COLOR (Duplicate?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || INVERSE_SOURCE_COLOR (Duplicate?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || SOURCE_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INVERSE_SOURCE_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || DESTINATION_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || INVERSE_DESTINATION_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compare Type ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NEVER&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LESS_THAN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || LESS_THAN_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || NOT_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || GREATER_THAN_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || GREATER_THAN&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ALWAYS&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alpha Operator ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || AND&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || OR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || XOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XNOR&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=814</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=814"/>
		<updated>2025-01-28T18:28:59Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image/Texture Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&lt;br /&gt;
&lt;br /&gt;
bool IsGlobalColorAnimation = (flags &amp;gt;&amp;gt; 0xC) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsGlobalTextureAnimation = (flags &amp;gt;&amp;gt; 0xE) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br /&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsEnableProjection = (flags &amp;gt;&amp;gt; 0x14) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsDrawForwardAhead = (flags &amp;gt;&amp;gt; 0x15) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsDrawPrintAhead = (flags &amp;gt;&amp;gt; 0x16) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsEnableTexScrollAnim = (flags &amp;gt;&amp;gt; 0x18) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
TlingS = if ((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br /&amp;gt;&lt;br /&gt;
TlingT = if ((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&lt;br /&gt;
&lt;br /&gt;
bool IsNoDrawParent = (flags &amp;gt;&amp;gt; 0x1B) &amp;amp; 0x01&lt;br /&gt;
&lt;br /&gt;
bool IsNoDrawChild = (flags &amp;gt;&amp;gt; 0x1C) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags:&lt;br /&gt;
BlendMode = (blendFlags &amp;amp; 0x03). See [[JPA (File Format)#Blend Mode|Blend Mode]]&lt;br /&gt;
SourceFactor = (blendFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x0F. See [[JPA (File Format)#Blend Factor|Blend Factor]]&lt;br /&gt;
DestinationFactor = (blendFlags &amp;gt;&amp;gt; 6) &amp;amp; 0x0F. See [[JPA (File Format)#Blend Factor|Blend Factor]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags:&lt;br /&gt;
AlphaCompareType0 = (alphaFlags &amp;amp; 0x07). See [[JPA (File Format)#Compare Type|Compare Type]]&lt;br /&gt;
AlphaOperator = (alphaFlags &amp;gt;&amp;gt; 3) &amp;amp; 0x03. See [[JPA (File Format)#Alpha Operator|Alpha Operator]]&lt;br /&gt;
AlphaCompareType1 = (alphaFlags &amp;gt;&amp;gt; 5) &amp;amp; 0x07. See [[JPA (File Format)#Compare Type|Compare Type]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags:&lt;br /&gt;
bool DepthTest = (zModeFlags &amp;amp; 0x01)&lt;br /&gt;
DepthCompareType = (zModeFlags &amp;gt;&amp;gt; 1) &amp;amp; 0x07. See [[JPA (File Format)#Compare Type|Compare Type]]&lt;br /&gt;
bool DepthWrite = (zModeFlags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;bool IsEnableTextureAnimation = (TextureFlags &amp;amp; 0x01)&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;bool IsPrimaryColorAnimEnabled = (ColorFlags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&lt;br /&gt;
bool IsEnvironmentColorAnimEnabled = (ColorFlags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || XZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIFETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCITYDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blend Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BLEND&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || LOGIC&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blend Factor ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || ZERO&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SOURCE_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || INVERSE_SOURCE_COLOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || SOURCE_COLOR (Duplicate?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || INVERSE_SOURCE_COLOR (Duplicate?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || SOURCE_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INVERSE_SOURCE_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || DESTINATION_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || INVERSE_DESTINATION_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compare Type ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NEVER&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LESS_THAN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || LESS_THAN_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || NOT_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || GREATER_THAN_EQUAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || GREATER_THAN&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ALWAYS&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alpha Operator ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || AND&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || OR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || XOR&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XNOR&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=List_of_Music&amp;diff=793</id>
		<title>List of Music</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=List_of_Music&amp;diff=793"/>
		<updated>2025-01-09T22:44:49Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: Small fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Lists]]&lt;br /&gt;
&lt;br /&gt;
This page lists all music that can be found in both &#039;&#039;Galaxy&#039;&#039; games along with their respective BGM, STM, MBGM labels and their associated files:&lt;br /&gt;
* &#039;&#039;&#039;BGM Label&#039;&#039;&#039;: The name of the sequenced track.&lt;br /&gt;
* &#039;&#039;&#039;Stream Label&#039;&#039;&#039;: The name of the streamed track.&lt;br /&gt;
* &#039;&#039;&#039;Multi Label&#039;&#039;&#039;: The Multi BGM name that combines the sequenced and streamed tracks.&lt;br /&gt;
* &#039;&#039;&#039;Sequence File&#039;&#039;&#039;: The file name of the BMS data in &#039;&#039;AudioRes/Seqs/JaiSeq.arc&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Chord File&#039;&#039;&#039;: The file name of the chord data in &#039;&#039;AudioRes/Info/JaiChord.arc&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Stream File&#039;&#039;&#039;: The stream&#039;s file name in &#039;&#039;AudioRes/Stream&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
These entries can be found and edited in [[SMR.szs]] as well as in [[File_system#Audio_&amp;amp;_Video|various lists]] that vary per game.&lt;br /&gt;
&lt;br /&gt;
==Super Mario Galaxy==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! BGM Label&lt;br /&gt;
! Stream Label&lt;br /&gt;
! Multi Label&lt;br /&gt;
! Sequence File (.szs/.bms)&lt;br /&gt;
! Chord File (.cit)&lt;br /&gt;
! Stream File (.ast)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | General Galaxy Music&lt;br /&gt;
|-&lt;br /&gt;
| Gateway Galaxy&lt;br /&gt;
| BGM_GALAXY_24&lt;br /&gt;
| STM_GALAXY_24&lt;br /&gt;
| MBGM_GALAXY_24&lt;br /&gt;
| smg_galaxy24_midi_cnv&lt;br /&gt;
| smg_galaxy24_midi&lt;br /&gt;
| SMG_galaxy24_multi&lt;br /&gt;
|-&lt;br /&gt;
| Gateway Galaxy 2&lt;br /&gt;
| BGM_GALAXY_25&lt;br /&gt;
| STM_GALAXY_25&lt;br /&gt;
| MBGM_GALAXY_25&lt;br /&gt;
| smg_galaxy25_midi_cnv&lt;br /&gt;
| smg_galaxy25_midi&lt;br /&gt;
| SMG_galaxy25_strm&lt;br /&gt;
|-&lt;br /&gt;
| Gateway Galaxy 3&lt;br /&gt;
| BGM_GALAXY_26&lt;br /&gt;
| STM_GALAXY_26&lt;br /&gt;
| MBGM_GALAXY_26&lt;br /&gt;
| smg_galaxy26_midi_cnv&lt;br /&gt;
| smg_galaxy26_midi&lt;br /&gt;
| SMG_galaxy26_strm&lt;br /&gt;
|-&lt;br /&gt;
| Good Egg Galaxy&lt;br /&gt;
| BGM_GALAXY_01&lt;br /&gt;
| STM_GALAXY_01&lt;br /&gt;
| MBGM_GALAXY_01&lt;br /&gt;
| smg_galaxy01_midi_cnv&lt;br /&gt;
| smg_galaxy01_midi&lt;br /&gt;
| SMG_galaxy01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Honeyhive Galaxy&lt;br /&gt;
| BGM_GALAXY_10&lt;br /&gt;
| STM_GALAXY_10&lt;br /&gt;
| MBGM_GALAXY_10&lt;br /&gt;
| smg_galaxy10_midi_cnv&lt;br /&gt;
| smg_galaxy10_midi&lt;br /&gt;
| SMG_galaxy10_strm&lt;br /&gt;
|-&lt;br /&gt;
| Big Bad Bugaboom&lt;br /&gt;
| BGM_GALAXY_10_HURRY&lt;br /&gt;
| STM_GALAXY_10_HURRY&lt;br /&gt;
| MBGM_GALAXY_10_HURRY&lt;br /&gt;
| smg_galaxy10_hurry_midi_cnv&lt;br /&gt;
| smg_galaxy10_hurry_midi&lt;br /&gt;
| SMG_galaxy10_hurry_strm&lt;br /&gt;
|-&lt;br /&gt;
| Space Junk Galaxy&lt;br /&gt;
| BGM_GALAXY_08&lt;br /&gt;
| STM_GALAXY_08&lt;br /&gt;
| MBGM_GALAXY_08&lt;br /&gt;
| smg_galaxy08_midi_cnv&lt;br /&gt;
| smg_galaxy08_midi&lt;br /&gt;
| SMG_galaxy08_strm&lt;br /&gt;
|-&lt;br /&gt;
| Battlerock Galaxy&lt;br /&gt;
| BGM_GALAXY_11&lt;br /&gt;
| STM_GALAXY_11&lt;br /&gt;
| MBGM_GALAXY_11&lt;br /&gt;
| smg_galaxy11_midi_cnv&lt;br /&gt;
| smg_galaxy11_midi&lt;br /&gt;
| SMG_galaxy11_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&#039;s Star Reactor&lt;br /&gt;
| BGM_GALAXY_15&lt;br /&gt;
| STM_GALAXY_15&lt;br /&gt;
| MBGM_GALAXY_15&lt;br /&gt;
| smg_galaxy15_midi_cnv&lt;br /&gt;
| smg_galaxy15_midi&lt;br /&gt;
| SMG_galaxy15_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&#039;s Big Staircase&lt;br /&gt;
| BGM_GALAXY_15_HURRY&lt;br /&gt;
| STM_GALAXY_15_HURRY&lt;br /&gt;
| MBGM_GALAXY_15_HURRY&lt;br /&gt;
| smg_galaxy15_hurry_midi_cnv&lt;br /&gt;
| smg_galaxy15_hurry_midi&lt;br /&gt;
| SMG_galaxy15_hurry_strm&lt;br /&gt;
|-&lt;br /&gt;
| Beach Bowl Galaxy&lt;br /&gt;
| BGM_GALAXY_03&lt;br /&gt;
| STM_GALAXY_03&lt;br /&gt;
| MBGM_GALAXY_03&lt;br /&gt;
| smg_galaxy03_midi_cnv&lt;br /&gt;
| smg_galaxy03_midi&lt;br /&gt;
| SMG_galaxy03_multi&lt;br /&gt;
|-&lt;br /&gt;
| Ghostly Galaxy&lt;br /&gt;
| BGM_GALAXY_06&lt;br /&gt;
| STM_GALAXY_06&lt;br /&gt;
| MBGM_GALAXY_06&lt;br /&gt;
| smg_galaxy06_midi_cnv&lt;br /&gt;
| smg_galaxy06_midi&lt;br /&gt;
| SMG_galaxy06_strm&lt;br /&gt;
|-&lt;br /&gt;
| Buoy Base Galaxy&lt;br /&gt;
| BGM_GALAXY_04&lt;br /&gt;
| STM_GALAXY_04&lt;br /&gt;
| MBGM_GALAXY_04&lt;br /&gt;
| smg_galaxy04_midi_cnv&lt;br /&gt;
| smg_galaxy04_midi&lt;br /&gt;
| SMG_galaxy04_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bowser Jr.&#039;s Airship Armada&lt;br /&gt;
| BGM_GALAXY_09&lt;br /&gt;
| STM_GALAXY_09&lt;br /&gt;
| MBGM_GALAXY_09&lt;br /&gt;
| smg_galaxy09_midi_cnv&lt;br /&gt;
| smg_galaxy09_midi&lt;br /&gt;
| SMG_galaxy09_strm&lt;br /&gt;
|-&lt;br /&gt;
| Drip Drop Galaxy&lt;br /&gt;
| BGM_GALAXY_23&lt;br /&gt;
| STM_GALAXY_23&lt;br /&gt;
| MBGM_GALAXY_23&lt;br /&gt;
| smg_galaxy23_midi_cnv&lt;br /&gt;
| smg_galaxy23_midi&lt;br /&gt;
| SMG_galaxy23_strm&lt;br /&gt;
|-&lt;br /&gt;
| Gusty Garden Galaxy&lt;br /&gt;
| BGM_GALAXY_14&lt;br /&gt;
| STM_GALAXY_14&lt;br /&gt;
| MBGM_GALAXY_14&lt;br /&gt;
| smg_galaxy14_midi_cnv&lt;br /&gt;
| smg_galaxy14_midi&lt;br /&gt;
| SMG_galaxy14_strm&lt;br /&gt;
|-&lt;br /&gt;
| Freezeflame Galaxy&lt;br /&gt;
| BGM_GALAXY_16&lt;br /&gt;
| STM_GALAXY_16&lt;br /&gt;
| MBGM_GALAXY_16&lt;br /&gt;
| smg_galaxy16_midi_cnv&lt;br /&gt;
| smg_galaxy16_midi&lt;br /&gt;
| SMG_galaxy16_multi&lt;br /&gt;
|-&lt;br /&gt;
| Dusty Dune Galaxy&lt;br /&gt;
| BGM_GALAXY_19&lt;br /&gt;
| STM_GALAXY_19&lt;br /&gt;
| MBGM_GALAXY_19&lt;br /&gt;
| smg_galaxy19_midi_cnv&lt;br /&gt;
| smg_galaxy19_midi&lt;br /&gt;
| SMG_galaxy19_strm&lt;br /&gt;
|-&lt;br /&gt;
| Toy Time Galaxy&lt;br /&gt;
| BGM_GALAXY_22&lt;br /&gt;
| STM_GALAXY_22&lt;br /&gt;
| MBGM_GALAXY_22&lt;br /&gt;
| smg_galaxy22_midi_cnv&lt;br /&gt;
| smg_galaxy22_midi&lt;br /&gt;
| SMG_galaxy22_strm&lt;br /&gt;
|-&lt;br /&gt;
| Deep Dark Galaxy&lt;br /&gt;
| BGM_GALAXY_05&lt;br /&gt;
| STM_GALAXY_05&lt;br /&gt;
| MBGM_GALAXY_05&lt;br /&gt;
| smg_galaxy05_midi_cnv&lt;br /&gt;
| smg_galaxy05_midi&lt;br /&gt;
| SMG_galaxy05_strm&lt;br /&gt;
|-&lt;br /&gt;
| Melty Molten Galaxy&lt;br /&gt;
| BGM_GALAXY_02&lt;br /&gt;
| STM_GALAXY_02&lt;br /&gt;
| MBGM_GALAXY_02&lt;br /&gt;
| smg_galaxy02_midi_cnv&lt;br /&gt;
| smg_galaxy02_midi&lt;br /&gt;
| SMG_galaxy02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Snow Cap Galaxy&lt;br /&gt;
| BGM_GALAXY_27&lt;br /&gt;
| STM_GALAXY_27&lt;br /&gt;
| MBGM_GALAXY_27&lt;br /&gt;
| smg_galaxy27_midi_cnv&lt;br /&gt;
| smg_galaxy27_midi&lt;br /&gt;
| SMG_galaxy27_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&#039;s Galaxy Reactor&lt;br /&gt;
| BGM_GALAXY_28&lt;br /&gt;
| STM_GALAXY_28&lt;br /&gt;
| MBGM_GALAXY_28&lt;br /&gt;
| smg_galaxy28_midi_cnv&lt;br /&gt;
| smg_galaxy28_midi&lt;br /&gt;
| SMG_galaxy28_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Miscellaneous Stage Music&lt;br /&gt;
|-&lt;br /&gt;
| Interlude&lt;br /&gt;
| BGM_GALAXY_INTER&lt;br /&gt;
| STM_GALAXY_INTER&lt;br /&gt;
| MBGM_GALAXY_INTER&lt;br /&gt;
| smg_galaxy_inter_midi_cnv&lt;br /&gt;
| smg_galaxy_inter_midi&lt;br /&gt;
| SMG_galaxy_inter_strm&lt;br /&gt;
|-&lt;br /&gt;
| A Tense Moment&lt;br /&gt;
| BGM_GALAXY_01_TOMB&lt;br /&gt;
| STM_GALAXY_01_TOMB&lt;br /&gt;
| MBGM_GALAXY_01_TOMB&lt;br /&gt;
| smg_galaxy01_tomb_midi_cnv&lt;br /&gt;
| smg_galaxy01_tomb_midi&lt;br /&gt;
| SMG_galaxy01_tomb_strm&lt;br /&gt;
|-&lt;br /&gt;
| Space Fantasy&lt;br /&gt;
| BGM_GALAXY_12&lt;br /&gt;
| STM_GALAXY_12&lt;br /&gt;
| MBGM_GALAXY_12&lt;br /&gt;
| smg_galaxy12_midi_cnv&lt;br /&gt;
| smg_galaxy12_midi&lt;br /&gt;
| SMG_galaxy12_strm&lt;br /&gt;
|-&lt;br /&gt;
| Space Athletic&lt;br /&gt;
| BGM_GALAXY_13&lt;br /&gt;
| STM_GALAXY_13&lt;br /&gt;
| MBGM_GALAXY_13&lt;br /&gt;
| smg_galaxy13_midi_cnv&lt;br /&gt;
| smg_galaxy13_midi&lt;br /&gt;
| SMG_galaxy13_strm&lt;br /&gt;
|-&lt;br /&gt;
| Blue Sky Athletic&lt;br /&gt;
| BGM_GALAXY_17&lt;br /&gt;
| STM_GALAXY_17&lt;br /&gt;
| MBGM_GALAXY_17&lt;br /&gt;
| smg_galaxy17_midi_cnv&lt;br /&gt;
| smg_galaxy17_midi&lt;br /&gt;
| SMG_galaxy17_strm&lt;br /&gt;
|-&lt;br /&gt;
| Speedy Comet&lt;br /&gt;
| BGM_GALAXY_02_HURRY&lt;br /&gt;
| STM_GALAXY_02_HURRY&lt;br /&gt;
| MBGM_GALAXY_02_HURRY&lt;br /&gt;
| smg_galaxy02_hurry_midi_cnv&lt;br /&gt;
| smg_galaxy02_hurry_midi&lt;br /&gt;
| SMG_galaxy02_hurry_strm&lt;br /&gt;
|-&lt;br /&gt;
| Cosmic Comet&lt;br /&gt;
| BGM_GALAXY_20&lt;br /&gt;
| STM_GALAXY_20&lt;br /&gt;
| MBGM_GALAXY_20&lt;br /&gt;
| smg_galaxy20_midi_cnv&lt;br /&gt;
| smg_galaxy20_midi&lt;br /&gt;
| SMG_galaxy20_strm&lt;br /&gt;
|-&lt;br /&gt;
| Purple Comet&lt;br /&gt;
| BGM_GALAXY_21&lt;br /&gt;
| STM_GALAXY_21&lt;br /&gt;
| MBGM_GALAXY_21&lt;br /&gt;
| smg_galaxy21_midi_cnv&lt;br /&gt;
| smg_galaxy21_midi&lt;br /&gt;
| SMG_galaxy21_strm&lt;br /&gt;
|-&lt;br /&gt;
| Pipe Interior&lt;br /&gt;
| BGM_GALAXY_18&lt;br /&gt;
| STM_GALAXY_18&lt;br /&gt;
| MBGM_GALAXY_18&lt;br /&gt;
| smg_galaxy18_midi_cnv&lt;br /&gt;
| smg_galaxy18_midi&lt;br /&gt;
| SMG_galaxy18_strm&lt;br /&gt;
|-&lt;br /&gt;
| Captain Toad&#039;s Theme&lt;br /&gt;
| BGM_KINOPIO_TANKEN&lt;br /&gt;
| STM_KINOPIO_TANKEN&lt;br /&gt;
| MBGM_KINOPIO_TANKEN&lt;br /&gt;
| smg_ev_kinotan_midi_cnv&lt;br /&gt;
| smg_ev_kinotan_midi&lt;br /&gt;
| SMG_ev_kinotan_strm&lt;br /&gt;
|-&lt;br /&gt;
| Captain Toad&#039;s Theme (Duplicate)&lt;br /&gt;
| BGM_KINOPIO_TANKEN_B&lt;br /&gt;
| STM_KINOPIO_TANKEN_B&lt;br /&gt;
| MBGM_KINOPIO_TANKEN_B&lt;br /&gt;
| smg_ev_kinotan_midi_cnv&lt;br /&gt;
| smg_ev_kinotan_midi&lt;br /&gt;
| SMG_ev_kinotan_strm&lt;br /&gt;
|-&lt;br /&gt;
| Surfing Race&lt;br /&gt;
| BGM_RACE_01&lt;br /&gt;
| STM_RACE_01&lt;br /&gt;
| MBGM_RACE_01&lt;br /&gt;
| smg_ev_race_midi_cnv&lt;br /&gt;
| smg_ev_race_midi&lt;br /&gt;
| SMG_ev_race_strm&lt;br /&gt;
|-&lt;br /&gt;
| Spooky Race&lt;br /&gt;
| BGM_RACE_02&lt;br /&gt;
| STM_RACE_02&lt;br /&gt;
| MBGM_RACE_02&lt;br /&gt;
| smg_ev_race02_midi_cnv&lt;br /&gt;
| smg_ev_race02_midi&lt;br /&gt;
| SMG_ev_race02_multi&lt;br /&gt;
|-&lt;br /&gt;
| Star Ball (Rolling Greens)&lt;br /&gt;
| BGM_TAMAKORO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_tamakoro&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Star Ball (Melty Molten)&lt;br /&gt;
| BGM_TAMAKORO_2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_tamakoro02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Star Bunny Theme&lt;br /&gt;
| BGM_GALAXY_02_CHASE&lt;br /&gt;
| STM_GALAXY_02_CHASE&lt;br /&gt;
| MBGM_GALAXY_02_CHASE&lt;br /&gt;
| smg_ev_rabbit_midi_cnv&lt;br /&gt;
| smg_ev_rabbit_midi&lt;br /&gt;
| SMG_ev_rabbit_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser Appears&lt;br /&gt;
| &lt;br /&gt;
| STM_MEET_KOOPA&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_ev_kuppabt01_strm&lt;br /&gt;
|-&lt;br /&gt;
| A Chance to Grab a Star! 1&lt;br /&gt;
| BGM_STAR_EXIST&lt;br /&gt;
| STM_STAR_EXIST&lt;br /&gt;
| MBGM_STAR_EXIST&lt;br /&gt;
| smg_ev_starchance_midi_cnv&lt;br /&gt;
| smg_ev_starchance_midi&lt;br /&gt;
| SMG_ev_starchance_strm&lt;br /&gt;
|-&lt;br /&gt;
| A Chance to Grab a Star! 2&lt;br /&gt;
| BGM_STAR_EXIST_2&lt;br /&gt;
| STM_STAR_EXIST_2&lt;br /&gt;
| MBGM_STAR_EXIST_2&lt;br /&gt;
| smg_ev_starchance02_midi_cnv&lt;br /&gt;
| smg_ev_starchance02_midi&lt;br /&gt;
| SMG_ev_starchance02_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Boss Music&lt;br /&gt;
|-&lt;br /&gt;
| Dino Piranha&lt;br /&gt;
| BGM_BOSS_03_A&lt;br /&gt;
| STM_BOSS_03_A&lt;br /&gt;
| MBGM_BOSS_03_A&lt;br /&gt;
| smg_boss03a_midi_cnv&lt;br /&gt;
| smg_boss03a_midi&lt;br /&gt;
| SMG_boss03a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Dino Piranha (Fast)&lt;br /&gt;
| BGM_BOSS_03_B&lt;br /&gt;
| STM_BOSS_03_B&lt;br /&gt;
| MBGM_BOSS_03_B&lt;br /&gt;
| smg_boss03b_midi_cnv&lt;br /&gt;
| smg_boss03b_midi&lt;br /&gt;
| SMG_boss03b_strm&lt;br /&gt;
|-&lt;br /&gt;
| King Kaliente&lt;br /&gt;
| BGM_BOSS_01_A&lt;br /&gt;
| STM_BOSS_01_A&lt;br /&gt;
| MBGM_BOSS_01_A&lt;br /&gt;
| smg_boss01a_midi_cnv&lt;br /&gt;
| smg_boss01a_midi&lt;br /&gt;
| SMG_boss01a_strm&lt;br /&gt;
|-&lt;br /&gt;
| King Kaliente (Fast)&lt;br /&gt;
| BGM_BOSS_01_B&lt;br /&gt;
| STM_BOSS_01_B&lt;br /&gt;
| MBGM_BOSS_01_B&lt;br /&gt;
| smg_boss01b_midi_cnv&lt;br /&gt;
| smg_boss01b_midi&lt;br /&gt;
| SMG_boss01b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Megaleg&lt;br /&gt;
| BGM_BOSS_02_A&lt;br /&gt;
| STM_BOSS_02_A&lt;br /&gt;
| MBGM_BOSS_02_A&lt;br /&gt;
| smg_boss02a_midi_cnv&lt;br /&gt;
| smg_boss02a_midi&lt;br /&gt;
| SMG_boss02a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Megaleg (Fast)&lt;br /&gt;
| BGM_BOSS_02_B&lt;br /&gt;
| STM_BOSS_02_B&lt;br /&gt;
| MBGM_BOSS_02_B&lt;br /&gt;
| smg_boss02b_midi_cnv&lt;br /&gt;
| smg_boss02b_midi&lt;br /&gt;
| SMG_boss02b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Kamella&lt;br /&gt;
| BGM_BOSS_04&lt;br /&gt;
| STM_BOSS_04&lt;br /&gt;
| MBGM_BOSS_04&lt;br /&gt;
| smg_boss04_midi_cnv&lt;br /&gt;
| smg_boss04_midi&lt;br /&gt;
| SMG_boss04_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&lt;br /&gt;
| BGM_BOSS_KOOPA&lt;br /&gt;
| STM_BOSS_KOOPA&lt;br /&gt;
| MBGM_BOSS_KOOPA&lt;br /&gt;
| smg_boss07_midi_cnv&lt;br /&gt;
| smg_boss07_midi&lt;br /&gt;
| SMG_boss07_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bouldergeist&lt;br /&gt;
| BGM_BOSS_09_A&lt;br /&gt;
| STM_BOSS_09_A&lt;br /&gt;
| MBGM_BOSS_09_A&lt;br /&gt;
| smg_boss09a_midi_cnv&lt;br /&gt;
| smg_boss09a_midi&lt;br /&gt;
| SMG_boss09a_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bouldergeist (Fast)&lt;br /&gt;
| BGM_BOSS_09_B&lt;br /&gt;
| STM_BOSS_09_B&lt;br /&gt;
| MBGM_BOSS_09_B&lt;br /&gt;
| smg_boss09b_midi_cnv&lt;br /&gt;
| smg_boss09b_midi&lt;br /&gt;
| SMG_boss09b_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bowser Jr.&lt;br /&gt;
| BGM_BOSS_06_A&lt;br /&gt;
| STM_BOSS_06_A&lt;br /&gt;
| MBGM_BOSS_06_A&lt;br /&gt;
| smg_boss06a_midi_cnv&lt;br /&gt;
| smg_boss06a_midi&lt;br /&gt;
| SMG_boss06a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser Jr. (Fast)&lt;br /&gt;
| BGM_BOSS_06_B&lt;br /&gt;
| STM_BOSS_06_B&lt;br /&gt;
| MBGM_BOSS_06_B&lt;br /&gt;
| smg_boss06b_midi_cnv&lt;br /&gt;
| smg_boss06b_midi&lt;br /&gt;
| SMG_boss06b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Major Burrows Chases Star Bunny&lt;br /&gt;
| BGM_PINCH_3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_pinch03_cnv&lt;br /&gt;
| smg_ev_pinch03&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Major Burrows&lt;br /&gt;
| BGM_BOSS_05_A&lt;br /&gt;
| STM_BOSS_05_A&lt;br /&gt;
| MBGM_BOSS_05_A&lt;br /&gt;
| smg_boss05a_midi_cnv&lt;br /&gt;
| smg_boss05a_midi&lt;br /&gt;
| SMG_boss05a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Major Burrows (Fast)&lt;br /&gt;
| BGM_BOSS_05_B&lt;br /&gt;
| STM_BOSS_05_B&lt;br /&gt;
| MBGM_BOSS_05_B&lt;br /&gt;
| smg_boss05b_midi_cnv&lt;br /&gt;
| smg_boss05b_midi&lt;br /&gt;
| SMG_boss05b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Mecha-Bowser&lt;br /&gt;
| BGM_BOSS_MECHA_KOOPA&lt;br /&gt;
| STM_BOSS_MECHA_KOOPA&lt;br /&gt;
| MBGM_BOSS_MECHA_KOOPA&lt;br /&gt;
| smg_boss08_midi_cnv&lt;br /&gt;
| smg_boss08_midi&lt;br /&gt;
| SMG_boss08_strm&lt;br /&gt;
|-&lt;br /&gt;
| Baron Brr/Undergrund Gunner&lt;br /&gt;
| BGM_PINCH_1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_pinch01_cnv&lt;br /&gt;
| smg_ev_pinch01&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Baron Brr/Undergrunt Gunner (no intro)&lt;br /&gt;
| BGM_PINCH_2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_pinch02_cnv&lt;br /&gt;
| smg_ev_pinch02&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Final Bowser&lt;br /&gt;
| BGM_BOSS_KOOPA_FINAL&lt;br /&gt;
| STM_BOSS_KOOPA_FINAL&lt;br /&gt;
| MBGM_BOSS_KOOPA_FINAL&lt;br /&gt;
| smg_boss10_midi_cnv&lt;br /&gt;
| smg_boss10_midi&lt;br /&gt;
| SMG_boss10_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Comet Observatory&lt;br /&gt;
|-&lt;br /&gt;
| Comet Observatory 1&lt;br /&gt;
| &lt;br /&gt;
| STM_ASTRO_OUT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_astroout01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Comet Observatory 2&lt;br /&gt;
| &lt;br /&gt;
| STM_ASTRO_OUT_2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_astroout02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Comet Observatory 3&lt;br /&gt;
| &lt;br /&gt;
| STM_ASTRO_OUT_3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_astroout03_strm&lt;br /&gt;
|-&lt;br /&gt;
| Dome&lt;br /&gt;
| BGM_ASTRO_DOME&lt;br /&gt;
| STM_ASTRO_DOME&lt;br /&gt;
| MBGM_ASTRO_DOME&lt;br /&gt;
| smg_astrodome_midi_cnv&lt;br /&gt;
| smg_astrodome_midi&lt;br /&gt;
| SMG_astrodome_multi&lt;br /&gt;
|-&lt;br /&gt;
| Dome (Bowser)&lt;br /&gt;
| BGM_ASTRO_DOME_2&lt;br /&gt;
| STM_ASTRO_DOME_2&lt;br /&gt;
| MBGM_ASTRO_DOME_2&lt;br /&gt;
| smg_astrodome02_midi_cnv&lt;br /&gt;
| smg_astrodome02_midi&lt;br /&gt;
| SMG_astrodome02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Dome (Garden)&lt;br /&gt;
| BGM_ASTRO_DOME_LOFT&lt;br /&gt;
| STM_ASTRO_DOME_LOFT&lt;br /&gt;
| MBGM_ASTRO_DOME_LOFT&lt;br /&gt;
| smg_astrodome04_midi_cnv&lt;br /&gt;
| smg_astrodome04_midi&lt;br /&gt;
| SMG_astrodome04_multi&lt;br /&gt;
|-&lt;br /&gt;
| Library&lt;br /&gt;
| BGM_LIBRARY&lt;br /&gt;
| STM_LIBRARY&lt;br /&gt;
| MBGM_LIBRARY&lt;br /&gt;
| smg_astrodome03_midi_cnv&lt;br /&gt;
| smg_astrodome03_midi&lt;br /&gt;
| SMG_astrodome03_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Power-Up Music&lt;br /&gt;
|-&lt;br /&gt;
| Rainbow Power-Up&lt;br /&gt;
| BGM_MUTEKI_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_mutekistar_a_cnv&lt;br /&gt;
| smg_ev_mutekistar_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Rainbow Power-Up (first time)&lt;br /&gt;
| BGM_MUTEKI_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_mutekistar_b_cnv&lt;br /&gt;
| smg_ev_mutekistar_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Fire Power-Up&lt;br /&gt;
| BGM_FIRE_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fire_a_cnv&lt;br /&gt;
| smg_ev_fire_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Fire Power-Up (first time)&lt;br /&gt;
| BGM_FIRE_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fire_b_cnv&lt;br /&gt;
| smg_ev_fire_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Ice Power-Up&lt;br /&gt;
| BGM_ICE_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_ice_a_cnv&lt;br /&gt;
| smg_ev_ice_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Ice Power-Up (first time)&lt;br /&gt;
| BGM_ICE_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_ice_b_cnv&lt;br /&gt;
| smg_ev_ice_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Flying Power-Up&lt;br /&gt;
| BGM_FLYING_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fly_a_cnv&lt;br /&gt;
| smg_ev_fly_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Flying Power-Up (first time)&lt;br /&gt;
| BGM_FLYING_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fly_b_cnv&lt;br /&gt;
| smg_ev_fly_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Power-Up Discovered (loop)&lt;br /&gt;
| BGM_FIRST_MORPH_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle12a&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Power-Up Discovered (fade-out)&lt;br /&gt;
| BGM_FIRST_MORPH_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle12b&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Other Music&lt;br /&gt;
|-&lt;br /&gt;
| Title Music&lt;br /&gt;
| &lt;br /&gt;
| STM_TITLE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_title_strm&lt;br /&gt;
|-&lt;br /&gt;
| File Select&lt;br /&gt;
| BGM_FILE_SELECT&lt;br /&gt;
| STM_FILE_SELECT&lt;br /&gt;
| MBGM_FILE_SELECT&lt;br /&gt;
| smg_fileselect_midi_cnv&lt;br /&gt;
| smg_fileselect_midi&lt;br /&gt;
| SMG_fileselect_strm&lt;br /&gt;
|-&lt;br /&gt;
| Credits&lt;br /&gt;
| &lt;br /&gt;
| STM_STAFF_ROLL&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_staffroll_strm&lt;br /&gt;
|-&lt;br /&gt;
| Picture Book&lt;br /&gt;
| &lt;br /&gt;
| STM_PROLOGUE_01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_ev_prolo01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Picture Book (Sad)&lt;br /&gt;
| &lt;br /&gt;
| STM_PROLOGUE_01_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_ev_prolo01_b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Mushroom Kingdom&lt;br /&gt;
| BGM_PROLOGUE_02&lt;br /&gt;
| STM_PROLOGUE_02&lt;br /&gt;
| MBGM_PROLOGUE_02&lt;br /&gt;
| smg_ev_prolo02_midi_cnv&lt;br /&gt;
| smg_ev_prolo02_midi&lt;br /&gt;
| SMG_ev_prolo02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Mushroom Kingdom (After Attack)&lt;br /&gt;
| &lt;br /&gt;
| STM_PROLOGUE_05&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_ev_prolo05_strm&lt;br /&gt;
|-&lt;br /&gt;
| Star Child&lt;br /&gt;
| &lt;br /&gt;
| STM_EPILOGUE_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_ev_epilogue_b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Mission Select (entered from Dome)&lt;br /&gt;
| BGM_SENARIO_SEL&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_courseselect&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Mission Select (entered otherwise)&lt;br /&gt;
| BGM_SENARIO_SEL_2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_courseselect02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Preparing for Center of the Universe&lt;br /&gt;
| BGM_SENARIO_SEL_3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_courseselect03&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Galaxy Intro&lt;br /&gt;
| BGM_START_DEMO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle07&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Gateway Intro&lt;br /&gt;
| BGM_MEET_TICO_ZOOM_OUT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle16&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Bowser Jr. Intro&lt;br /&gt;
| BGM_KOOPA_JR_APPEAR&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_kuppajr&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Final Bowser Intro&lt;br /&gt;
| BGM_KOOPA_VS3_SUN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle24&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| First Grand Star Collected&lt;br /&gt;
| &lt;br /&gt;
| STM_FIRST_ASTRO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_first_astro_strm&lt;br /&gt;
|-&lt;br /&gt;
| Another Grand Star Collected&lt;br /&gt;
| &lt;br /&gt;
| STM_SECOND_ASTRO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_second_astro_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Jingles&lt;br /&gt;
|-&lt;br /&gt;
| Death&lt;br /&gt;
| BGM_MISS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Game Over&lt;br /&gt;
| BGM_GAMEOVER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Luma joins Mario&lt;br /&gt;
| BGM_STAR_POW_GET&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle08&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Got Power Star&lt;br /&gt;
| BGM_CLEAR&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle03&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Grand Star appears&lt;br /&gt;
| BGM_KOOPA_GRAND_STAR_1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle20&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Got Grand Star&lt;br /&gt;
| BGM_GRAND_STAR_GET&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle11&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Final Grand Star appears&lt;br /&gt;
| BGM_KOOPA_GRAND_STAR_3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle21&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Got Final Grand Star&lt;br /&gt;
| BGM_GRAND_STAR_GET_2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle22&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Countdown&lt;br /&gt;
| BGM_MINIGAME_START&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle04&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Won Race&lt;br /&gt;
| BGM_RACE_WIN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle05&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Lost Race&lt;br /&gt;
| BGM_RACE_LOSE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle06&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| New Galaxy&lt;br /&gt;
| BGM_NEW_GALAXY&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle10&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Planet Appeared&lt;br /&gt;
| BGM_APPEAR_PLANET&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle17&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Pedestal Appeared in Gateway&lt;br /&gt;
| BGM_APPEAR_HD_TOWER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle18&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| New High Score&lt;br /&gt;
| BGM_HIGH_SCORE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Galaxy Results&lt;br /&gt;
| BGM_ASTRO_RETURN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle09&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Galaxy Completed&lt;br /&gt;
| BGM_GALAXY_COMPLETE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle25&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Enemy Base uncovered&lt;br /&gt;
| BGM_KOOPA_APPEAR&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle13&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Unused Music&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Attack of the Airships (MBGM_PROLOGUE_03)|Attack of the Airships]]&lt;br /&gt;
| BGM_PROLOGUE_03&lt;br /&gt;
| STM_PROLOGUE_03&lt;br /&gt;
| MBGM_PROLOGUE_03&lt;br /&gt;
| smg_ev_prolo03_midi_cnv&lt;br /&gt;
| smg_ev_prolo03_midi&lt;br /&gt;
| SMG_ev_prolo03_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Catastrophe (STM_PROLOGUE_04)|Catastrophe]]&lt;br /&gt;
| &lt;br /&gt;
| STM_PROLOGUE_04&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_ev_prolo04_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#E3 2006 Bubble (BGM_IN_BUBBLE)|E3 2006 Bubble]]&lt;br /&gt;
| BGM_IN_BUBBLE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_inbubble&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused jingle (BGM_JINGLE_LIGHT_1)|Unused jingle]]&lt;br /&gt;
| BGM_JINGLE_LIGHT_1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle23&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused jingle (BGM_RED_COMET_APPEAR)|Unused jingle]]&lt;br /&gt;
| BGM_RED_COMET_APPEAR&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle14&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Attack of the Airships (MBGM_PROLOGUE_03) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! ???&lt;br /&gt;
! Theme&lt;br /&gt;
! Theme + ???&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_PROLOGUE_03&lt;br /&gt;
| STM_PROLOGUE_03&lt;br /&gt;
| MBGM_PROLOGUE_03&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg_ev_prolo03_midi_cnv.szs&lt;br /&gt;
| SMG_ev_prolo03_strm.ast&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| BMS data contains no music&lt;br /&gt;
| [[File:STM_PROLOGUE_03.ogg]]&lt;br /&gt;
| Same as STM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Catastrophe (STM_PROLOGUE_04) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| STM_PROLOGUE_04&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG_ev_prolo04_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_PROLOGUE_04.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E3 2006 Bubble (BGM_IN_BUBBLE) ===&lt;br /&gt;
A short melody used in the intro of the 2006 E3 demo, where the player is instructed to point at Mario and press B to pop his bubble.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_IN_BUBBLE&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg_ev_inbubble.szs&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:BGM_IN_BUBBLE.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused jingle (BGM_JINGLE_LIGHT_1) ===&lt;br /&gt;
This jingle was used in the 2007 E3 demo when collecting a Power-Up for the first time. In the final release, it was replaced with BGM_FIRST_MORPH_A.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Jingle&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_JINGLE_LIGHT_1&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg_jingle23.szs&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:BGM_JINGLE_LIGHT_1.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused jingle (BGM_RED_COMET_APPEAR) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Jingle&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_RED_COMET_APPEAR&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg_jingle14.szs&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:BGM_RED_COMET_APPEAR.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Super Mario Galaxy 2==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! BGM Label&lt;br /&gt;
! Stream Label&lt;br /&gt;
! Multi Label&lt;br /&gt;
! Sequence File (.szs/.bms)&lt;br /&gt;
! Chord File (.cit)&lt;br /&gt;
! Stream File (.ast)&lt;br /&gt;
|-&lt;br /&gt;
| No music&lt;br /&gt;
| {{#inline-tooltip: BGM_CLEAR | This BGM references the same Star Get jingle as in SMG1, but its volume is set to 0 in BgmParam.bcsv and thus muted ingame}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle03&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | General Galaxy Music&lt;br /&gt;
|-&lt;br /&gt;
| Sky Station Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_06&lt;br /&gt;
| STM_SMG2_GALAXY_06&lt;br /&gt;
| MBGM_SMG2_GALAXY_06&lt;br /&gt;
| smg2_galaxy06_midi_cnv&lt;br /&gt;
| smg2_galaxy06_midi&lt;br /&gt;
| SMG2_galaxy06_strm&lt;br /&gt;
|-&lt;br /&gt;
| Sky Station Galaxy 2&lt;br /&gt;
| BGM_SMG2_GALAXY_05&lt;br /&gt;
| STM_SMG2_GALAXY_05&lt;br /&gt;
| MBGM_SMG2_GALAXY_05&lt;br /&gt;
| smg2_galaxy05_midi_cnv&lt;br /&gt;
| smg2_galaxy05_midi&lt;br /&gt;
| SMG2_galaxy05_strm&lt;br /&gt;
|-&lt;br /&gt;
| Yoshi Star Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_32&lt;br /&gt;
| STM_SMG2_GALAXY_32&lt;br /&gt;
| MBGM_SMG2_GALAXY_32&lt;br /&gt;
| smg2_galaxy32_midi_cnv&lt;br /&gt;
| smg2_galaxy32_midi&lt;br /&gt;
| SMG2_galaxy32_strm&lt;br /&gt;
|-&lt;br /&gt;
| Spin-Dig Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_09&lt;br /&gt;
| STM_SMG2_GALAXY_09&lt;br /&gt;
| MBGM_SMG2_GALAXY_09&lt;br /&gt;
| smg2_galaxy09_midi_cnv&lt;br /&gt;
| smg2_galaxy09_midi&lt;br /&gt;
| SMG2_galaxy09_strm&lt;br /&gt;
|-&lt;br /&gt;
| Fluffy Bluff Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_07&lt;br /&gt;
| STM_SMG2_GALAXY_07&lt;br /&gt;
| MBGM_SMG2_GALAXY_07&lt;br /&gt;
| smg2_galaxy07_midi_cnv&lt;br /&gt;
| smg2_galaxy07_midi&lt;br /&gt;
| SMG2_galaxy07_strm&lt;br /&gt;
|-&lt;br /&gt;
| Rightside Down Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_03&lt;br /&gt;
| STM_SMG2_GALAXY_03&lt;br /&gt;
| MBGM_SMG2_GALAXY_03&lt;br /&gt;
| smg2_galaxy03_midi_cnv&lt;br /&gt;
| smg2_galaxy03_midi&lt;br /&gt;
| SMG2_galaxy03_multi&lt;br /&gt;
|-&lt;br /&gt;
| Flip-Swap Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_04&lt;br /&gt;
| STM_SMG2_GALAXY_04&lt;br /&gt;
| MBGM_SMG2_GALAXY_04&lt;br /&gt;
| smg2_galaxy04_midi_cnv&lt;br /&gt;
| smg2_galaxy04_midi&lt;br /&gt;
| SMG2_galaxy04_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser Jr.&#039;s Fiery Flotilla&lt;br /&gt;
| BGM_SMG2_GALAXY31&lt;br /&gt;
| STM_SMG2_GALAXY31&lt;br /&gt;
| MBGM_SMG2_GALAXY31&lt;br /&gt;
| smg2_galaxy31_midi_cnv&lt;br /&gt;
| smg2_galaxy31_midi&lt;br /&gt;
| SMG2_galaxy31_strm&lt;br /&gt;
|-&lt;br /&gt;
| Puzzle Plank Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_29&lt;br /&gt;
| STM_SMG2_GALAXY_29&lt;br /&gt;
| MBGM_SMG2_GALAXY_29&lt;br /&gt;
| smg2_galaxy29_midi_cnv&lt;br /&gt;
| smg2_galaxy29_midi&lt;br /&gt;
| SMG2_galaxy29_strm&lt;br /&gt;
|-&lt;br /&gt;
| Hightail Falls Galaxy&lt;br /&gt;
| BGM_DASH_YOSHI&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_dashyoshi_cnv&lt;br /&gt;
| smg2_ev_dashyoshi&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Cosmic Cove Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_02&lt;br /&gt;
| STM_SMG2_GALAXY_02&lt;br /&gt;
| MBGM_SMG2_GALAXY_02&lt;br /&gt;
| smg2_galaxy02_midi_cnv&lt;br /&gt;
| smg2_galaxy02_midi&lt;br /&gt;
| SMG2_galaxy02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Wild Glide Galaxy&lt;br /&gt;
| BGM_GLIDER&lt;br /&gt;
| STM_GLIDER&lt;br /&gt;
| MBGM_GLIDER&lt;br /&gt;
| smg2_ev_glider_midi_cnv&lt;br /&gt;
| smg2_ev_glider_midi&lt;br /&gt;
| SMG2_ev_glider_strm&lt;br /&gt;
|-&lt;br /&gt;
| Honeybloom Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_13&lt;br /&gt;
| STM_SMG2_GALAXY_13&lt;br /&gt;
| MBGM_SMG2_GALAXY_13&lt;br /&gt;
| smg2_galaxy13_midi_cnv&lt;br /&gt;
| smg2_galaxy13_midi&lt;br /&gt;
| SMG2_galaxy13_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&#039;s Lava Lair&lt;br /&gt;
| BGM_SMG2_GALAXY_15&lt;br /&gt;
| STM_SMG2_GALAXY_15&lt;br /&gt;
| MBGM_SMG2_GALAXY_15&lt;br /&gt;
| smg2_galaxy15_midi_cnv&lt;br /&gt;
| smg2_galaxy15_midi&lt;br /&gt;
| SMG2_galaxy15_strm&lt;br /&gt;
|-&lt;br /&gt;
| Tall Trunk Galaxy Slide&lt;br /&gt;
| BGM_SLIDER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_slider&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Haunty Halls Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_11&lt;br /&gt;
| STM_SMG2_GALAXY_11&lt;br /&gt;
| MBGM_SMG2_GALAXY_11&lt;br /&gt;
| smg2_galaxy11_midi_cnv&lt;br /&gt;
| smg2_galaxy11_midi&lt;br /&gt;
| SMG2_galaxy11_strm&lt;br /&gt;
|-&lt;br /&gt;
| Freezy Flake Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_19&lt;br /&gt;
| STM_SMG2_GALAXY_19&lt;br /&gt;
| MBGM_SMG2_GALAXY_19&lt;br /&gt;
| smg2_galaxy19_midi_cnv&lt;br /&gt;
| smg2_galaxy19_midi&lt;br /&gt;
| SMG2_galaxy19_strm&lt;br /&gt;
|-&lt;br /&gt;
| Beat Block Galaxy&lt;br /&gt;
| BGM_REPEAT_TIMER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_rptimer_cnv&lt;br /&gt;
| smg2_ev_rptimer&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Supermassive Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_23&lt;br /&gt;
| STM_SMG2_GALAXY_23&lt;br /&gt;
| MBGM_SMG2_GALAXY_23&lt;br /&gt;
| smg2_galaxy23_midi_cnv&lt;br /&gt;
| smg2_galaxy23_midi&lt;br /&gt;
| SMG2_galaxy23_strm&lt;br /&gt;
|-&lt;br /&gt;
| Flipsville Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_14&lt;br /&gt;
| STM_SMG2_GALAXY_14&lt;br /&gt;
| MBGM_SMG2_GALAXY_14&lt;br /&gt;
| smg2_galaxy14_midi_cnv&lt;br /&gt;
| smg2_galaxy14_midi&lt;br /&gt;
| SMG2_galaxy14_strm&lt;br /&gt;
|-&lt;br /&gt;
| Starshine Beach Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_27&lt;br /&gt;
| STM_SMG2_GALAXY_27&lt;br /&gt;
| MBGM_SMG2_GALAXY_27&lt;br /&gt;
| smg2_galaxy27_midi_cnv&lt;br /&gt;
| smg2_galaxy27_midi&lt;br /&gt;
| SMG2_galaxy27_multi&lt;br /&gt;
|-&lt;br /&gt;
| Sweet Mystery Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_10&lt;br /&gt;
| STM_SMG2_GALAXY_10&lt;br /&gt;
| MBGM_SMG2_GALAXY_10&lt;br /&gt;
| smg2_galaxy10_midi_cnv&lt;br /&gt;
| smg2_galaxy10_midi&lt;br /&gt;
| SMG2_galaxy10_strm&lt;br /&gt;
|-&lt;br /&gt;
| Space Storm Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_12&lt;br /&gt;
| STM_SMG2_GALAXY_12&lt;br /&gt;
| MBGM_SMG2_GALAXY_12&lt;br /&gt;
| smg2_galaxy12_midi_cnv&lt;br /&gt;
| smg2_galaxy12_midi&lt;br /&gt;
| SMG2_galaxy12_strm&lt;br /&gt;
|-&lt;br /&gt;
| Space Storm Galaxy 2&lt;br /&gt;
| BGM_SMG2_GALAXY_17&lt;br /&gt;
| STM_SMG2_GALAXY_17&lt;br /&gt;
| MBGM_SMG2_GALAXY_17&lt;br /&gt;
| smg2_galaxy17_midi_cnv&lt;br /&gt;
| smg2_galaxy17_midi&lt;br /&gt;
| SMG_galaxy17_multi&lt;br /&gt;
|-&lt;br /&gt;
| Slipsand/Clockwork Ruins Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_01&lt;br /&gt;
| STM_SMG2_GALAXY_01&lt;br /&gt;
| MBGM_SMG2_GALAXY_01&lt;br /&gt;
| smg2_galaxy01_midi_cnv&lt;br /&gt;
| smg2_galaxy01_midi&lt;br /&gt;
| SMG2_galaxy01_multi&lt;br /&gt;
|-&lt;br /&gt;
| Shiverburn Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_16&lt;br /&gt;
| STM_SMG2_GALAXY_16&lt;br /&gt;
| MBGM_SMG2_GALAXY_16&lt;br /&gt;
| smg2_galaxy16_midi_cnv&lt;br /&gt;
| smg2_galaxy16_midi&lt;br /&gt;
| SMG2_galaxy16_multi&lt;br /&gt;
|-&lt;br /&gt;
| Fleet Glide Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_28&lt;br /&gt;
| STM_SMG2_GALAXY_28&lt;br /&gt;
| MBGM_SMG2_GALAXY_28&lt;br /&gt;
| smg2_galaxy28_midi_cnv&lt;br /&gt;
| smg2_galaxy28_midi&lt;br /&gt;
| SMG2_galaxy28_strm&lt;br /&gt;
|-&lt;br /&gt;
| Melty Monster Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_30&lt;br /&gt;
| STM_SMG2_GALAXY_30&lt;br /&gt;
| MBGM_SMG2_GALAXY_30&lt;br /&gt;
| smg2_galaxy30_midi_cnv&lt;br /&gt;
| smg2_galaxy30_midi&lt;br /&gt;
| SMG2_galaxy30_strm&lt;br /&gt;
|-&lt;br /&gt;
| Throwback Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_21&lt;br /&gt;
| STM_SMG2_GALAXY_21&lt;br /&gt;
| MBGM_SMG2_GALAXY_21&lt;br /&gt;
| smg2_galaxy21_midi_cnv&lt;br /&gt;
| smg2_galaxy21_midi&lt;br /&gt;
| SMG2_galaxy21_strm&lt;br /&gt;
|-&lt;br /&gt;
| Slimy Spring Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_24&lt;br /&gt;
| STM_SMG2_GALAXY_24&lt;br /&gt;
| MBGM_SMG2_GALAXY_24&lt;br /&gt;
| smg2_galaxy24_midi_cnv&lt;br /&gt;
| smg2_galaxy24_midi&lt;br /&gt;
| SMG2_galaxy24_strm&lt;br /&gt;
|-&lt;br /&gt;
| Slimy Spring Galaxy (Ambience)&lt;br /&gt;
| BGM_SMG2_GALAXY_24B&lt;br /&gt;
| STM_SMG2_GALAXY_24B&lt;br /&gt;
| MBGM_SMG2_GALAXY_24B&lt;br /&gt;
| smg2_galaxy24b_midi_cnv&lt;br /&gt;
| smg2_galaxy24b_midi&lt;br /&gt;
| SMG2_galaxy24b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&#039;s Galaxy Generator&lt;br /&gt;
| BGM_SMG2_GALAXY_20&lt;br /&gt;
| STM_SMG2_GALAXY_20&lt;br /&gt;
| MBGM_SMG2_GALAXY_20&lt;br /&gt;
| smg2_galaxy20_midi_cnv&lt;br /&gt;
| smg2_galaxy20_midi&lt;br /&gt;
| SMG2_galaxy20_strm&lt;br /&gt;
|-&lt;br /&gt;
| Stone Cyclone Galaxy&lt;br /&gt;
| BGM_SMG2_GALAXY_22&lt;br /&gt;
| STM_SMG2_GALAXY_22&lt;br /&gt;
| MBGM_SMG2_GALAXY_22&lt;br /&gt;
| smg2_galaxy22_midi_cnv&lt;br /&gt;
| smg2_galaxy22_midi&lt;br /&gt;
| SMG2_galaxy22_multi&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Boss Blitz Galaxy | Only plays at the start of the level}}&lt;br /&gt;
| BGM_EV_BOSSRUSH&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_bossrush_cnv&lt;br /&gt;
| smg2_ev_bossrush&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Boss Blitz Galaxy (with fade-in) | Plays after every boss except Fiery Dino Piranha}}&lt;br /&gt;
| BGM_EV_BOSSRUSH02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_bossrush02_cnv&lt;br /&gt;
| smg2_ev_bossrush02&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Good Egg Galaxy&lt;br /&gt;
| BGM_SMG_GALAXY_01&lt;br /&gt;
| STM_SMG_GALAXY_01&lt;br /&gt;
| MBGM_SMG_GALAXY_01&lt;br /&gt;
| smg_galaxy01_midi_cnv&lt;br /&gt;
| smg_galaxy01_midi&lt;br /&gt;
| SMG_galaxy01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Gusty Garden Galaxy&lt;br /&gt;
| BGM_SMG_GALAXY_14&lt;br /&gt;
| STM_SMG_GALAXY_14&lt;br /&gt;
| MBGM_SMG_GALAXY_14&lt;br /&gt;
| smg_galaxy14_midi_cnv&lt;br /&gt;
| smg_galaxy14_midi&lt;br /&gt;
| SMG_galaxy14_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&#039;s Galaxy Reactor&lt;br /&gt;
| BGM_SMG_GALAXY_28&lt;br /&gt;
| STM_SMG_GALAXY_28&lt;br /&gt;
| MBGM_SMG_GALAXY_28&lt;br /&gt;
| smg_galaxy28_midi_cnv&lt;br /&gt;
| smg_galaxy28_midi&lt;br /&gt;
| SMG_galaxy28_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Miscellaneous Stage Music&lt;br /&gt;
|-&lt;br /&gt;
| Unknown Star&lt;br /&gt;
| BGM_SMG2_GALAXY_INTER&lt;br /&gt;
| STM_SMG2_GALAXY_INTER&lt;br /&gt;
| MBGM_SMG2_GALAXY_INTER&lt;br /&gt;
| smg2_galaxy_inter_midi_cnv&lt;br /&gt;
| smg2_galaxy_inter_midi&lt;br /&gt;
| SMG2_galaxy_inter_strm&lt;br /&gt;
|-&lt;br /&gt;
| Speedy Comet&lt;br /&gt;
| BGM_SMG2_GALAXY_HURRY&lt;br /&gt;
| STM_SMG2_GALAXY_HURRY&lt;br /&gt;
| MBGM_SMG2_GALAXY_HURRY&lt;br /&gt;
| smg2_galaxy_hurry_midi_cnv&lt;br /&gt;
| smg2_galaxy_hurry_midi&lt;br /&gt;
| SMG2_galaxy_hurry_strm&lt;br /&gt;
|-&lt;br /&gt;
| Daredevil Comet&lt;br /&gt;
| BGM_SMG2_GALAXY_DANGER&lt;br /&gt;
| STM_SMG2_GALAXY_DANGER&lt;br /&gt;
| MBGM_SMG2_GALAXY_DANGER&lt;br /&gt;
| smg2_galaxy_danger_midi_cnv&lt;br /&gt;
| smg2_galaxy_danger_midi&lt;br /&gt;
| SMG2_galaxy_danger_strm&lt;br /&gt;
|-&lt;br /&gt;
| Purple Comet&lt;br /&gt;
| BGM_SMG2_GALAXY_26&lt;br /&gt;
| STM_SMG2_GALAXY_26&lt;br /&gt;
| MBGM_SMG2_GALAXY_26&lt;br /&gt;
| smg2_galaxy26_midi_cnv&lt;br /&gt;
| smg2_galaxy26_midi&lt;br /&gt;
| SMG2_galaxy26_strm&lt;br /&gt;
|-&lt;br /&gt;
| Pipe Interior&lt;br /&gt;
| BGM_SMG2_GALAXY_18&lt;br /&gt;
| STM_SMG2_GALAXY_18&lt;br /&gt;
| MBGM_SMG2_GALAXY_18&lt;br /&gt;
| smg2_galaxy18_midi_cnv&lt;br /&gt;
| smg2_galaxy18_midi&lt;br /&gt;
| SMG2_galaxy18_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bonus Room&lt;br /&gt;
| BGM_GAMBLE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_gamble&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Teleporter&lt;br /&gt;
| BGM_SMG2_EV_PORTER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_porter&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Minigame&lt;br /&gt;
| BGM_MINI_GAME&lt;br /&gt;
| STM_MINI_GAME&lt;br /&gt;
| MBGM_MINI_GAME&lt;br /&gt;
| smg2_ev_minigame_midi_cnv&lt;br /&gt;
| smg2_ev_minigame_midi&lt;br /&gt;
| SMG2_ev_minigame_strm&lt;br /&gt;
|-&lt;br /&gt;
| Star Ball (Rolling Masterpiece)&lt;br /&gt;
| BGM_TAMAKORO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_tamakoro&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Star Ball (Rolling Coaster)&lt;br /&gt;
| BGM_TAMAKORO_2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_tamakoro02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Tip Network&lt;br /&gt;
| BGM_DREAM01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_dream01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Captain Toad&#039;s Theme&lt;br /&gt;
| BGM_EV_KINOTAN&lt;br /&gt;
| STM_EV_KINOTAN&lt;br /&gt;
| MBGM_EV_KINOTAN&lt;br /&gt;
| smg2_ev_kinotan_midi_cnv&lt;br /&gt;
| smg2_ev_kinotan_midi&lt;br /&gt;
| SMG2_ev_kinotan_strm&lt;br /&gt;
|-&lt;br /&gt;
| Star Bunny Theme&lt;br /&gt;
| BGM_EV_RABBIT&lt;br /&gt;
| STM_EV_RABBIT&lt;br /&gt;
| MBGM_EV_RABBIT&lt;br /&gt;
| smg2_ev_rabbit_midi_cnv&lt;br /&gt;
| smg2_ev_rabbit_midi&lt;br /&gt;
| SMG2_ev_rabbit_strm&lt;br /&gt;
|-&lt;br /&gt;
| Whittle Theme&lt;br /&gt;
| BGM_SMG2_EV_MOKKU&lt;br /&gt;
| STM_SMG2_EV_MOKKU&lt;br /&gt;
| MBGM_SMG2_EV_MOKKU&lt;br /&gt;
| smg2_ev_mokku_midi_cnv&lt;br /&gt;
| smg2_ev_mokku_midi&lt;br /&gt;
| SMG2_ev_mokku_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser Appears&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_EV_KUPPABT01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_ev_kuppabt01_strm&lt;br /&gt;
|-&lt;br /&gt;
| A Chance to Grab a Star! 1&lt;br /&gt;
| BGM_STAR_CHANCE&lt;br /&gt;
| STM_STAR_CHANCE&lt;br /&gt;
| MBGM_STAR_CHANCE&lt;br /&gt;
| smg2_ev_starchance_midi_cnv&lt;br /&gt;
| smg2_ev_starchance_midi&lt;br /&gt;
| SMG2_ev_starchance_strm&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: A Chance to Grab a Star! 2 | Only used in Slipsand Galaxy 3}}&lt;br /&gt;
| BGM_STAR_CHANCE_2&lt;br /&gt;
| STM_STAR_CHANCE_2&lt;br /&gt;
| MBGM_STAR_CHANCE_2&lt;br /&gt;
| smg2_ev_starchance02_midi_cnv&lt;br /&gt;
| smg2_ev_starchance02_midi&lt;br /&gt;
| SMG2_ev_starchance02_strm&lt;br /&gt;
|-&lt;br /&gt;
| A Chance to Grab a Star! 3&lt;br /&gt;
| &lt;br /&gt;
| STM_STAR_CHANCE_3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_ev_starchance03_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Boss Music&lt;br /&gt;
|-&lt;br /&gt;
| Peewee Piranha&lt;br /&gt;
| BGM_SMG2_BOSS_05A&lt;br /&gt;
| STM_SMG2_BOSS_05A&lt;br /&gt;
| MBGM_SMG2_BOSS_05A&lt;br /&gt;
| smg2_boss05a_midi_cnv&lt;br /&gt;
| smg2_boss05a_midi&lt;br /&gt;
| SMG2_boss05a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Peewee Piranha (Fast)&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_BOSS_05B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss05b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Giga-Lakitu&lt;br /&gt;
| BGM_PINCH_01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_pinch01_cnv&lt;br /&gt;
| smg2_ev_pinch01&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Giga-Lakitu (no intro)&lt;br /&gt;
| BGM_PINCH_02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_pinch02_cnv&lt;br /&gt;
| smg2_ev_pinch02&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Digga-Leg/Whomp King&lt;br /&gt;
| BGM_SMG2_BOSS_08A&lt;br /&gt;
| STM_SMG2_BOSS_08A&lt;br /&gt;
| MBGM_SMG2_BOSS_08A&lt;br /&gt;
| smg2_boss08a_midi_cnv&lt;br /&gt;
| smg2_boss08a_midi&lt;br /&gt;
| SMG2_boss08a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Gobblegut&lt;br /&gt;
| BGM_SMG2_BOSS_01A&lt;br /&gt;
| STM_SMG2_BOSS_01A&lt;br /&gt;
| MBGM_SMG2_BOSS_01A&lt;br /&gt;
| smg2_boss01a_midi_cnv&lt;br /&gt;
| smg2_boss01a_midi&lt;br /&gt;
| SMG2_boss01a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bowser&lt;br /&gt;
| BGM_SMG2_BOSS_07&lt;br /&gt;
| STM_SMG2_BOSS_07&lt;br /&gt;
| MBGM_SMG2_BOSS_07&lt;br /&gt;
| smg2_boss07_midi_cnv&lt;br /&gt;
| smg2_boss07_midi&lt;br /&gt;
| SMG2_boss07_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bowser (Fast)&lt;br /&gt;
| BGM_SMG2_BOSS_07B&lt;br /&gt;
| STM_SMG2_BOSS_07B&lt;br /&gt;
| MBGM_SMG2_BOSS_07B&lt;br /&gt;
| smg2_boss07b_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss07b_multi&lt;br /&gt;
|-&lt;br /&gt;
| Megahammer&lt;br /&gt;
| BGM_SMG2_BOSS_03A&lt;br /&gt;
| STM_SMG2_BOSS_03A&lt;br /&gt;
| MBGM_SMG2_BOSS_03A&lt;br /&gt;
| smg2_boss03a_midi_cnv&lt;br /&gt;
| smg2_boss03a_midi&lt;br /&gt;
| SMG2_boss03a_multi&lt;br /&gt;
|-&lt;br /&gt;
| Glamdozer&lt;br /&gt;
| BGM_SMG2_BOSS_02A&lt;br /&gt;
| STM_SMG2_BOSS_02A&lt;br /&gt;
| MBGM_SMG2_BOSS_02A&lt;br /&gt;
| smg2_boss02a_midi_cnv&lt;br /&gt;
| smg2_boss02a_midi&lt;br /&gt;
| SMG2_boss02a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Squizzard&lt;br /&gt;
| BGM_SMG2_BOSS_04A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_boss04a_midi_cnv&lt;br /&gt;
| smg2_boss04a_midi&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Boomsday Machine&lt;br /&gt;
| BGM_SMG2_BOSS_06A&lt;br /&gt;
| STM_SMG2_BOSS_06A&lt;br /&gt;
| MBGM_SMG2_BOSS_06A&lt;br /&gt;
| smg2_boss06a_midi_cnv&lt;br /&gt;
| smg2_boss06a_midi&lt;br /&gt;
| SMG2_boss06a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Boomsday Machine (Fast)&lt;br /&gt;
| BGM_SMG2_BOSS_06B&lt;br /&gt;
| STM_SMG2_BOSS_06B&lt;br /&gt;
| MBGM_SMG2_BOSS_06B&lt;br /&gt;
| smg2_boss06b_midi_cnv&lt;br /&gt;
| smg2_boss06b_midi&lt;br /&gt;
| SMG2_boss06b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Final Bowser&lt;br /&gt;
| BGM_SMG2_BOSS_10&lt;br /&gt;
| STM_SMG2_BOSS_10&lt;br /&gt;
| MBGM_SMG2_BOSS_10&lt;br /&gt;
| smg2_boss10_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss10_multi&lt;br /&gt;
|-&lt;br /&gt;
| Dino Piranha&lt;br /&gt;
| BGM_SMG_BOSS_03A&lt;br /&gt;
| STM_SMG_BOSS_03A&lt;br /&gt;
| MBGM_SMG_BOSS_03A&lt;br /&gt;
| smg_boss03a_midi_cnv&lt;br /&gt;
| smg_boss03a_midi&lt;br /&gt;
| SMG_boss03a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Dino Piranha (Fast)&lt;br /&gt;
| BGM_SMG_BOSS_03B&lt;br /&gt;
| STM_SMG_BOSS_03B&lt;br /&gt;
| MBGM_SMG_BOSS_03B&lt;br /&gt;
| smg_boss03b_midi_cnv&lt;br /&gt;
| smg_boss03b_midi&lt;br /&gt;
| SMG_boss03b_strm&lt;br /&gt;
|-&lt;br /&gt;
| King Kaliente&lt;br /&gt;
| BGM_SMG_BOSS_01A&lt;br /&gt;
| STM_SMG_BOSS_01A&lt;br /&gt;
| MBGM_SMG_BOSS_01A&lt;br /&gt;
| smg_boss01a_midi_cnv&lt;br /&gt;
| smg_boss01a_midi&lt;br /&gt;
| SMG_boss01a_strm&lt;br /&gt;
|-&lt;br /&gt;
| King Kaliente (Fast)&lt;br /&gt;
| BGM_SMG_BOSS_01B&lt;br /&gt;
| STM_SMG_BOSS_01B&lt;br /&gt;
| MBGM_SMG_BOSS_01B&lt;br /&gt;
| smg_boss01b_midi_cnv&lt;br /&gt;
| smg_boss01b_midi&lt;br /&gt;
| SMG_boss01b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Major Burrows&lt;br /&gt;
| BGM_SMG_BOSS_05A&lt;br /&gt;
| STM_SMG_BOSS_05A&lt;br /&gt;
| MBGM_SMG_BOSS_05A&lt;br /&gt;
| smg_boss05a_midi_cnv&lt;br /&gt;
| smg_boss05a_midi&lt;br /&gt;
| SMG_boss05a_strm&lt;br /&gt;
|-&lt;br /&gt;
| Major Burrows (Fast)&lt;br /&gt;
| BGM_SMG_BOSS_05B&lt;br /&gt;
| STM_SMG_BOSS_05B&lt;br /&gt;
| MBGM_SMG_BOSS_05B&lt;br /&gt;
| smg_boss05b_midi_cnv&lt;br /&gt;
| smg_boss05b_midi&lt;br /&gt;
| SMG_boss05b_strm&lt;br /&gt;
|-&lt;br /&gt;
| Bouldergeist&lt;br /&gt;
| BGM_SMG_BOSS_09A&lt;br /&gt;
| STM_SMG_BOSS_09A&lt;br /&gt;
| MBGM_SMG_BOSS_09A&lt;br /&gt;
| smg_boss09a_midi_cnv&lt;br /&gt;
| smg_boss09a_midi&lt;br /&gt;
| SMG_boss09a_multi&lt;br /&gt;
|-&lt;br /&gt;
| Bouldergeist (Fast)&lt;br /&gt;
| BGM_SMG_BOSS_09B&lt;br /&gt;
| STM_SMG_BOSS_09B&lt;br /&gt;
| MBGM_SMG_BOSS_09B&lt;br /&gt;
| smg_boss09b_midi_cnv&lt;br /&gt;
| smg_boss09b_midi&lt;br /&gt;
| SMG_boss09b_multi&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | HUB &amp;amp; World Map Music&lt;br /&gt;
|-&lt;br /&gt;
| World 1 &amp;amp; 2&lt;br /&gt;
| BGM_SMG2_WORLDMAP_06&lt;br /&gt;
| STM_SMG2_WORLDMAP_06&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_06&lt;br /&gt;
| smg2_worldmap06_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap06_multi&lt;br /&gt;
|-&lt;br /&gt;
| World 3&lt;br /&gt;
| BGM_SMG2_WORLDMAP_00&lt;br /&gt;
| STM_SMG2_WORLDMAP_00&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_00&lt;br /&gt;
| smg2_worldmap00_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap00_multi&lt;br /&gt;
|-&lt;br /&gt;
| World 4&lt;br /&gt;
| BGM_SMG2_WORLDMAP_04&lt;br /&gt;
| STM_SMG2_WORLDMAP_04&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_04&lt;br /&gt;
| smg2_worldmap04_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap04_multi&lt;br /&gt;
|-&lt;br /&gt;
| World 5&lt;br /&gt;
| BGM_SMG2_WORLDMAP_08&lt;br /&gt;
| STM_SMG2_WORLDMAP_08&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_08&lt;br /&gt;
| smg2_worldmap08_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap08_multi&lt;br /&gt;
|-&lt;br /&gt;
| World 6&lt;br /&gt;
| BGM_SMG2_WORLDMAP_07&lt;br /&gt;
| STM_SMG2_WORLDMAP_07&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_07&lt;br /&gt;
| smg2_worldmap07_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap07_multi&lt;br /&gt;
|-&lt;br /&gt;
| World S&lt;br /&gt;
| BGM_SMG2_WORLDMAP_03&lt;br /&gt;
| STM_SMG2_WORLDMAP_03&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_03&lt;br /&gt;
| smg2_worldmap03_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap03_multi&lt;br /&gt;
|-&lt;br /&gt;
| Green Star World&lt;br /&gt;
| BGM_SMG2_WORLDMAP_05&lt;br /&gt;
| STM_SMG2_WORLDMAP_05&lt;br /&gt;
| MBGM_SMG2_WORLDMAP_05&lt;br /&gt;
| smg2_worldmap05_midi&lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap05_multi&lt;br /&gt;
|-&lt;br /&gt;
| Starship Mario 1&lt;br /&gt;
| BGM_SMG2_MARIO_SHIP01&lt;br /&gt;
| STM_SMG2_MARIO_SHIP01&lt;br /&gt;
| MBGM_SMG2_MARIO_SHIP01&lt;br /&gt;
| smg2_mario_ship01_midi_cnv&lt;br /&gt;
| smg2_mario_ship01_midi&lt;br /&gt;
| SMG2_mario_ship01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Starship Mario 2&lt;br /&gt;
| BGM_SMG2_MARIO_SHIP02&lt;br /&gt;
| STM_SMG2_MARIO_SHIP02&lt;br /&gt;
| MBGM_SMG2_MARIO_SHIP02&lt;br /&gt;
| smg2_mario_ship02_midi_cnv&lt;br /&gt;
| smg2_mario_ship02_midi&lt;br /&gt;
| SMG2_mario_ship02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Starship Mario 3&lt;br /&gt;
| BGM_SMG2_MARIO_SHIP03&lt;br /&gt;
| STM_SMG2_MARIO_SHIP03&lt;br /&gt;
| MBGM_SMG2_MARIO_SHIP03&lt;br /&gt;
| smg2_mario_ship03_midi_cnv&lt;br /&gt;
| smg2_mario_ship03_midi&lt;br /&gt;
| SMG2_mario_ship03_strm&lt;br /&gt;
|-&lt;br /&gt;
| Comet Observatory&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG_ASTROOUT03&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_astroout03_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Power-Up Music&lt;br /&gt;
|-&lt;br /&gt;
| Rainbow Power-Up&lt;br /&gt;
| BGM_MUTEKI_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_mutekistar_a_cnv&lt;br /&gt;
| smg_ev_mutekistar_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Rainbow Power-Up (first time)&lt;br /&gt;
| BGM_MUTEKI_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_mutekistar_b_cnv&lt;br /&gt;
| smg_ev_mutekistar_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Fire Power-Up&lt;br /&gt;
| BGM_FIRE_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fire_a_cnv&lt;br /&gt;
| smg_ev_fire_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Fire Power-Up (first time)&lt;br /&gt;
| BGM_FIRE_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fire_b_cnv&lt;br /&gt;
| smg_ev_fire_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Ice Power-Up&lt;br /&gt;
| BGM_ICE_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_ice_a_cnv&lt;br /&gt;
| smg_ev_ice_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Ice Power-Up (first time)&lt;br /&gt;
| BGM_ICE_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_ice_b_cnv&lt;br /&gt;
| smg_ev_ice_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Flying Power-Up&lt;br /&gt;
| BGM_FLYING_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fly_a_cnv&lt;br /&gt;
| smg_ev_fly_a&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Flying Power-Up (first time)&lt;br /&gt;
| BGM_FLYING_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_fly_b_cnv&lt;br /&gt;
| smg_ev_fly_b&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Power-Up Discovered (loop)&lt;br /&gt;
| BGM_FIRST_MORPH_A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle12a&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Power-Up Discovered (fade-out)&lt;br /&gt;
| BGM_FIRST_MORPH_B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle12b&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Other Music&lt;br /&gt;
|-&lt;br /&gt;
| Mushroom Kingdom&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_EV_PROLOGUE_02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_ev_prolo02_strm&lt;br /&gt;
|-&lt;br /&gt;
| Mario meets Luma&lt;br /&gt;
| BGM_SMG2_EV_PROLO_03&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_prolo03&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Bowser Attacks&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_EV_PROLOGUE_05&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_ev_prolo05_strm&lt;br /&gt;
|-&lt;br /&gt;
| First Star Select&lt;br /&gt;
| BGM_SMG2_EV_DEPART01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_depart01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Star Select&lt;br /&gt;
| BGM_SMG2_COURSESELECT02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_courseselect02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Galaxy Intro&lt;br /&gt;
| BGM_JG_START_CAMERA_DEMO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_stcamera_cnv&lt;br /&gt;
| smg2_jg_stcamera&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Bowser Jr. appears&lt;br /&gt;
| BGM_KOOPA_JR_APPEAR&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_kuppajr&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Return with Grand Star | World 1}}&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_FIRST_ASTRO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_first_astro_strm&lt;br /&gt;
|-&lt;br /&gt;
| Traveling to next World&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_FIRST_ASTRO2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_first_astro2_strm&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Return with Grand Star | Worlds 2 through 5}}&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_SECOND_ASTRO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_second_astro_strm&lt;br /&gt;
|-&lt;br /&gt;
| Peach returns with Grand Star&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_EV_EPILOGUE_01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_ev_epilogue01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Rosalina with Lumas&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_EV_ENDING01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_ev_ending01_strm&lt;br /&gt;
|-&lt;br /&gt;
| Credits&lt;br /&gt;
| BGM_SMG2_STAFFROLL&lt;br /&gt;
| STM_SMG2_STAFFROLL&lt;br /&gt;
| MBGM_SMG2_STAFFROLL&lt;br /&gt;
| smg2_staffroll_midi_cnv&lt;br /&gt;
| smg2_staffroll_midi&lt;br /&gt;
| SMG2_staffroll_strm&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Jingles&lt;br /&gt;
|-&lt;br /&gt;
| Start File&lt;br /&gt;
| BGM_SMG2_JG_DECIDE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_decide&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Luma joins Mario&lt;br /&gt;
| BGM_SMG2_JG_MEETCHIKO&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_meetchiko&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Death&lt;br /&gt;
| BGM_MISS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Game Over&lt;br /&gt;
| BGM_GAMEOVER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Galaxy Results&lt;br /&gt;
| BGM_JG_RETURN_HOME&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_return&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Starship Mario created&lt;br /&gt;
| BGM_SMG2_JG_M_PLANET01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_m_planet01&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| New Galaxy unlocked&lt;br /&gt;
| BGM_JG_NEW_GALAXY&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_discov&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| New Planet/Galaxy born&lt;br /&gt;
| BGM_JG_APPEAR_PLANET&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_appear&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Yoshi rescued&lt;br /&gt;
| BGM_SMG2_JG_MEETYOSHI&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_meetyoshi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Countdown&lt;br /&gt;
| BGM_MINIGAME_START&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle04&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Won Race&lt;br /&gt;
| BGM_RACE_WIN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle05&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Lost Race&lt;br /&gt;
| BGM_RACE_LOSE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_jingle06&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| New High Score&lt;br /&gt;
| BGM_JG_HIGH_SCORE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_hiscore&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| New Best Time&lt;br /&gt;
| BGM_SMG2_JG_TIME&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Galaxy Complete&lt;br /&gt;
| BGM_JG_GALAXY_COMPLETE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_complete&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Gearmo receives Goomba/Topman&lt;br /&gt;
| BGM_SMG2_JG_PAMATA&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_pamata&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Grand Star appears&lt;br /&gt;
| BGM_SMG2_JG_GSTAR1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_gstar1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Fake Grand Star appears&lt;br /&gt;
| BGM_SMG2_JG_GSTAR2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_gstar2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Prankster Comet roaming&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_JG_COMETSE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_jg_cometse_strm&lt;br /&gt;
|-&lt;br /&gt;
| Prankster Comet appeared&lt;br /&gt;
| BGM_SMG2_JG_COMET&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_comet&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Green Stars unlocked (BGM_SMG2_JG_GREENSTAR1)|Green Stars unlocked]]&lt;br /&gt;
| BGM_SMG2_JG_GREENSTAR1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_greenstar1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | Unused Music&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Title Theme Duplicate (MBGM_TITLE)|{{#inline-tooltip: Title Theme (Duplicate) | The actual Title Theme uses SE_SY_LV_TITLE_BGM and SE_SY_LV_TITLE_BGM_RHYTHM}}]]&lt;br /&gt;
| BGM_TITLE&lt;br /&gt;
| STM_TITLE&lt;br /&gt;
| MBGM_TITLE&lt;br /&gt;
| smg2_title_midi_cnv&lt;br /&gt;
| smg2_title_midi&lt;br /&gt;
| SMG2_title_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused Galaxy Theme (MBGM_SMG2_GALAXY_08)|Unused Galaxy Theme]]&lt;br /&gt;
| BGM_SMG2_GALAXY_08&lt;br /&gt;
| STM_SMG2_GALAXY_08&lt;br /&gt;
| MBGM_SMG2_GALAXY_08&lt;br /&gt;
| smg2_galaxy08_midi_cnv&lt;br /&gt;
| smg2_galaxy08_midi&lt;br /&gt;
| SMG2_galaxy08_strm&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Gateway Galaxy | The AST file is identical to SMG_galaxy25_strm.ast from SMG}}&lt;br /&gt;
| BGM_SMG2_GALAXY_25&lt;br /&gt;
| STM_SMG2_GALAXY_25&lt;br /&gt;
| MBGM_SMG2_GALAXY_25&lt;br /&gt;
| smg2_galaxy25_midi_cnv&lt;br /&gt;
| smg2_galaxy25_midi&lt;br /&gt;
| SMG2_galaxy25_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Digga-Leg/Whomp King Fast (STM_SMG2_BOSS08B)|Digga-Leg/Whomp King (Fast)]]&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_BOSS08B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss08b_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Gobblegut Fast (STM_SMG2_BOSS_01B)|Gobblegut (Fast)]]&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_BOSS_01B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss01b_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Megahammer Fast (STM_SMG2_BOSS_03B)|Megahammer (Fast)]]&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_BOSS_03B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss03b_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Glamdozer Fast (STM_SMG2_BOSS_02B)|Glamdozer (Fast)]]&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_BOSS_02B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss02b_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Final Bowser without Ambience (STM_SMG2_BOSS10)|Final Bowser (Without Ambience)]]&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG2_BOSS10&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_boss10_strm&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Comet Observatory 2 | The AST file is identical to the one from SMG}}&lt;br /&gt;
| &lt;br /&gt;
| STM_SMG_ASTROOUT02&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG_astroout02_strm&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: SMG1 Got Grand Star | Leftover BMS data from SMG1. SMG2 uses SE_SY_GRAND_STAR_GET_JINGLE for the Grand Star jingle}}&lt;br /&gt;
| BGM_JG_GRAND_STAR_GET&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_jg_starget2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#E3 2006 Bubble (BGM_IN_BUBBLE)|E3 2006 Bubble]]&lt;br /&gt;
| BGM_IN_BUBBLE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_inbubble&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | {{#inline-tooltip: Unreferenced Music | Unreferenced files are unused and furthermore not usable without modifications to SMR.szs}}&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: SMG1 Baron Brr/Undergrund Gunner | Both files are identical copies from SMG1}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg_ev_pinch01_cnv&lt;br /&gt;
| smg_ev_pinch01&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused Whittle Theme|Unused Whittle Theme]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_ev_mokku_cnv&lt;br /&gt;
| smg2_ev_mokku&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused World Map 1|Unused World Map 1]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap01_strm&lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused World Map 2|Unused World Map 2]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SMG2_worldmap02_strm&lt;br /&gt;
|-&lt;br /&gt;
| {{#inline-tooltip: Unused World Map 4 | The BMS contains no actual music data. The CIT contains data but needs to be investigated}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_worldmap04_midi_cnv&lt;br /&gt;
| smg2_worldmap04_midi&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[List of Music#Unused Far Map|Unused Far Map]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| smg2_worldmap_far&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Green Stars unlocked (BGM_SMG2_JG_GREENSTAR1) ===&lt;br /&gt;
This jingle only plays once for a text box when unlocking the Green Star Prankster Comets. This rare occurrence caused some people to believe it&#039;s unused, thus we decided to post it here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Jingle&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_SMG2_JG_GREENSTAR1&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg2_jg_greenstar1.szs&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:BGM_SMG2_JG_GREENSTAR1.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Title Theme Duplicate (MBGM_TITLE) ===&lt;br /&gt;
A duplicate of the title theme. There is no audible difference to the actual title theme. A leftover in [[CBgmSettingInfo|cBgmSettingInfo]] for triggering the drums can still be found. The actual Title Theme uses SE_SY_LV_TITLE_BGM and SE_SY_LV_TITLE_BGM_RHYTHM.&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Extra Drums&lt;br /&gt;
! Theme&lt;br /&gt;
! Theme + Extra Drums&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_TITLE&lt;br /&gt;
| STM_TITLE&lt;br /&gt;
| MBGM_TITLE&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg2_title_midi_cnv.szs&lt;br /&gt;
| SMG2_title_strm.ast&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:BGM_TITLE.ogg]]&lt;br /&gt;
| [[File:STM_TITLE.ogg]]&lt;br /&gt;
| [[File:MBGM_TITLE.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused Galaxy Theme (MBGM_SMG2_GALAXY_08) ===&lt;br /&gt;
An unused level theme that&#039;s neither heard ingame nor in pre-release footage. It is believed to be used in the E3 2009 version of Yoshi Star Galaxy.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Yoshi Drums&lt;br /&gt;
! Theme&lt;br /&gt;
! Theme + Yoshi Drums&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| BGM_SMG2_GALAXY_08&lt;br /&gt;
| STM_SMG2_GALAXY_08&lt;br /&gt;
| MBGM_SMG2_GALAXY_08&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg2_galaxy08_midi_cnv.szs&lt;br /&gt;
| SMG2_galaxy08_strm.ast&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:BGM_SMG2_GALAXY_08.ogg|start=0:04]]&lt;br /&gt;
| [[File:STM_SMG2_GALAXY_08.ogg]]&lt;br /&gt;
| [[File:MBGM_SMG2_GALAXY_08.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Digga-Leg/Whomp King Fast (STM_SMG2_BOSS08B) ===&lt;br /&gt;
A fast or final-phase version of the Digga-Leg/Whomp King battle theme.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| STM_SMG2_BOSS08B&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG2_boss08b_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_SMG2_BOSS08B.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Gobblegut Fast (STM_SMG2_BOSS_01B) ===&lt;br /&gt;
A fast or final-phase version of the Gobblegut battle theme.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| STM_SMG2_BOSS_01B&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG2_boss01b_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_SMG2_BOSS_01B.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Megahammer Fast (STM_SMG2_BOSS_03B) ===&lt;br /&gt;
A fast or final-phase version of the Megahammer battle theme.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| STM_SMG2_BOSS_03B&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG2_boss03b_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_SMG2_BOSS_03B.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Glamdozer Fast (STM_SMG2_BOSS_02B) ===&lt;br /&gt;
A fast or final-phase version of the Glamdozer battle theme.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| Label&lt;br /&gt;
| STM_SMG2_BOSS_02B&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG2_boss02b_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_SMG2_BOSS_02B.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Final Bowser without Ambience (STM_SMG2_BOSS10) ===&lt;br /&gt;
An identical duplicate of the Final Bowser theme without the additional track that contains the ambience sound effect.&lt;br /&gt;
&lt;br /&gt;
=== Unused Whittle Theme ===&lt;br /&gt;
An unused sequenced version of the Whittle theme using different instruments than the final version. As it doesn&#039;t have a BGM Label, it cannot be used without modifications to [[SMR.szs]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg2_ev_mokku_cnv.szs&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:Smg2_ev_mokku_cnv.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused World Map 1 ===&lt;br /&gt;
An unused World Map theme. Unlike all used themes, this one does not have a Grand Map view track. As it doesn&#039;t have a STM Label, it cannot be used without modifications to [[SMR.szs]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG2_worldmap01_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_SMG2_WORLDMAP_01.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused World Map 2 ===&lt;br /&gt;
An unused World Map theme. Unlike all used themes, this one does not have a Grand Map view track. As it doesn&#039;t have a STM Label, it cannot be used without modifications to [[SMR.szs]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| SMG2_worldmap02_strm.ast&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:STM_SMG2_WORLDMAP_02.ogg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused Far Map ===&lt;br /&gt;
An unused Grand Map ambience sound. As it doesn&#039;t have a BGM Label, it cannot be used without modifications to [[SMR.szs]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Theme&lt;br /&gt;
|-&lt;br /&gt;
| File&lt;br /&gt;
| smg2_worldmap_far.bms&lt;br /&gt;
|-&lt;br /&gt;
| Audio&lt;br /&gt;
| [[File:Smg2_worldmap_far.ogg]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=BRS_(File_Format)&amp;diff=777</id>
		<title>BRS (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=BRS_(File_Format)&amp;diff=777"/>
		<updated>2024-12-28T08:11:01Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: Add more documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:File formats]]&lt;br /&gt;
{{WIP}}&#039;&#039;&#039;BRS&#039;&#039;&#039; (&#039;&#039;&#039;B&#039;&#039;&#039;inary &#039;&#039;&#039;R&#039;&#039;&#039;emix &#039;&#039;&#039;S&#039;&#039;&#039;equence) files contain sequence data for the NoteFairy (Rainbow Notes) object. &#039;&#039;Super Mario Galaxy&#039;&#039; and &#039;&#039;Super Mario Galaxy 2&#039;&#039; each contain only one &#039;&#039;&#039;BRS&#039;&#039;&#039; file, located in &amp;lt;code&amp;gt;AudioRes/Info/JaiRemixSeq.arc/brs/defaultremixseq.brs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
The &#039;&#039;&#039;BRS&#039;&#039;&#039; format contains no header magic like most files do. Instead, it consists of a Sequence Count and Offsets. The size of the header is &amp;lt;code&amp;gt;0x4 + (Sequence Count x 0x4)&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Sequence Count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Offsets ===&lt;br /&gt;
Each offset holds the offset of a Sequence relative to the beginning of the file and is formatted like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sequence Header ==&lt;br /&gt;
Each sequence&#039;s header consists of a Track and Note Count:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Track Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Note Count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unused/Unknown Section ==&lt;br /&gt;
The header is followed by a section that doesn&#039;t seem to do anything. This section&#039;s size is &amp;lt;code&amp;gt;Note Count x 0x4&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Unused/Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Track ==&lt;br /&gt;
Each Track starts by defining its instrument (0x4), followed by the individual Key-presses for a Note (0x10 each). There is no padding between Tracks.&lt;br /&gt;
&lt;br /&gt;
Only 16 keys can be played at once.&lt;br /&gt;
=== Instrument ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt16 (0x2)&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| UInt8 (0x1)&lt;br /&gt;
| Bank Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x03&lt;br /&gt;
| UInt8 (0x1)&lt;br /&gt;
| Program Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Key ===&lt;br /&gt;
Duration&#039;s intended range is 0-1440 after being scaled. Any value above 1440 is clamped to 1440. However, due to the first 3 bytes being discarded at one point, a scaled duration above 255 can cause unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
For instance, if a scaled duration is 0x1234, it is clamped to 0x05A0 (1440) and the 0x05 is discarded later on, making 0xA0 (160) how long it actually plays for.&lt;br /&gt;
&lt;br /&gt;
The tempo at any given time is calculated using: (player_magnitude * 3600.0) / (note_fairy_path_length / note_count)&lt;br /&gt;
&lt;br /&gt;
The scaled duration is calculated using: (120.0 * duration / tempo)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Key (0x00 = C-1, 0x60 = C4 (middle C), 0x7F = G9, FFFFFFFF = None)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Velocity. Valid range: 0-127.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Duration (in ticks?). Scaled to the tempo the song is being played at.&lt;br /&gt;
Valid range: 0-255 after being scaled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Delay (in ticks?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sequences in SMG &amp;amp; SMG2 ==&lt;br /&gt;
A sequence can be defined in Obj_arg4 for the NoteFairy object. Obj_arg4 directly corresponds to the sequence index in defaultremixseq.brs. The following sequences are available in both games:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Obj_arg4&lt;br /&gt;
! Name&lt;br /&gt;
! Note Count&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Super Mario Bros. main theme (long)&lt;br /&gt;
| 13&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Super Mario Bros. main theme (short)&lt;br /&gt;
| 7&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Super Mario Bros. underground theme&lt;br /&gt;
| 43&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Super Mario Bros. main theme (short)&lt;br /&gt;
| 7&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Super Mario Bros. underwater theme&lt;br /&gt;
| 46&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Super Mario World bonus room theme&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=BRS_(File_Format)&amp;diff=764</id>
		<title>BRS (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=BRS_(File_Format)&amp;diff=764"/>
		<updated>2024-12-11T21:47:54Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;BRS&#039;&#039;&#039; (&#039;&#039;&#039;B&#039;&#039;&#039;inary &#039;&#039;&#039;R&#039;&#039;&#039;emix &#039;&#039;&#039;S&#039;&#039;&#039;equence) files contain sequence data for the NoteFairy (Rainbow Notes) object. &#039;&#039;Super Mario Galaxy&#039;&#039; and &#039;&#039;Super Mario Galaxy 2&#039;&#039; each contain only one &#039;&#039;&#039;BRS&#039;&#039;&#039; file, located in &amp;lt;code&amp;gt;AudioRes/Info/JaiRemixSeq.arc/brs/defaultremixseq.brs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
The &#039;&#039;&#039;BRS&#039;&#039;&#039; format contains no header magic like most files do. Instead, it consists of a Sequence Count and Pointers. The size of the header is &amp;lt;code&amp;gt;0x4 + (Sequence Count x 0x4)&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Sequence Count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Offsets ===&lt;br /&gt;
Each pointer holds the offset of a Sequence relative to the beginning of the file and is formatted like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sequence Header ==&lt;br /&gt;
Each sequence&#039;s header consists of a Track and Note Count:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Track Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Note Count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Note Duration (?) ==&lt;br /&gt;
The header is followed by a section that (presumably) defines the duration of each Note. This section&#039;s size is &amp;lt;code&amp;gt;Note Count x 0x4&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Note Duration (?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Track ==&lt;br /&gt;
Each Track starts by defining its instrument (0x4), followed by the individual Key-presses for a Note (0x10 each). There is no padding between Tracks.&lt;br /&gt;
=== Instrument ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| ??? (0x2)&lt;br /&gt;
| Likely unused&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| UInt8 (0x1)&lt;br /&gt;
| Set Bank&lt;br /&gt;
|-&lt;br /&gt;
| 0x03&lt;br /&gt;
| UInt8 (0x1)&lt;br /&gt;
| Set Prog&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Key ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Key (0x00 = C-1, 0x60 = C4 (middle C), 0x7F = G9, FFFFFFFF = None)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Duration&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| UInt32 (0x4)&lt;br /&gt;
| Delay&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sequences in SMG &amp;amp; SMG2 ==&lt;br /&gt;
A sequence can be defined in Obj_arg4 for the NoteFairy object. The following sequences are available in both games:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Obj_arg4&lt;br /&gt;
! Name&lt;br /&gt;
! Note Count&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Super Mario Bros. main theme (long)&lt;br /&gt;
| 13&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Super Mario Bros. main theme (short)&lt;br /&gt;
| 7&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Super Mario Bros. underground theme&lt;br /&gt;
| 43&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Super Mario Bros. main theme (short)&lt;br /&gt;
| 7&lt;br /&gt;
| Unused&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Super Mario Bros. underwater theme&lt;br /&gt;
| 46&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Super Mario World bonus room theme&lt;br /&gt;
| 64&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=652</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=652"/>
		<updated>2024-10-17T18:37:05Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: Almost forgot this one too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || XZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIFETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCITYDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=651</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=651"/>
		<updated>2024-10-17T18:35:06Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: /* JPA Key Types */ Livetime.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || XZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIFETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=649</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=649"/>
		<updated>2024-10-06T03:00:48Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: /* Plane Types */ YZ -&amp;gt; XZ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || XZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=646</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=646"/>
		<updated>2024-10-01T02:26:55Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: formatting.....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&amp;lt;br /&amp;gt;&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]&amp;lt;br /&amp;gt;&lt;br /&gt;
Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || YZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=645</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=645"/>
		<updated>2024-10-01T02:23:32Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: /* BEM1 */ More documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&lt;br /&gt;
&lt;br /&gt;
Also known as JPADynamicsBlock.&amp;lt;br /&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br /&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&lt;br /&gt;
bool FixedDensity = (flags &amp;gt;&amp;gt; 0) &amp;amp; 0x01&lt;br /&gt;
bool FixedInterval = (flags &amp;gt;&amp;gt; 1) &amp;amp; 0x01&lt;br /&gt;
bool InheritScale = (flags &amp;gt;&amp;gt; 2) &amp;amp; 0x01&lt;br /&gt;
bool FollowEmitter = (flags &amp;gt;&amp;gt; 3) &amp;amp; 0x01&lt;br /&gt;
bool FollowEmitterChild = (flags &amp;gt;&amp;gt; 4) &amp;amp; 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || [https://github.com/projectPiki/pikmin2/blob/cdea138d6289e5b3a762990e11a7a034fa66eefb/include/JSystem/JParticle/JPABlock.h#L49 ResUserWork]Unused in SMG2?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || YZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code], [https://github.com/projectPiki/pikmin2/ Pikmin 2 decompilation])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=642</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=642"/>
		<updated>2024-09-11T04:57:14Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: /* KFA1 */ Fix mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding, sometimes has 0x01 in it&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || YZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=641</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=641"/>
		<updated>2024-09-11T00:09:31Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: small clarifications and fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding. Always the same value as&lt;br /&gt;
Loop (false = 0, true = 1)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || YZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=640</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=640"/>
		<updated>2024-09-08T07:25:21Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: colour -&amp;gt; color for consistency (and my sanity), change note at top to follow format, make padding size accurate for ETX1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColorInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColorAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Color Data Offset. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Color Data Offset. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Color Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Color Calculate Index Type = (ColorFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Color Animation Data Count. ColorFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Color Animation Data Count. ColorFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Color Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Color Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColorTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the color&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Color RGBA UInt8[4] || The color at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Primary Color Animation Data Count&#039;&#039;&#039;] || A table of primary color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColorFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColorTable[&#039;&#039;&#039;Environment Color Animation Data Count&#039;&#039;&#039;] || A table of environment color keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Color RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || YZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=639</id>
		<title>JPA (File Format)</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=JPA_(File_Format)&amp;diff=639"/>
		<updated>2024-09-03T05:07:11Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: /* Extra BSP1 Data */ Further document extra BSP1 Data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats]]&lt;br /&gt;
&#039;&#039;&#039;JPA&#039;&#039;&#039; stands for &#039;&#039;&#039;JPA&#039;&#039;&#039;rticle, and is part of Nintendo&#039;s JSystem. The version of JPA documented here is JPAC2-10.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress.&lt;br /&gt;
&lt;br /&gt;
== JPA Header ==&lt;br /&gt;
The file starts with this Header&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || JPAC2-10 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || Particle Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || Image Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Offset to the TEX1 section&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BEM1 ==&lt;br /&gt;
This section is the Base Emitter, which contains settings for the emitter object.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BEM1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;VolumeType = (flags &amp;gt;&amp;gt; 8) &amp;amp; 0x07. See the [[#Volume_Types|Volume Type Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Emitter Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Emitter Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Emitter Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Emitter Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Emitter Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Emitter Translation Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Emitter Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Emitter Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Emitter Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Initial Velocity Omni-Directional (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Initial Velocity Axis&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Initial Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Initial Velocity Direction&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Spread&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Initial Velocity Ratio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rate Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Lifetime Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Volume Sweep&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Volume Minimum Radius&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Single || Air Resistance&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Single || Moment Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Int16 || Emitter Rotation X in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Int16 || Emitter Rotation Y in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Int16 || Emitter Rotation Z in Degrees&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Int16 || Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 || Int16 || Start Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x72 || Int16 || Lifetime&lt;br /&gt;
|-&lt;br /&gt;
| 0x74 || Int16 || Volume Size&lt;br /&gt;
|-&lt;br /&gt;
| 0x76 || Int16 || Division Number&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt8 || Rate Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x79 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BSP1 ==&lt;br /&gt;
This section is the Basic Shape, which contains settings on how to draw the particle.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || BSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
ColourInSelect = (flags &amp;gt;&amp;gt; 0x0F) &amp;amp; 0x07&amp;lt;br/&amp;gt;&lt;br /&gt;
AlphaInSelect = (flags &amp;gt;&amp;gt; 0x12) &amp;amp; 0x01&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingS = if !((flags &amp;gt;&amp;gt; 0x19) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
TlingT = if !((flags &amp;gt;&amp;gt; 0x1A) &amp;amp; 0x01), set to 2.0, otherwise, use 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalColourAnimation = !(flags &amp;amp; 0x00001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsGlobalTextureAnimation = !(flags &amp;amp; 0x00004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableProjection = !(flags &amp;amp; 0x00100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawForwardAhead = !(flags &amp;amp; 0x00200000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDrawPrintAhead = !(flags &amp;amp; 0x00400000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureScrollAnimation = !(flags &amp;amp; 0x01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawParent = !(flags &amp;amp; 0x08000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsNoDrawChild = !(flags &amp;amp; 0x10000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt16 || Primary Colour Data Offset. ColourFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || UInt16 || Environment Colour Data Offset. ColourFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || BaseSizeX&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || BaseSizeY&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt16 || Blend Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || UInt8 || Alpha Compare Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt8 || Alpha Reference 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || UInt8 || Z Mode Flags&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || UInt8 || Texture Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Texture Calculate Index Type = (TextureFlags &amp;gt;&amp;gt; 2) &amp;amp; 0x07. See the [[#Calculate_Index_Types|Calculate Index Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableTextureAnimation = !(TextureFlags &amp;amp; 0x01)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || UInt8 || Texture Index Animation Count &#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt8 || TextureIndex&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || UInt8 || Colour Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Colour Calculate Index Type = (ColourFlags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt8 || Primary Colour Animation Data Count. ColourFlags &amp;amp; 0x02 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || UInt8 || Environment Colour Animation Data Count. ColourFlags &amp;amp; 0x08 must equal 0&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || Colour Animation Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Colour RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Colour&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Colour RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Colour&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || UInt8 || Animation Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || UInt8 || Colour Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt8 || Texture Index Loop Offset Mask&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Extra BSP1 Data ===&lt;br /&gt;
This extra data exists if IsEnableTextureScrollAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Texture Init Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Texture Init Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Texture Init Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Texture Init Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Texture Init Rotation&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Texture Increment Translation X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Texture Increment Translation Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Texture Increment Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Texture Increment Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Texture Increment Rotation&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
This extra data exists (after the above data if that exists) if isEnableTextureAnimation is TRUE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt8[&#039;&#039;&#039;TexIDAnimCount&#039;&#039;&#039;] || A list of bytes representing texture IDs&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==== ColourTable ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || UInt16 || The keyframe of the colour&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || Colour RGBA UInt8[4] || The colour at the keyframe&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColourFlags &amp;amp; 0x02 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColourTable[&#039;&#039;&#039;Primary Colour Animation Data Count&#039;&#039;&#039;] || A table of primary colour keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This extra data exists (after the above data if that exists) if ColourFlags &amp;amp; 0x08 equals 0&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || ColourTable[&#039;&#039;&#039;Environment Colour Animation Data Count&#039;&#039;&#039;] || A table of environment colour keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ESP1 ==&lt;br /&gt;
Extra settings for how to draw the particle. This chunk is optional.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ESP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags.&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScale = !(flags &amp;amp; 0x01)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsDifferentXY = !(flags &amp;amp; 0x02)&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeX = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
ScaleAnimTypeY = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x03. See the [[#Calculate_Scale_Animation_Types|Calculate Scale Animation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotX = (flags &amp;gt;&amp;gt; 0x0C) &amp;amp; 0x03&amp;lt;br/&amp;gt;&lt;br /&gt;
PivotY = (flags &amp;gt;&amp;gt; 0x0E) &amp;amp; 0x04&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlpha = !(flags &amp;amp; 0x0010000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableSinWave = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 01000000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Scale In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Scale Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Scale In Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Scale Out Value X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Scale In Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Scale Out Value Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Scale Out Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt16 || Scale Animation X Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || UInt16 || Scale Animation Y Max Frame&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Alpha In Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Alpha Out Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Alpha In Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Alpha Base Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Alpha Out Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Single || Alpha Wave Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Single || Alpha Wave Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Single || Alpha Wave Amplitude&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Single || Rotate Angle&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Single || Rotate Angle Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Single || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Single || Rotate Speed Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || Single || Rotate Direction&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SSP1 ==&lt;br /&gt;
Settings for child particles that are spawned from the parent particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || SSP1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section Length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
ShapeType = flags &amp;amp; 0x0F. See the [[#Shape_Types|Shape Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
DirectionType = (flags &amp;gt;&amp;gt; 0x04) &amp;amp; 0x07. See the [[#Direction_Types|Direction Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
RotationType = (flags &amp;gt;&amp;gt; 0x07) &amp;amp; 0x07. See the [[#Rotation_Types|Rotation Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
PlaneType = (flags &amp;gt;&amp;gt; 0x0A) &amp;amp; 0x01. See the [[#Plane_Types|Plane Type Table]]. (If the ShapeType is DIRECTIONCROSS or ROTATIONCROSS, the PlaneType is always X)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedScale = !(flags &amp;amp; 0x0001000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedAlpha = !(flags &amp;amp; 0x0002000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsInheritedRGB = !(flags &amp;amp; 0x0004000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableField = !(flags &amp;amp; 0x0020000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableScaleOut = !(flags &amp;amp; 0x0040000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableAlphaOut = !(flags &amp;amp; 0x0080000)&amp;lt;br/&amp;gt;&lt;br /&gt;
bool IsEnableRotate = !(flags &amp;amp; 0x0100000)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Base Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Base Velocity Random&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Velocity Inf Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Gravity&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Global Scale 2D X&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Global Scale 2D Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Inherit Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Inherit Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Inherit RGB&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Colour RGBA&amp;lt;br/&amp;gt;UInt8[4] || Primary Colour&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Colour RGBA&amp;lt;br/&amp;gt;UInt8[4] || Environment Colour&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Timing&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt16 || Life&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || UInt16 || Rate&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt8 || Step&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UInt8 || Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UInt16 || Rotate Speed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ETX1 ==&lt;br /&gt;
Settings for configuring two or three textures on a particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || ETX1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
IndirectTextureMode = flags &amp;amp; 0x01. See the [[#Indirect_Texture_Mode|Indirect Texture Mode Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Indirect Texture Matrix. Item00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Indirect Texture Matrix. Item01&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Indirect Texture Matrix. Item02&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Indirect Texture Matrix. Item10&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Indirect Texture Matrix. Item11&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Indirect Texture Matrix. Item12&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int8 || Matrix Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || UInt8 || Indirect Texture Index&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt8 || Second Texture Index. Set to -1 if (flags &amp;amp; 0x00000100) is true&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || UInt8[2] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KFA1 ==&lt;br /&gt;
Contains curve animation tracks that can affect various properties of the emitter over time&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || KFA1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt8 || Key Type. See the [[#JPA_Key_Types|JPA Key Types Table]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || UInt8 || Key Count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt8 || Padding&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || bool || Loop&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || J3DKeyframe[] || Keyframes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== J3D Keyframe ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Single || Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Single || Value&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || Tangent In&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Tangent Out&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FLD1 ==&lt;br /&gt;
Defines different physics simulation fields that affect the particles&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || FLD1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || Flags:&amp;lt;br/&amp;gt;&lt;br /&gt;
Type = flags &amp;amp; 0x0F. See the [[#Field_Types|Field Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
VelocityType = (flags &amp;gt;&amp;gt; 0x08) &amp;amp; 0x03. See the [[#Field_Add_Types|Field Add Type Table]]&amp;lt;br/&amp;gt;&lt;br /&gt;
STTFlag = (flags &amp;gt;&amp;gt; 0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || Position X&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Single || Position Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || Position Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Single || Direction X&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Single || Direction Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Single || Direction Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Single || Param 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Single || Param 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Single || Param 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Single || Fade In&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Single || Fade Out&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Single || Enter Time (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Single || Distance Time&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt8 || Cycle&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UInt8[3] || Padding&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TDB1 ==&lt;br /&gt;
This &amp;quot;chunk&amp;quot; stores a mapping of particle texture indices to the JPAC texture indices.&amp;lt;br/&amp;gt;This chunk is required for every particle&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || String || TDB1 in ASCII&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || Section length - 0x08&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16[] || JPAC Texture Indices&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Type Lists ==&lt;br /&gt;
=== Volume Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || CUBE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || SPHERE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || CYLINDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || TORUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || LINE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shape Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || POINT&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || LINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || BILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || DIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || DIRECTIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || STRIPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || STRIPECROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || ROTATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ROTATIONCROSS&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DIRBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || YBILLBOARD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Direction Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || VELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || POSITION&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || POSITIONINVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || EMITTERDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || PREVIOUSPARTICLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || X&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Y&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Z&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || XYZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || YJIGGLE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plane Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || XY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || YZ&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Index Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || MERGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Scale Animation Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || REPEAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || REVERSE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculate Alpha Wave Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || NORMALSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || ADDSIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MULTIPLYSIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Indirect Texture Mode ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || OFF&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || NORMAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || SUBTRACT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || GRAVITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || AIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || MAGNET&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || NEWTON&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || VORTEX&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || RANDOM&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || DRAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || CONVECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || SPIN&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Add Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || FIELDACCELERATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || BASEVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || FIELDVELOCITY&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== JPA Key Types ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || RATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || VOLUMESIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || VOLUMESWEEP&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || VOLUMEMINIMUMRADIUS&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || LIVETIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || MOMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || INITIALVELOCITYOMNIDIRECTIONAL (?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || INITIALVELOCITYAXIS&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || INITIALVELOCIRTDIRECTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || SPREAD&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || SCALE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Source: [https://github.com/magcius/noclip.website/blob/master/src/Common/JSYSTEM/JPA.ts noclip.website source code])&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
	<entry>
		<id>https://www.lumasworkshop.com/w/index.php?title=AreaObj_Limitations&amp;diff=584</id>
		<title>AreaObj Limitations</title>
		<link rel="alternate" type="text/html" href="https://www.lumasworkshop.com/w/index.php?title=AreaObj_Limitations&amp;diff=584"/>
		<updated>2024-07-20T23:08:25Z</updated>

		<summary type="html">&lt;p&gt;AwesomeTMC: /* SMG2 */ Add BeeWallShortDistArea&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Finished}}&lt;br /&gt;
In both &#039;&#039;Super Mario Galaxy&#039;&#039; games there is an internal table that sets up the AreaObj managers. For every manager, there is a limit of &#039;&#039;AreaObj&#039;&#039; instances that can be placed in a level. If the game exceeds this limit, the game will very likely crash.&lt;br /&gt;
&lt;br /&gt;
=Lists=&lt;br /&gt;
Below are tables for every game that list the managers with their respective limits.&lt;br /&gt;
&lt;br /&gt;
==SMG1==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Manager Name&lt;br /&gt;
! Limit&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SwitchArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RaceJudgeCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NinForceWindCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NinAbyssCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CubeCamera&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BindEndCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | EffectCylinder&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DeathArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | WarpCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TripodBossStepStart&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | Water&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlaneModeCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlaneCircularModeCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PipeModeCube&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TowerModeCylinder&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ShadeCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PullBackCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PullBackCylinder&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RestartCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ChangeBgmCube&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BgmProhibitArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SoundEmitterCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SoundEmitterSphere&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlaneCollisionCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidTriangleJumpCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidWaterSearchCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | QuakeEffectArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | HazeCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | AudioEffectArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BigBubbleGoalArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SunLightArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | GlaringLightArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ViewGroupCtrlCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | LensFlareArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CameraRepulsiveArea&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| align=center | LightArea&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| align=center | FallsCube&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MercatorCube&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
| align=center | AstroChangeStageCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ImageEffectArea&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BlueStarGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TicoSeedGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MessageArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SmokeEffectColorArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BeeWallShortDistArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ExtraWallCheckArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ExtraWallCheckCylinder&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SpinGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | HipDropGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TamakoroMoveGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TamakoroJumpGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BigBubbleGuidanceCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | HeavySteeringCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NonSleepCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | AreaMoveSphere&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DodoryuClosedCylinder&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DashChargeCylinder&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlayerSeArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RasterScrollCube&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | OnimasuCube&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidJumpCube&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CollisionArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | AstroOverlookArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CelestrialSphere&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MirrorArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DarkMatterCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DarkMatterCylinder&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==SMG2==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Manager Name&lt;br /&gt;
! Limit&lt;br /&gt;
|-&lt;br /&gt;
| align=center | AreaMoveSphere&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | AudioEffectArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BeeWallShortDistArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BgmChangeArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BgmVolumeFadeArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BindEnd&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | BlueStarGuidance&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CameraRepulsiveArea&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CancelBeeMorphArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | Celestrial&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ClipDrawArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CollisionArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CometFireDanceArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CometHopperArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CometNoSpinArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CometRainbowArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CubeCamera&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| align=center | CumulativeTimerSwitchArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DarkMatterArea&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DashChargeArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DeathArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DemoPlayerForbidUpdateArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DodoryuClosedArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DreamerDeadCountArea&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
| align=center | DrillHoleHiddenArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | Effect&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
| align=center | EnforceJumpArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ExtraWallCheckArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ExtraWallCheckCylinder&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | Falls&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidJump&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidSupportTicoArea&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidTriangleJump&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForbidWaterSearch&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ForceDashCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | GlaringLightArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | HazeCube&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | HeavySteering&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | HipDropGuidance&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ImageEffectArea&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | LensFlareArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | LightArea&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MarioNoCapArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MercatorCube&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MessageArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MirrorArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | MorphSwitchArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NoMessageArea&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NonSleep&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | Onimasu&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PipeMode&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlaneCircularMode&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlaneCollision&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlaneMode&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlayerMorphLimitArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlayerSeArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PlayerSideRetainOffArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PullBack&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| align=center | QuakeEffectArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RaceJudge&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RasterScrollArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RecoveryFloorControlArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RepeatBlockShadowChangeArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | RollingWaterBreakArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SceneChangeArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SceneExitArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ShadeCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ShadowColorArea&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ShadowFarClipCtrlArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SlopeRunningCancelArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SmokeEffectColorArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SoundEmitterCube&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SoundEmitterSphere&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SoundPlayArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SpinCloudFrontDefineArea&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SpinGuidance&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SpinSwitchArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | StoryBookAreaText&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | StoryBookAreaWarp&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SunLightArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | SwitchArea&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TamakoroJumpGuidance&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TamakoroMoveGuidance&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TicoSeedGuidance&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TogepinAttackFoulArea&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TowerModeCylinder&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TripodBossStepStart&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | ViewGroupCtrl&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | WarpCube&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | Water&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| align=center | WorldMapAccessArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| align=center | WorldMapSyncSoundEmitterCube&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | YoshiCaptureGuidanceArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | YoshiEatGuidanceArea&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| align=center | YoshiSendOffArea&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Table Locations=&lt;br /&gt;
The table that specifies the area managers, their limits and creation function can be found at the following addresses:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Region&lt;br /&gt;
! SMG1 Address&lt;br /&gt;
! SMG2 Address&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NTSC-U&lt;br /&gt;
| align=center | 0x8052DF30&lt;br /&gt;
| align=center | 0x806452F0&lt;br /&gt;
|-&lt;br /&gt;
| align=center | PAL&lt;br /&gt;
| align=center | 0x8052DF30&lt;br /&gt;
| align=center | 0x806452F0&lt;br /&gt;
|-&lt;br /&gt;
| align=center | NTSC-J&lt;br /&gt;
| align=center | 0x8052DF30&lt;br /&gt;
| align=center | 0x806452F0&lt;br /&gt;
|-&lt;br /&gt;
| align=center | KOR&lt;br /&gt;
| align=center | 0x8052F4B0&lt;br /&gt;
| align=center | 0x80645870&lt;br /&gt;
|-&lt;br /&gt;
| align=center | TWN&lt;br /&gt;
| align=center | ----------&lt;br /&gt;
| align=center | 0x80645870&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Table Format=&lt;br /&gt;
Each table entry consists of three DWORDs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entry Offset&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| align=center | 0x00&lt;br /&gt;
| Pointer to the manager&#039;s name.&lt;br /&gt;
|-&lt;br /&gt;
| align=center | 0x04&lt;br /&gt;
| Number of AreaObj entries.&lt;br /&gt;
|-&lt;br /&gt;
| align=center | 0x08&lt;br /&gt;
| Pointer to the manager&#039;s creation function.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AwesomeTMC</name></author>
	</entry>
</feed>