Commit Graph
86814 Commits
Author SHA1 Message Date
Colin Snover 3eb12dcfeb SCI32: Remove ADGF_CD from games that have no non-CD version
@sev- had asked why these flags were added a while ago (I had been
instructed this was the right thing to do when I asked in the past)
and ever since then it has been bugging me more and more that they
are there, since they serve zero purpose except to make the game ID
longer. In the past, it may have been the case that the SCI16 &
SCI32 code mixing meant that SCI32 games needed the CD flag for
things like managing subtitles, but at this point the only use of
the CD flag within the SCI32 engine is for the few games that
actually have different CD and non-CD versions. So these flags are
gone now.
2017-09-14 00:30:57 -05:00
stevenhoefel 3feaaffd9c DIRECTOR: Fix Warning. 2017-09-14 13:54:52 +10:00
stevenhoefel b674c5712c DIRECTOR: Initial work for D5 RTE Cast Member loading. 2017-09-14 13:08:57 +10:00
Paul Gilbert 49d2dd5bfb DEVTOOLS: Fix escape sequence in create_titanic 2017-09-13 21:53:39 -04:00
Colin Snover 9ac219648e SCI: Omit SysEx delays when sending to MT-32 emulator
Real MIDI devices, and MT-32 in particular, need delays between
SysEx messages to ensure sufficient time to receive and process
the incoming data buffer. Sending too much data too quickly to
these devices can cause them to crash with a buffer overflow.

The MT-32 emulator, on the other hand, has no problem receiving
SysEx data instantly, so skipping the delays means that games that
send lots of data to the MT-32 will start up much faster.
2017-09-12 20:08:02 -05:00
Paul Gilbert d5df72998c TITANIC: Fix blocky squares during transitions on SGT level 2017-09-12 20:39:54 -04:00
Paul Gilbert 2b745ac298 Merge pull request #1013 from ccawley2011/15bit-indeo
IMAGE: Support rendering Indeo videos at 15bpp
2017-09-12 19:06:53 -04:00
Thierry Crozat e489e1c6b7 README: Add some more config parameters 2017-09-12 22:29:34 +01:00
Thierry Crozat 20e628cac3 SDL: Remove code for unused DoubleBufferSDLMixerManager 2017-09-12 21:46:20 +01:00
Thierry Crozat f7436a9b3a OPENPANDORA: Remove unused include
The use of DoubleBufferSDLMixerManager in the OpenPandora backend was
removed in commit b157269 but the include for it was left behind.
2017-09-12 21:41:55 +01:00
Thierry Crozat 629ea05ffc GPH: Remove unused include
The use of DoubleBufferSDLMixerManager in the GPH backend was removed
in commit 3b6398c but the include for it was left behind.
2017-09-12 21:37:52 +01:00
Thierry Crozat 3607b79d7d MACOSX: Remove mixer init from derived class for macosx backend
Since the macosx backend now does the same as the base SDL backend
we can just let the base class do its stuff.
2017-09-12 21:30:29 +01:00
Thierry Crozat 738e56268a I18N: Update translations templates 2017-09-12 20:28:45 +02:00
Bastien Bouclet d534299d38 PEGASUS: Don't do virtual calls when fading the screen
For better performance.
2017-09-12 20:25:24 +02:00
Bastien Bouclet 1519b2befc PEGASUS: Free the interface data when destroying the engine
Fixes loading a game from the launcher after returning to the launcher.
2017-09-12 20:25:24 +02:00
Bastien Bouclet 8e235f07a7 PEGASUS: Disallow loading / saving from the GMM from inner loops
InputDeviceManager::pumpEvents is called from neighborhood classes that
are destroyed when loading.
Don't allow loading from that method to prevent use after free bugs.
2017-09-12 20:25:24 +02:00
Bastien Bouclet 731028460f PEGASUS: Ignore events occuring while the GUI is visible
Otherwise, pressing escape to close the GMM opens the game's own menu.
2017-09-12 20:25:24 +02:00
Bastien Bouclet 64967c6222 PEGASUS: Reset the Pegasus biochip when toggling the shared screen space
Fixes a crash to debugger in the following case:
- TSA: Select he Pegasus biochip. The recall button is disabled.
- Select the gas canister in the inventory
- Jump to Norad VI
- Press T to show the Pegasus biochip. The recall button is still
incorrectly disabled. Clicking on it triggers an error.
2017-09-12 20:25:24 +02:00
Bastien Bouclet 6506b95fce PEGASUS: Call OSystem::updateScreen on each frame
Fixes the display of OSD information when toggling fullscreen.
2017-09-12 20:25:24 +02:00
Thierry Crozat 6a38fdf2b4 I18N: Update translations templates 2017-09-12 18:36:39 +02:00
Colin Snover bcbd443359 SDL: Stop using double buffering mixer on macOS
This mixer type was added in
943b4c2036 because "anything which
produces sampled data with high latency (like the MT-32 emulator)
will sound terribly", but as far as I can see (or reproduce), this
mixer doesn't do anything that would solve that problem, except
that it effectively doubles the size of the audio buffer so there's
less chance of an underflow due to slower-than-realtime synthesis
by the softsynth. But you don't need the overhead of a separate
thread to do that, you just need to increase the buffer size.
2017-09-12 11:35:51 -05:00
Colin Snover fa52df018e SDL: Fix DoubleBufferSDLMixerManager doubling audio latency
If it turns out that everything that had previously been fixed by
this manager is broken by this change, everything that had been
fixed probably could have been fixed by just increasing the audio
buffer size in SdlMixerManager. :\
2017-09-12 11:35:50 -05:00
Colin Snover 4a75fbab1b SDL: Reduce audio playback latency
The previous default buffer size of 4096 samples for 44kHz mixer
would add up to 93ms of audio latency, which is fine for early
adventure games, but this is significantly more latency than is
acceptable for games with full motion video. For these games,
the latency needs to be kept within roughly +15ms and -45ms of
video frame presentation to avoid lip sync problems. With this
change, the default audio buffer size is calculated to be 1024
samples at 44kHz (which happens to match what DOSBox uses).

There is a possibility that the reduced latency may cause issues
that did not previously exist with things like the MT-32 emulator,
where a larger buffer size allowed for a larger window where
high-complexity synthesis that could not be generated in realtime
could be balanced out by low-complexity synthesis that could be
generated faster than realtime. In this case, rather than
increasing the system mixer buffer size again, please move the
MT-32 emulator into its own thread and give it its own larger ring
buffer into which it can generate more sample data in advance,
independently from the rest of the audio system.

For other systems where this buffer size reduction might cause a
problem with audio drop-outs, a new audio_buffer_size
configuration option has been added to allow users to tweak the
audio buffer size to match their machine's ability to generate
audio samples.

Fixes Trac#10033. Also improves playback of samples in SCI that
were programmed to restart across several consecutive frames,
relying on lower audio latency in the original engine for this to
not sound bad, like the hopping sound at the start of chapter 1
of KQ7, and the sound of turning on the power in the digger train
in the Lighthouse volcano.
2017-09-12 11:30:01 -05:00
Colin Snover eb4e9fe1d4 GUI: Remove mostly-broken audio output sample rate control
Removing this GUI control was suggested as far back as 2011 at
<http://lists.scummvm.org/pipermail/scummvm-devel/2011-November/010416.html>.
There were no objections, but it was never removed. When working
on audio latency bugs, I independently rediscovered that the GUI
option was broken: the per-game options would *never* work, and the
option would not take effect until ScummVM was restarted because
there is no API for interacting with the backend audio mixer. So
now, it is finally gone.

Primarily for the sake of future troubleshooting, configurability
of the audio sample frequency within SdlMixerManager is maintained
for the moment, but now users will need to edit their ScummVM
configuration file manually to change it.
2017-09-12 11:27:45 -05:00
Colin Snover c2a4784706 SDL: Fix compilation on PSP2 2017-09-12 11:27:45 -05:00
Thierry Crozat fac7797e3e I18N: Update translations templates 2017-09-12 18:05:23 +02:00
Colin Snover 533bb5b257 SCI32: Improve chance of rendering non-8bpp AVIs
OpenGL backends don't always support the pixel format that is
returned by the Indeo 3 decoder when playing the GK2A.AVI from the
GK2 demo. If this happens, use the backend's preferred pixel format
and convert in software.

If a backend doesn't support any 16-bit or 32-bit format, the
playback code will error out. This is probably fine, since there
are not really any of those any more.

Fixes Trac#9994.
2017-09-12 11:03:15 -05:00
Colin Snover 2228ae255c SDL: List supported 32bpp pixel formats when using SDL2
_hwscreen is always initialized to 16bpp so the supported 32bpp
pixel formats would never be put into the list of supported pixel
formats, making it useless for engines to query for usable 32bpp
pixel formats.

This patch changes things so that the native desktop pixel format
is at the top of the supported formats list, and all pixel formats
<= the default desktop pixel format will now show up in the list
of supported formats. ("Supported" is somewhat of a misnomer here
since there is no hardware querying beyond checking the default
desktop pixel format. SDL generally accepts a wide variety of pixel
formats and tries to convert them to whatever the hardware
supports.)
2017-09-12 10:12:53 -05:00
Simei Yin e1c33a6b97 SLUDGE: Use Mod/Xm/S3m decoder in Sludge 2017-09-12 11:27:21 +02:00
Colin Snover df85727186 SCI32: Fix wrong open folder/doc icons in Phant2 computer on first render
This fixes flickering icons during the word hallucinations.
2017-09-12 00:45:19 -05:00
Colin Snover a7ede0ca39 SCI32: Fix bad positioning of text in Phant2 computer on first render
This fixes the glitchy positioning during the word hallucinations.

Fixes Trac#10036.
2017-09-12 00:45:18 -05:00
Colin Snover f9c43144a7 SCI32: Fix janky document scrolling in Phant2 computer interface 2017-09-12 00:45:18 -05:00
Colin Snover eb284c45ed SCI32: Replace spin loop with kWait in Phant2 alien password screen 2017-09-12 00:45:18 -05:00
Paul Gilbert fc0396f80f TITANIC: Fix freeze panning away from Parrot cage 2017-09-11 21:28:45 -04:00
Paul Gilbert c8c83145a8 TITANIC: The hasAudioTiming code was just an isActive flag 2017-09-11 19:35:21 -04:00
Thierry Crozat 5d419c2b58 AUDIO: Rename two functions in ModuleModXmS3m
This is an attempt to fix a compilation error on some platforms.
The error message seems to indicate that log2 might be a define
on thos platforms.

Note that the log2 implementation in ModuleModXmS3m is not the binary
logarithm, and we cannot use Common::intLog2.
2017-09-11 21:38:58 +01:00
Lothar Serra Mari a2bafbbe76 I18N: Update translation (German)
Currently translated at 100.0% (967 of 967 strings)
2017-09-11 20:50:44 +02:00
wreednumero2 8c407b5c70 I18N: Update translation (German)
Currently translated at 99.7% (965 of 967 strings)
2017-09-11 20:50:16 +02:00
Lothar Serra Mari 60f7f8df78 I18N: Update translation (German)
Currently translated at 99.7% (965 of 967 strings)
2017-09-11 20:49:57 +02:00
Ben Castricum 042776cade I18N: Update translation (Dutch)
Currently translated at 100.0% (967 of 967 strings)
2017-09-11 08:41:47 +02:00
Colin Snover 58105982ad AGOS: Fix value truncation in AGOSEngine::animateSprites
In commit f0581bab4a the index value
for the array was changed from a constant to a variable, but uint8
is too small to contain 293, so this value was ending up as 37.
2017-09-11 08:14:55 +02:00
Colin Snover cc12c878b7 BBVS: Fix UB shifting negative signed integers
These shifted values are replaced with their literal equivalents
as would be calculated on an x86.
2017-09-11 08:13:58 +02:00
Cameron Cawley e9aa47f55c GRAPHICS: Compare all fields in a PixelFormat individually instead of using memcmp. 2017-09-11 08:13:09 +02:00
Simei Yin 6558578f54 AUDIO: Import micromod code, xm/s3m/mod decoder 2017-09-11 08:10:09 +02:00
Torbjörn Andersson 59f8e62adf JANITORIAL: Silence GCC 7 warnings
These fall throughs have to be deliberate, or they wouldn't have to
check if mode equals 2 in the mode == 2 cases.
2017-09-11 06:48:34 +02:00
Colin Snover b8f89a772e MACOS: Fix builds on case-sensitive filesystems 2017-09-10 23:30:25 -05:00
Colin Snover 96d87a821f GUI: Fix non-macOS/iOS builds 2017-09-10 22:35:02 -05:00
Thierry Crozat 1c7ba60925 I18N: Update translations templates 2017-09-11 05:19:43 +02:00
Colin Snover 4706a8486e GRAPHICS: Remove dead code in BDF loadCharacter code 2017-09-10 22:17:17 -05:00
Colin Snover 200c8c442b SCI: Remove dead code 2017-09-10 22:17:17 -05:00