>"Andrew C. Plotkin" <erkyrath+@CMU.EDU> writes:
>
>>Looks liks '@sound_effect 1 2 1 #r$Routine;' Sound number 1, 2 means
>>start playing, volume 1, routine.
>>
>
>Sound number 1 is a beep sound and should only be used in the
>short form (ie. "@sound_effect 1"). Real sound effects start at
>number 3 and should be played by something like
>
> "@sound_effect 3 2 $0106 #r$Routine",
>
>ie. play sound number 3 once at volume 6 then call the routine.
>
There is a distinction here that needs to be made between version 3/4
games and version 5 and later games.
In version 3 games, the volume is a simple number from 1 to 8, and
the callback routine is not available.
In version 5 games and later, the 3rd parameter is a combined
repeats/volume parameter (high byte/low byte respectively), and
a callback routine can be specified. This would clearly be the
form used by most Informers.
>>I know most ZIP ports support at least the '@sound_effect 1;' beep,
>>but do any handle the full opcode plus the callback?
>>
>
>My MS-DOS Zip 2.04 does. However, it has some bugs and so it is
>still in the beta directory of the if-archive. From what I've
>heard, Kevin Bracey's (?) Archimedes interpreter supports sound
>effects as well.
>
Indeed it does, with full callback support from version 1.03. You
can't expect a callback to occur after a beep (sound effects 1 or 2),
and I'm not sure what would happen if you tried to prepare or lose
a beep, but you can certainly set its volume.
One thing I would suggest at this stage is that anyone intending
to provide sounds with a game provide them in the same .DAT
format Stefan has archived at the if-archive. It is reasonable
to suppose that any interpreter that handles sounds will handle
them in that format.
Kevin
=====