diff options
| -rw-r--r-- | engines/bladerunner/bladerunner.cpp | 51 | ||||
| -rw-r--r-- | engines/bladerunner/bladerunner.h | 1 | ||||
| -rw-r--r-- | engines/bladerunner/detection.cpp | 9 | ||||
| -rw-r--r-- | engines/bladerunner/detection_tables.h | 31 | 
4 files changed, 53 insertions, 39 deletions
| diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp index ed7846f29b..21ebebcd0b 100644 --- a/engines/bladerunner/bladerunner.cpp +++ b/engines/bladerunner/bladerunner.cpp @@ -83,6 +83,7 @@  #include "common/events.h"  #include "common/savefile.h"  #include "common/system.h" +#include "common/debug.h"  #include "common/debug-channels.h"  #include "common/translation.h"  #include "gui/message.h" @@ -111,10 +112,11 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *des  	_subtitlesEnabled = false; -	_sitcomMode                = false; -	_shortyMode                = false; -	_noDelayMillisFramelimiter = false; -	_cutContent                = Common::String(desc->gameId).contains("bladerunner-final"); +	_sitcomMode                   = false; +	_shortyMode                   = false; +	_noDelayMillisFramelimiter    = false; +	_framesPerSecondMax           = false; +	_cutContent                   = Common::String(desc->gameId).contains("bladerunner-final");  	_playerLosesControlCounter = 0; @@ -464,8 +466,24 @@ bool BladeRunnerEngine::checkFiles(Common::Array<Common::String> &missingFiles)  }  bool BladeRunnerEngine::startup(bool hasSavegames) { -	// These are static objects in original game +		// Assign default values to the ScummVM configuration manager, in case settings are missing +	ConfMan.registerDefault("subtitles", "true"); +	ConfMan.registerDefault("sfx_volume", 192); +	ConfMan.registerDefault("music_volume", 192); +	ConfMan.registerDefault("speech_volume", 192); +	ConfMan.registerDefault("mute", "false"); +	ConfMan.registerDefault("speech_mute", "false"); +	ConfMan.registerDefault("sitcom", "false"); +	ConfMan.registerDefault("shorty", "false"); +	ConfMan.registerDefault("nodelaymillisfl", "false"); +	ConfMan.registerDefault("frames_per_secondfl", "false"); +	_sitcomMode                = ConfMan.getBool("sitcom"); +	_shortyMode                = ConfMan.getBool("shorty"); +	_noDelayMillisFramelimiter = ConfMan.getBool("nodelaymillisfl"); +	_framesPerSecondMax        = ConfMan.getBool("frames_per_secondfl"); + +	// These are static objects in original game  	_screenEffects = new ScreenEffects(this, 0x8000);  	_endCredits = new EndCredits(this); @@ -493,7 +511,8 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {  	_time = new Time(this); -	_framelimiter = new Framelimiter(this); +	debug("_framesPerSecondMax:: %s", _framesPerSecondMax? "true" : "false"); +	_framelimiter = new Framelimiter(this, _framesPerSecondMax? 120 : 60);  	// Try to load the SUBTITLES.MIX first, before Startup.MIX  	// allows overriding any identically named resources (such as the original font files and as a bonus also the TRE files for the UI and dialogue menu) @@ -559,25 +578,9 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {  	_ambientSounds = new AmbientSounds(this); -	// Assign default values to the ScummVM configuration manager, in case settings are missing -	ConfMan.registerDefault("subtitles", "true"); -	ConfMan.registerDefault("sfx_volume", 192); -	ConfMan.registerDefault("music_volume", 192); -	ConfMan.registerDefault("speech_volume", 192); -	ConfMan.registerDefault("mute", "false"); -	ConfMan.registerDefault("speech_mute", "false"); - -	// get value from the ScummVM configuration manager -	syncSoundSettings(); - -	_sitcomMode                = ConfMan.getBool("sitcom"); -	_shortyMode                = ConfMan.getBool("shorty"); - -	if (!ConfMan.hasKey("nodelaymillisfl")) { -		ConfMan.setBool("nodelaymillisfl", false); -	} -	_noDelayMillisFramelimiter = ConfMan.getBool("nodelaymillisfl");  	// BLADE.INI was read here, but it was replaced by ScummVM configuration +	// +	syncSoundSettings();  	_chapters = new Chapters(this);  	if (!_chapters) diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h index 3bc6404250..c033e16960 100644 --- a/engines/bladerunner/bladerunner.h +++ b/engines/bladerunner/bladerunner.h @@ -215,6 +215,7 @@ public:  	bool _sitcomMode;  	bool _shortyMode;  	bool _noDelayMillisFramelimiter; +	bool _framesPerSecondMax;  	bool _cutContent;  	int _walkSoundId; diff --git a/engines/bladerunner/detection.cpp b/engines/bladerunner/detection.cpp index 4576ae65d8..210774bbbf 100644 --- a/engines/bladerunner/detection.cpp +++ b/engines/bladerunner/detection.cpp @@ -69,6 +69,15 @@ static const ADExtraGuiOptionsMap optionsList[] = {  			false  		}  	}, +	{ +		GAMEOPTION_FRAMELIMITER_FPS, +		{ +			_s("Max frames per second limit"), +			_s("This mode targets a maximum of 120 fps. When disabled, the game targets 60 fps"), +			"frames_per_secondfl", +			false +		} +	},  	AD_EXTRA_GUI_OPTIONS_TERMINATOR  }; diff --git a/engines/bladerunner/detection_tables.h b/engines/bladerunner/detection_tables.h index af6cfe93e6..bc504bd235 100644 --- a/engines/bladerunner/detection_tables.h +++ b/engines/bladerunner/detection_tables.h @@ -28,6 +28,7 @@  #define GAMEOPTION_SITCOM                     GUIO_GAMEOPTIONS1  #define GAMEOPTION_SHORTY                     GUIO_GAMEOPTIONS2  #define GAMEOPTION_FRAMELIMITER_NODELAYMILLIS GUIO_GAMEOPTIONS3 +#define GAMEOPTION_FRAMELIMITER_FPS           GUIO_GAMEOPTIONS4  namespace BladeRunner { @@ -40,7 +41,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::EN_ANY,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (German) @@ -51,7 +52,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::DE_DEU,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (French) - Bug #9722 @@ -62,7 +63,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::FR_FRA,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Italian) @@ -73,7 +74,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::IT_ITA,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc.) @@ -84,7 +85,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::RU_RUS,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R3) @@ -95,7 +96,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::RU_RUS,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R4) @@ -106,7 +107,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::RU_RUS,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Spanish) @@ -117,7 +118,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::ES_ESP,  		Common::kPlatformWindows,  		ADGF_NO_FLAGS, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// Versions with restored content @@ -130,7 +131,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::EN_ANY,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (German) @@ -141,7 +142,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::DE_DEU,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (French) @@ -152,7 +153,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::FR_FRA,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Italian) @@ -163,7 +164,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::IT_ITA,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc.) @@ -174,7 +175,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::RU_RUS,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R3) @@ -185,7 +186,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::RU_RUS,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	// BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R4) @@ -196,7 +197,7 @@ static const ADGameDescription gameDescriptions[] = {  		Common::RU_RUS,  		Common::kPlatformWindows,  		ADGF_UNSTABLE, -		GUIO4(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GUIO_NOMIDI) +		GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)  	},  	AD_TABLE_END_MARKER | 
