Commit Graph
63 Commits
Author SHA1 Message Date
athrxx b3baa636ee SCUMM: whitespace 2024-11-23 23:11:51 +01:00
AndywinXp 9f319cdd86 SCUMM: Add Mac screen implementation for remaining LEC games
This adds optional EPX scaling and 640x480 resolution for
LucasArts Macintosh games other than Indy3 and Loom.

This includes:
* Monkey Island 1
* Monkey Island 2
* Indy4
* Day of the Tentacle
* Sam&Max
* Full Throttle
* The Dig

In doing this, I reverted the ugly code which previously offset
the game screen 20 pixels below (to create an internal 320x240
buffer, instead of 320x200). Instead of just offsetting mouse
coordinates and the final screen texture, I used to offset the
in-engine graphics elements. Ew.

This ensures flawless savegame compatibility between old and
new, without touching anything.
2024-10-28 08:24:59 +01:00
AndywinXp 5a77aa1aa7 SCUMM: MONKEY1 (CD): Improve palette fix for room 36
Saving and loading now handle the palette change correctly
2024-09-07 21:45:17 +02:00
AndywinXp eed99aa7ba SCUMM: Fix comment 2024-09-07 16:59:49 +02:00
AndywinXp ad201e3b3e SCUMM: MONKEY1 (CD): Improve palette enhancement in room 36
Also make it the default on Mac, which is how it should be in the original.
2024-09-07 16:38:44 +02:00
Donovan Watteau 7cb47c31f8 SCUMM: Add/update some enhancementEnabled() calls for some workarounds
I reviewed what I was comfortable with; this change is not complete
(and I didn't review the HE workarounds at all), but it's still an
improvement.

I may need to update the Enhancement page on the wiki with these
changes...
2024-08-29 22:12:10 +02:00
Donovan Watteau edc3d61cc2 SCUMM: JANITORIAL: Rename _enableEnhancements to enhancementEnabled in comments 2024-08-02 21:35:53 +02:00
AndywinXp 6c671faec1 SCUMM/HE: PUTTPUTT: Fix bug #6710
Verified from v60he (DOS) and v70he (Windows) disasms.
2023-07-09 23:37:13 +02:00
Donovan Watteau cc034f60be SCUMM: DOTT: Add more context about bug no. 1831 (WORKAROUND)
More background about this original scripting issue was given by
Oliver Franzke from Double Fine during the GDC17 conference.

Documenting any upstream explanation about original bugs is probably
good for SCUMM historians!

https://www.p1xelcoder.com/resources/GDC_2017_Remastering_DotT_and_Grim.pdf
https://www.youtube.com/watch?v=HqWrdIf69M8&t=1340
2023-03-08 21:08:21 +01:00
Torbjörn Andersson 1ffa644d20 SCUMM: Add feature flag for the "Ultimate Talkie" version of MI1/MI2
There are so many workarounds where we either want to make sure it's not
the "Ultimate Talkie" version or that it is, that it's much nicer to
have a feature flag than having to strcmp() the variant.
2022-11-07 22:07:28 +02:00
Le Philousophe 137b51d7ac SCUMM: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Donovan Watteau e6452538a3 SCUMM: Prevent vm.slot[] OOB access in ScummEngine::startScene()
vm.slot[] only has NUM_SCRIPT_SLOT slots; don't dereference it with
_currentScript when _currentScript has the special 0xFF value (which is
always bigger than NUM_SCRIPT_SLOT). Its content was already unused in
that case, anyway.

Found with UBSan while calling `room 33` in the debugger in MI1.
2022-09-29 22:50:23 +02:00
athrxx 319e50fc35 SCUMM: (LOOM/VGA Talkie) - improve verb handling
- get rid of weird hackery in o5_verbOps
- make sure the verbs are properly restored after loading a savegame
2022-08-10 15:27:23 +02:00
AndywinXp b30e2ab98a SCUMM: v7-8: Add missing removeBlastTexts() call in startScene()
This change, verified in the disasm, fixes minor graphical glitches
in which the texts stay on for a frame longer than they need to be.
2022-08-06 13:33:56 +02:00
athrxx 87fea610f3 SCUMM: (v1/2) - fix bug no. 6872
('I can't reach it" when using reservations terminal in airports)

There was one call to resetSentence() missing. It its the same in v1 and v2. There are 4 calls to this function in the whole code, we did have 3 of these...

I didn't check v0, since I don't have it.
2022-04-30 03:45:39 +02:00
Torbjörn Andersson 274c406c31 SCUMM: Only auto-show keyboard in MI2 if it has copy protection screen
The Mac version only shows a copy protection screen if you explicitly
ask for it, and the unofficial talkie version doesn't show one ever.
Therefore there is no reason to trigger the virtual keyboard.
2022-03-11 15:55:50 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh ed5489929c SCUMM: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
sluicebox 674ed112aa JANITORIAL: Update more old bug tracker numbers
I missed the six digit ones and a few others in:
93eeffc84d
2021-06-09 14:28:52 -06:00
sluicebox 93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
Rodrigo Rebello 30b6a479e5 SCUMM: Fix bug #6679 - INDY3 DOS-EGA: book of maps graphic glitch
Force correct width value for room 64 (book of maps) in Indy3. This
works around the wrong value stored in the data files of a specific
version of the game (DOS/EGA v1.0, according to scumm-md5.txt).
2014-11-30 13:30:00 -02:00
Johannes Schickel 3847465163 SCUMM: Make GPL headers consistent in themselves. 2014-02-18 02:39:38 +01:00
Tobias Gunkel 9dd6105ce6 SCUMM: replace "c64" with "v0" when it applies to both C64 and AppleII v0 versions
In addition some routines (e.g. the gfx ones) that are even used in v1.
2012-02-11 08:30:08 +01:00
Johannes Schickel 4ea4172cba SCUMM: Implement proper Indy4 Amiga palette handling.
This should fix incorrect text colors in some scenes.
2011-08-26 05:54:47 +02:00
Max Horn 9ec64a66fe SCUMM: Turned ResTypeData into a Common::Array<Resource>, subsuming its _resource member 2011-05-13 14:48:01 +02:00
Max Horn 45207a52d4 SCUMM: Remove ResTypeData::_num 2011-05-13 14:12:00 +02:00
Max Horn 107e25ff5b SCUMM: Document resource usage count / expiry a little bit 2011-05-13 11:47:12 +02:00
Max Horn 0342ab3f1b SCUMM: Rename ResTypeData::num to _num 2011-05-13 11:47:11 +02:00
Max Horn 45e65d7ea0 SCUMM: Refactor how resource (types) are srepresented
Previously, we had a couple of arrays of size N (where N = number of
resource types), one for each attribute of a resource type (such as as
the number of resources of that type.

Now, we have one array of size N, whose elements are a record
aggregating all the attributes of each resource type.
2011-05-13 11:47:08 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn 0ce2ca4e00 COMMON: Replace MKID_BE by MKTAG
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
2011-04-12 16:53:15 +02:00
dhewg d83a83ef50 JANITORIAL: Remove/comment unused vars
Found by GCC 4.6's -Wunused-but-set-variable
2011-03-29 21:57:56 +02:00
Florian Kagerer 5af782c5d2 SCUMM/FM-TOWNS: disable new graphics code in DS port
svn-id: r53033
2010-10-05 19:04:52 +00:00
Florian Kagerer 0d8f4a22ae SCUMM/FM-TOWNS: fix palette and other graphics issues
This commit should fix at least the following bugs/feature requests: #1032859, #1252088, #1055391, #1315968, #1315938, #1742106, #812891.
The FM-Towns version of Scumm games use a mixed graphics mode with 2 layers (one with 32767 colors and one with 16 colors). Among other things I have added a screen output class which emulates this  dual layer approach which allows specific hardware effects like enabling and disabling layers (e.g. in the voodoo priestess scene in MI1).

Old savegames (saved before this update) will load, but you’ll encounter palette glitches in the verb/inventory screen, since the 16 color palette for layer 2 is not contained in your savegame. This will be true at least for version 5 games. Certain scene change actions (which require the verb/inventory part to be redrawn) might correct this (e.g. try looking at the treasure map in MI1 and closing it). Version 3 games should be okay, since they use a static text palette which is never changed and which will be reset after loading a savegame.

This update requires a USE_RGB_COLORS setting for proper operation. 8 bit users will get a warning that they’ll have to expect palette glitches . Apart from that the engine in 8 bit mode should not only still work okay, but also benefit from some of the other (non palette related) improvements (e.g. bug #1032859 should be fixed even in 8 bit mode).

Japanese font drawing hasn’t been improved much yet. This will be a separate task.

svn-id: r52966
2010-10-01 19:24:52 +00:00
Travis Howell 753a73be29 Fix bug #2960022 - PUTTPUTT 1: No Load/Save possible.
svn-id: r48499
2010-04-04 09:36:10 +00:00
Travis Howell 122ff32d75 Remove excess spaces.
svn-id: r44029
2009-09-11 10:13:54 +00:00
Max Horn 6f4b567124 SCUMM: Split intern.h into multiple headers
svn-id: r39567
2009-03-20 16:33:58 +00:00
Jordi Vilalta Prat 38a8aa516e Allow static and dynamic plugins to be used at the same time
svn-id: r31888
2008-05-06 03:00:26 +00:00
Travis Howell 410a4a974e Enable Windows version of early HE games by default, to match already enabled 3DO/DOS/Macintosh versions of early HE games. Adding only the minimum code required for HE70 games.
svn-id: r30011
2007-12-27 11:40:29 +00:00
Kostas Nakos 323cb4827f Moving the vitual keyboard show/hide hints during the copy protection screens to the scumm engine.
As the original code is slightly cryptic, there may be something wrong with MI1 (as commented)

svn-id: r29495
2007-11-13 19:41:35 +00:00
Nicola Mettifogo 258901bab9 Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
svn-id: r28966
2007-09-19 08:40:12 +00:00
Max Horn 218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Max Horn 6899e72be9 Got rid of GF_DIGI_IMUSE and GF_NEW_CAMERA
svn-id: r25454
2007-02-10 02:05:59 +00:00
Max Horn 4ce7b74085 Changed ScummEngine::_actors from an Actor array to a an array of Actor points (i.e. indirection)
svn-id: r24922
2006-12-25 15:03:36 +00:00
Max Horn c210aff40c * Made Actor::_pos protected, added public Actor::getPos() method
* Added default params to Actor::putActor()
* Removed Actor::getActorXYPos

svn-id: r24742
2006-11-19 00:39:48 +00:00
Max Horn db1fc75012 SCUMM cleanup
svn-id: r24612
2006-11-04 22:59:56 +00:00
Max Horn d02e4d7f7c Removed CHECK_HEAP
svn-id: r23979
2006-09-23 11:29:32 +00:00
Max Horn fd85c13d8f Cleaned up Gdi::roomChanged
svn-id: r23938
2006-09-18 22:22:35 +00:00
Max Horn fab33bf663 Moved stored flobjects to class ScummEngine_v70he
svn-id: r23924
2006-09-17 22:22:50 +00:00
Max Horn 51017cf1b2 Renamed ScummEngine::res to _res and allocate the ResourceManager on the heap (i.e. _res is a pointer now)
svn-id: r23922
2006-09-17 20:36:48 +00:00