[Scummvm-git-logs] scummvm master -> 9c9aa687c1e6320695f2fad02b0ca9b35f8cec89

neuromancer noreply at scummvm.org
Sun Sep 28 14:11:11 UTC 2025


This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
b3912db8a1 FREESCAPE: refactored a bit the movement code to be more precise decting step down
a9bf38c4c9 FREESCAPE: improved sounds for driller amiga/atari
45c5051787 FREESCAPE: added missing sounds for dark
55b6c8c3e0 FREESCAPE: fixed some more zx sounds
9c9aa687c1 FREESCAPE: improved sounds for eclipse for zx


Commit: b3912db8a15e3b61c6a437507118904445ac1341
    https://github.com/scummvm/scummvm/commit/b3912db8a15e3b61c6a437507118904445ac1341
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-28T11:10:56-03:00

Commit Message:
FREESCAPE: refactored a bit the movement code to be more precise decting step down

Changed paths:
    engines/freescape/movement.cpp


diff --git a/engines/freescape/movement.cpp b/engines/freescape/movement.cpp
index 38e9a5a0732..293f7b2a955 100644
--- a/engines/freescape/movement.cpp
+++ b/engines/freescape/movement.cpp
@@ -515,10 +515,11 @@ void FreescapeEngine::resolveCollisions(Math::Vector3d const position) {
 	}
 
 	// Check for falling
-	lastPosition = newPosition;
-	newPosition.y() = -8192;
-	newPosition = _currentArea->resolveCollisions(lastPosition, newPosition, _playerHeight);
-	int fallen = lastPosition.y() - newPosition.y();
+	Math::Vector3d fallStart = newPosition;   // current standing point
+	Math::Vector3d fallEnd   = fallStart;     // copy for downward probe
+	fallEnd.y() = -8192;                      // probe way down below
+	newPosition = _currentArea->resolveCollisions(fallStart, fallEnd, _playerHeight);
+	int fallen = _lastPosition.y() - newPosition.y();
 
 	if (fallen > _maxFallingDistance) {
 		_hasFallen = !_disableFalling;
@@ -542,7 +543,7 @@ void FreescapeEngine::resolveCollisions(Math::Vector3d const position) {
 	if (!_hasFallen && fallen > 0) {
 		isSteppingDown = true;
 		// Position in Y was changed, let's re-run effects
-		if (runCollisionConditions(lastPosition, newPosition))
+		if (runCollisionConditions(_lastPosition, newPosition))
 			stopMovement();
 	}
 


Commit: a9bf38c4c915e67817f1190f9fccafaa63ff8308
    https://github.com/scummvm/scummvm/commit/a9bf38c4c915e67817f1190f9fccafaa63ff8308
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-28T11:10:56-03:00

Commit Message:
FREESCAPE: improved sounds for driller amiga/atari

Changed paths:
    engines/freescape/games/driller/amiga.cpp


diff --git a/engines/freescape/games/driller/amiga.cpp b/engines/freescape/games/driller/amiga.cpp
index 7081cbbc561..c62499fdd3e 100644
--- a/engines/freescape/games/driller/amiga.cpp
+++ b/engines/freescape/games/driller/amiga.cpp
@@ -340,6 +340,10 @@ void DrillerEngine::initAmigaAtari() {
 	_soundIndexFall = 25;
 	_soundIndexFallen = 11;
 	_soundIndexForceEndGame = 11;
+	_soundIndexNoShield = 11;
+	_soundIndexNoEnergy = 11;
+	_soundIndexTimeout = 11;
+	_soundIndexCrushed = 11;
 }
 
 } // End of namespace Freescape
\ No newline at end of file


Commit: 45c5051787d7818f491bb4461d03c26fbfc7b111
    https://github.com/scummvm/scummvm/commit/45c5051787d7818f491bb4461d03c26fbfc7b111
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-28T11:10:56-03:00

Commit Message:
FREESCAPE: added missing sounds for dark

Changed paths:
    engines/freescape/games/dark/dark.cpp


diff --git a/engines/freescape/games/dark/dark.cpp b/engines/freescape/games/dark/dark.cpp
index 6699935f182..75df0f16d9a 100644
--- a/engines/freescape/games/dark/dark.cpp
+++ b/engines/freescape/games/dark/dark.cpp
@@ -42,15 +42,16 @@ DarkEngine::DarkEngine(OSystem *syst, const ADGameDescription *gd) : FreescapeEn
 	_soundIndexStart = 9;
 	_soundIndexAreaChange = 5;
 	_soundIndexHit = 2;
+	_soundIndexFall = 14;
 	_soundIndexRestoreECD = 19;
 	_soundIndexDestroyECD = -1;
 
-	_soundIndexNoShield = -1;
-	_soundIndexNoEnergy = -1;
-	_soundIndexFallen = -1;
-	_soundIndexTimeout = -1;
-	_soundIndexForceEndGame = -1;
-	_soundIndexCrushed = -1;
+	_soundIndexNoShield = 20;
+	_soundIndexNoEnergy = 20;
+	_soundIndexFallen = 20;
+	_soundIndexTimeout = 20;
+	_soundIndexForceEndGame = 20;
+	_soundIndexCrushed = 20;
 	_soundIndexMissionComplete = -1;
 
 	if (isDOS())


Commit: 55b6c8c3e0109688c3458ccd8ad72aa02dfa58b2
    https://github.com/scummvm/scummvm/commit/55b6c8c3e0109688c3458ccd8ad72aa02dfa58b2
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-28T11:10:56-03:00

Commit Message:
FREESCAPE: fixed some more zx sounds

Changed paths:
    engines/freescape/games/dark/dark.cpp
    engines/freescape/games/dark/zx.cpp
    engines/freescape/sound.cpp


diff --git a/engines/freescape/games/dark/dark.cpp b/engines/freescape/games/dark/dark.cpp
index 75df0f16d9a..caab7991a06 100644
--- a/engines/freescape/games/dark/dark.cpp
+++ b/engines/freescape/games/dark/dark.cpp
@@ -34,7 +34,7 @@ namespace Freescape {
 
 DarkEngine::DarkEngine(OSystem *syst, const ADGameDescription *gd) : FreescapeEngine(syst, gd) {
 	// These sounds can be overriden by the class of each platform
-	_soundIndexShoot = 8;
+	_soundIndexShoot = 1;
 	_soundIndexCollide = -1;
 	_soundIndexStepDown = 3;
 	_soundIndexStepUp = 4;
diff --git a/engines/freescape/games/dark/zx.cpp b/engines/freescape/games/dark/zx.cpp
index 4ff7e9bd67e..10d64bf6d48 100644
--- a/engines/freescape/games/dark/zx.cpp
+++ b/engines/freescape/games/dark/zx.cpp
@@ -32,7 +32,7 @@ void DarkEngine::initZX() {
 	_maxEnergy = 63;
 	_maxShield = 63;
 
-	_soundIndexShoot = 5;
+	_soundIndexShoot = 1;
 	_soundIndexCollide = -1; // Scripted
 	_soundIndexStepDown = 3;
 	_soundIndexStepUp = 4;
diff --git a/engines/freescape/sound.cpp b/engines/freescape/sound.cpp
index ff1d34f8cd8..333a9ba5a8a 100644
--- a/engines/freescape/sound.cpp
+++ b/engines/freescape/sound.cpp
@@ -148,7 +148,7 @@ void FreescapeEngine::loadSpeakerFxZX(Common::SeekableReadStream *file, int sfxT
 				} while (soundSize != 0);
 			} else if ((soundType & 0x7f) == 2) {
 				repetitions = SFXtempStruct[1] | (SFXtempStruct[0] << 8);
-				debugC(1, kFreescapeDebugParser, "Repetitions: %x", repetitions);
+				debugC(1, kFreescapeDebugParser, "Raw sound, repetitions: %x", repetitions);
 				uint16 sVar7 = SFXtempStruct[3];
 				soundType = 0;
 				soundSize = SFXtempStruct[2];
@@ -162,7 +162,7 @@ void FreescapeEngine::loadSpeakerFxZX(Common::SeekableReadStream *file, int sfxT
 					soundUnitZX soundUnit;
 					soundUnit.isRaw = true;
 					int totalSize = soundSize + sVar7;
-					soundUnit.rawFreq = 1.0;
+					soundUnit.rawFreq = 0.1;
 					soundUnit.rawLengthus = totalSize;
 					_soundsSpeakerFxZX[i]->push_back(soundUnit);
 					//debugN("%x ", silenceSize);
@@ -503,12 +503,12 @@ void FreescapeEngine::playSoundZX(Common::Array<soundUnitZX> *data, Audio::Sound
 		soundUnitZX value = it;
 
 		if (value.isRaw) {
-			debugC(1, kFreescapeDebugMedia, "hz: %f, duration: %d", value.rawFreq, value.rawLengthus);
+			debugC(1, kFreescapeDebugMedia, "raw hz: %f, duration: %d", value.rawFreq, value.rawLengthus);
 			if (value.rawFreq == 0) {
-				_speaker->playQueue(Audio::PCSpeaker::kWaveFormSilence, 0, value.rawLengthus);
+				_speaker->playQueue(Audio::PCSpeaker::kWaveFormSilence, 0, 5 * value.rawLengthus);
 				continue;
 			}
-			_speaker->playQueue(Audio::PCSpeaker::kWaveFormSquare, value.rawFreq, value.rawLengthus);
+			_speaker->playQueue(Audio::PCSpeaker::kWaveFormSquare, value.rawFreq, 5 * value.rawLengthus);
 		} else {
 			if (value.freqTimesSeconds == 0 && value.tStates == 0) {
 				_speaker->playQueue(Audio::PCSpeaker::kWaveFormSilence, 0, 1000 * value.multiplier);
@@ -518,7 +518,7 @@ void FreescapeEngine::playSoundZX(Common::Array<soundUnitZX> *data, Audio::Sound
 			float hzFreq = 1 / ((value.tStates + 30.125) / 437500.0);
 			float waveDuration = value.freqTimesSeconds / hzFreq;
 			waveDuration = value.multiplier * 1000 * (waveDuration + 1);
-			debugC(1, kFreescapeDebugMedia, "hz: %f, duration: %f", hzFreq, waveDuration);
+			debugC(1, kFreescapeDebugMedia, "non raw hz: %f, duration: %f", hzFreq, waveDuration);
 			_speaker->playQueue(Audio::PCSpeaker::kWaveFormSquare, hzFreq, waveDuration);
 		}
 	}


Commit: 9c9aa687c1e6320695f2fad02b0ca9b35f8cec89
    https://github.com/scummvm/scummvm/commit/9c9aa687c1e6320695f2fad02b0ca9b35f8cec89
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-28T11:10:56-03:00

Commit Message:
FREESCAPE: improved sounds for eclipse for zx

Changed paths:
    engines/freescape/games/eclipse/dos.cpp
    engines/freescape/games/eclipse/eclipse.cpp
    engines/freescape/games/eclipse/zx.cpp
    engines/freescape/movement.cpp


diff --git a/engines/freescape/games/eclipse/dos.cpp b/engines/freescape/games/eclipse/dos.cpp
index 2b5b549f036..d249017ae06 100644
--- a/engines/freescape/games/eclipse/dos.cpp
+++ b/engines/freescape/games/eclipse/dos.cpp
@@ -35,6 +35,12 @@ extern byte kCGAPalettePinkBlue[4][3];
 void EclipseEngine::initDOS() {
 	_viewArea = Common::Rect(40, 33, 280, 133);
 	_soundIndexShoot = 18;
+	_soundIndexCollide = 1;
+	_soundIndexStepDown = 3;
+	_soundIndexStepUp = 3;
+	_soundIndexMenu = -1;
+	_soundIndexStart = 9;
+	_soundIndexAreaChange = 5;
 }
 
 void EclipseEngine::loadAssetsDOSFullGame() {
diff --git a/engines/freescape/games/eclipse/eclipse.cpp b/engines/freescape/games/eclipse/eclipse.cpp
index 3e24e136d62..02f0320f52b 100644
--- a/engines/freescape/games/eclipse/eclipse.cpp
+++ b/engines/freescape/games/eclipse/eclipse.cpp
@@ -34,14 +34,6 @@ namespace Freescape {
 
 EclipseEngine::EclipseEngine(OSystem *syst, const ADGameDescription *gd) : FreescapeEngine(syst, gd) {
 	// These sounds can be overriden by the class of each platform
-	_soundIndexShoot = 8;
-	_soundIndexCollide = 1;
-	_soundIndexStepDown = 3;
-	_soundIndexStepUp = 3;
-	_soundIndexMenu = -1;
-	_soundIndexStart = 9;
-	_soundIndexAreaChange = 5;
-
 	_soundIndexStartFalling = -1;
 	_soundIndexEndFalling = -1;
 
diff --git a/engines/freescape/games/eclipse/zx.cpp b/engines/freescape/games/eclipse/zx.cpp
index d19f024a14e..0747e51ad03 100644
--- a/engines/freescape/games/eclipse/zx.cpp
+++ b/engines/freescape/games/eclipse/zx.cpp
@@ -33,9 +33,9 @@ void EclipseEngine::initZX() {
 	_maxShield = 63;
 
 	_soundIndexShoot = 5;
-	_soundIndexCollide = -1;
-	_soundIndexStepDown = 3;
-	_soundIndexStepUp = 4;
+	_soundIndexCollide = -1; // Scripted 
+	_soundIndexStepDown = 12;
+	_soundIndexStepUp = 12;
 	_soundIndexMenu = -1;
 	_soundIndexStart = 7;
 	_soundIndexAreaChange = 7;
diff --git a/engines/freescape/movement.cpp b/engines/freescape/movement.cpp
index 293f7b2a955..6f197932c45 100644
--- a/engines/freescape/movement.cpp
+++ b/engines/freescape/movement.cpp
@@ -312,7 +312,7 @@ bool FreescapeEngine::rise() {
 			if (_currentArea->getAreaID() == previousAreaID) {
 				_playerHeightNumber--;
 				changePlayerHeight(_playerHeightNumber);
-
+				setGameBit(31);
 			}
 		} else
 			result = true;
@@ -592,7 +592,8 @@ bool FreescapeEngine::runCollisionConditions(Math::Vector3d const lastPosition,
 	Object *collided = nullptr;
 	_gotoExecuted = false;
 
-	_speaker->stop();
+	if (!_smoothMovement)
+		_speaker->stop();
 
 	Math::Ray ray(newPosition, -_upVector);
 	collided = _currentArea->checkCollisionRay(ray, _playerHeight + 3);




More information about the Scummvm-git-logs mailing list