Commit Graph
561 Commits
Author SHA1 Message Date
sluicebox 27e339c171 SCI32: Remove unused SCI3 big endian handling
This code anticipated Macintosh SCI3 games, but they do not exist.
Mac versions of SCI3 games are all SCI2.1 Late.
2024-04-11 07:52:15 -07:00
sluicebox 32fa3679ea SCI: Reduce g_system use 2024-01-30 13:22:44 -08:00
Le Philousophe 45286ad131 SCI: Migrate engine to Path 2023-12-24 13:19:25 +01:00
sluicebox 62a5b6dc95 SCI: Refactor away SciEngine::exitGame 2023-11-21 22:02:54 -08:00
sluicebox 8dac2204cd SCI: Clean up SegManager
Fewer casts, pointers, and parameters
2023-11-21 22:02:54 -08:00
sluicebox f2d0b0b33a SCI: Prevent potential stack overflow in errorString 2023-11-21 22:02:53 -08:00
sluicebox 49a2fac05e SCI: Reduce global engine usage 2023-11-16 18:44:42 -08:00
sluicebox e491dd4e81 SCI: Replace fan-made patch message box with warning
We no longer need an unskippable message box about fan-made patches.

We really just want to know if a fan-made patch is present when
diagnosing a bug report, just in case that's part of the problem.
This lets us re-enable detection of the patches that GOG includes
in their releases.
2023-11-14 15:38:05 -08:00
sluicebox 3e339b0097 SCI: Update errorString
- Fixes stack overflow when `error` is called from kernel function
- Includes most recent pc when `error` is called from kernel function
- Handles script procedures in addition to object methods
- Uses target name to identify game to log variant/fallback info
- Condenses errorString to a single-line header
2023-11-09 14:50:58 -08:00
sluicebox cfa1ad6de2 SCI: Fix errorString version query 2023-11-08 01:09:59 -07:00
sluicebox cb233df64d SCI: Fix errorString when execution stack isn't initialized 2023-11-07 20:47:31 -07:00
Filippos Karapetis e9e88003dc SCI: Add sanity checks to SciEngine::errorString()
It would crash in errors thrown during resource loading
2023-11-05 11:44:36 +02:00
sluicebox 6bffed45b3 SCI: Remove redundant checks. PVS-Studio V547 2023-10-31 14:20:26 -07:00
Ralph Caraveo e9b8394750 SCI: Provide additional errorString context on crash 2023-10-08 08:32:14 +02:00
sluicebox daed465639 SCI: Add option for high resolution Mac fonts
This adds the existing GAMEOPTION_HIGH_RESOLUTION_GRAPHICS option to
Mac games with native fonts. Default is enabled. If disabled, then the
low resolution Mac fonts are used and the game isn't upscaled.
2022-11-06 23:05:20 -08:00
sluicebox 1efdb1cb6c SCI: Add support for Macintosh fonts
High-resolution native Macintosh fonts are now supported in the
following games when the game's executable is present:

- Castle of Dr. Brain
- Freddy Pharkas
- King's Quest 6
- Leisure Suit Larry 1
- Leisure Suit Larry 5
- Space Quest 1

And in these games when classicmacfonts.dat is present:

- Leisure Suit Larry 6 (floppy)
- Quest for Glory 1
2022-11-06 23:05:20 -08:00
sluicebox 9be84837b3 SCI: Add speed_throttle debug command
Allows testing the speed throttler for possible improvements
and to demonstrate what it affects and what it doesn't.

`speed_throttle 0` disables kGameIsRestarting throttling.
(Except for game-specific workarounds.)

This command is possible due to several recent cleanups of other
throttling mechanisms that overlapped and were absorbed by this one.
2022-08-12 00:33:20 -04:00
sluicebox 9d40b46f7e SCI: SciEngine was accessing itself through globals 2022-08-02 17:23:34 -04:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Filippos Karapetis 763b4cbd84 SCI: Corrections to the initialization/destruction of the SciTTS class 2021-12-24 02:57:27 +02:00
Filippos Karapetis a488bb47e8 SCI: Text to Speech (TTS) functionality for SCI16 (SCI0 - SCI1.1) games
This is based on the work done for GSoC by @taylorzhancher in PR #3256

Highlights:
- TTS has been hooked globally onto places where text is shown
- TTS is currently performed for textboxes and button texts
- TTS stops when text windows are disposed (which enhances the in-game
  experience)
- No game-specific logic has been added
- This hasn't been extensively tested with all SCI16 games yet
- There will be cases that are not handled properly yet
- The TTS functions have been grouped under a SciTTS class
2021-12-24 02:57:27 +02:00
sluicebox 8e9c93938e SCI: Use LSL5 patch directory name 2021-12-20 12:42:42 -05:00
Orgad Shaneh 940c7bfc14 SCI: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Tarek Soliman 1720cdb659 SCI: Fix GK2 patch dialog button behavior
The button behavior was reversed.
"Download patch" did nothing and "ok" downloaded the patch.
2021-08-21 00:19:51 +03:00
sluicebox 8e1d90f8e4 ALL: Remove clearAllDebugChannels() from Engine dtors 2021-06-14 12:42:38 -05:00
sluicebox 0715affdd6 SCI: Use for loop in gameHasFanMadePatch() 2021-05-25 10:31:59 -06:00
sluicebox 4e8db68d4a SCI: Remove asserting "new" allocation results 2021-05-23 16:55:35 -06:00
sluicebox a8dacadf40 SCI: Use initializer list for all SciEngine members
Cleans up inconsistencies and excludes more SCI32 members
from SCI16-only builds
2021-05-23 11:26:30 -06:00
ysj1173886760 3a65856f4c SCI: move debug channels to metaEngineDetection 2021-05-22 01:34:57 +02:00
sluicebox 604ab98b5e SCI: Removed completed TODO 2021-05-18 18:32:44 -06:00
sluicebox 4713278be2 SCI32: Add detection for LSL7 Polish "data" directory
Fixes bug #10066
2021-05-16 21:11:08 -06:00
Eugene Sandulenko 5e7fe2dc57 JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
sluicebox cc95809bb5 SCI: Fix compatibility with PQ1VGA & PQ3 GOG versions
GOG includes NRS scripts in PQ1VGA and PQ3 which trigger our
warning about fan patches. The patches introduce several forms of
speed throttling but we already throttle at the engine level.
This changes timing throughout the games and may cause conflicts.

This commit:
- Disables the speed throttling that the patches introduce
- Removes the warning for these versions

GOG versions now play the same as original unpatched ones.
2021-04-05 23:47:45 -07:00
Cameron Cawley c877097b49 ALL: Remove use of "" in Common::U32String constructors 2020-11-16 16:56:58 +00:00
aryanrawlani28 12e4f871a3 GUI: U32: Improve u32 in all engine subsystems
- Common: add wordWrap function to ustr.cpp
- Bladerunner: Explicitly state we have a U32String in subs (same as Subtitles::loadOuttakeSubsText)
- Don't use translations for engine specific "put strings", because they might not support.
- SCI: Use const references for showScummVMDialog
- SCUMM:
-- Don't use translation in md5 warning. left comments with the translated version.
-- Remove some redundant headers in help.cpp
-- Don't use translation in handleSaveload when printing to console
-- Also, display success transaction correctly via u32::format
- TESTBED: Use fake constructor when setting label of button
- SKY: Correctly use translation when using SaveStateDescription
- ULTIMA: Don't use translations when display_string
- ENGINES:
-- GenerateUnknownGameReport correctly, with proper translations.
-- There was an error, where a function had been declared twice, in a header file. Correct this.
2020-08-30 14:43:41 +02:00
aryanrawlani28 bed05ea134 GUI: U32: Fix compilation errors across entire project
After the initial changes just to scummvm/gui for u32, this commit includes the whole project

- Widget creations now always have u32 descriptions, labels, or tooltips
- Message dialogs make use of default arguments instead of providing the same argument explicitly
- encode String::format properly before passing on as argument where necessary
- Modify hugo utils (yesNoBox and notify box) to use u32
- Also provide fake constructors for the above which redirect to the u32 constructor
- Convert all keymap descriptions to u32 across all engines
- showConfirmationDialog in mohawk now uses u32
- showScummVMDialog also uses u32
- Scumm engine has dialogs now which use u32
- General fixes and wrapping convertToU32String for setLabels and related functions
- Add a fake constructor to MesssageDialog which redirects to the u32 constructor
2020-08-30 14:43:41 +02:00
Walter van Niftrik c8293df572 SCI: Add Roland D-110/D-10/D-20 support 2020-08-27 14:56:17 +02:00
Zvika Haramaty b4d40ed596 SCI: add support for Hebrew translation of Torin
- Detect fan made Hebrew translation of Torin's Passage
- Use BiDi algorithm in SCI engine
2020-05-19 12:32:58 +02:00
Paul Gilbert ba147f5ad5 SCI: Refactor to use Engine debugger 2020-02-16 13:07:19 +02:00
sluicebox 6e9d0fafb5 SCI32: Use Mac cursor palettes
Fixes cursor colors in SCI32 Mac games that use native cursor resources.
2020-02-12 09:04:57 -08:00
Filippos Karapetis ff044aa431 SCI: Move the GK2 subtitle patch dialog inside the SciEngine class
This is now grouped together with the other GUI messages. The script
patcher class itself does not need to handle such logic
2020-02-09 23:27:11 +02:00
sluicebox c1fb6562ac SCI32: Add Save/Restore support for Mac games 2020-01-30 16:56:01 -08:00
Colin Snover 07df6cc254 SCI: Add built-in resource patcher
The resource patcher can be used to patch non-script resources
like views, maps, sounds, etc. It is more primitive than the script
patcher in that it does not use signatures for safe and automatic
patch relocation, but it does at least allow existing resources to
be grown if needed.

Refs Trac#9788. Refs Trac#9690.
2020-01-19 21:37:20 +02:00
sluicebox 4b13347df8 SCI32: Add support for AIFF audio
Used by at least LSL6 Mac CD for voices
2019-10-21 11:13:24 -07:00
sluicebox 999f813dc3 SCI32: Add QFG4 character import message box
Adds the ScummVM message box explaining saved character files
to the QFG4 import character screen.
2019-09-25 21:00:48 -07:00
Kawa 9aadb27267 SCI: Add some more SCI11+ features
Also gate them behind the presence of a 184.VOC resource instead of GID_CATDATE. This should not matter with regards to the remap effects -- the 2015 and 2016 demos had none, and the first that did has an unknown release status. Only the 2017 demo would fall, which would be easily fixed by dropping in a valid 184.VOC patch file.
2019-06-23 01:46:53 +03:00
Filippos Karapetis 9551e64bdf SCI: Remove unnecessary two-phase Kernel initialisation
Adapted from csnover's commit 8c96c1fd3e1568b61ee0594522615466f26a7793
2019-05-12 19:05:51 +03:00
Colin Snover 8cec2ba8f9 SCI: Remove unnecessary two-phase GfxCursor initialisation 2019-05-12 19:05:50 +03:00
sluicebox bc2ab79261 SCI: Add parser support for LSL3, SQ3 German Amiga
Add parser support for multilingual Amiga versions that were released
in 1991 and are SCI_VERSION_1_MIDDLE
2019-04-09 20:50:28 +03:00
sluicebox 4a467cb1f8 SCI: Fix LONGBOW Green Man riddles and forest sweep 2019-04-06 15:01:49 +03:00