Age | Commit message (Collapse) | Author |
|
|
|
This results in less code and also less I/O operations (including seeking).
|
|
|
|
|
|
|
|
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
|
|
This is now generated automatically by the configure script from the
engine directory names.
|
|
This is the third and final commit enabling fully pluggable engines.
Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
|
|
This is the second part of allowing engines to be added dynamically.
Each folder in engines/ which must contain a file named "engine.mk"
containing the make definitions for that engine.
|
|
This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
|
|
|
|
Rename "player" directory to "players", and reintroduce the "player_"
file prefix. This has been done after sev's request.
"players/player_foo.*" is more descriptive, and avoids potential name
clashes in libraries
|
|
There are 34 player .cpp/.h player files, so they have been placed in
their own directory, to logically separate them from the rest of the
engine
|
|
|
|
|
|
RFC: Pluggable Engines: I18N: Move specification of engine specific files to enginedir/POTFILES
|
|
SCUMM: Implement original AD AdLib output.
|
|
84d1d28373d782464bd46b10abd6b092f7eb6367.
|
|
|
|
This will obviously make 'smapLen' a lot smaller in most cases, so
there may be regressions. But I hope this is correct, though I
don't know why the size is big-endian while the offset is little-
endian.
|
|
Since _actors[i]->_sound is an array, it can't ever be NULL.
|
|
Since ah->data is an array, it can't ever be NULL.
|
|
Since ah->data is an array, it can't ever be NULL.
|
|
|
|
|
|
|
|
This allows to keep the engines to specfiy the files for translation close to
the engine sources itself.
Thanks to criezy for his suggestion on this approach.
|
|
This clears up that 'ConfigFile' is actually a class handling only INI-files.
|
|
Make Graphics::Surface::pixels protected.
|
|
|
|
|
|
|
|
These are regressions from c05cb7f3bbcf4d64d4a938e0eb42065d8f3d3038. They were
caused by VirtualScreen::getPixels differing from Surface::getBasePtr and I
accidently used the former in some cases in the conversion.
I also fixed a bug in debugger.cpp which exchanged x and y.
|
|
|
|
|
|
|
|
This implements the original AD output and enables it for Indy3 and Loom DOS.
It is not enabled for Monkey Island DOS because it would break multi MIDI
support. However, there are also drawbacks for Indy3. In the catacombs
we were able to play sfx (Indy walking around) and the background music
at once. This was not supported in the original player and thus also does
not work with this reimplementation.
This fixes bug #2027877 "INDY3: Non-Looping Sound Effects".
This fixes bug #1159581 "ADLIB: Adlib Emulation doesn't Respect Volume Settings"
for Indy3 and Loom.
|
|
This doesn't really make any difference because either both
VAR_SAVELOAD_SCRIPT and VAR_SAVELOAD_SCRIPT2 exist, or neither
does. But it feels more correct this way.
|
|
SCUMM: More precise Player_Mac::durationToSamples
|
|
Uses the fact that 4*480*480 == 225 << 12, and the identity
(a*b)>>n == (a>>n)*b + ((a%(1<<n))*b)>>n (assuming non-overflowing math),
except the rhs uses smaller intermediate values and does not overflow(*).
Compared to the original code, this uses 1 fewer division and eliminates
the rounding error.
(*) Technical note: In some cases the right hand side of the above
identity still has possibilities of intermediate overflow, but only if
b > (1 << n), or if (b << n) overflows, neither of which are true here.
|
|
|
|
In fact the code was wrong there due to copy-paste error
|
|
|
|
|
|
We're clearly using 12 bytes, not 11.
|
|
|
|
|
|
Verify that 'bits' really is one of 8, 12 or 16 before decoding
the data. It's probably always the case (unless the data files are
damaged) but if it isn't we'll either try to queue NULL to the
audio stream, or queue the same buffer more than once, or free the
buffer more than once. All of which are bad, though Coverity only
noticed the last of these cases.
|
|
CID 1003018
|
|
1. Remove _sc55 bool. All Roland GS-capable devices have MT-32 sound/drum maps, so they should always be used when _enable_gs is set.
2. Always enable _native_mt32 if Roland GS mode is selected. I don't know why I never did this originally, since _enable_gs is automatically disabled for SCUMM v6+ games that use General MIDI tracks instead of MT-32 music.
3. Set master tune for GS devices to 442.0kHz. This is the master tune setting for the MT-32.
|