417
edits
m (Little rewording...) |
(Fixed link (palex.py -> agi-palex.py)) |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= [[User:Buddha^|Buddha^]]'s Google Summer of Code 2007 Project Diary = | |||
Here's the archive of the project diary I kept during my | |||
Google Summer of Code 2007 participation. | |||
== 2007-05-28 (Monday) - GSoC starts! == | == 2007-05-28 (Monday) - GSoC starts! == | ||
Line 646: | Line 651: | ||
So I made a tool for extracting palettes from Amiga AGI games' executable files | So I made a tool for extracting palettes from Amiga AGI games' executable files | ||
and added it to ScummVM's trunk. You can see the source code [http://scummvm.svn.sourceforge.net/viewvc/scummvm/scummvm/trunk/tools/palex.py?revision=28035&view=markup here]. | and added it to ScummVM's trunk. You can see the source code [http://scummvm.svn.sourceforge.net/viewvc/scummvm/scummvm/trunk/tools/agi-palex.py?revision=28035&view=markup here]. | ||
My first Python program, yay! | My first Python program, yay! | ||
Line 1,377: | Line 1,382: | ||
Oh and I discovered/realized that at least Apple IIGS King's Quest I's volume | Oh and I discovered/realized that at least Apple IIGS King's Quest I's volume | ||
files are not encrypted. So I can just go and write new MIDI codes straight | files are not encrypted. So I can just go and write new MIDI codes straight | ||
into the files and run the game through | into the files and run the game through an emulator to try to hear what | ||
program change corresponds to what instrument. Whee :-) This is good. | program change corresponds to what instrument. Whee :-) This is good. | ||
Line 1,403: | Line 1,408: | ||
Been trying to reverse engineer the Apple IIGS AGI MIDI files' program change command's | Been trying to reverse engineer the Apple IIGS AGI MIDI files' program change command's | ||
parameter value to instrument number mapping recently. Tried a few | parameter value to instrument number mapping recently. Tried a few approaches that didn't work | ||
but came up with a way that works quite well. Here's the preliminary mapping from | but came up with a way that works quite well. Here's the preliminary mapping from | ||
program numbers to instrument numbers (Instrument number 6 seems to be mostly used to | program numbers to instrument numbers (Instrument number 6 seems to be mostly used to | ||
Line 1,486: | Line 1,491: | ||
* "Dummy" samples | * "Dummy" samples | ||
** Sample 4 is full of byte 0x50 (i.e. about -0.38 if amplitude is normalized to range [-1, +1]) | ** Sample 4 is full of byte 0x50 (i.e. about -0.38 if amplitude is normalized to range [-1, +1]) | ||
* Unused samples (i.e. not used by the instrument data. May be incomplete): | |||
** None of the instruments in either the older or the newer instrument set use samples 29-33 | |||
*** This means we could theoretically ditch the last 16KiB of the SIERRASTANDARD file | |||
** None of the instruments in the older instrument set use samples 2-4 | |||
** None of the instruments in the newer instrument set use sample 4 | |||
* Sample sizes log2 (2**x will give the true sample size): | * Sample sizes log2 (2**x will give the true sample size): | ||
** sampleSizesLog2 = [10, 10, 10, 9, 9, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, 10, 10, 11, 10, 10, 11, 10, 10, 11, 14, 13, 11, 11, 11, 11] | ** sampleSizesLog2 = [10, 10, 10, 9, 9, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, 10, 10, 11, 10, 10, 11, 10, 10, 11, 14, 13, 11, 11, 11, 11] | ||
Line 1,500: | Line 1,510: | ||
Here are all the differences between the older and the newer SIERRASTANDARD file: | Here are all the differences between the older and the newer SIERRASTANDARD file: | ||
* | * Sample 2 (Offsets 2048-3071) differs between SIERRASTANDARD versions | ||
** Sample data | ** Sample data | ||
*** The older version of sample 2 starts with some real sample data but a bit over half of it is completely silent (i.e. centerline i.e. byte 0x80) | *** The older version of sample 2 starts with some real sample data but a bit over half of it is completely silent (i.e. centerline i.e. byte 0x80) | ||
*** Newer version of sample 2 contains real sample data | |||
** Instrument usage | |||
*** None of the instruments of the older instrument set use sample 2 | |||
*** Instruments 19 and 20 of the newer instrument set use sample 2 | |||
* Sample 3 (Offsets 3072-3583) differs between SIERRASTANDARD versions | |||
** Sample data | |||
*** The older version of sample 3 is full of byte 0x50 | *** The older version of sample 3 is full of byte 0x50 | ||
*** | *** The newer version of sample 3 contains real sample data | ||
** Instrument usage | ** Instrument usage | ||
*** None of the instruments of the older instrument set use | *** None of the instruments of the older instrument set use sample 3 | ||
*** | *** Instrument 4 of the newer instrument set uses sample 3 | ||
* Sample 17 (Offsets 17408-18431) differs between SIERRASTANDARD versions | * Sample 17 (Offsets 17408-18431) differs between SIERRASTANDARD versions | ||
Line 1,514: | Line 1,531: | ||
*** Newer version's sample has a higher pitch than the old version and the wave looks more triangle like | *** Newer version's sample has a higher pitch than the old version and the wave looks more triangle like | ||
** Instrument usage | ** Instrument usage | ||
*** | *** Instruments 5 and 18 of the older instrument set uses this sample | ||
*** | *** Instrument 6 of the newer instrument set uses this sample | ||
* Sample 27 (Offsets 30720-32767) differs between SIERRASTANDARD versions | * Sample 27 (Offsets 30720-32767) differs between SIERRASTANDARD versions | ||
Line 1,524: | Line 1,541: | ||
*** Instruments 5 and 23 of the older instrument set use this sample | *** Instruments 5 and 23 of the older instrument set use this sample | ||
*** Instruments 6 and 25 of the newer instrument set use this sample | *** Instruments 6 and 25 of the newer instrument set use this sample | ||
== 2007-12-11 (Tuesday) - End of GSoC 2007 project diary == | |||
I thought I'd add a clarifying end note to my project diary. I'm not going to update the | |||
diary anymore but I leave it here for archival purposes. It might prove an interesting or even | |||
a useful read for someone else applying for GSoC in ScummVM. It was a good ride... |
edits