AGSC (File Format): Difference between revisions

Jump to navigation Jump to search
imported>Jackoalan
imported>Jackoalan
Line 734: Line 734:


'''Tables''' have two functions: for defining curves for volume scaling, or to be used as ADSR envelopes.
'''Tables''' have two functions: for defining curves for volume scaling, or to be used as ADSR envelopes.
The tables continue until 0xffffffff terminator is reached.


{| class="wikitable"
{| class="wikitable"
Line 746: Line 748:
| 0x4
| 0x4
| 2
| 2
| '''Table ID'''
| '''Table ObjectID'''
|-
|-
| 0x6
| 0x6
Line 802: Line 804:


To express a curve, the table data is simply a 128-element table of <code>uint8_t</code> values  
To express a curve, the table data is simply a 128-element table of <code>uint8_t</code> values  
==== Keymaps ====
'''Keymaps''' are swappable, fixed-length tables mapping 128 MIDI keys to sound-producing objects.
The keymaps continue until 0xffffffff terminator is reached.
{| class="wikitable"
! Offset
! Size
! Description
|-
| 0x0
| 4
| '''Keymap size'''; (usually 0x1032)
|-
| 0x4
| 2
| '''Keymap ObjectID'''
|-
| 0x6
| 2
| '''Padding'''
|-
| 0x1032
| colspan=2 {{Unknown|128 Keymap entries}}
|}
===== Keymap Entry =====
{| class="wikitable"
! Offset
! Size
! Description
|-
| 0x0
| 2
| '''ObjectID'''
|-
| 0x2
| 1
| '''Transpose'''
|-
| 0x3
| 1
| '''Pan'''
|-
| 0x4
| 1
| '''Priority Offset'''
|-
| 0x8
| colspan=2 {{Unknown|Padded to 8 bytes}}
|}
==== Layers ====
'''Layers''' are one-to-many, ranged keyboard mappings to sound-producing objects.
The layers continue until 0xffffffff terminator is reached.
{| class="wikitable"
! Offset
! Size
! Description
|-
| 0x0
| 4
| '''Layer size'''
|-
| 0x4
| 2
| '''Layer ObjectID'''
|-
| 0x6
| 2
| '''Padding'''
|-
| Varies
| colspan=2 {{Unknown|Layer data}}
|}
===== Layer Data =====
Within the layer data, there is a '''u32 count''' of layer range structs:
{| class="wikitable"
! Offset
! Size
! Description
|-
| 0x0
| 2
| '''ObjectID'''
|-
| 0x2
| 1
| '''Key Lo'''
|-
| 0x3
| 1
| '''Key Hi'''
|-
| 0x4
| 1
| '''Transpose'''
|-
| 0x5
| 1
| '''Volume'''
|-
| 0x6
| 1
| '''Pan'''
|-
| 0x7
| 1
| '''Priority Offset'''
|-
| 0x8
| 1
| '''Unknown'''; usually 0x40
|-
| 0xC
| colspan=2 {{Unknown|Padded to 12 bytes}}
|}


The entire Pool chunk is terminated by a value of 0xFFFF.
The entire Pool chunk is terminated by a value of 0xFFFF.
Anonymous user

Navigation menu