Skip to content

Commit

Permalink
SAGA: Add support for Russian fan-translation of IHNM
Browse files Browse the repository at this point in the history
Released about 2 years ago and is translating the subtitles
in contrast to the version released on CD which has only
poorly done voice-overs.
  • Loading branch information
sev- committed Jan 10, 2016
1 parent 05aa32d commit ceee171
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 1 deletion.
33 changes: 33 additions & 0 deletions engines/saga/detection_tables.h
Expand Up @@ -825,6 +825,39 @@ static const SAGAGameDescription gameDescriptions[] = {
IHNMCD_GameFonts,
NULL,
},

// I Have No Mouth And I Must Scream - Russian fan translaction v1.0 (by jack7277 et al)
{
{
"ihnm",
"",
{
{"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52", -1},
{"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583", -1},
{"scream.res", GAME_RESOURCEFILE, "ac00dd9e6701e8edbb49429dacbc4731", 79210049},
{"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e", -1},
{"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01", -1},
//{"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269", -1},
// There are two English versions of the game, each one with a different sfx.res file
// Known MD5 checksums for sfx.res in the English version of the game are
// 1c610d543f32ec8b525e3f652536f269 and 45a9a9f5d37740be24fd2ae2edf36573
{"sfx.res", GAME_SOUNDFILE, NULL, -1},
{ NULL, 0, NULL, 0}
},
Common::RU_RUS,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
GID_IHNM,
0,
IHNM_DEFAULT_SCENE,
&IHNM_Resources,
ARRAYSIZE(IHNMCD_GameFonts),
IHNMCD_GameFonts,
NULL,
},

// I Have No Mouth And I Must Scream - Mac English CD
{
{
Expand Down
2 changes: 1 addition & 1 deletion engines/saga/font.cpp
Expand Up @@ -232,7 +232,7 @@ void Font::createOutline(FontData *font) {
}

int Font::translateChar(int charId) {
if (charId <= 127)
if (charId <= 127 || (_vm->getLanguage() == Common::RU_RUS && charId <= 254))
return charId; // normal character
else
return _charMap[charId - 128]; // extended character
Expand Down
24 changes: 24 additions & 0 deletions engines/saga/itedata.cpp
Expand Up @@ -422,6 +422,30 @@ const char *ITEinterfaceTextStrings[][53] = {
NULL,
NULL,
"Cardango una partida guardada"
},
// Russian IHNM
{
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, "\xC2\xFB\xE9\xF2\xE8 \xE8\xE7 \xE8\xE3\xF0\xFB?",
"Load Successful!",
"\xC2\xE2\xE5\xE4\xE8\xF2\xE5 \xE8\xEC\xFF \xE7\xE0\xEF\xE8\xF1\xE8",
"\xC4\xE0\xF2\xFC %s >> %s",
"\xC8\xF1\xEF\xEE\xEB\xFC\xE7\xEE\xE2\xE0\xF2\xFC %s >> %s",
"[\xCD\xEE\xE2\xE0\xFF \xE7\xE0\xEF\xE8\xF1\xFC]",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
" \xC7\xE0\xE3\xF0\xF3\xE7\xEA\xE0 "
}
};

Expand Down
3 changes: 3 additions & 0 deletions engines/saga/saga.cpp
Expand Up @@ -503,6 +503,9 @@ const char *SagaEngine::getTextString(int textStringId) {
case Common::ES_ESP:
lang = 3;
break;
case Common::RU_RUS:
lang = 4;
break;
default:
lang = 0;
break;
Expand Down

0 comments on commit ceee171

Please sign in to comment.