Commit Graph
137148 Commits
Author SHA1 Message Date
Matthew Duggan 62c4cea44b ULTIMA8: Adjust proc loop detection workaround again
The previous workaround value chosen to fix U8 bug #12913 really locked up
Crusader too long (>10 s), so there's no clean solution here that works for
both games it seems.  Revert the threshold back for Crusader games only, and
keep the high threshold for U8.  I hope the next time I touch this line is to
remove it because I work out the root cause of the problem :|
2021-09-23 16:07:06 +09:00
Paul Gilbert 05a41285af AGS: Cleanup of A Tale of Two Kingdoms detections 2021-09-22 20:12:42 -07:00
Thierry Crozat 2435046146 IOS7: Support using Escape key on external keyboards 2021-09-23 00:12:19 +01:00
Matthew Duggan dbce998d04 ULTIMA8: Put back ARG_NULL8 macro with fix
Removed this macro in dc17170 because it had one usage and was wrong anyway,
but it's nice to avoid the unused variable warning.
2021-09-23 07:41:08 +09:00
Matthew Duggan ec02b4e7b1 ULTIMA8: Small constness improvements 2021-09-23 07:41:08 +09:00
Thierry Crozat 71728d302a IOS7: Fix calling UI API on a background thread
This is a genealization of commit 0d8b9d272 that only fixed the
issue for some cases. The issue still occured when suspending the
app for example.
2021-09-22 23:26:18 +01:00
alxpnv 8f89a66940 ASYLUM: fix crash on exit 2021-09-22 15:54:50 +03:00
alxpnv c368834a9e ASYLUM: fix memory leak 2021-09-22 15:54:50 +03:00
alxpnv 4901928d5c ASYLUM: allow loading of savegames from the previous versions of the game 2021-09-22 15:54:50 +03:00
alxpnv 2145019341 ASYLUM: fix signed/unsigned mismatch
Reported by Henke37
2021-09-22 15:54:49 +03:00
Paul Gilbert e1cb9afb4e AGS: AGSParallax plugin fix, workaround for Stargate Adventures 2021-09-21 21:09:51 -07:00
Paul Gilbert 796740e2e1 AGS: Added detection entries 2021-09-21 18:54:58 -07:00
Paul Gilbert b63427641d AGS: Moved font's linespacing hack into the game_init
From upstream f8ad7b96b46c33156ee1d6c7c4b64b5029c7b93b
2021-09-21 18:45:18 -07:00
Paul Gilbert a72e87df63 AGS: Fixed crash in auto outline in case of empty text argument
From upstream e3665a3c073e574d3e4fade869b3c0c3e88508e5
2021-09-21 18:45:18 -07:00
Eugene Sandulenko e7043b49b5 Revert "MYST3: Add detection for PS2 prototype"
This reverts commit f87eed8b1b.
2021-09-22 01:36:26 +02:00
sluicebox ecc72dce23 SCI: Don't poll input events from MIDI thread
In March, b67c2d72d6 moved some MIDI
initialization from the main thread to the MIDI thread. This caused
MidiPlayer_Midi::sysEx() to run on the MIDI thread for the first time.
This is a problem because it calls SciEngine:sleep(), which polls
events, and that causes MacOS to throw an exception for calling
SDL_PollEvent() on a non-main thread.

While investigating, it also turns out that MidiPlayer_Midi::sysEx()
and MidiPlayer_Fb01::sysEx() were calling OSystem::updateScreen(),
and that also shouldn't be happening on a non-main thread.

Now SciEngine::sleep() is only called on the main thread, and
OSystem::delayMillis() is called on the MIDI timer thread.
Continuing to call sleep() on the main thread keeps the UI responsive
when loading patches, which can take several seconds.
The OSystem::updateScreen() calls had no effect and have been removed.

Fixes bug #12947
2021-09-21 16:35:46 -05:00
Lothar Serra Mari 1e61dc5ec6 NEWS: Update German NEWS file 2021-09-21 18:10:50 +02:00
Torbjörn Andersson c18b91759a GROOVIE: Remove fast video mode from 11th Guest
Only the VDX player has a fast mode, and only The 7th Guest uses it. I
believe there's less use for it here, since the 11th Guest movies
already run at a decent frame rate.
2021-09-21 15:57:00 +02:00
alxpnv b9e52233c3 ASYLUM: (TimeMachine puzzle) fix uninitialized class members
CID 1453221
2021-09-21 15:02:41 +03:00
alxpnv ce0c5cce18 ASYLUM: fix arguments in wrong order
CID 1453225
2021-09-21 15:02:41 +03:00
alxpnv 5fe5a128a6 ASYLUM: fix improper use of negative value
CID 1453216
2021-09-21 15:02:41 +03:00
alxpnv 6c24eb0be2 ASYLUM: fix potential bad bit shift
CID 1453217
2021-09-21 15:02:41 +03:00
Paul Gilbert 345032ecc4 TITANIC: Add entry for should fix to NEWS.md 2021-09-20 18:54:36 -07:00
Paul Gilbert 6ac13a6c0c TITANIC: Make findByWordClass a static method 2021-09-20 18:47:05 -07:00
Paul Gilbert 8b90ea85df AGS: Implemented auto outlining with custom thickness and style
From upstream f2736d21677d2db4b0559c1ded31e284b8a8f64f
2021-09-20 17:20:59 -07:00
Paul Gilbert d865acf606 AGS: introduced font outline style and thickness parameters
From upstream 43425f738dc6beb7d0758e256a840c5f37a4d38a
2021-09-20 17:20:59 -07:00
Paul Gilbert 9d9080ffda AGS: Also return real TTF height in TTFFontRenderer::GetTextHeight()
From upstream 5115943fce180fe3e0bd9fe3678faa2d01b6d474
2021-09-20 17:20:58 -07:00
Paul Gilbert d8335ed435 AGS: Partially revert previous commit: had engine logic moved to fonts
From upstream a4bafa3597a98a0df1cb5f5e921b2e6651c28a89
2021-09-20 17:20:58 -07:00
Paul Gilbert 96ad02b3b9 AGS: Use real font height in game calculations, compat linespacing
From upstream  3a9b8f199e09b9919a201c1d2fa486a79761b339
2021-09-20 17:20:58 -07:00
Paul Gilbert 8058862f7d AGS: Precalculate and save font's height on load
From upstream 47001a398a1bc4ad022645ad21e1c891a3757167

Note: Since we don't implement alfont in full, the
referenced methods are stubbed in our alfont.cpp
2021-09-20 17:20:58 -07:00
Marcus Comstedt c68fb8561d DC: Preserve appDomain when reloading config on disc swap
This is needed to prevent essential settings like
always_run_fallback_detection_extern from being removed.
2021-09-20 23:28:58 +02:00
Marcus Comstedt a43b6cb67a DC: Enable options to save more memory 2021-09-20 23:28:58 +02:00
Marcus Comstedt 47de1896b9 PLUGINS: In uncached mode, try plugin which matches engine name first
Trying all engine plugins in alphabetical order is a time consuming
process, so start by trying the plugin which has the same name as the
engine id first, if it exists, as it will usually be the right one.

In the rare case that it would be the wrong one there is no problem;
the code will simply fall through to the old scanning and then record
the correct plugin in the engine_plugin_files domain where it will be
found the next time the plugin is needed.
2021-09-20 23:28:57 +02:00
Marcus Comstedt d2fba8fc2f PLUGINS: Make detection plugin filename check case insensitive
Plugin filenames are all upper case on Dreamcast due to the ISO 9660
filesystem.  It doesn't seem likely that making the check case
insensitive would cause any problems even on a file system that
is case sensitive.
2021-09-20 23:28:57 +02:00
Henrik "Henke37" Andersson 4845b6daa2 DIRECTOR: Add full title for ernie in detection 2021-09-21 00:28:04 +03:00
alxpnv a937575412 ASYLUM: (Pipes puzzle) fix uninitialized class members
CIDs 1453211 and 1453229
2021-09-20 16:04:29 +03:00
alxpnv f6ca392be7 ASYLUM: use strlcpy
CID 1453210
2021-09-20 15:46:44 +03:00
alxpnv 69b545a8d0 ASYLUM: remove unused class member
CID 1453227
2021-09-20 15:41:39 +03:00
alxpnv b8cfb363a3 ASYLUM: fix buffer overruns in Actor::getStride()
CIDs 1457938 and 1457990
2021-09-20 15:36:45 +03:00
alxpnv 8222dee141 ASYLUM: fix uninitialized class members
CID 1453223
2021-09-20 15:07:26 +03:00
alxpnv e3af0aa2d1 ASYLUM: add missing va_end
CID 1453214
2021-09-20 14:10:48 +03:00
alxpnv f1012335f7 ASYLUM: fix uninitialized variable
CID 1453219
2021-09-20 12:22:37 +03:00
alxpnv eed6789af2 ASYLUM: fix buffer overrun
CID 1453215
2021-09-20 12:15:35 +03:00
alxpnv 377ffb92be ASYLUM: add support for loading during startup 2021-09-20 12:03:40 +03:00
alxpnv 0fbe223f8a ASYLUM: disable saving in demo versions 2021-09-20 11:14:54 +03:00
Matthew Duggan dc17170673 ULTIMA8: Use 2 bytes of intrinsic stack for UINT8
This fixes #12917.

The usecode "push byte" opcodes (0x0A and 0x5D) always push 16 bits on the
stack, but the ARG_UINT8 macro was only removing 1 byte.  Most of the time this
went unnoticed because the UINT8 was the last argument in most cases (eg, a z
val), or unused.

This led to an inconsistency where sometimes z values were being popped with
ARG_UINT16 and sometimes ARG_UINT8.  The original games do not support z values
beyond 254, so this should always be UINT8.

Additionaly, a while back "push byte" was fixed so it always sign extends, but
this could result in a case where we pop incorrect values.  For example, a high
Z value could get sign-extended on push, and then popped back as a UINT16,
giving a z of 64000ish.

Fix by always moving the SP by 2 bytes, only use the first one.

Correcting this also fixes the strange color ordering I thought was needed for
I_jumpToAllGivenColor in Crusader: No Regret, where actually it should have
been popping the values as 16-bit instead of 8-bit.
2021-09-20 14:11:49 +09:00
Paul Gilbert 5d7ae659bf AGS: Added Sepulchre detection 2021-09-19 12:11:48 -07:00
Paul Gilbert a04bec4d04 AGS: Added Broken WIndows detections 2021-09-19 12:00:31 -07:00
Paul Gilbert 7c7694739b AGS: Added KQ4 Retold detection 2021-09-19 11:55:54 -07:00
Martin Gerhardy dc5d474160 MACVENTURE: re-use the read stream to reduce heap allocations 2021-09-19 15:21:56 +02:00