417
edits
(Added info on done work on 2007-07-27.) |
(Added info on done work on 2007-07-28 and 2007-07-29.) |
||
Line 835: | Line 835: | ||
audio streams out of them. Took influence from the AIFF-loading routine | audio streams out of them. Took influence from the AIFF-loading routine | ||
from ScummVM's source code. | from ScummVM's source code. | ||
== 2007-07-28 (Saturday) - Decoding Apple IIGS sample header, Part 1 == | |||
Modified a byte in an Apple IIGS AGI sample resource's header (At | |||
header offset 2) and tried the sample out by running the game | |||
using KEGS32 and MESS. So it turned out that that header byte | |||
handles playing pitch. And it's definitely exponential | |||
with 2**(1/12) as the base. The value seems to wrap around after 0x7F. | |||
== 2007-07-29 (Sunday) - Decoding Apple IIGS sample header, Part 2 == | |||
Inspected how the byte in Apple IIGS AGI sample resource's header | |||
offset 4 affects the playing of the sample. It is the volume control, | |||
probably logarithmic, but not 100% sure about that yet. | |||
Fiddled a bit with some other header offsets and got something | |||
interesting and/or weird to happen but don't yet know what they | |||
really did :-). | |||
The Apple IIGS AGI sample resource's header is 54 bytes long and | |||
by the header comparisons I've done the following header offsets | |||
are the most varying ones (Some other bytes also vary, but only | |||
between two values in the data I've compared): | |||
* Header offset 2 | |||
** The playing pitch | |||
* Header offset 4 | |||
** Volume control | |||
* Header offsets 8 and 9 | |||
** Sample size in bytes (Little endian 16-bit word) | |||
* Header offset 44 | |||
** Unknown function, uses values x*9 for x in {0, 1, 2, 3, 4, 5, 6} | |||
* Header offset 45 | |||
** Unknown function, uses values 0, 2, 6 | |||
* Header offset 50 | |||
** Unknown function, uses values x*9 for x in {1, 2, 3, 4, 5, 6} | |||
* Header offset 51 | |||
** Unknown function, uses values 0, 1, 2, 7 |
edits