Opened 11 years ago

Last modified 4 months ago

#7599 new enhancement

Stream non-compressed sound directly from files

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

Description

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 Changed 11 years ago by fingolfin

Owner: set to zeldin

comment:2 Changed 11 years ago by fingolfin

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 Changed 11 years ago by Kirben

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 Changed 11 years ago by zeldin

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 Changed 11 years ago by Kirben

Owner: zeldin deleted

comment:6 Changed 11 years ago by fingolfin

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

comment:7 Changed 6 years ago by lordhoto

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

comment:8 Changed 4 months ago by digitall

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