Difference between revisions of "User:MrSinistar/Sandbox"
MrSinistar (Talk | contribs) (Created page with "{|width="50%" style="margin-bottom:20px; float:center; border:1px solid; box-shadow: 0 0 5px #6DBACD; border-radius:6px; border-color:#6dbacd;" |File:Morphball_wirerender.pn...") |
m (I'm sorry.) |
||
(22 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | AGSC uses MusyX data for the audio engine. Each sound has it's own "SoundMacro" and properties. The '''pool chunk''' is where the soundmacros are located. SoundMacros are small scripts that control how sounds are played in game, like pitch or vibrato or fade outs. Here's a description of the pool chunk: | |
− | + | ||
− | + | ||
− | + | ||
− | |[[File | + | {|class="wikitable" |
− | |[[File: | + | ! Offset |
− | |[[File: | + | ! Size |
− | |[[File: | + | ! Description |
− | |[[File: | + | |- |
+ | | 0x0 | ||
+ | | 4 | ||
+ | | '''Header size''' Looks like it's always 10 | ||
+ | |- | ||
+ | | 0x10 | ||
+ | | 4 | ||
+ | | '''Macro size''' | ||
+ | |- | ||
+ | | 0x14 | ||
+ | | 2 | ||
+ | | '''Macro ID''' | ||
+ | |- | ||
+ | | 0x18 | ||
+ | | colspan=2 {{unknown|Macro data, needs more research}} | ||
+ | |} | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | STRG Commands are similar to CSS syntax. A ; terminates the command. & begins the command, so for example, &just=center; | ||
+ | {| class="wikitable" | ||
+ | ! Command | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | just | ||
+ | | center | ||
+ | | Justifies text | ||
+ | |- | ||
+ | | image | ||
+ | | SI,0.70,0.68,[[TXTR (File Format)|TXTR]] ID | ||
+ | | Displays an image. SI = Single Image? S,T and finally TXTR ID. Animation = SA, Animation Speed, S,T, TXTR ID, TXTR ID | ||
+ | |- | ||
+ | | main-color | ||
+ | | Hex Color Code | ||
+ | | Changes color of text. | ||
+ | |} | ||
+ | |||
+ | |||
+ | ---- | ||
+ | ===SCLY Audio Object=== | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Offset | ||
+ | ! Size | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x0 | ||
+ | | 4 | ||
+ | | '''Property Count''' (always 0x14 for sound) | ||
+ | |- | ||
+ | | 0x4 | ||
+ | | N | ||
+ | | '''Sound name'''; zero-terminated | ||
+ | |} | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Offset | ||
+ | ! Size | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x0 | ||
+ | | 4 | ||
+ | | '''Position (float)''' | ||
+ | |- | ||
+ | | 0x4 | ||
+ | | 4 | ||
+ | | '''Position (float)''' | ||
+ | |- | ||
+ | | 0x8 | ||
+ | | 4 | ||
+ | | '''Position (float)''' | ||
+ | |- | ||
+ | | 0xC | ||
+ | | 4 | ||
+ | | '''Rotation (float)''' | ||
+ | |- | ||
+ | | 0x10 | ||
+ | | 4 | ||
+ | | '''Rotation (float)''' | ||
+ | |- | ||
+ | | 0x14 | ||
+ | | 4 | ||
+ | | '''Rotation (float)''' | ||
+ | |- | ||
+ | | 0x18 | ||
+ | | 4 | ||
+ | | '''Sound Effects ID''' index number for [[ATBL]] | ||
+ | |- | ||
+ | | 0x1C | ||
+ | | 1 | ||
+ | | '''Play Automatically'''; If this bool is turned on, but the active bool is not on, the corresponding trigger must send a Play message (0x14) to turn on the sound. | ||
+ | |- | ||
+ | | 0x1D | ||
+ | | 4 | ||
+ | | '''Maximum Distance (float)'''; the bigger the float, the farther you can hear it! | ||
+ | |- | ||
+ | | 0x21 | ||
+ | | 4 | ||
+ | | '''Minimum Distance (float)'''; usually set to 0.2 | ||
+ | |- | ||
+ | | 0x25 | ||
+ | | 4 | ||
+ | | '''Padding''' | ||
+ | |- | ||
+ | | 0x29 | ||
+ | | 4 | ||
+ | | '''Priority''' | ||
+ | |- | ||
+ | | 0x2D | ||
+ | | 4 | ||
+ | | '''Max. Volume'''; 127 is loudest | ||
+ | |- | ||
+ | | 0x31 | ||
+ | | 4 | ||
+ | | '''Min. Volume''' | ||
+ | |- | ||
+ | | 0x35 | ||
+ | | 4 | ||
+ | | '''Panning''' 0=Left, 64=Center, 127=Right | ||
+ | |- | ||
+ | | 0x39 | ||
+ | | 1 | ||
+ | | '''Play endlessly''' | ||
+ | |- | ||
+ | | 0x3A | ||
+ | | 1 | ||
+ | | '''Play everywhere''' | ||
+ | |- | ||
+ | | 0x3B | ||
+ | | 1 | ||
+ | | '''Active/Accepts Trigger Activations'''; this must be on and it's corresponding trigger has to activate/deactivate the sound object in order to play/stop sound. Triggers sending a Play message (0x14) won't turn on the sound. | ||
+ | |- | ||
+ | | 0x3C | ||
+ | | 1 | ||
+ | | {{unknown|'''Unknown'''}} | ||
+ | |- | ||
+ | | 0x3D | ||
+ | | 1 | ||
+ | | '''Is sound affected by RoomAcoustics?'''; 1=yes, 0=no | ||
+ | |- | ||
+ | | 0x3E | ||
+ | | 1 | ||
+ | | {{unknown|'''Unknown'''}} | ||
+ | |- | ||
+ | | 0x3F | ||
+ | | 1 | ||
+ | | {{unknown|'''Unknown'''}}; Is On for Health pickups (ITD or Surround flag?) | ||
+ | |- | ||
+ | | 0x40 | ||
+ | | 4 | ||
+ | | {{unknown|'''Unknown'''}}; (FF FF FF FF, usually descending...seen on cinematic sounds) | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | so, if what we are assuming are the play automatically bool and the active bool are both on, then the sound plays immediately on spawn and never plays again, even when the trigger is suppose to activate it. | ||
+ | |||
+ | atbl bool = 0, 3rd bool = 1...sound doesn't play automatically but activates when going through trigger. | ||
+ | |||
+ | atbl bool = 1, 3rd bool = 1...sound plays automatically and deactives/activates correctly when going through trigger. | ||
+ | |||
+ | atbl bool = 1, 3rd bool = 0, nothing plays | ||
+ | |||
+ | |||
+ | ===SCLY RoomAcoustics=== | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Offset | ||
+ | ! Size (h) | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x0 | ||
+ | | 2 | ||
+ | | '''Active flag'''; 1 = on, 0 = off | ||
+ | |- | ||
+ | | 0x2 | ||
+ | | 4 | ||
+ | | {{unknown|'''Unknown'''}}; always 0x75 | ||
+ | |- | ||
+ | | 0x6 | ||
+ | | 27 | ||
+ | | '''Padding''' | ||
+ | |- | ||
+ | | 0x2D | ||
+ | | 1 | ||
+ | | {{unknown|'''Unknown'''}}; always 0x1 | ||
+ | |- | ||
+ | | 0x2E | ||
+ | | 1 | ||
+ | | '''Padding''' | ||
+ | |- | ||
+ | | 0x2F | ||
+ | | 4 | ||
+ | | '''Decay (float)'''; Reverb decay length (in seconds). Value must be between 0.01 and 10.0. Can make it sound like small room to a large cathedral. | ||
+ | |- | ||
+ | | 0x33 | ||
+ | | 4 | ||
+ | | '''Predelay (float)'''; Length of time before reverb starts (in seconds). Value must be between 0.0 and 0.1. Simulates latency for reflected sound waves over long distances. | ||
+ | |- | ||
+ | | 0x37 | ||
+ | | 4 | ||
+ | | '''Damping (float)'''; Dampens the high-frequencies. Value must be between 0.0 and 1.0. Sort of like a filter, 0.0 has lots of bass, 1.0 has lots of high end. | ||
+ | |- | ||
+ | | 0x3B | ||
+ | | 4 | ||
+ | | '''Color (float)'''; Basically, an equalizer. Value must be between 0.0 and 1.0. Balances out frequencies to simulate the acoustic properties of different surfaces in a room. | ||
+ | |- | ||
+ | | 0x3F | ||
+ | | 4 | ||
+ | | '''Mix (float)'''; Value must be between 0.0 and 1.0. 0.0 means that only the original sound will be audible, whereas 1.0 will only make the reverberated signal be heard. | ||
+ | |- | ||
+ | | 0x43 | ||
+ | | 25 | ||
+ | | '''Padding''' | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {|cellpadding="5" cellspacing="3" align="center" style="text-align:center; margin-bottom:20px; float:center; border:1px solid; box-shadow: 0 0 5px #6DBACD; border-radius:6px; border-color:#6dbacd;" ! width="45%" | ||
+ | |[[File:Powercannon_render3.png|200px]] | ||
+ | |'''Help us research and document! Join the discussion at: [https://m2k2.taigaforum.com/post/metroid_prime_hacking_research.html Metroid Prime Hacking Research thread @ Metroid2002.com]''' | ||
+ | {|align="center" style="text-align:center;" | ||
+ | |[[File:Morphball_wire.png|50px|link=Category:Major research needed]] | ||
+ | |[[File:Morphball_wirerender.png|50px|link=Category:Moderate research needed]] | ||
+ | |[[File:Morphball_render.png|50px|link=Category:Minor research needed]] | ||
|- | |- | ||
− | |<small>[[:Category: | + | |<small>[[:Category:Major research needed|'''File formats that need major research''']]</small> |
− | |<small>[[:Category: | + | |<small>[[:Category:Moderate research needed|'''File formats that need moderate research''']]</small> |
− | |<small>[[:Category: | + | |<small>[[:Category:Minor research needed|'''File formats that need minor research''']]</small> |
− | + | ||
− | + | ||
|} | |} |
Latest revision as of 03:20, 22 May 2015
AGSC uses MusyX data for the audio engine. Each sound has it's own "SoundMacro" and properties. The pool chunk is where the soundmacros are located. SoundMacros are small scripts that control how sounds are played in game, like pitch or vibrato or fade outs. Here's a description of the pool chunk:
Offset | Size | Description |
---|---|---|
0x0 | 4 | Header size Looks like it's always 10 |
0x10 | 4 | Macro size |
0x14 | 2 | Macro ID |
0x18 | Macro data, needs more research |
STRG Commands are similar to CSS syntax. A ; terminates the command. & begins the command, so for example, &just=center;
Command | Value | Description |
---|---|---|
just | center | Justifies text |
image | SI,0.70,0.68,TXTR ID | Displays an image. SI = Single Image? S,T and finally TXTR ID. Animation = SA, Animation Speed, S,T, TXTR ID, TXTR ID |
main-color | Hex Color Code | Changes color of text. |
SCLY Audio Object
Offset | Size | Description |
---|---|---|
0x0 | 4 | Property Count (always 0x14 for sound) |
0x4 | N | Sound name; zero-terminated |
Offset | Size | Description |
---|---|---|
0x0 | 4 | Position (float) |
0x4 | 4 | Position (float) |
0x8 | 4 | Position (float) |
0xC | 4 | Rotation (float) |
0x10 | 4 | Rotation (float) |
0x14 | 4 | Rotation (float) |
0x18 | 4 | Sound Effects ID index number for ATBL |
0x1C | 1 | Play Automatically; If this bool is turned on, but the active bool is not on, the corresponding trigger must send a Play message (0x14) to turn on the sound. |
0x1D | 4 | Maximum Distance (float); the bigger the float, the farther you can hear it! |
0x21 | 4 | Minimum Distance (float); usually set to 0.2 |
0x25 | 4 | Padding |
0x29 | 4 | Priority |
0x2D | 4 | Max. Volume; 127 is loudest |
0x31 | 4 | Min. Volume |
0x35 | 4 | Panning 0=Left, 64=Center, 127=Right |
0x39 | 1 | Play endlessly |
0x3A | 1 | Play everywhere |
0x3B | 1 | Active/Accepts Trigger Activations; this must be on and it's corresponding trigger has to activate/deactivate the sound object in order to play/stop sound. Triggers sending a Play message (0x14) won't turn on the sound. |
0x3C | 1 | Unknown |
0x3D | 1 | Is sound affected by RoomAcoustics?; 1=yes, 0=no |
0x3E | 1 | Unknown |
0x3F | 1 | Unknown; Is On for Health pickups (ITD or Surround flag?) |
0x40 | 4 | Unknown; (FF FF FF FF, usually descending...seen on cinematic sounds) |
so, if what we are assuming are the play automatically bool and the active bool are both on, then the sound plays immediately on spawn and never plays again, even when the trigger is suppose to activate it.
atbl bool = 0, 3rd bool = 1...sound doesn't play automatically but activates when going through trigger.
atbl bool = 1, 3rd bool = 1...sound plays automatically and deactives/activates correctly when going through trigger.
atbl bool = 1, 3rd bool = 0, nothing plays
SCLY RoomAcoustics
Offset | Size (h) | Description |
---|---|---|
0x0 | 2 | Active flag; 1 = on, 0 = off |
0x2 | 4 | Unknown; always 0x75 |
0x6 | 27 | Padding |
0x2D | 1 | Unknown; always 0x1 |
0x2E | 1 | Padding |
0x2F | 4 | Decay (float); Reverb decay length (in seconds). Value must be between 0.01 and 10.0. Can make it sound like small room to a large cathedral. |
0x33 | 4 | Predelay (float); Length of time before reverb starts (in seconds). Value must be between 0.0 and 0.1. Simulates latency for reflected sound waves over long distances. |
0x37 | 4 | Damping (float); Dampens the high-frequencies. Value must be between 0.0 and 1.0. Sort of like a filter, 0.0 has lots of bass, 1.0 has lots of high end. |
0x3B | 4 | Color (float); Basically, an equalizer. Value must be between 0.0 and 1.0. Balances out frequencies to simulate the acoustic properties of different surfaces in a room. |
0x3F | 4 | Mix (float); Value must be between 0.0 and 1.0. 0.0 means that only the original sound will be audible, whereas 1.0 will only make the reverberated signal be heard. |
0x43 | 25 | Padding |
Help us research and document! Join the discussion at: Metroid Prime Hacking Research thread @ Metroid2002.com
|