Open main menu

Difference between revisions of "SCI/TODO"

121 bytes removed ,  14:43, 16 June 2010
changed piano scene
(added piano scene)
(changed piano scene)
Line 12: Line 12:
* Instrument changes in SCI0 must be sound resource specific - in lsl3 door slams will change an instrument in mt32 emulation and when the actual music is resumed, it will be using that instrument instead of the one that was meant to get used (see bug [https://sourceforge.net/tracker/?func=detail&atid=418820&aid=3007449&group_id=37116 #3007449])
* Instrument changes in SCI0 must be sound resource specific - in lsl3 door slams will change an instrument in mt32 emulation and when the actual music is resumed, it will be using that instrument instead of the one that was meant to get used (see bug [https://sourceforge.net/tracker/?func=detail&atid=418820&aid=3007449&group_id=37116 #3007449])
* Channel remapping. Songs that are played simultaneously might be using the same MIDI channels. E.g. in LSL1VGA, in the copy protection screen, there's the Larry music and a "pling" sound when a question is answered. Currently, the pling sound affects the instruments of the Larry song. Let's say that the Larry song is playing and it's using channel 1 to 5. Then the 'pling' effect is played, it uses channel 4. The instrument change in that song will change channel 4, and this will also affect the Larry song. In order to avoid this, the pling could be remapped to channel 6. We need some sort of lookup map, so that we redirect notes directed to channel X to go to channel Y, and we would need one such map per song. Ideally, we should find out what algorithm Sierra uses for this. We could try out own channel remapping implementation first, and then if we need it we could See what sierra does sometime in the future
* Channel remapping. Songs that are played simultaneously might be using the same MIDI channels. E.g. in LSL1VGA, in the copy protection screen, there's the Larry music and a "pling" sound when a question is answered. Currently, the pling sound affects the instruments of the Larry song. Let's say that the Larry song is playing and it's using channel 1 to 5. Then the 'pling' effect is played, it uses channel 4. The instrument change in that song will change channel 4, and this will also affect the Larry song. In order to avoid this, the pling could be remapped to channel 6. We need some sort of lookup map, so that we redirect notes directed to channel X to go to channel Y, and we would need one such map per song. Ideally, we should find out what algorithm Sierra uses for this. We could try out own channel remapping implementation first, and then if we need it we could See what sierra does sometime in the future
on place to check is definitely piano scene in lsl5 with patti - channel 8 is used for user playback and channel 9 is muted during that time BUT channel 8 actually contains the real playback (which should get muted in the first place) i guess sierra sci remaps channel 8 to channel 9 and that's why channel 9 gets muted - this needs fixing, because for now everything is played all the time which shouldnt be the case
on place to check is definitely piano scene in lsl5 with patti - in dos-box channel 8 is used for user playback and channel 7 is used for the automatic playback, which is muted on the first 2 tries - in our sci it seems that some channels are mixed up somehow, although i need to check that again
* Voice mapping. This is used by all SCI games to assign hardware voices to midi channels in the Adlib and FB-01 drivers. So, for example, if a song tries to play more than 9 notes at the same time, we need to stop an earlier note. We currently do this round-robin, while we should be respecting voice assignments. If a game sets 3 voices for piano, we should not take one away unless 4 piano notes are played, then it's OK to stop one piano note. Currently if a song were to use 5 notes at once we would just play them all, even if that midi channel was set to use 2 voices, and those 3 extra notes might stop more important notes, e.g. in the melody. This has been implemented for SCI0, but it's not hooked up to Adlib at the moment. Also we're not sure if the initial voice assignments are in the MIDI stream in SCI1 (they're not in SCI0). Of course, channel remapping has an effect on this too
* Voice mapping. This is used by all SCI games to assign hardware voices to midi channels in the Adlib and FB-01 drivers. So, for example, if a song tries to play more than 9 notes at the same time, we need to stop an earlier note. We currently do this round-robin, while we should be respecting voice assignments. If a game sets 3 voices for piano, we should not take one away unless 4 piano notes are played, then it's OK to stop one piano note. Currently if a song were to use 5 notes at once we would just play them all, even if that midi channel was set to use 2 voices, and those 3 extra notes might stop more important notes, e.g. in the melody. This has been implemented for SCI0, but it's not hooked up to Adlib at the moment. Also we're not sure if the initial voice assignments are in the MIDI stream in SCI1 (they're not in SCI0). Of course, channel remapping has an effect on this too
* Amiga (SCI01/1) and Mac (SCI1/1.1) sound support ([[SCI/Specifications/Sound/SCI0 Resource Format#Amiga Sound (SCI1)/Macintosh Sound (SCI1/1.1)|same format]])
* Amiga (SCI01/1) and Mac (SCI1/1.1) sound support ([[SCI/Specifications/Sound/SCI0 Resource Format#Amiga Sound (SCI1)/Macintosh Sound (SCI1/1.1)|same format]])
1,119

edits