aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-30SCI32: Document & clean up extra rect argument for frameOutColin Snover
This extra rect seems to probably only ever be used by VMD playback in some SCI2.1 games.
2016-06-30SCI32: Add low resolution constantsColin Snover
In a few places in the graphics system, fixed low-resolution values are used instead of the game script resolution.
2016-06-27CONFIGURE: Only open config.log after showing helpWillem Jan Palenstijn
This prevents ./configure --help from clearing config.log.
2016-06-27SCI: Add script patch for another Colonel's Bequest game bugMartin Kiewitz
Command input stays disabled, when oiling the arm of the armor. We fix this. This script bug also happens, when using the original interpreter. Fixes bug #7154
2016-06-27SCI: Fixed KGetTime with SYSDATE subop in SCI0-LATE.Omer Mor
SSCI implementation of the SYSDATE subop of the GetTime kernel function was changed between SCI0-LATE and SCI01: The base year used was changed from 1920 to 1980. This subop is used in "Codename: Iceman" (Say "ask for date" to a passing girl on the beach). The Atari ST version of "Codename: Iceman" use the 1980 base year. The Amiga version of "Codename: Iceman" appears to return the time instead of date, with 0 for the YEAR part.
2016-06-26SCI32: Fix benchmarking for QFG4Colin Snover
2016-06-26SCI32: Change Color::operator!= to all operator== directlyColin Snover
2016-06-26SCI32: Enable aspect ratio correction on QFG4CDColin Snover
2016-06-26SCI32: Fix typoColin Snover
2016-06-26SCI32: Remove no-longer-relevant commentColin Snover
2016-06-26SCI32: Add more workarounds for SCI2.1early gamesColin Snover
These games all share the same bad system script that always sends NULL as a second argument to kDoSound(play).
2016-06-26SCI32: Fix broken Remap implementationColin Snover
Remap would crash SCI2.1early games with 19 remap slots, and did not actually work in most cases in SCI2.1mid+ games. The SCI16 implementation was moved to its own separate file but was otherwise touched as little as possible, so may still have similar problems to the SCI32 code. 1. Split SCI16 and SCI32 code into separate files 2. Use -32 prefixes for SCI32 code and no prefix for SCI16 code, where possible, to match other existing code 3. Avoid accidental corruption of values from the VM that may be valid when signed or larger than 8 bits 4. Added documentation 5. Add missing remap CelObj calls 6. Inline where possible in performance-critical code paths 7. Fix bad `matchColor` function, and move it from GfxPalette to GfxRemap32 since it is only used by GfxRemap32 8. Fix bad capitalisation in getCycleMap 9. Remove unnecessary initialisation of SingleRemaps 10. Update architecture to more closely mirror how SSCI worked 11. Clarify the purpose of each type of remap type (and associated variable names) 12. Split large `apply` function into smaller units 13. Fix buffer overrun when loading a SCI2.1early game with remap 14. Remove use of `#define` constants 15. Warn instead of crashing with an error on invalid input (to match SSCI more closely) 16. Change the collision avoidance mechanism between the RemapType enum and remap kernel functions 17. Add save/load function
2016-06-26SCI32: Fix hang when playing auto-play audio channelsColin Snover
2016-06-26SCI32: Fix race condition when freeing audio resourcesColin Snover
It's not possible to call any ResourceManager methods from any thread other than the main thread because it is not thread-safe.
2016-06-26MOHAWK: Remap bitmaps not to use undefined colorsBastien Bouclet
The Spanish version of Myst has bitmaps that use palette indices in the system reserved range. Affected pixels previously used colors from the Windows system palette instead of the bitmap's own palette, resulting in visual glitches. Bitmaps are now remapped to the screen palette which is made of the Windows reserved palette and part of the bitmap palette. The original engine used GDI's StretchDIBits with DIB_RGB_COLORS to achieve the same result. Fixes #7153.
2016-06-25SCI: Add getGameObjectName to fix compilationMartin Kiewitz
Is needed for 80462b3 (Fix auto-saving in the fan-made Cascade Quest)
2016-06-25SCI: Fix auto-saving in the fan-made Cascade QuestMartin Kiewitz
Script patch to change the fixed slot 999 to fixed slot 99 in the game scripts and additional code for kSaveGame, that checks for Cascade Quest + slot 99 and will then use ScummVM slot 0, which is our auto-save slot. Fixes bug #7007 Also added the game name to the other fan-made script patch.
2016-06-25SCI32: Properly initialize pausedAtTick inside Audio32::play()Filippos Karapetis
Fixes audio not playing in later SCI32 games that use Audio32
2016-06-25Revert "SCI32: Properly initialize AudioChannel inside Audio32::play()"Filippos Karapetis
This reverts commit 5eaea05a2b6af0ddcf28fca1f0cd3fc0c54f4d07.
2016-06-25TOLTECS: Fix typoEugene Sandulenko
2016-06-25TOLTECS: Clear dead end rects count.Eugene Sandulenko
2016-06-25SCI: Script patch for critical Colonel's Bequest game bugMartin Kiewitz
This patch is about an issue, when interacting with the armor in room 37 (main house, downstairs). This bug also happened, when using the original interpreter and effectively froze the game depending on the coordinate of Laura Bow, when the command was entered. Fixes bug #7119 Versions affected: English PC/Atari ST/Amiga Floppy
2016-06-25SCI: Fix SQ1VGA script patch, fixes bug #7145Martin Kiewitz
Script patch used "lsg" for one instruction, which should have been "lag" instead. Caused issues with the spider droid. Added more details about this script patch in comments. Also specified the method for a qfg3 script patch in comments.
2016-06-23SCI32: Properly initialize AudioChannel inside Audio32::play()Filippos Karapetis
Fixes audio issues caused by uninitialized variables
2016-06-23SCI32: Fix usage of the C++11 override keyword with MSVCFilippos Karapetis
MSVC does not allow the usage of the "override" keyword on function definition, only on declaration
2016-06-23SCI32: Fix potentially uninitialized variableFilippos Karapetis
2016-06-23SCI32: Const correction in Audio32's readBuffer() implementationFilippos Karapetis
2016-06-22SCI: Assert on seeks past the end of audio resource bundlesColin Snover
This should never be allowed to happen, but currently does on multi-CD games with different resource bundles on difference CDs (Phant1, PQ:SWAT, GK2) because the resource manager does not yet have the ability to handle this situation.
2016-06-22SCUMM HE: Update sound flags and queue, for new settings.Kirben
2016-06-22SCUMM HE: Document sound opcodes.Kirben
2016-06-21SCI32: Implement kBitmapDrawViewColin Snover
2016-06-21SCI32: Expose a draw buffer on BitmapResource objectsColin Snover
Most of the time, we get a bitmap to draw on it. Exposing a buffer avoids consumers having to create their own all the time, and encourages use of common drawing code exposed by the buffer.
2016-06-21GRAPHICS: Use better color for 1bpp BMPsEugene Sandulenko
2016-06-21AUDIO: Fix incorrect forward declarationColin Snover
2016-06-21SCI32: Remove unused dependencies from GfxFrameoutColin Snover
2016-06-21SCI: Add an explanation about LRU removals when fetching resourcesColin Snover
Several times I have run into this code and had to take a minute to remind myself that the call to remove from the LRU on find is not wrong, so it seemed to deserve a comment.
2016-06-21SCI32: Fixes to GfxText32Colin Snover
1. Inline borderSize constant in createFontBitmap for consistency 2. Fix "DrawTextBox GetLongest=0" warning to only appear in games that actually had this check (SQ6 and MGDX) 3. "Fix" implementation of getTextSize for SCI2.1early, which gave lines with word wrap disabled a height of 0 4. Add inlining hints to some methods in BitmapResource that were missing them for some reason
2016-06-21SCI32: Implement basic kMessageBoxColin Snover
This kernel call seems only to be used by KQ7 1.51 (which was Windows-only) to send warnings to the user. It was easy enough to do a basic implementation in the ScummVM GUI rather than just make it an empty call, so now it is a thing.
2016-06-21SCI32: Add workaround for kScrollWindowAdd call in PhantasmagoriaWillem Jan Palenstijn
2016-06-21SCI32: Implement kScrollWindowWillem Jan Palenstijn
These should be all the actually used subfunctions. Co-authored-by: Colin Snover <github.com@zetafleet.com>
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-06-21SCI32: Make GfxText32::_scaledWidth/Height staticsWillem Jan Palenstijn
They were global in SSCI. This way secondary GfxText32 instances (such as in ScrollWindow) use the correct scaling.
2016-06-21SCI32: Fix drawText on consecutive control codesWillem Jan Palenstijn
2016-06-21SCI32: Fix getTextWidth on consecutive control codesWillem Jan Palenstijn
2016-06-21SCI32: Add low-pass filter to 8-bit SOL audioColin Snover
This improves the perceived quality of audio in games that use 8-bit samples for music, like Torin.
2016-06-20SCI32: Add kDoSound(play) workaround for LSL6hiresColin Snover
2016-06-20SCI: Minor cleanup of kDoSoundColin Snover
Replaces unused kernel calls to use kEmpty, and set correct signatures for SCI32 kernel calls.
2016-06-20SCI32: Rewrite digital audio engineColin Snover
This provides a complete implementation of kDoAudio through SCI2.1mid, plus partial implementation of SCI3 features. Digital audio calls shunted through kDoSound have also been updated to go through the SCI32 audio mixer, though these shunts are a bit hacky because the ScummVM implementation of kDoSound does not currently match how SSCI kDoSound is designed. It is probably possible in the future to just replace the SCI1.1 audio code (audio.cpp) with the new SCI32 code, since the major differences seem to be that (1) SCI1.1 only supported one digital audio playback channel (this is configurable already), (2) it had extra commands for CD audio playback and queued sample playback.
2016-06-19SCI: Split audio sync to its own classColin Snover
SCI32 has its own audio handling code, but audio sync code is the same as SCI16.
2016-06-19AUDIO: Make WAV streams seekableColin Snover
This allows raw PCM in WAVE containers to have duration and be seekable, and opens the door for ADPCM streams to be seekable later if necessary. This change is needed to avoid duplication of RIFF/WAVE container parsing for SCI engine, which uses raw PCM WAVE files and needs to be able to determine their lengths.