Introduction
Maniac Mansion for the Apple II produced sound effects via its internal speaker and had no music. It appears that not all sound effects were used in the game, this is noticeable when running the game through an emulator. However these un-used sound effects still appear in the resources. A speculative guess would be that perhaps they were disabled because they did not sound right through the speaker.
The Sound Resources
A sound resource appears to have the following format: It is worth noting that byte number 5 seems to be always 0x01, but there is a check in the code for values not equal to 0x01. The final byte is always 0xFF
OFFSET | SIZE | DESCRIPTION |
---|---|---|
0 | 1 Byte | Resource Size |
1 | 2 Bytes | Two 00 Bytes |
3 | (Resource Size - 4) Bytes | Data |
Resource Size | 1 Byte | One FF Terminator Byte |
Examples
The sounds are referenced through Sound ID's, although not all sound effects are played in the original. A small list of some Sound ID's and their resource contents is below:
ID | DESCRIPTION | DATA |
---|---|---|
8 | Door Open | 15 00 00 D4 03 01 05 1E 64 14 C8 FE 64 1E C8 82 78 28 96 82 FF |
9 | Door Close | 17 00 00 77 03 01 06 64 C8 FA E6 1E D2 28 96 FE 5A 64 3C C8 1E 64 FF |
39 | Doorbell | 0C 00 00 D2 02 01 C8 82 FE FE 64 FF |
54 | Click Character Selection | 09 00 00 14 02 01 64 8C FF |
The Internal Speaker
The speaker only had the functionality to emit a click as a square wave (when memory location $C030 is referenced).
The duration and frequency of the sound could be managed by the use of loops controlling the references to $C030.