Particles

From CloudModding OoT Wiki
Jump to: navigation, search

Located after the current scene file's position in RAM is a static array that manages the game's particle effects. It can be found at 80384980 in the retail versions, and 803CE1D0 in Debug.

Particle Effect Overlay Table

code (File)
Particle Effect Overlay Table
VersionOffsetVRomVRam
Debug0F8B5000B8CB5000B8CF5C801159B080115DBC
NTSC 1.00D6BA000B5DBA000B5DFAC800E7C40800E804C
PAL MQ0D3B9000B5BB9000B5BF9C800E4A90800E4E9C

The particle effect manages the particle effect files (overlays). It defines a particle effect's id, maps the particle's code to a virtual address, and during gameplay is used to find the overlay in ram

Format

xxxxxxxx yyyyyyyy aaaaaaaa bbbbbbbb
rrrrrrrr pppppppp ????????

  • x y: Start/End Virtual Rom addresses of the particle effect's file
  • a b: Start/End Virtual Ram addresses of the particle effect's file
  • r: Ram address of the overlay, when loaded into ram. Set to 0 in Rom
  • p: ?, possibly a pointer to the initialization routine
  • ?: Unknown, set to 0x01000000 in Rom


Particle Effect List

# Filename Translation Description Texture Source
0000 ovl_Effect_Ss_Dust Soft Sprite - Dust Dust - Kicked up by rolling or horse hooves. gameplay_keep
0001 ovl_Effect_Ss_KiraKira Soft Sprite - Sparkle Motes - Used by Navi. gameplay_keep
0002 ovl_Effect_Ss_Bomb Soft Sprite - Bomb Explosion I gameplay_keep
0003 ovl_Effect_Ss_Bomb2 Soft Sprite - Bomb 2 Explosion II - Used by Bombs & Bombchus. gameplay_keep
0004 ovl_Effect_Ss_Blast Soft Sprite - Blast Explosion Blast Ring - Used by Bombchus. gameplay_keep
0005 ovl_Effect_Ss_G_Spk Soft Sprite - G Spark Spark - Used by Beamos. gameplay_keep
0006 ovl_Effect_Ss_D_Fire Soft Sprite - Dodongo Fire object_dodongo
0007 ovl_Effect_Ss_Bubble Soft Sprite - Bubble Water Bubble gameplay_keep
0008 unset unset
0009 ovl_Effect_Ss_G_Ripple Soft Sprite - G Ripple Water Ripple gameplay_keep
000A ovl_Effect_Ss_G_Splash Soft Sprite - G Splash Water Splash gameplay_keep
000B ovl_Effect_Ss_G_Magma Soft Sprite - G Magma gameplay_keep
000C ovl_Effect_Ss_G_Fire Soft Sprite - G Fire Magma Flare - Used when walking on lava. gameplay_keep
000D ovl_Effect_Ss_Lightning Soft Sprite - Lightning gameplay_keep
000E ovl_Effect_Ss_Dt_Bubble Soft Sprite - Dt Bubble gameplay_keep
000F ovl_Effect_Ss_Hahen Soft Sprite - Fragment [?] - Used for Deku Baba's toxic breath.
0010 ovl_Effect_Ss_Stick Soft Sprite - Stick
0011 ovl_Effect_Ss_Sibuki Soft Sprite - Splash
0012 ovl_Effect_Ss_Sibuki2 Soft Sprite - Splash 2 gameplay_keep
0013 ovl_Effect_Ss_G_Magma2 Soft Sprite - G Magma 2 object_king_dodongo
0014 ovl_Effect_Ss_Stone1 Soft Sprite - Stone 1 gameplay_keep
0015 ovl_Effect_Ss_HitMark Soft Sprite - Hit Mark Impact Effects - Used when something is hit or deflected. gameplay_keep
0016 ovl_Effect_Ss_Fhg_Flash Soft Sprite - Phantom Ganon Flash Crackle - Used by Phantom Ganon. ovl_Effect_Ss_Fhg_Flash
0017 ovl_Effect_Ss_K_Fire Soft Sprite - K Fire Flame I - Used by [?]. gameplay_keep
0018 ovl_Effect_Ss_Solder_Srch_Ball Soft Sprite - Soldier Search Ball
0019 ovl_Effect_Ss_Kakera Soft Sprite - Shard gameplay_keep
001A ovl_Effect_Ss_Ice_Piece Soft Sprite - Ice Piece gameplay_keep
001B ovl_Effect_Ss_En_Ice Soft Sprite - En Ice gameplay_keep
001C ovl_Effect_Ss_Fire_Tail Soft Sprite - Fire Tail Flame II - Used when Link is on fire. gameplay_keep
001D ovl_Effect_Ss_En_Fire Soft Sprite - En Fire Flame III - Used by [?]. gameplay_keep
001E ovl_Effect_Ss_Extra Soft Sprite - Extra Score Points - Used by Minigames object_yabusame_point
001F ovl_Effect_Ss_Fcircle Soft Sprite - F Circle
0020 ovl_Effect_Ss_Dead_Db Soft Sprite - Dead Deku Baba gameplay_keep
0021 ovl_Effect_Ss_Dead_Dd Soft Sprite - Dead Dodongo gameplay_keep
0022 ovl_Effect_Ss_Dead_Ds Soft Sprite - Dead Deku Scrub gameplay_keep
0023 ovl_Effect_Ss_Dead_Sound Soft Sprite - Dead Sound
0024 ovl_Effect_Ss_Ice_Smoke Soft Sprite - Ice Smoke Icy Breath - Used by Freezards.

Instance Structure

The following is a documentation of the structure of a single particle in ram. Tests were done on NTSC 1.0.

//Misc Info
Record Size = 0x60
Length = 0x1FE0
Number of records = 55

800E7B44 (int) - index to next spot to insert a particle in the array 

//Structure. Offsets relative to structure start
0000 float - x
0004 float - y
0008 float - z
000C uint - unknown
0024 ptr - ? (points to overlay file)
0028 ptr - ? (points to overlay file)
0038 ptr - Display List address 
005C short - Animation frame? (counts down, -1 causes it to disappear)

//This is how the space is used for Link's hit marker. More investigation needed
//color 1?
0044 short - Red
0046 short - Green
0048 short - Blue
//color 2?
004A short - Red
004C short - Green
004E short - Blue

Notes

  • The function at 80027798 (Debug?) is used to spawn particle effect overlays. (A1 = actor index to ovl_Effect_Ss actor list)
  • Effect actors are actors that spawn attached to other actors at a limb point.