OBD:OSBD/OSGr: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (oops)
m (localized image)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Minimal data, just to get the page started.
[[Image:osb_r_gr.gif]]
 
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/osb_r_gr.gif


{{Table}}
{{Table}}
{{OBD_Table_Header}}
{{OBDth}}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x00 | int32  |FF0000| 72 47 53 4F | OSGr | Oni Sound Group }}
|0x00||4cc||BGCOLOR="#FF0000"|72 47 53 4F||OSGr||ALIGN=LEFT|Oni Sound Group
{{OBDtr| 0x04 | int32 |FFFF00| B4 00 00 00 | 180 | size of OSGr chunk (from after this field and to the end) }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x08 | int32  |FFC8C8| 06 00 00 00 | 6    | version (see below) }}
|0x04||int32||BGCOLOR="#FFFF00"|B4 00 00 00||180||ALIGN=LEFT|180 bytes; size of the part that follows
{{OBDtr| 0x0C | float |FFFFC8| 00 00 80 3F | 1.| playback volume (present for version 2 and above, default is 1) }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x10 | float |C8FFC8| 00 00 80 3F | 1.| playback speed AKA pitch (present for version 3 and above, default is 1) }}
|0x08||bool32||BGCOLOR="#FFC8C8"|06 00 00 00||4 + 2||ALIGN=LEFT|bitset (see below)
{{OBDtr| 0x14 | int16  |C8FFFF| 00 00       | 0    | prevent repeats (present for version 6 and above, default is 1 for versions 4 and 5 and 0 for versions lower than 4) }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x16 | int16  |FFC8FF| 00 00       | 0    | last selected permutation (present for version 6 and above, default is 0, used with prevent repeats) }}
|0x0C||float||BGCOLOR="#FFFFC8"|00 00 80 3F||1.000000||ALIGN=LEFT|playback volume
{{OBDtr| 0x18 | int32  |FFC800| 01 00 00 00 | 1    | number of channels (1 or 2, same as in the sound files linked from permutations) }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x1C | int32 |C800C8| 03 00 00 00 | 3   | number of permutations }}
|0x10||float||BGCOLOR="#C8FFC8"|00 00 80 3F||1.000000||ALIGN=LEFT|playback speed AKA pitch
{{OBDtrBK|First permutation}}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x00 | int32   |C87C64| 0A 00 00 00 | 10 | weight }}
|0x14||bool16||BGCOLOR="#C8FFFF"|00 00||0||ALIGN=LEFT|unknown
{{OBDtr| 0x04 | float   |B0C3D4| 00 00 80 3F | 1.0 | minimum volume }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x08 | float   |E7CEA5| 00 00 80 3F | 1.0 | maximum volume }}
|0x16||bool16||BGCOLOR="#FFC8FF"|00 00||0||ALIGN=LEFT|prevent repeats (0/1)
{{OBDtr| 0x0C | float   |FFDDDD| 33 33 33 3F | 0.7 | minimum pitch }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x10 | float   |64AAAA| 33 33 33 3F | 0.7 | maximum pitch }}
|0x18||unknown||BGCOLOR="#FFC800"|01 00 00 00||1||ALIGN=LEFT|unknown
{{OBDtr| 0x14 | char[32] |EBEBEB| 61 63 35... | ac5lp1.aif | permutation sound name (reference to f.e. 09376-ac5lp1.aif.[[OBD:SNDD|SNDD]] of level 3) }}
|- ALIGN=CENTER VALIGN=TOP
|0x1C||int32||BGCOLOR="#C800C8"|03 00 00 00||3||ALIGN=LEFT|array size
|- ALIGN=CENTER VALIGN=TOP
|BGCOLOR="#000000" COLSPAN=5|<FONT SIZE=2 COLOR="#FFFFFF">First element detailed below.</FONT>
|- ALIGN=CENTER VALIGN=TOP
|0x00||int32||BGCOLOR="#C87C64"|0A 00 00 00||10||ALIGN=LEFT|weight
|- ALIGN=CENTER VALIGN=TOP
|0x04||float||BGCOLOR="#B0C3D4"|00 00 80 3F||1.000000||ALIGN=LEFT|minumum volume
|- ALIGN=CENTER VALIGN=TOP
|0x08||float||BGCOLOR="#E7CEA5"|00 00 80 3F||1.000000||ALIGN=LEFT|maximum volume
|- ALIGN=CENTER VALIGN=TOP
|0x0C||float||BGCOLOR="#FFDDDD"|33 33 33 3F||0.700000||ALIGN=LEFT|minimum pitch
|- ALIGN=CENTER VALIGN=TOP
|0x10||float||BGCOLOR="#64AAAA"|33 33 33 3F||0.700000||ALIGN=LEFT|maximum pitch
|- ALIGN=CENTER VALIGN=TOP
|0x14||char[32]||BGCOLOR="#EBEBEB" COLSPAN=2|<TT>ac5lp1.aif</TT>||ALIGN=LEFT|permutation sound name (reference to f.e. 09376-ac5lp1.aif.[[OBD:SNDD|SNDD]] of level 3)
|}
|}
;Number of channels
:By design the number of channels is supposed to be the same as that of the referenced SNDDs (this implies that all the SNDDs in a group are supposed to have the same channel count).
:If for whatever reason the channel counts in OSGr and SNDD are ''not'' consistent, then the behaviour depends on whether the OSGr is referenced from an OSIm or from an OSAm:
:*the channel count in an OSAm's OSGr determines the channel count of the decompressed sound buffer, therefore mono SNDDs will sound 2x higher/faster if the channel count in their OSGr is set to 2, and stereo SNDDs (e.g., music) will sound 2x lower/slower if the channel count in their OSGr is set to 1.
:*the channel count in an OSIm's OSGr seems to have no effect if the SNDDs are mono, i.e. setting the OSGr's channel count to 2 does not result in a higher pitch. As for stereo SNDDs, apparently they cannot be used in an OSIm's OSGr at all.
;Fury vocalizations
;Fury vocalizations
:Those are sped up by 1.14 in Oni, which explains why they sound weird when exported.
:Those are sped up by 1.14 in Oni, which explains why they sound weird when exported.
;Bitset at 0x08
;Version
:bit 4 is always set
:Just as for other [[OSBD]], there have been several version of the binary format.
:bit 1 - dunno, set for... (fill in)
:Over time, some fields that used to be hardcoded became customizeable on a group-per-group basis.
:bit 2 - enables the fields at 0x14 and 0x16 (apparently; maybe it's a bool32)
:Thus, later versions include some extra fields as compared to earlier ones.
::if bit 2 is off, then the 0x18 field goes to 0x14 etc: everything shifted backwards by 4 bytes
:The above example belongs to the latest OSGr version encountered in Oni: 6.
:Lower versions lack certain fields, and the following content is simply shifted backwards.
 
;Dialog from level0_Tools
[[Image:Tool dialog - Sound Group Properties.png]]
 
{{OBD}}

Latest revision as of 23:47, 15 December 2022

Osb r gr.gif

Offset Type Raw Hex Value Description
0x00 int32 72 47 53 4F OSGr Oni Sound Group
0x04 int32 B4 00 00 00 180 size of OSGr chunk (from after this field and to the end)
0x08 int32 06 00 00 00 6 version (see below)
0x0C float 00 00 80 3F 1.0 playback volume (present for version 2 and above, default is 1)
0x10 float 00 00 80 3F 1.0 playback speed AKA pitch (present for version 3 and above, default is 1)
0x14 int16 00 00 0 prevent repeats (present for version 6 and above, default is 1 for versions 4 and 5 and 0 for versions lower than 4)
0x16 int16 00 00 0 last selected permutation (present for version 6 and above, default is 0, used with prevent repeats)
0x18 int32 01 00 00 00 1 number of channels (1 or 2, same as in the sound files linked from permutations)
0x1C int32 03 00 00 00 3 number of permutations
First permutation
0x00 int32 0A 00 00 00 10 weight
0x04 float 00 00 80 3F 1.0 minimum volume
0x08 float 00 00 80 3F 1.0 maximum volume
0x0C float 33 33 33 3F 0.7 minimum pitch
0x10 float 33 33 33 3F 0.7 maximum pitch
0x14 char[32] 61 63 35... ac5lp1.aif permutation sound name (reference to f.e. 09376-ac5lp1.aif.SNDD of level 3)
Number of channels
By design the number of channels is supposed to be the same as that of the referenced SNDDs (this implies that all the SNDDs in a group are supposed to have the same channel count).
If for whatever reason the channel counts in OSGr and SNDD are not consistent, then the behaviour depends on whether the OSGr is referenced from an OSIm or from an OSAm:
  • the channel count in an OSAm's OSGr determines the channel count of the decompressed sound buffer, therefore mono SNDDs will sound 2x higher/faster if the channel count in their OSGr is set to 2, and stereo SNDDs (e.g., music) will sound 2x lower/slower if the channel count in their OSGr is set to 1.
  • the channel count in an OSIm's OSGr seems to have no effect if the SNDDs are mono, i.e. setting the OSGr's channel count to 2 does not result in a higher pitch. As for stereo SNDDs, apparently they cannot be used in an OSIm's OSGr at all.
Fury vocalizations
Those are sped up by 1.14 in Oni, which explains why they sound weird when exported.
Version
Just as for other OSBD, there have been several version of the binary format.
Over time, some fields that used to be hardcoded became customizeable on a group-per-group basis.
Thus, later versions include some extra fields as compared to earlier ones.
The above example belongs to the latest OSGr version encountered in Oni: 6.
Lower versions lack certain fields, and the following content is simply shifted backwards.
Dialog from level0_Tools

Tool dialog - Sound Group Properties.png