ALL: synced with ScummVM commit 09bf38c120

This commit is contained in:
Pawel Kolodziejski 2020-05-09 20:05:54 +02:00
parent b5d73d4c22
commit b586571900
414 changed files with 111155 additions and 38279 deletions

View file

@ -84,15 +84,26 @@ static const char HELP_STRING[] =
" --auto-detect Display a list of games from current or specified directory\n"
" and start the first one. Use --path=PATH to specify a directory.\n"
" --recursive In combination with --add or --detect recurse down all subdirectories\n"
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
#if defined(WIN32) && !defined(__SYMBIAN32__)
" --console Enable the console window (default:enabled)\n"
#endif
"\n"
" -c, --config=CONFIG Use alternate configuration file\n"
#if defined(SDL_BACKEND)
" -l, --logfile=PATH Use alternate path for log file\n"
#endif
" -p, --path=PATH Path to where the game is installed\n"
" -x, --save-slot[=NUM] Save game slot to load (default: autosave)\n"
" -f, --fullscreen Force full-screen mode\n"
" -F, --no-fullscreen Force windowed mode\n"
#if 0 // ResidulVM - not used
" -g, --gfx-mode=MODE Select graphics scaler (1x,2x,3x,2xsai,super2xsai,\n"
" supereagle,advmame2x,advmame3x,hq2x,hq3x,tv2x,\n"
" dotmatrix)\n"
" --stretch-mode=MODE Select stretch mode (center, integral, fit, stretch)"
" --filtering Force filtered graphics mode\n"
" --no-filtering Force unfiltered graphics mode\n"
#endif
" --gui-theme=THEME Select GUI theme\n"
" --themepath=PATH Path to where GUI themes are stored\n"
" --list-themes Display list of all usable GUI themes\n"
@ -123,13 +134,27 @@ static const char HELP_STRING[] =
" pce, segacd, wii, windows)\n"
" --savepath=PATH Path to where saved games are stored\n"
" --extrapath=PATH Extra path to additional game data\n"
#if 0 // ResidulVM - not used
" --soundfont=FILE Select the SoundFont for MIDI playback (only\n"
" supported by some MIDI drivers)\n"
" --multi-midi Enable combination AdLib and native MIDI\n"
" --native-mt32 True Roland MT-32 (disable GM emulation)\n"
" --dump-midi Dumps MIDI events to 'dump.mid', until quitting from game\n"
" (if file already exists, it will be overwritten)\n"
" --enable-gs Enable Roland GS mode for MIDI playback\n"
#endif
" --output-rate=RATE Select output sample rate in Hz (e.g. 22050)\n"
" --opl-driver=DRIVER Select AdLib (OPL) emulator (db, mame)\n"
#if 0 // ResidulVM - not used
" --opl-driver=DRIVER Select AdLib (OPL) emulator (db, mame"
#ifndef DISABLE_NUKED_OPL
", nuked"
#endif
#ifdef ENABLE_OPL2LPT
", opl2lpt"
#endif
")\n"
#endif
#if 1 // ResidulVM specific
" --talkspeed=NUM Set talk speed for games (default: 179)\n"
" --show-fps Set the turn on display FPS info\n"
" --no-show-fps Set the turn off display FPS info\n"
@ -139,6 +164,13 @@ static const char HELP_STRING[] =
" (default: 0) (only supported by software renderer)\n"
" --[no-]dirtyrects Enable dirty rectangles optimisation in software renderer\n"
" (default: enabled)\n"
#endif
" --aspect-ratio Enable aspect ratio correction\n"
#if 0 // ResidulVM - not used
" --render-mode=MODE Enable additional render modes (hercGreen, hercAmber,\n"
" cga, ega, vga, amiga, fmtowns, pc9821, pc9801, 2gs,\n"
" atari, macintosh)\n"
#endif
#ifdef ENABLE_EVENTRECORDER
" --record-mode=MODE Specify record mode for event recorder (record, playback,\n"
" passthrough [default])\n"
@ -147,12 +179,37 @@ static const char HELP_STRING[] =
" playback by Event Recorder\n"
#endif
"\n"
#ifdef ENABLE_GRIM
#if defined(ENABLE_SKY) || defined(ENABLE_QUEEN)
" --alt-intro Use alternative intro for CD versions of Beneath a\n"
" Steel Sky and Flight of the Amazon Queen\n"
#endif
#if 0 // ResidulVM - not used
" --copy-protection Enable copy protection in games, when\n"
" ScummVM disables it by default.\n"
" --talkspeed=NUM Set talk speed for games (default: 60)\n"
#endif
#if defined(ENABLE_SCUMM) || defined(ENABLE_GROOVIE)
" --demo-mode Start demo mode of Maniac Mansion or The 7th Guest\n"
#endif
#if defined(ENABLE_DIRECTOR)
" --start-movie=NAME Start movie for Director\n"
#endif
//#ifdef ENABLE_SCUMM // ResidualVM not used
" --tempo=NUM Set music tempo (in percent, 50-200) for SCUMM games\n"
" (default: 100)\n"
//#ifdef ENABLE_SCUMM_7_8 // ResidualVM not used
#ifdef ENABLE_GRIM // ResidualVM specific
" --dimuse-tempo=NUM Set internal Digital iMuse tempo (10 - 100) per second\n"
" (default: 10)\n"
#endif
//#endif // ResidualVM - not used
#if 1 // ResidulVM specific
" --engine-speed=NUM Set frame per second limit (0 - 100), 0 = no limit\n"
" (default: 60)\n"
#endif
"\n"
"The meaning of boolean long options can be inverted by prefixing them with\n"
"\"no-\", e.g. \"--no-aspect-ratio\".\n"
;
#endif
@ -193,8 +250,17 @@ void registerDefaults() {
ConfMan.registerDefault("filtering", false);
ConfMan.registerDefault("show_fps", false);
ConfMan.registerDefault("aspect_ratio", false);
/* ResidualVM - not used
ConfMan.registerDefault("gfx_mode", "normal");
ConfMan.registerDefault("render_mode", "default");
ConfMan.registerDefault("desired_screen_aspect_ratio", "auto");
ConfMan.registerDefault("stretch_mode", "default");
ConfMan.registerDefault("shader", "default");*/
// ResidualVM specific start
ConfMan.registerDefault("show_fps", false);
ConfMan.registerDefault("dirtyrects", true);
ConfMan.registerDefault("bpp", 0);
// ResidualVM specific end
// Sound & Music
ConfMan.registerDefault("music_volume", 192);
@ -208,12 +274,15 @@ void registerDefaults() {
ConfMan.registerDefault("multi_midi", false);
ConfMan.registerDefault("native_mt32", false);
/* ResidualVM - not used
ConfMan.registerDefault("dump_midi", false);
ConfMan.registerDefault("enable_gs", false);
ConfMan.registerDefault("midi_gain", 100);
ConfMan.registerDefault("music_driver", "auto");
ConfMan.registerDefault("mt32_device", "null");
ConfMan.registerDefault("gm_device", "null");
ConfMan.registerDefault("opl2lpt_parport", "null");*/
ConfMan.registerDefault("cdrom", 0);
@ -229,15 +298,36 @@ void registerDefaults() {
ConfMan.registerDefault("save_slot", -1);
ConfMan.registerDefault("autosave_period", 5 * 60); // By default, trigger autosave every 5 minutes
ConfMan.registerDefault("talkspeed", 179);
#if defined(ENABLE_SCUMM) || defined(ENABLE_SWORD2)
ConfMan.registerDefault("object_labels", true);
#endif
#ifdef ENABLE_GRIM
/* ResidualVM - not used
ConfMan.registerDefault("copy_protection", false);
ConfMan.registerDefault("talkspeed", 60);*/
#if defined(ENABLE_SCUMM) || defined(ENABLE_GROOVIE)
ConfMan.registerDefault("demo_mode", false);
#endif
#ifdef ENABLE_SCUMM
ConfMan.registerDefault("tempo", 0);
#ifdef ENABLE_SCUMM_7_8
ConfMan.registerDefault("dimuse_tempo", 10);
#endif
ConfMan.registerDefault("engine_speed", 60);
#endif
#if defined(ENABLE_SKY) || defined(ENABLE_QUEEN)
ConfMan.registerDefault("alt_intro", false);
#endif
#ifdef ENABLE_GRIM // ResidualVM specific
ConfMan.registerDefault("dimuse_tempo", 10);
#endif
#if 1 // ResidualVM specific
ConfMan.registerDefault("talkspeed", 179);
#endif
// Miscellaneous
ConfMan.registerDefault("joystick_num", -1);
ConfMan.registerDefault("joystick_num", 0);
ConfMan.registerDefault("confirm_exit", false);
ConfMan.registerDefault("disable_sdl_parachute", false);
@ -500,6 +590,11 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
DO_OPTION('c', "config")
END_OPTION
#if defined(SDL_BACKEND)
DO_OPTION('l', "logfile")
END_OPTION
#endif
DO_OPTION_INT('b', "boot-param")
END_OPTION
@ -541,6 +636,16 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
DO_LONG_OPTION("opl-driver")
END_OPTION
/* ResidualVM - not used
DO_OPTION('g', "gfx-mode")
END_OPTION
DO_LONG_OPTION("stretch-mode")
END_OPTION
DO_LONG_OPTION("shader")
END_OPTION*/
DO_OPTION_INT('m', "music-volume")
END_OPTION
@ -608,12 +713,23 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
DO_LONG_OPTION_BOOL("native-mt32")
END_OPTION
/* ResidualVM - not used
DO_LONG_OPTION_BOOL("dump-midi")
END_OPTION*/
DO_LONG_OPTION_BOOL("enable-gs")
END_OPTION
DO_LONG_OPTION_BOOL("aspect-ratio")
END_OPTION
/* ResidualVM - not used
DO_LONG_OPTION("render-mode")
int renderMode = Common::parseRenderMode(option);
if (renderMode == Common::kRenderDefault)
usage("Unrecognized render mode '%s'", option);*/
// ResidualVM specific start
DO_LONG_OPTION_INT("bpp")
END_OPTION
@ -654,6 +770,10 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
DO_LONG_OPTION_INT("talkspeed")
END_OPTION
/* ResidualVM - not used
DO_LONG_OPTION_BOOL("copy-protection")
END_OPTION*/
DO_LONG_OPTION("gui-theme")
END_OPTION
@ -678,17 +798,33 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
DO_LONG_OPTION("target-md5")
END_OPTION
#ifdef ENABLE_GRIM
#ifdef ENABLE_SCUMM
DO_LONG_OPTION_INT("tempo")
END_OPTION
#ifdef ENABLE_SCUMM_7_8
DO_LONG_OPTION_INT("dimuse-tempo")
END_OPTION
#endif
#endif
#if defined(ENABLE_SCUMM) || defined(ENABLE_GROOVIE)
DO_LONG_OPTION_BOOL("demo-mode")
END_OPTION
#endif
#if defined(ENABLE_SKY) || defined(ENABLE_QUEEN)
DO_LONG_OPTION_BOOL("alt-intro")
END_OPTION
#endif
// ResidualVM specific start
#ifdef ENABLE_GRIM
DO_LONG_OPTION_INT("dimuse-tempo")
END_OPTION
#endif
DO_LONG_OPTION_INT("engine-speed")
END_OPTION
DO_LONG_OPTION("speech-mode")
END_OPTION
// ResidualVM specific end
#ifdef IPHONE
// This is automatically set when launched from the Springboard.
@ -696,12 +832,17 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
END_OPTION
#endif
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
#if defined(WIN32) && !defined(__SYMBIAN32__)
// Optional console window on Windows (default: enabled)
DO_LONG_OPTION_BOOL("console")
END_OPTION
#endif
#if defined(ENABLE_DIRECTOR)
DO_LONG_OPTION("start-movie")
END_OPTION
#endif
unknownOption:
// If we get till here, the option is unhandled and hence unknown.
usage("Unrecognized option '%s'", argv[i]);
@ -757,7 +898,7 @@ static void listTargets() {
// If there's no description, fallback on the default description.
if (description.empty()) {
QualifiedGameDescriptor g = EngineMan.findTarget(name);
if (g.description)
if (!g.description.empty())
description = g.description;
}
// If there's still no description, we cannot come up with one. Insert some dummy text.
@ -807,7 +948,7 @@ static Common::Error listSaves(const Common::String &singleTarget) {
currentTarget = *i;
EngineMan.upgradeTargetIfNecessary(*i);
game = EngineMan.findTarget(*i, &plugin);
} else if (game = findGameMatchingName(*i), game.gameId) {
} else if (game = findGameMatchingName(*i), !game.gameId.empty()) {
// The name is a known game id
plugin = EngineMan.findPlugin(game.engineId);
currentTarget = createTemporaryTarget(game.engineId, game.gameId);
@ -1231,7 +1372,7 @@ bool processSettings(Common::String &command, Common::StringMap &settings, Commo
QualifiedGameDescriptor gameOption;
if (settings.contains("game")) {
gameOption = findGameMatchingName(settings["game"]);
if (!gameOption.gameId) {
if (gameOption.gameId.empty()) {
usage("Unrecognized game '%s'. Use the --list-games command for a list of accepted values.\n", settings["game"].c_str());
}
}
@ -1314,7 +1455,7 @@ bool processSettings(Common::String &command, Common::StringMap &settings, Commo
if (ConfMan.hasGameDomain(command)) {
// Command is a known target
ConfMan.setActiveDomain(command);
} else if (gd = findGameMatchingName(command), gd.gameId) {
} else if (gd = findGameMatchingName(command), !gd.gameId.empty()) {
// Command is a known game ID
Common::String domainName = createTemporaryTarget(gd.engineId, gd.gameId);
ConfMan.setActiveDomain(domainName);