Commit Graph
637 Commits
Author SHA1 Message Date
AndywinXp 1da5439f7a SWORD1: Add detection entry for GOG.com translated version
This version is from GOG.com, plus the german translation,
and DXA videos.
Ticket #14592.
2023-10-19 23:46:35 +02:00
AndywinXp 2022b893e0 SWORD1: Add German DVD detection entry
Ticket #14651, from german version of the trilogy in DVD
2023-10-19 23:41:14 +02:00
AndywinXp 3b6c35d041 SWORD1: PSX: American release should use british logo 2023-10-17 19:10:29 +02:00
D G Turner c60d53a34e SWORD1: Fix Memset On Non-Trivial Structure GCC Compiler Warning 2023-10-17 13:00:25 +01:00
AndywinXp 3bde6ebf00 SWORD1: PSX: Improve accuracy of "Paused" message 2023-10-17 00:26:46 +02:00
AndywinXp bc56133616 SWORD1: PSX: Improve accuracy of credits clipping 2023-10-16 23:31:50 +02:00
AndywinXp d504f3f18b SWORD1: PSX: Improve accuracy of sprite clipping code 2023-10-16 23:20:51 +02:00
AndywinXp 70568e6cf2 SWORD1: Prevent softlock when saving on phone envelope screen
And we prevent it by... drum roll please... disabling
the main menu and saving from the GMM whenever
we are in that screen :-)
2023-10-16 20:26:55 +02:00
AndywinXp 3091432ae9 SWORD1: Fix softlock in Marib when spam clicking cat 2023-10-16 14:00:58 +02:00
AndywinXp 2392177a7c SWORD1: PSX: Fix y coordinate for sprite drawing
Now sprites don't randomly go up and down when being
animated :-) This was taken from disasm.
2023-10-16 12:59:17 +02:00
AndywinXp 5daae32032 SWORD1: PSX: Implement credits
The PSX version doesn't have a credits Smacker video
but has a CREDITS.DAT file containing credits strings which
have to be displayed as a scrolling list of names and roles.
2023-10-16 12:59:17 +02:00
AndywinXp e19ac44440 SWORD1: PSX: Fix text position margin to match original
This still doesn't render correctly because the PSX version has
a blitting routing which moves coordinates around, but 34 is
the correct value to have here.
2023-10-16 12:59:17 +02:00
AndywinXp ebaa3857bb SWORD1: Change NULL to nullptr
This engine has somehow escaped the big NULL
purge from when we switched to C++11
2023-10-16 08:45:15 +02:00
AndywinXp c1cd0dec79 SWORD1: Fix uninit variable issues
Coverity issues:
CID 1522857
CID 1522855
CID 1522854
CID 1522853
CID 1522852
2023-10-16 08:34:49 +02:00
AndywinXp 85f6cc6868 SWORD1: Add alternate MediaHauz detection entry
Ticket #14655
2023-10-15 10:55:22 +02:00
AndywinXp 4379d9352e CREDITS: Sync SCUMM, SWORD1 and CRAB 2023-10-13 00:43:36 +02:00
AndywinXp 24828afcc4 SWORD1: SOUND: Remove unnecessary debug print 2023-10-12 23:54:24 +02:00
AndywinXp dea30b9673 SWORD1: SOUND: Stop music handle at the end of fade-out
This emulates the AIL driver more closely, as the sample should
immediately stop. This also fixes Lady Piermont piano not fading out
properly whenever a conversation is started with her.
2023-10-12 23:54:24 +02:00
AndywinXp a68051b2f0 SWORD1: SOUND: Move memset to after checking buffer availability 2023-10-12 23:54:24 +02:00
AndywinXp 0d153d6e62 SWORD1: SOUND: Zero out speech sample buffer before filling it 2023-10-12 23:54:24 +02:00
AndywinXp 598145cde0 SWORD1: SOUND: Remove hack in fnPlayMusic()
We now handle missing files correctly.
2023-10-12 23:54:24 +02:00
AndywinXp d7dda29c5c SWORD1: SOUND: Revert resource id hack (3451d1c)
The commit I'm reverting is a very old one and forces
stereo inversion in a couple of sound effects in Rue Jerry.

The wrong stereo direction is in the original as well;
this surely is fixable, but we shouldn't do things like
editing the resource identifiers anymore, instead we
should put up an enhancement system like the one in
the SCUMM engine, and force the samples swap at
runtime only during that particular screen.
2023-10-12 23:54:24 +02:00
AndywinXp acba0e6a0b SWORD1: SOUND: Fix typo which broke GMM interoperability 2023-10-12 23:54:24 +02:00
AndywinXp 096da97262 SWORD1: SOUND: Fix warnings 2023-10-12 23:54:24 +02:00
AndywinXp 5ecdcecf72 SWORD1: SOUND: Remove Music class and files
All sound is now handled by a single engine (Sound class)
2023-10-12 23:54:24 +02:00
AndywinXp a4d08cfc4c SWORD1: SOUND: Final code clean-up pass
...hopefully :-)
2023-10-12 23:54:24 +02:00
AndywinXp 0f02b66ebe SWORD1: SOUND: Implement persistence of volume settings 2023-10-12 23:54:24 +02:00
AndywinXp 1490905ea0 SWORD1: SOUND: Implement PSX music 2023-10-12 23:54:24 +02:00
AndywinXp 6ee4a692de SWORD1: SOUND: Finish implementing support for compressed music 2023-10-12 23:54:24 +02:00
AndywinXp 5fbb2a281e SWORD1: SOUND: Clean-up and preparation for compressed music 2023-10-12 23:54:24 +02:00
AndywinXp 023426f90d SWORD1: Fix crashes and music pausing 2023-10-12 23:54:24 +02:00
AndywinXp caaf249e09 SWORD1: SOUND: Implement music for DOS version
PSX and compressed versions will follow shortly after
2023-10-12 23:54:24 +02:00
AndywinXp bcff798029 SWORD1: SOUND: Do a code clean-up pass 2023-10-12 23:54:24 +02:00
AndywinXp 4c0d127a62 SWORD1: SOUND: Reimplement speech
Compressed speech files should work right out of
the box.
2023-10-12 23:54:24 +02:00
AndywinXp c03fe08881 SWORD1: SOUND: Implement sound effects playing and fading 2023-10-12 23:54:24 +02:00
AndywinXp 88dd4ee928 SWORD1: SOUND: Wire up some variables&funcs used externally 2023-10-12 23:54:24 +02:00
AndywinXp f0f23208ac SWORD1: SOUND: Wire up more functions and set up the fade timer thread 2023-10-12 23:54:24 +02:00
AndywinXp 94a8fc246b SWORD1: Begin sound engine rewrite 2023-10-12 23:54:24 +02:00
AndywinXp b1950ac1b7 SWORD1: Avoid nullptr access 2023-10-10 21:49:16 +02:00
AndywinXp e7e18b79f7 SWORD1: Allow for immediate object look and combine
This stops George from walking or beginning its rest animation
when we perform an object look or combine on the top menu.
This is on the original code but we never implemented it...
2023-10-08 23:04:15 +02:00
AndywinXp 730af6eae6 SWORD1: Improve accuracy of menu bars handling
More specifically:
- Improve handling of menu bar fading during a palette fade;
- Fix _getOff not being handled if top menu was disabled.
2023-10-08 22:47:39 +02:00
AndywinXp 96c4fe3648 SWORD1: Remove hack from fnEnterSection()
This originally fixed a crash at startup, but we seem
to handle everything correctly now, so this now works
as it should. Tested on DOS, Mac and PSX versions.
2023-10-05 09:23:23 +02:00
AndywinXp 85a34350d2 SWORD1: Properly init virtual mouse coordinates
This ensures that when loading a savegame the top menu bar
doesn't enter in its open state by mistake because the mouse
coordinates are wrongly set as (0,0).
2023-10-05 00:02:04 +02:00
AndywinXp bba3e8d6ba SWORD1: Fix typo in a comment 2023-10-01 09:58:07 +02:00
AndywinXp 70b6da9211 SWORD1: Apply script patch found in executable and source
This patch is available in every executable after the
original UK one. Its purpose is to turn off scripts which
were causing issues by continuing running past their scope.
The patch, as descripted within the the original source
code, checks if the game is past the Syria section,
and if so it checks if the Market Stall section is still
alive, and if so it closes both the section (45) and
the Mega object for Duane (134), effectively terminating
their scripts.
2023-10-01 09:33:33 +02:00
AndywinXp abd2a3d630 SWORD1: Protect concurrent menu bar elements accesses
Still part of #14638. I have began measuring for slowdowns
caused by mutexes, on slow Virtual Machines, and luckily I
have found none for now...
2023-09-30 19:54:13 +02:00
AndywinXp 258d61f63a SWORD1: Remove code altering live_list[]
What was I thinking when I added this?!
This code unconditionally enters sections, with the risk
of them being active throughout the whole game, without
ever being closed. I sure love hearing the Irish Pub fiddle
player from within the ending scene with the Neo-Templars. :-)
2023-09-30 09:11:03 +02:00
AndywinXp 85f63350ba SWORD1: PSX: Implement (mostly) accurate text positioning
I say "mostly" because I still have off-by-one positioning inaccuracies,
and navigating the PSX disasm is very tiresome... I'm not even sure
we are rendering sprites in the correct position anymore... Argh!
2023-09-29 00:01:52 +02:00
AndywinXp c99265cf97 SWORD1: Optimize menu handling during palette fades
We are only updating the menu bars when the screen is not fading.
This optimization restores the same code speed as previous
codebase iterations without thread-safeness whenever a menu
is interacted with during a palette fade.
2023-09-28 11:02:04 +02:00
AndywinXp d222359fde SWORD1: More thread-safeness measures as part of #14638
This commit deals with all the copyRectToScreen calls which, during
a palette fade, can collide with screen updates. These changes are
verified with a Thread Sanitizer enabled build.

I know that the latest commits have introduced lots of locks, and
I'm going to optimize the optimizable, but first I have to reach a
no-crash point :-)
2023-09-28 11:00:20 +02:00