Open main menu

Difference between revisions of "SCI/TODO"

86 bytes added ,  07:27, 9 June 2010
m
added link to bug
(added sci0 sound issue)
m (added link to bug)
Line 10: Line 10:


=== Sound ===
=== Sound ===
* 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 #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
* 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
1,119

edits