Commit Graph
33 Commits
Author SHA1 Message Date
sluicebox 5a6470e3f2 SCI: Remove unused member 2024-10-15 13:31:34 -06:00
athrxx 1fefea04b7 SCI: (QFG/PC-98) - fix Japanese text color (regression)
I noticed that in the Meeps scene there was green
sjis text color. It is always supposed to be black. The
original interpreter can't do anything else. Same
for SCI1, although for different reasons. I think I broke
that when I fixed the PQ2 colors.
2024-10-11 14:43:57 +02:00
athrxx 389b51edbb SCI: (KQ6Win Gfx driver) - fix glitch when in rgb rendering mode 2024-10-10 01:09:06 +02:00
athrxx bf48bc41b3 SCI: (KQ6 Gfx driver) - fix monochrome mouse cursors in non-rgb rendering mode 2024-10-09 08:35:11 +03:00
athrxx c11193f35c COMMON: add Windows 16 colors render mode option 2024-10-09 08:35:11 +03:00
athrxx 5f66d7161a SCI: add 16 colors mode for KQ6 Win
The original interpreter supports that, although it is slightly
broken. It will show black boxes for the hires graphics, since
the mode isn't properly checked. I have fixed that here to
show the the lores graphics.
2024-10-09 08:35:11 +03:00
athrxx 70414a0b87 SCI: make upscaled gfx driver for KQ6 Windows
- The main purpose was to move more upscaling logic out of the engine
- This actually contains various precision fixes to the hires code. There
were some comments about being unsure what to. I think I managed to
fix all of these, although it shouldn't make a visible difference, since the
workarounds worked as intended.
- It does actually fix a very minor glitch: The portraits were vertically off
by one pixel. And the opening AVI video is probably also vertically fixed
by one pixel (although the video display in the original is not done very
well, anyway).
2024-10-09 08:35:11 +03:00
athrxx 6e59e0a1ac SCI: add some asserts to gfx drivers
(I have noticed that the (not really well supported) Mac SCI0 versions
with 480x300 pixels resolution may pass invalid (negative) withs or
heights)
2024-10-09 08:35:11 +03:00
athrxx 39e8cf97ed SCI: remove unused var 2024-09-22 20:55:03 +02:00
athrxx 7afa86e0f4 SCI: add setShakePos() function to gfx drivers
Currently the screen shakes will not be scaled to the driver's
screen resolution. This patch fixes that.

Now, this isn't exactly the original behaviour. The screen
shaking was a hardware feature that only EGA and VGA
adapters had. Therefore, the screen shake function is
only implemented in the drivers for these devices. For
all other graphics hardware the drivers have an empty
dummy function for the screen shake (at least from
what I have see). But we needn't be strict here, we can
shake everything...
2024-09-13 01:12:31 +03:00
athrxx aac43fb270 SCI: add missing delete[] 2024-08-10 11:44:24 +03:00
athrxx dd3b15c365 SCI: fix horizontal alignment for some gfx drivers
Instead of the x/w arguments that we use, the original drivers
use x1/x2. I forgot to make the necessary adjustments.
2024-08-10 11:44:24 +03:00
athrxx 31a2c0349b SCI: (PQ2) - fix text colors
I noticed that the original PQ2 interpreter can have other text
colors than blue. It can also draw text in yellow and white. I don't
think that it gets used, but I'd rather just fix it, before I try to find
that out...
2024-08-10 11:44:24 +03:00
athrxx 0632c0a631 SCI: (SCI1/PC-98) - minor cleanup of 8-colors rendering 2024-08-10 11:44:24 +03:00
athrxx 4cfa133fb3 SCI: add warpMouse functionality to gfx drivers (#6015)
I have noticed (while playing QFG1VGA) that the engine
makes use of OSystem::warpMouse() which will not work
like that with the drivers that upscale the image. I have
implemented the function for the drivers that need it.
It's basically just the reverse of getMousePos().

I also fixed some of my comments to make more sense.
2024-08-07 17:24:49 +03:00
athrxx b815a5e80c SCI: remove commented out code 2024-08-06 08:47:25 +03:00
athrxx bfdb490eae SCI: fix bug 15309
(KQ1 SCI keeps crashing on recent dev builds)

This is about a missing bitmap buffer. It isn't always needed
for SCI0, but SCI_01 (= KQ1) requires it. For the PC-98 targets
(which are also SCI_01) this had already been fixed in this PR,
but not for other 01 targets.
2024-08-06 08:47:25 +03:00
athrxx 3ce0915e58 SCI: make Korean fan-patched games use upscaled gfx driver
Next step to get rid of upscaling code in the engine.
Tested with SQ4. Since all these fan-patched versions
seem to work the same way, I am optimistic that the
other games run fine, too. Unfortunately, it is difficult
to obtain these fan patches. I only found one for SQ4.
2024-08-06 08:47:25 +03:00
athrxx 8eac961aa6 SCI: (PQ2/PC-98) - make some specific gfx adjustments
PQ2 seems to be the oldest of these PC-98 ports. It
uses text mode print, a vertically scaled mouse pointer,
etc. Also, it doesn't really have a 16 colors mode.
I make the necessary adjustments here to provide
both 16 and 8 colors modes, since there is no technical
limitation not to have the 16 colors...
2024-08-06 08:47:25 +03:00
athrxx 9dc71ef701 SCI: (PC-98) - add gfx drivers for PC-98 games
16 colors and 8 colors modes for the SCI0 and SCI1
PC-98 games.

The 8 colors modes are new, the 16 colors mode is
basically the pre-existing mode, just with some
minor fixes (palette, font drawing, etc.).

The final goal is to get rid of the upscaling inside the
engine, but that will require more work on the other
game versions that depend on it.
2024-08-06 08:47:25 +03:00
sluicebox 4ea15e9b8b SCI: Fix error when SCI1_EGADriver clears rect 2024-07-15 22:03:31 -07:00
athrxx 9d833af3d0 SCI: fix video display regression 2024-07-13 00:33:00 +02:00
athrxx 8a48bdbf0a SCI: slight performance upgrade for custom palette rendering
(suggested by ccawley2011 in the PR discussion)
2024-07-12 23:51:55 +02:00
athrxx c5bfd8cfb5 SCI: move x-alignment into gfx drivers
The alignment can be done inside the drivers. We need it for CGA and early
version CGA b/w only, since we don't have the same (hardware based
requirements) as the original drivers. So we can really clean up the code
here.
2024-07-12 23:51:47 +02:00
athrxx 2ad5487061 SCI: fix number of colors reported by the EGA driver
This is inconsistent between the drivers, e. g. PQ VGA uses 256,
most of the others seem to have 16. So we just read it from the
driver.

For the games which have a Sierra logo with a palette cycle you
can see the difference right at start, since the EGA mode is
supposed to suppress the palette cycle.

(this commit also has some consistency fixes to initScreen(),
which are irrelevant to the actual performance)
2024-07-11 16:46:44 +02:00
athrxx 975ba55f8b SCI: add SCI 1 video modes for EGA and VGA grey scale 2024-07-11 08:02:49 +03:00
athrxx fc1bc6a9fd SCI: move rgb and custom palette rendering into GfxDriver classes
This enables the rgb rendering for all video modes and cleans up the
engine a lot, since the engine can now be more or less agnostic of the
screen pixel format.
2024-07-11 08:02:49 +03:00
athrxx 905ee76654 SCI: minor mouse precision fix for Hercules mode
The translation of the mouse coords shoud now mirror the scaling of the
graphics more precisely. The change is too minor to notice ingame, though.
2024-07-05 14:08:57 +02:00
athrxx 4071d023fb SCI: (CGA/Hercules) - add argument for cropped Hercules image
This is an idea that came up in the PR. It will remove the black border in
Hercules mode. Currently, there is no other way to enable it except in the
code. It could be added as a launcher option, but having a checkbox just
for the case where Hercules mode is enabled might be a bit too much.

I also turned the monochrome colors into an argument to make it more
flexible.
2024-07-01 19:27:24 +02:00
athrxx 728153ec62 SCI: get rid of EGA driver implementation
This is more or less a leftover from the beginnings of my work on the
CGA and Hercules modes. The EGA driver implementation does
nothing except forward the data, so it can just run on the default.

Also remove an unnecessary buffer.
2024-06-30 19:51:49 +03:00
athrxx e903472e61 SCI: fix CGA b/w and Hercules transitions
The engine makes use of OSystem::fillScreen() for the transitions.
I have implemented scaled variants for CGA b/w and Hercules.
2024-06-30 19:51:49 +03:00
athrxx ade03ca071 SCI: minor cleanup of cga/hercules code
(Turn all usages of 'uint8' into 'byte'. I somehow made a wild mix here)
2024-06-30 15:49:43 +02:00
athrxx 478cd8925a SCI: (SCI0) - add support for CGA and Hercules render modes
(as per usual, each target has to be run once to upgrade the launcher
options, so that the new render modes can actually be selected)
2024-06-30 13:05:01 +03:00