Commit Graph
261 Commits
Author SHA1 Message Date
athrxx 462daa5415 SCUMM: (HE) - fix wiz drawing mem leaks
Currently, buffers get allocated that do not get freed. Apparently,
the reason is that it is not well known when it is actually safe to
do that. This here should hopefully fix the situation. Or at least
give some inspiration on how to fix it...
2024-05-19 17:13:05 +02:00
athrxx 50c5ee2b77 SCUMM: (FM-Towns) - fix regression
(bug no. 15121 - MI2 (FM Towns) - Difficulty selection
screen looks wrong)
2024-05-11 02:18:05 +02:00
athrxx 437eadd10e SCUMM: (INDY4/FM-Towns) - fix bug no. 15120
(Corrupted graphics during screen transitions without "smooth scrolling")
2024-05-08 17:50:11 +02:00
athrxx 69f6357135 SCUMM: (LOOM/FM-Towns) - fix regression 2024-05-04 19:28:22 +02:00
athrxx ecb03f2e7c SCUMM: (V3/FM-Towns) - fix bug no. 15027
("INDY3 (FMTowns): Map lines are drawn incorrectly, plus more
issues when leaving Germany")

The bug with the wrong colors is caused by the shadow palette, which
gets set with the colors for the modified country borders, but gets
reset immediately after drawing the background. So when the map
travel marker makes an area dirty, it would be restored with the wrong
color. Now, the original V3 FM-Towns interpreter can draw on layer 2
directly, without declaring anything dirty, effectively bypassing the
normal SCUMM drawing. This avoids any change to the background.
This happens for drawBox, but also when displaying or hiding the pause
banner.

In SCUMM5 drawBox works the way we had it implemented, drawing
on the text surface (MI1: also on the vs buffer) and then making that
rect dirty.
2024-05-04 16:43:06 +02:00
AndywinXp f5f6d86d78 SCUMM: SPYFOX3: Fix #15108 and #15106 2024-05-02 01:25:01 +02:00
AndywinXp e1bb816a50 SCUMM: GFX: Simplify expression and fix truncation issue 2024-05-01 19:48:15 +02:00
athrxx 55d7f16dc1 SCUMM: (v5/FM-Towns) - fix regression 2024-05-01 01:54:14 +02:00
athrxx b868dab4c5 SCUMM: (V3/FM-Towns) - partial fix for bug no. 15027
(INDY3 (FMTowns): Map lines are drawn incorrectly)

This fix addresses the part concerning the line width of the travel
marker. Turns out that SCUMM3 FM-Towns draws all boxes one
pixel wider and higher on virtual screens other than 1. This also
allows removal of a hack in ScummEngine_v5::o5_drawBox().

I also fixed the old style pause/restart banners, since they incorrectly
used drawBox() for line drawing (which would be glitchy with the now
verdrawing drawBox(). The positive outcome is that we no have original
looking FM-Towns banners (only in Japanese, though, since - unlike the
original - we don't run the English version in 640x480).

The changed method of drawing and removing the banner also fixes
the removal of the black country borders on the map. But it will still
be removed below the pause banner and in the spots where the travel
marker passes the border. So that has to be addressed separately.
2024-04-30 23:29:53 +02:00
AndywinXp a136275a92 SCUMM: HE: Fix some Spy Fox 1 (HE90) issues 2024-04-26 23:21:29 +02:00
AndywinXp 2da4608506 SCUMM: HE: Re-implement BMAP routines 2024-04-26 23:21:29 +02:00
AndywinXp 9dd2ea4e43 SCUMM: HE: Re-implement WIZ text and Aux images 2024-04-26 23:21:29 +02:00
AndywinXp b19c4b772d SCUMM: HE: Overhaul more of the GFX system
* Overhaul sprites system
* Fix compression routines for 8-bit graphics
* More fixes and clean-up
2024-04-26 23:21:29 +02:00
AndywinXp d64a379d21 SCUMM: HE: Begin porting Wiz and other graphics code 2024-04-26 23:21:29 +02:00
AndywinXp 0a3b6c49b2 SCUMM: HE: Implement FloodFill operation 2024-04-26 23:21:29 +02:00
Torbjörn Andersson d46e4e1aa0 SCUMM: Don't update the Mac GUI during graphical transitions
Perhaps this will finally fix the screen corruption bug I've been seeing
occasionally in Mac Indy 3? That seemed to happen because the screen was
changing while the game was paused, after the Window manager had made a
copy of the current screen.
2024-03-10 23:12:25 +01:00
AndywinXp 660fca6a02 SCUMM: MANIAC (Amiga): Fix screen transitions being broken instead of disabled 2024-01-24 21:30:41 +01:00
AndywinXp bd22763cdc SCUMM: MACGUI: Implement correct video size for Mac v3 games
This commit brings games to 640x480 (from 640x400).
All old savegames are compatible and are brought up to date in
real time.
2023-12-03 21:03:59 +01:00
Torbjörn Andersson ec1ab82283 SCUMM: Initial work on a common MacGui class that handles Mac menus etc.
This will be used for Last Crusade and Loom. Loom is currently the more
broken of the two, though.
2023-11-18 18:47:39 +01:00
AndywinXp e4232b95b1 SCUMM: GUI: Implement accurate menus for Jap Indy4 (DOS/Mac) 2023-11-12 18:59:18 +01:00
AndywinXp 8461f25218 SCUMM: Rename enhancementClassActive to enhancementEnabled 2023-11-08 11:46:06 +01:00
AndywinXp d5fa7aeb90 SCUMM: Mark all enhancements with their respective classes 2023-11-08 11:46:06 +01:00
Torbjörn Andersson 44b7558756 SCUMM: Remove Indy 3 Mac hacks that are no longer needed 2023-10-16 17:40:29 +02:00
AndywinXp 9e1f8cbb9b SCUMM/HE: SPYFOX1: Fix bug #13548
Verified on disasms ranging from HE70 to HE100.
The original EXEs never checks for transparency
when drawing a BMAP image.

As a matter of fact it doesn't even use drawStripHE,
but it uses a simplified version which doesn't have
the check at all.

We disable the transparency check accordingly and
use the compression type code just to produce the
correct bits-per-pixel and mask decompression params.
2023-07-12 01:47:12 +02:00
AndywinXp a3b6aa316e JANITORIAL: SCUMM: Relabel bitmap compression types 2023-07-12 01:35:30 +02:00
AndywinXp 07a411749a SCUMM: AMIGA: Fix transitions accuracy for MANIAC and ZAK
Did you know that Maniac Mansion has no screen wipe transitions
on Amiga? I certainly didn't.
2023-06-29 14:10:58 +02:00
AndywinXp 76c18ee7b3 SCUMM: MM/ZAK: Fix iris transition timing for C64 versions 2022-12-10 20:45:35 +01:00
AndywinXp 9102a2f0ec SCUMM: DIG: Fix palette artifacts on cursor change
Interestingly, but unsurprisingly, this was caused by 20 years old code which now produces no effects
at all, other than causing the bug that this commit fixes :-P I have checked the disasm of every version
of SCUMM, and there is no sign of updatePalette() ever being called at the end of the fadeOut() function.
Removing it fixes the issue. I have tested every game I have for this change, but I'm sure that whatever
that updatePalette() call was trying to fix 20 years ago, it has probably been fixed properly now, so there's
no need for it.

Also, removed _fullRedraw toggles in o_LoadRoom for DIG and COMI, which, judging by the disasm, don't
force the redraw after changing the scene.
2022-11-28 21:28:32 +01:00
BLooperZ 24d5420aae SCUMM: simplify majmin bitstream reading 2022-11-18 13:53:12 +01:00
BLooperZ 1e51c121bd SCUMM: reuse majmin codec for smap 2022-11-18 13:53:12 +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
Donovan Watteau 86b2aedb2c SCUMM: Fix unintended dark blue background in French MI1 floppy VGA (WORKAROUND)
In the French VGA floppy release of Monkey Island 1 (and, apparently,
this release alone), the easter egg making fun of Sierra games has a
dark blue background that makes the black text really hard to read (very
much like the MI1 v5 issue in front of the Governor's mansion, which we
already fix).  The problem is in the OI itself, which was redrawn to
feature a translated text.

This problem doesn't exist in the other French releases (including the
Amiga VGA one), and the non-French VGA floppy releases look fine, to me.
So, just force a white background instead of dark blue, for this object
and on this particular release only.

(Note: they also messed up the top and left borders of that object, and
so a small black horizontal line will suddenly appear when the "Guybrush
falling into the trees" animation starts. Unfortunately, this is a
horizontal line, while strips are drawn as a series of vertical lines,
so it's hard to only fix this line, especially since its black color is
reused in the same strip for Guybrush trousers... So, this enhancement
just concentrates on solving the main issue, which is the legibility
problem with the blue background.)
2022-11-03 20:35:18 +01:00
Hubert Maier 49a9d5b394 SCUMM: Correct spelling mistake
accomodate -> accommodate
2022-10-27 15:57:28 +02:00
Torbjörn Andersson 15572c408b SCUMM: Exclude SEGA CD and FM Towns versions from dog sign workaround
The SEGA CD version already uses the old colors, and the FM Towns
version makes the text more readable by giving it a black outline.
2022-10-09 11:23:19 +03:00
Torbjörn Andersson b01d7d4d57 SCUMM: Exclude "Ultimate Talkie" MI1 from dog sign color workaround
The unofficial talkie version already uses the floppy version colors.
Applying our fix to it, while it doesn't seem to do any harm, is
unnecessary.
2022-10-09 11:23:19 +03:00
Torbjörn Andersson effb129776 SCUMM: Make the dog sign colors in MI1 VGA CD closer to MI1 VGA floppy
The colors in the sign that tells you that the dogs are only sleeping
are much harder to read in the VGA CD version than in the VGA floppy
version. I assume these were not picked deliberately, but rather a
consequence of the palette being different. So this works around that by
temporarily remapping the palette for the sign object, and adjusting one
of the text colors to something close to the floppy version.
2022-10-09 11:23:19 +03:00
AndywinXp 025d25a1f1 SCUMM: GUI: Fix pre-v7 text rendering over GUI 2022-09-08 19:10:42 +02:00
AndywinXp 457bcb67db SCUMM: GUI: Implement the majority of the v7 Main Menu 2022-09-08 19:10:42 +02:00
AndywinXp d1b73e1ffe SCUMM: GUI: Add functional main GUI banners for v5-6-7 2022-09-08 19:10:42 +02:00
AndywinXp 9ef023b11c SCUMM: GUI: Refactor internal GUI code 2022-09-08 19:10:42 +02:00
athrxx 5a2daf6ed3 SCUMM: (GUI) - fix another regression 2022-09-01 00:03:16 +02:00
athrxx 342cb9a36d SCUMM: fix regression/typo
(from 7932cf7 )
2022-08-31 23:05:45 +02:00
athrxx 7932cf7a46 SCUMM: (GUI) - fix invalid mem access 2022-08-31 22:47:06 +02:00
athrxx cde957a793 SCUMM: (v1) - improve render mode comment 2022-08-21 01:37:35 +02:00
AndywinXp 1561996dff SCUMM: v7-8: Apply blast pipeline corrections also to v7 2022-08-06 13:33:56 +02:00
AndywinXp f9010ca824 SCUMM: COMI: Fix original GUI glitches with blastTexts and blastObjects 2022-08-06 13:33:56 +02:00
AndywinXp fb2fcbf30e SCUMM: COMI: Implement savegame thumbnails 2022-08-06 13:33:56 +02:00
AndywinXp 811548dc05 SCUMM: COMI: Use _screenTop when marking rects as dirty 2022-08-06 13:33:56 +02:00
AndywinXp fabaeb4b83 SCUMM: COMI: Implement original GUI 2022-08-06 13:33:56 +02:00
Donovan Watteau b1e08f3f52 SCUMM: Fix typo in variable name in previous fix 2022-07-30 13:45:44 +02:00