Opened 13 years ago

Last modified 2 years ago

#7599 new enhancement

Stream non-compressed sound directly from files

Reported by: Kirben Owned by:
Priority: normal Component: Audio
Version: Keywords:
Cc: Game:


Been able to stream non-compressed audio (ie VOC or WAV formats) directly from files would be useful, to cut down the memory required when loading large music/sound/speech segments into memory. Especially as smaller ports of ScummVM are much more limited, memory wise.

In particular there is a large speech segment in the introduction of Simon the Sorcerer 1, which is too large to load on the Nintendo DS port. There is currently a hack in the 0.10.0 branch of ScummVM to work around this particular issue.

Adding this as a feature request, so it doesn't get forgotten for the next release.

Ticket imported from: #1832977. Ticket imported from: feature-requests/415.

Change History (8)

comment:1 by fingolfin, 13 years ago

Owner: set to zeldin

comment:2 by fingolfin, 13 years ago

Sure, would be nice, and not that difficult. We already do it for the compressed data, after all. But we must be careful as to how we implement/use this. On some ports, it could possibly hurt performance, namely when seeking is slow. In that case, loading data from multiple files simultaneously is bad. E.g. think of the DC where everything is loaded from CD. Although I think Marcus already implemented some kind of load buffering to compensate for this. Marcus, care to comment?

comment:3 by Kirben, 13 years ago

Yes, for a CD based systems like the DC and PS2, multiple file access could be an issue. I think the PS2 port already offers some file caching too.

One point I forgot to mentioned before: The Nintendo DS port offers the additional option of compressed WAV audio, as alternative for CD audio play back. Maybe that code could be adapted and moved to sound backends, for this purpose?

comment:4 by zeldin, 13 years ago

Regarding load buffering on the DC, I do have some buffering in the filesystem code, but it's only a couple of sectors, mainly intended for caching directories. I rely on the engine to do its own buffering of game data, like e.g. the scumm engine does (although it doesn't work very well for CoMI and some parts of The Dig, because the low water mark is set too low).

I don't think this issue should remain assigned to me as it appears to be a request for a feature in the NDS port. I assume any implementation along these lines will be subject to conditional compilation so that the ports for which it makes sense can enable it (c.f. software scalers).

comment:5 by Kirben, 13 years ago

Owner: zeldin removed

comment:6 by fingolfin, 13 years ago

Side remark: This item was only temporarily assigned to marcus to get his attention, not because he's meant to implement it.

comment:7 by lordhoto, 8 years ago

We support streaming of VOC files since some time now. Any news on WAV or any related remarks?

comment:8 by digitall, 2 years ago

Component: Audio
Note: See TracTickets for help on using tickets.