[Scummvm-git-logs] scummvm master -> eb5fa17695aa36ba6db840ae445d47f6132bdfba
neuromancer
noreply at scummvm.org
Fri Dec 23 12:11:27 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3bb208de3f FREESCAPE: limit cpu usage when vsync is enabled
eb5fa17695 FREESCAPE: added space station oblivion borders and title screens and regenerated freescape.dat file
Commit: 3bb208de3f026d7c5c9f30f54a46397e110ccc5c
https://github.com/scummvm/scummvm/commit/3bb208de3f026d7c5c9f30f54a46397e110ccc5c
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-12-23T09:11:05-03:00
Commit Message:
FREESCAPE: limit cpu usage when vsync is enabled
Changed paths:
engines/freescape/freescape.cpp
engines/freescape/freescape.h
engines/freescape/movement.cpp
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index 7456d774109..b8cb4efd0e9 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -131,6 +131,7 @@ FreescapeEngine::FreescapeEngine(OSystem *syst, const ADGameDescription *gd)
_ticks = 0;
_lastTick = -1;
_frameLimiter = nullptr;
+ _vsyncEnabled = false;
_underFireFrames = 0;
_shootingFrames = 0;
@@ -242,7 +243,7 @@ void FreescapeEngine::checkSensors() {
if (playerDetected) {
if (_ticks % sensor->_firingInterval == 0) {
if (_underFireFrames <= 0)
- _underFireFrames = _gfx->_isAccelerated ? 60 : 4;
+ _underFireFrames = 4;
takeDamageFromSensor();
}
}
@@ -391,6 +392,7 @@ void FreescapeEngine::processInput() {
_flyMode = _noClipMode;
break;
case Common::KEYCODE_ESCAPE:
+ drawFrame();
_savedScreen = _gfx->getScreenshot();
_gfx->setViewport(_fullscreenViewArea);
openMainMenuDialog();
@@ -470,6 +472,7 @@ void FreescapeEngine::processInput() {
}
Common::Error FreescapeEngine::run() {
+ _vsyncEnabled = g_system->getFeatureState(OSystem::kFeatureVSync);
_frameLimiter = new Graphics::FrameLimiter(g_system, ConfMan.getInt("engine_speed"));
// Initialize graphics
_screenW = g_system->getWidth();
@@ -538,18 +541,19 @@ Common::Error FreescapeEngine::run() {
gotoArea(_startArea, _startEntrance);
endGame = false;
}
+ processInput();
+ if (_demoMode)
+ generateDemoInput();
checkSensors();
drawFrame();
- if (_demoMode)
- generateDemoInput();
-
- processInput();
_gfx->flipBuffer();
_frameLimiter->delayBeforeSwap();
g_system->updateScreen();
_frameLimiter->startFrame();
+ if (_vsyncEnabled) // if vsync is enabled, the framelimiter will not work
+ g_system->delayMillis(15); // try to target ~60 FPS
endGame = checkIfGameEnded();
}
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 08a15edcbea..bbbf3e31388 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -272,6 +272,7 @@ public:
int _screenW, _screenH;
Renderer *_gfx;
Graphics::FrameLimiter *_frameLimiter;
+ bool _vsyncEnabled;
Common::RenderMode _renderMode;
ColorMap _colorMap;
int _underFireFrames;
diff --git a/engines/freescape/movement.cpp b/engines/freescape/movement.cpp
index e1576b774c7..513dbd4de5b 100644
--- a/engines/freescape/movement.cpp
+++ b/engines/freescape/movement.cpp
@@ -63,7 +63,7 @@ void FreescapeEngine::traverseEntrance(uint16 entranceID) {
void FreescapeEngine::shoot() {
//_mixer->stopHandle(_soundFxHandle);
playSound(1, true);
- _shootingFrames = _gfx->_isAccelerated ? 60 : 4;
+ _shootingFrames = 4;
Common::Point center(_viewArea.left + _viewArea.width() / 2, _viewArea.top + _viewArea.height() / 2);
float xoffset = _crossairPosition.x - center.x;
Commit: eb5fa17695aa36ba6db840ae445d47f6132bdfba
https://github.com/scummvm/scummvm/commit/eb5fa17695aa36ba6db840ae445d47f6132bdfba
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-12-23T09:11:05-03:00
Commit Message:
FREESCAPE: added space station oblivion borders and title screens and regenerated freescape.dat file
Changed paths:
A devtools/create_freescape/spacestationoblivion_cga.bmp
A devtools/create_freescape/spacestationoblivion_cga_title.bmp
A devtools/create_freescape/spacestationoblivion_ega_title.bmp
dists/engine-data/freescape.dat
diff --git a/devtools/create_freescape/spacestationoblivion_cga.bmp b/devtools/create_freescape/spacestationoblivion_cga.bmp
new file mode 100644
index 00000000000..26efd4ce64a
Binary files /dev/null and b/devtools/create_freescape/spacestationoblivion_cga.bmp differ
diff --git a/devtools/create_freescape/spacestationoblivion_cga_title.bmp b/devtools/create_freescape/spacestationoblivion_cga_title.bmp
new file mode 100644
index 00000000000..2cdb371cde7
Binary files /dev/null and b/devtools/create_freescape/spacestationoblivion_cga_title.bmp differ
diff --git a/devtools/create_freescape/spacestationoblivion_ega_title.bmp b/devtools/create_freescape/spacestationoblivion_ega_title.bmp
new file mode 100644
index 00000000000..41c667015b6
Binary files /dev/null and b/devtools/create_freescape/spacestationoblivion_ega_title.bmp differ
diff --git a/dists/engine-data/freescape.dat b/dists/engine-data/freescape.dat
index f9e2892d9cb..d507c5172f3 100644
Binary files a/dists/engine-data/freescape.dat and b/dists/engine-data/freescape.dat differ
More information about the Scummvm-git-logs
mailing list