Commit Graph

82513 Commits

Author SHA1 Message Date
Thierry Crozat
8607b702ed I18N: Update translations templates 2017-09-15 03:46:19 +02:00
Colin Snover
029eeeb803 SCI32: Fix Phant2 "auto-save"
The game has a feature where it will automatically create a save
game when you quit the game through the in-game control panel (or
when you die, for some reason).

Unfortunately, due to bad programming, this automatic save would
just overwrite whatever was in save slot 1 (slot 0 in the original
interpreter). Find this attempt to auto-save the game and redirect
it to the auto-save slot. This might not be totally correct, but
it is at least better than destroying a save game.

Fixes Trac#10201.
2017-09-14 20:45:02 -05:00
Colin Snover
88420970b7 SCI32: Fix PQ:SWAT platform 2017-09-14 00:30:57 -05:00
Colin Snover
421a2defcb SCI32: Drop platform from game ID for games that are Windows-only 2017-09-14 00:30:57 -05:00
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