81110 Commits

Author SHA1 Message Date
Colin Snover
0d63d2a7ad VIDEO: Wrap out-of-range VMD audio samples instead of clipping
The 16-bit DPCM decompressors in SSCI and Urban Runner use a 16-bit
register to store sample data, without any special handling of
overflow. As such, out-of-range samples simply wrap around, rather
than getting clipped.

It is not totally clear if the wrapping behaviour was intentionally
exploited to handle extreme transients, but in any case, videos
like GK2 5280.VMD that generate samples outside the signed 16-bit
range cause a loud pop when using clipping, but play back correctly
when wrapping.
2017-06-17 13:09:27 -05:00
Colin Snover
12afcaec49 SCI32: Support old-format 8-bit DPCM coding for SCI2 2017-06-17 13:09:27 -05:00
Colin Snover
e69507cc28 SCI32: Implement engine-accurate DPCM overflow behaviour
DPCM decompression algorithms in SSCI operate directly on 8- and
16-bit registers, so any sample that ends up being out-of-range
during decompression gets wrapped by the CPU, not clipped.

This does not fix any known problem with AUD files, but there are
some VMDs (e.g. GK2 5280.VMD) which are known to contain OOR
samples. Making this code more accurate should prevent trouble
with any other similar files.
2017-06-17 13:09:27 -05:00
Colin Snover
7334f33a3d SCI: State SCI version in error if kernel subop detection fails 2017-06-17 13:09:27 -05:00
Paul Gilbert
9dbd9c567e TITANIC: Fix maintaining total playtime for savegames 2017-06-17 13:39:13 -04:00
Paul Gilbert
9b09900a07 TITANIC: Minor cleanups, comments, and feature flags to meta engine 2017-06-17 13:15:23 -04:00
Paul Gilbert
99eba44150 DEVTOOLS: Added German MissiveOMat data to create_titanic 2017-06-17 10:03:52 -04:00
Filippos Karapetis
eab5a1e0ee CHEWY: Fix a bug in loadSceneInfo() 2017-06-17 13:27:48 +03:00
Paul Gilbert
b9c55494c2 DEVTOOLS: More create_titanic German corrections thanks to Lightkey 2017-06-16 21:36:49 -04:00
Paul Gilbert
0189243cc9 DEVTOOLS: Fix incorrect German text in create_titanic 2017-06-16 21:09:42 -04:00
Paul Gilbert
47ccae54af DEVTOOLS: Add missing /DE suffix to German resource in create_titanic 2017-06-16 21:04:18 -04:00
Paul Gilbert
783d748dc5 DEVTOOLS: Add German pronoun list to create_titanic 2017-06-16 20:57:59 -04:00
Paul Gilbert
8cedc7af0c DEVTOOLS: Add German parser strings to create_titanic 2017-06-16 20:38:10 -04:00
Paul Gilbert
eedbb7df4e TITANIC: Fix single incorrect frame showing when Bellbot leaves 2017-06-15 21:24:24 -04:00
Eugene Sandulenko
d3cb20819a I18N: Update translation (Ukrainian)
Currently translated at 99.5% (953 of 957 strings)
2017-06-16 01:56:32 +02:00
Paul Gilbert
c020959892 TITANIC: Have ship announcements use the speech sound type 2017-06-15 19:56:12 -04:00
Bastien Bouclet
9bb9c0d58e GUI: Focus the first 'focusable' widget when rebuilding dialogs
Fixes Trac#9838.
2017-06-13 07:21:34 +02:00
Bastien Bouclet
1e64ef48e0 SCI32: Add detection for PQ4, French CD version 2017-06-13 06:06:39 +02:00
Paul Gilbert
335bb21afb TITANIC: Fix bots to do more than a single idle sequence 2017-06-12 20:57:11 -04:00
Paul Gilbert
649f51a65e TITANIC: Fix saying goodbye to Bellbot 2017-06-12 20:12:32 -04:00
Paul Gilbert
12f53ca599 TITANIC: Add missing addNode to WC_ABSTRACT handling 2017-06-12 08:16:29 -04:00
Paul Gilbert
9c21bb9d1e TITANIC: Fix brief black boxes on fires in Canal 2017-06-11 17:31:33 -04:00
Paul Gilbert
6930f2b648 TITANIC: Rename viewChange to freeSurface 2017-06-11 17:06:46 -04:00
Paul Gilbert
3be659b5c1 TITANIC: CGameManager viewChange better named as roomChange 2017-06-11 16:19:54 -04:00
Walter van Niftrik
d272351055 ADL: Set ADGF_TESTING for hires4 2017-06-11 15:58:35 +02:00
Walter van Niftrik
900ae1d064 ADL: Fix hires4 dropped item drawing 2017-06-11 14:40:45 +02:00
Paul Gilbert
b5ac7cc3ed TITANIC: Fix BellBot getting clipped incorrectly when walking off-screen 2017-06-10 22:13:17 -04:00
Thierry Crozat
3b8a7a7f25 I18N: Update translations templates 2017-06-11 03:42:09 +02:00
Colin Snover
63ad8fbbed SCI: Tidy Script errors & ensure script number exists in all of them 2017-06-10 20:34:55 -05:00
Colin Snover
d6ff67e3c4 SCI32: Fix detection and loading of localized resources in Torin
Italian still needs to be fixed, but nobody seems to have access
to this version at the moment.

Fixes Trac#9772.
2017-06-10 20:32:22 -05:00
Paul Gilbert
43440193f0 VOYEUR: Fix backgrounds not showing for static rooms 2017-06-10 18:21:04 -04:00
Thierry Crozat
7b03f9e877 I18N: Update translations templates 2017-06-10 21:36:50 +02:00
Willem Jan Palenstijn
c7d631cb66 SCI: Expand kernel breakpoint pattern matching for negative matches
See matchKernelBreakpointPattern() for samples. The main envisioned use is

DoSound*,!DoSoundUpdateCues

to match all DoSound sub-functions except DoSoundUpdateCues.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
e7b6a257b9 SCI: Change 'none' breakpoint action to 'ignore' for consistency 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
4102a77964 SCI: Clean up breakpoint code (indentation, consistency) 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
e2e3f7c4c5 SCI: Move bpk/logkernel to main breakpoint infrastructure
This changes the syntax for bpk and logkernel:

Enable breakpoint on kernel call:

bpk FrameOut

Enable logging for kernel call:

bpk FrameOut log
For backward compatibility this has an alias: logkernel FrameOut

Removing a kernel call breakpoint is done with bp_del/bc now.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
0f0ecff0b8 SCI: Print breakpoint info on creation 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
4d34d586a6 SCI: Allow setting bp action directly on creation 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
b3866aa3d5 SCI: Allow multiple breakpoints with same trigger but different action 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
be84cfdb59 SCI: Add inspect, none breakpoint actions 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
423ecde8e0 SCI: Move printObject from console to scriptdebug 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
8e683db72b SCI: Add break/log/backtrace actions for triggered breakpoints
The action can be set using the new console command bp_action/bpact.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
cb69d10e96 SCI: Add underscores to Breakpoint member variables 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
6d143e6da3 SCI: Remove union from Breakpoint 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
b56a49c53e SCI: Move backtrace output to scriptdebug.cpp 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
e9867356f5 SCI: Handle selector read/write breakpoints from opcodes 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
1e5c965a2b SCI: Move scriptdebug declarations to separate header 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn
3554875c7a SCI: Fix wildcard selector breakpoints
0f9c33e02f1cb2c740c1eb0dcaad96dd22ec29e7 in 2011 broke selector
breakpoints of the type "ObjName::", which previously caught all
selector sends of the named object.

Thanks to TMM and snover for noticing.
2017-06-10 21:32:35 +02:00
Colin Snover
61f07c13d3 SCI: Start engine at tick 1
In SSCI, games could never start at tick 0 because the video
benchmarking code on game startup would take several ticks to
run. In ScummVM, where the benchmarking code is disabled, it
becomes possible for games to start at tick 0. This can break a
lot of kernel code, which uses tick 0 as a special value
indicating that a feature is not active. For example, in GK2,
the music at the start of the game will not fade in on systems
that are fast enough to start audio playback at tick 0, since
a fade start tick of 0 is used to indicate audio fade is disabled.

Fixes Trac#9830.
2017-06-10 12:28:21 -05:00
Walter van Niftrik
4cfb93c227 ADL: Add loading of hires4 game data 2017-06-10 17:07:17 +02:00