Vladimir Serbinenko
3e7abf974d
SCI: Patch invalid picture in Russian translation of Torin's passage
2021-01-02 11:41:37 +02:00
Vladimir Serbinenko
373673c2d6
SCI: Add City Torin translation to detection list
2021-01-02 11:41:37 +02:00
Vladimir Serbinenko and athrxx
280f83242e
KYRA: replace const char * with Common::String around getTableString. ( #2603 )
...
Currently const char * points into some random buffer with unclear
lifetime.
Instead use Common::String which ensures lifetime as long as a reference is
held.
This also removes the need of copying into existing buffers in HoF and MR.
UnkBuf* are gone as well.
Co-authored-by: athrxx <athrxx@scummvm.org >
2021-01-01 16:37:27 +01:00
Vladimir Serbinenko
1476bf1fae
HADESCH: Remove the need for global constructors
2020-12-21 14:30:43 +01:00
Vladimir Serbinenko
b76576abd4
STARTREK: Specify that action is signed char
...
x86 uses signed chars but this is architecture-dependent and on arm it's
unsigned and leads to compilation failure
2020-12-19 23:23:19 +02:00
Vladimir Serbinenko
02770c485d
HADESCH: Add lost file hadesch_translations.dat
2020-12-18 10:36:26 +01:00
Vladimir Serbinenko
b8a5483047
HADESCH: Use separate file for translations
2020-12-17 09:49:18 +01:00
Vladimir Serbinenko
0d39e96f55
COMMON: Make TranslationManager reusable.
...
This makes it possible to reuse TranslationManager with different
files.
2020-12-17 09:49:18 +01:00
Vladimir Serbinenko
937d5c4a98
HADESCH: Show subtitles for AIF files
2020-12-17 09:49:18 +01:00
Vladimir Serbinenko
d92adc6f2c
HADESCH: Transcribe and classify all the AIF files
...
This doesn't cover SMK files which would be a second effort
2020-12-17 09:49:18 +01:00
Vladimir Serbinenko
134d2051b4
SCUMM: Add MD5 of Russian Atlantis translation
2020-12-17 02:02:31 +02:00
Vladimir Serbinenko
b58b09323c
SCUMM: Support for uncompressed bundles like used in some fan translations
...
Apparently it's a beta variant of storing files in the bundle without
compression and in little-endian. I tried to find an indicator for endianness
in uncompressed iMuse file but apparently there isn't any. Hence we need to
propagate a bool from bundle to imuse layer.
This is used by Akella Russification of COMI
2020-12-08 08:09:17 +01:00
Vladimir Serbinenko
26207d29b7
SCUMM: Don't error out on invalid bundles
...
Akella COMI localization contaions 2 garbage sounds: one is in RIFF WAV and
other is raw sound instead of iMuse. As itś only 2 utterances it's not
critical but avoid crashing on them
2020-12-08 08:09:17 +01:00
Vladimir Serbinenko
5c91fb8d6a
SCUMM: Support Lokalizator plugin.
...
This was used by Russian translation of Pajama Sam 2 and Spy Fox 3
2020-12-07 23:01:38 +01:00
Vladimir Serbinenko
03ee842db9
SCUMM: Add old variant PRCA to detection
...
This is needed to ensure that correct encoding is selected
2020-12-07 19:16:05 +01:00
Vladimir Serbinenko
3132c12737
SCI: Add alternative SQ5 Russian release
2020-11-23 17:13:40 +01:00
Vladimir Serbinenko
41aa180ad4
SCUMM: Add RuSCUMM version of Indiana Jones and the Fate of Atlantis
2020-11-23 17:13:15 +01:00
Vladimir Serbinenko
0d521a12b8
SCUMM: Decode resource strings using CP866 for Russian translations
2020-11-23 17:13:15 +01:00
Vladimir Serbinenko
bc52f01a9a
BBVS: Fix Russian buttons ( #2626 )
...
Russian text is in ISO8859-5. When GUI was converted to UTF-32 thos spot
was missed and ended up being interpreted as Latin1. Then iconv rewrite
changed to UTF-8. Change them to UTF-8 and mark as UTF-8 explicitly.
Fix spelling mistake while on it
2020-11-16 14:01:10 +01:00
Vladimir Serbinenko
b0e5ca855d
BBVS: Fix misdetection of Russian version as demo ( #2625 )
...
GF_GUILANGSWITCH and GF_LOOGIE_DEMO have the same value and hence the code
treats Russian version as loogie demo and crashes as bbloogie.000 is in
an unexpected directory for the demo
2020-11-16 14:00:46 +01:00
Vladimir Serbinenko
9b824d73af
TEST: remove prinring of md5 of encoding.dat
2020-11-16 10:06:27 +01:00
Vladimir Serbinenko
e187cee802
TEST: Don't suppress errors on copying of encoding.dat
2020-11-16 06:30:48 +01:00
Vladimir Serbinenko
cb5c080151
TEST: Fix path to test/runner.cpp
2020-11-16 04:09:37 +01:00
Vladimir Serbinenko
23111de32e
TEST: clean copied encoding.dat
2020-11-16 03:47:22 +01:00
Vladimir Serbinenko
f5ffbe1155
TEST: Copy encoding.dat to make tests work in relative build directory
2020-11-16 02:38:22 +01:00
Vladimir Serbinenko
cd8270f039
TEST: Third attempt to fix the tests
...
Some tests unnecessarily referred to null osystem. Tested with PSP target
2020-11-16 01:51:14 +01:00
Vladimir Serbinenko
e3ace27da0
TEST: Second attempt at fixing tests
...
The framework doesn't understand preprocessor, put preprocessing inside the
tests.
2020-11-16 00:51:22 +01:00
Vladimir Serbinenko
a9fe1d7a84
TEST: Skip CJK tests outside of POSIX
...
They need file access that needs null backend which for now only
peopwely compiles on POSIX.
2020-11-15 23:57:53 +01:00
Vladimir Serbinenko
68a9136e4d
COMMON: Rewrite Encoder and drop dependency on iconv ( #2586 )
...
Different platforms have different levels of support of encodings and
often have slight variations. We already have tables for most encoding
with only CJK missing. Full transcoding inclusion allows us to get reliable
encoding results independently of platform. The biggest con is the need for
external tables encoding.dat.
It removes a duplicate table for korean in graphics/korfont.cpp
2020-11-15 16:20:35 +01:00
Vladimir Serbinenko
4b6bda0831
SLUDGE: Remove UTF8 code ( #2592 )
...
This is basically a duplicate of UTF8 from common.
So just use common code instead
2020-11-10 17:19:23 +01:00
Vladimir Serbinenko
4aa3d35d77
KYRA: Add a sanity test for aud files ( #2614 )
...
Russian translation dumbs out aud files, so don't attempt to read them
2020-11-09 22:57:13 +01:00
Vladimir Serbinenko
53f34d3acf
HADESCH: Add detection of 2 known bad dumps
2020-11-09 01:13:16 +01:00
Vladimir Serbinenko
7cda72a79c
KYRA: Fix crash in Siberian Goblin translation of HoF ( #2609 )
...
* KYRA: don't attempt to execute functions out of bounds
This fixes crash in Siberian Goblin translation of HoF on scarecrow scene
* KYRA: Add sanity check not to execut out of bounds
2020-11-06 17:00:30 +01:00
Vladimir Serbinenko
e07fc52767
ANDROID: Merge few files between android and android3d ( #2595 )
...
While unfortunately it doesn't help with existing differences it help
to prevent their increase
2020-11-03 14:50:54 +01:00
Vladimir Serbinenko
a1a53eb205
ANDROID: Fix android3d compilation ( #2594 )
...
SAF was added to android but not android3d yet it is in both cases
in posifxfs.
Merging android and android3d will be a separate project
2020-11-03 12:36:51 +01:00
Vladimir Serbinenko
54b0b4ac4c
COMMON: Restore old behaviour for appending char to string
...
Appending \0 to string and expecting it to be just dropped is
still an invalid behaviour but it already happened in 2 engines, so
restore old behaviour, at least for now
2020-11-03 11:19:20 +01:00
Vladimir Serbinenko
3fc822e55c
COMMON: introduce substr for U32String ( #2585 )
...
It's safer than direct array manipulation. Replace current uses
of subsetting with substr.
2020-11-01 22:53:03 +01:00
Vladimir Serbinenko
148a4195a8
ULTIMA: Fix compilation with older compilers
2020-11-01 19:40:00 +01:00
Vladimir Serbinenko
8656e2be9e
HADESCH: Ensure lifecycle of heroNameUTF8
...
If you encode and do c_str() in the same statement then temporary
object may be freed before c_str result is actually used. So far
it wasn't a problem but let's be safe
2020-11-01 17:16:03 +01:00
Vladimir Serbinenko
0d7ab6cd64
COMMON: compilation fix on some older compilers
2020-11-01 14:58:46 +01:00
Vladimir Serbinenko
92e8988936
HADESCH: Use U32String for hero and save name
...
This doesn't have any immediate benefit as fonts have only 256
characters but it's a step in right direction.
2020-11-01 00:05:09 +01:00
Vladimir Serbinenko
93ee9d0896
COMMON: Fix operator+ declaration in U32String
2020-10-31 23:56:40 +01:00
Vladimir Serbinenko
29cfa7bb0f
COMMON: Merge code for str.cpp and ustr.cpp
...
Most of the code in str.cpp and ustr.cpp is actually the same. Do some
template magic to merge them.
2020-10-31 14:05:30 +01:00
Vladimir Serbinenko
8fdfb15f6e
SCI: Fix crash when running sq6-mac with macbinary
...
The resource validation fails big time because no file Data9 exists.
It's expected as its in Data9.bin instead. Since we check resource fork
explicitly in the case of resource-fork resources this check is redundant
2020-10-31 11:27:49 +02:00
Vladimir Serbinenko
c64a631520
HADESCH: Fix Charon teleportation
2020-10-29 11:25:59 +01:00
Vladimir Serbinenko
11d2722379
HADESCH: fix eye of fates position before it's given back
2020-10-29 11:25:59 +01:00
Vladimir Serbinenko
dc8debc4d2
HADESCH: Fix wrong quest scroll for medusa quest
2020-10-29 11:25:59 +01:00
Vladimir Serbinenko
30e9bd2f1d
HADESCH: Fix wrongly displayed straw cart
2020-10-29 11:25:59 +01:00
Vladimir Serbinenko
829654c2dc
HADESCH: fix animation cleanup in ferry.
...
IT makes the puzzle impossible to complete
2020-10-27 16:44:49 +01:00
Vladimir Serbinenko
12bb8f9c26
HADESCH: Save and restore gender from savefiles
2020-10-27 11:14:52 +01:00
Vladimir Serbinenko
1317a7c267
HADESCH: wall of fame cleanup
2020-10-27 10:53:33 +01:00
Vladimir Serbinenko
4cd62c6596
HADESCH: init _cheatsEnabled
2020-10-27 10:53:33 +01:00
Vladimir Serbinenko
9d05d350ff
HADESCH: Fix bad autosave at engine launch
2020-10-27 10:53:33 +01:00
Vladimir Serbinenko
038704b772
HADESCH: Fix soft lock on Seriphos
2020-10-27 10:53:33 +01:00
Vladimir Serbinenko
a02f602dfb
HADESCH: Fix access violation in Athena's temple
2020-10-27 00:57:21 +01:00
Vladimir Serbinenko
8f79623e63
HADESCH: Fix dismissing of troy popup grate
2020-10-27 00:57:21 +01:00
Vladimir Serbinenko
34b7451b15
HADESCH: Fix mast softlock in argo scene
2020-10-26 09:38:50 +01:00
Vladimir Serbinenko
0446966e32
HADESCH: support restore from launcher
2020-10-26 09:38:50 +01:00
Vladimir Serbinenko
5bce0aa737
HADESCH: Fix handling of atlantis intro
2020-10-25 22:49:01 +01:00
Vladimir Serbinenko
9c9dd99f23
HADESCH: Fix decoder closing handling in catacombs
2020-10-25 22:49:01 +01:00
Vladimir Serbinenko
7852ca2b21
HADESCH: Fix wrong room moves
2020-10-25 22:49:01 +01:00
Vladimir Serbinenko
38c4a0849a
HADESCH: Fix playing of Troy/Odysseus intro
2020-10-25 22:49:01 +01:00
Vladimir Serbinenko
366e9997c4
COMMON: Fix freetype path for psp
...
Current config ends up pulling freetype headers from host which depending
on version on host and in toolchain may result in linking or runtime errors
2020-10-25 22:46:59 +01:00
Vladimir Serbinenko
d671899e52
COMMON: Move -G0 to right place for psp
2020-10-25 22:46:35 +01:00
Vladimir Serbinenko
0714302b0b
COMMON: Add -G0 for PSP
...
Our pspfull build has got section over 64K. Projects like retroarch also
use -G0. It's a bit slower and binary is a bit larger but it works.
2020-10-25 19:35:58 +01:00
Vladimir Serbinenko
784dd5f0f1
TWINE: Fix array inits missed in 1ef2265991
2020-10-25 05:18:52 +01:00
Vladimir Serbinenko
f42300b6f5
PLUMBERS: Add 16bit dependency
...
It's needed to handle 3DO variant of the game.
2020-10-25 03:15:52 +01:00
Vladimir Serbinenko
4e53ae7fed
PLUMBERS: don't use memset when initing
...
memsetting over Common::String is a bad idea and creates a weird behaviour.
2020-10-25 03:14:25 +01:00
Vladimir Serbinenko
3096ff991a
HADESCH: fix double-free when handling corrupt video files
2020-10-25 03:12:54 +01:00
Vladimir Serbinenko
60c623e316
HADESCH: Rename Shade to StyxShade
...
We have 2 Shade's: in ferry.cpp and in riverstyx.cpp. Rename one of
them to prevent possible collisions.
2020-10-25 03:11:48 +01:00
Vladimir Serbinenko
b4fd8cb16a
HADESCH: handle gracefully successive changes of rooms.
...
This can happen e.g. in video-only scene if video file is unreadable.
2020-10-25 03:10:31 +01:00
Vladimir Serbinenko
9045bceac9
HADESCH: Use getRandomBit rather than getRandomNumber(0, 1)
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
76eade7718
HADESCH: Fix shadowing
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
03ce7bfd6c
HADESCH: fix medisle warnings
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
1464115ccb
HADESCH: fix warnings in minotaur.cpp
...
They're real warnings but let's convert tem to TODOs.
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
bed87e92d1
HADESCH: fix typo in loop variable
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
d8fc5bad56
HADESCH: fix signedness warnings
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
0d43a003bf
HADESCH: Use getRandomNumberRngSigned when generating a signed random
...
Unsignedone is technically undefined even though practically equivalent
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
18626c2e96
COMMON: Add a signed variant of getRandomNumberRng.
...
Useful for generating negative numbers
2020-10-25 01:02:58 +02:00
Vladimir Serbinenko
fbc2c929e3
PLUMBERS: fix Surface forward declaration
2020-10-24 23:08:14 +02:00
Vladimir Serbinenko
7398a027b3
HADESCH: replace Common::Point with a struct in init tables
...
This avoids global constructors.
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
fb6c0d8749
HADESCH: name enums to avoid anonymous enum templates
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
e59357eb3a
HADESCH: change const to define when it removes global constructor
...
It's a bit less nice but avoids global constructors
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
8bf5109950
HADESCH: typhoon: Reorganize structure to avoid global constructors
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
6150169978
HADESCH: fix forward declaration of MacCursor
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
d424dcebfe
HADESCH: ferry: restructure structs to avoid global constructors
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
25200d6815
HADESCH: Restruct BirdInfo to void global constructor
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
c2d0593690
HADESCH: Remove several unused variables
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
79ea974574
HADESCH: Put all statue fields into single struct
...
This is nicer and avoids the need for global constructor
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
8e5efc0fda
HADESCH: Add missing override keywords
2020-10-24 23:07:59 +02:00
Vladimir Serbinenko
058592794f
HADESCH: Add new engine for Hades' Challenge
...
The game is completable but 3 arcade sequences at the end of Minotaur, Medusa and Troy quests.
Probably full of bugs but I already publish it for consideration
2020-10-24 19:51:30 +02:00
Vladimir Serbinenko
125fd9d80c
PLUMBERS: support for 3DO version
...
It was fun to reverse engineer but the game is garbage, so I didn't test
it a lot, please report bugs.
Currently missing parts:
* effect when changing between scenes
* 3DO boot logo
* return to previous scene
* hide cursor
2020-10-24 00:59:01 +02:00
Vladimir Serbinenko
3c97ebd4f9
VIDEO: support multi-track audios in 3DO videos
...
It's used in plumbers with first track being speech and second track
being music
2020-10-24 00:59:01 +02:00
Vladimir Serbinenko
ce6eb34121
VIDEO: uplift 3do movie decoder from sherlock engine
...
The format is generic to 3DO and is also used by plumbers.
I think it's also accelerated on 3DO so probably is used by
a lot of 3DO titles
2020-10-24 00:59:01 +02:00
Vladimir Serbinenko
f3f0d0228a
IMAGE: Add decoder for CEL 3DO format
...
This format is used by 3DO version of Plumbers Don't Wear Ties
but it's a generic format on 3DO similar to BMP on windows.
2020-10-24 00:59:01 +02:00
Vladimir Serbinenko
18e6878311
COMMON: Add String::asUint64Ext
...
This is the same as String::asUint64 but supports 0x and 0 prefixes
2020-10-17 22:34:58 +02:00
Vladimir Serbinenko
55559539af
common/array: Fix comment
...
Comment speaks about double-linked list but we actually have an array
2020-10-06 18:16:53 +02:00
Vladimir Serbinenko
1e3b41d71b
Add division and multiplication operators to Common::Point
...
They're convenient for performing computations and I use
them in Hades Challenge engine
2020-10-06 18:16:08 +02:00
Vladimir Serbinenko
49979f1665
GRAPHICS: Support 4-bit windows cursors
2020-07-22 00:06:36 +02:00