Age | Commit message (Collapse) | Author |
|
SCI32: Improve FileIO read-write support
|
|
At least Phantasmagoria and PQ:SWAT require this.
This adds a ReadStream/WriteStream to support this. It replaces
the previous VirtualIndexFile which required reimplementation of
most read/write functions.
|
|
Since _decodedSamples[] is filled with either 2 or 4 samples, we
can't use 1 - (count - 1) to "ensure that acts as a FIFO". When
we have 4 samples, that index will become negative, putting
uninitialized data into the buffer.
We could still use a similar trick, but I think it's much clearer
to use an index variable like this. We need an addition variable
either way.
|
|
Wasn't bug #6571, but bug #6751
Thanks to omer_mor for spotting it
|
|
This reverts commit 61a8a5a88f4f02f1d4cdd3523ad6cec63701d8dd.
|
|
|
|
SCI: Add detection for the ImagiNation Network (INN) Demo
|
|
|
|
This reverts commit 1d3d6c869240ad076631576be081cfadfef34865.
As it was pointed by wjp, this fully ignores the alphamask.
|
|
I18N: Update dutch translation
|
|
|
|
|
|
Now the Riven options dialog has the same features as the Myst one:
- Screen centering
- Save / Load / Quit buttons
|
|
|
|
|
|
Fixes bug #6571
|
|
|
|
|
|
The sound is rather bad, but I assume that's something with our
CinePak video decoder so I'll leave it like this for now. The player
itself is based on the BBVS engine.
|
|
This avoids a conflict between the "all" directory and the "all"
archive, if the directory happens to be named in all lower case.
While it isn't on the CD, we shouldn't introduce case sensitivity
in the file names if we can avoid it.
|
|
At least in my copy, the voices directory is on the same level as
the other directories. (Though the whole thing is inside a
directory called "data", so maybe that's where that came from?)
|
|
BASE: Fix Typo
|
|
|
|
This reverts commit 9aa7174218983bb1cf6fd98325082ca7d37f50fb.
For now.
|
|
This will hopefully fully fix keyboard issues for macOS / SDL2,
for example when pressing "alt-x".
Also reset .ascii to 0, when Num-Lock is NOT enabled and keypad
directional keys are pressed. This was fixed inside AGI+SCI
previously.
The latter shouldn't cause issues, but in case it does, the
affected engine should get fixed and use keycodes instead.
|
|
SCI: Clean up some aspects of call handling
|
|
MISC: Bugfixes
|
|
Controls that manage their own event loops and call frameOut
directly generally need to sleep in order to avoid 100% CPU,
just like the main VM event loop.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The ExecStack constructor set argp[0] to argc before. This is now moved
to the caller, to make this action more explicit.
|
|
Modifying a value above the stack pointer doesn't seem to make much
sense. This was added in FreeSCI back in 2002 in a pair of commits that
did not make clear what the purpose of this was. My guess is that it
attempted to adjust argc, but failed. This wouldn't have been noticed
since argc was always set correctly by make_exec_stack_entry (which is
now the ExecStack constructor).
|
|
ExecStack now stores the kernel call number as well as the subfunction.
This allows kStub and backtraces to log the actual subfunction called.
The kernel call number in ExecStack used to be stored in the
debugSelector field. It now has its own field, to avoid confusion.
|
|
|
|
|
|
|
|
|
|
The way dimensions of scaled screen items are calculated changed
over the lifetime of SSCI. In early low-resolution and
mixed-resolution games, scaled drawing needed to use at a global
cadence across the entire screen to ensure proper alignment, but
in later games (like Torin), local scaling of individual screen
items seems to be the way scaling is performed.
|
|
Using the one from SCI2.1mid makes fades very slow because SDL has
a larger audio buffer than SSCI DOS. This new algorithm is based on
wall time so will always fade at the correct speed, although the
larger buffers will have a coarser granularity so the fades may
not be as smooth as in the original engine. If anyone cares, the
fade volume could be mixed into individual samples in `readBuffer`
instead of applying just once per complete buffer. SSCI did not
do this, however, so this implementation should be pretty accurate.
|
|
|
|
|
|
Overlays are shown with _currentShakePos offset too, so no need to
compensate the mousepointer position for overlays. This compensation
was done inconsistently in draw/undraw mouse causing the mouse trails.
|
|
|
|
|
|
Similar (fix) to bug #6739
|
|
SCI: Script patch for QfG3 giant tree bounds
|