[Scummvm-git-logs] scummvm master -> 441c5a06ffed84b6da62cf9525087d91a7b1b715
neuromancer
noreply at scummvm.org
Tue Sep 30 17:30:59 UTC 2025
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
64f445a2cc FREESCAPE: adjusted gl line width
441c5a06ff FREESCAPE: restored sounds in castle for dos
Commit: 64f445a2cc2e4b4a6514fa108b9b5fff70c74515
https://github.com/scummvm/scummvm/commit/64f445a2cc2e4b4a6514fa108b9b5fff70c74515
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-30T14:29:19-03:00
Commit Message:
FREESCAPE: adjusted gl line width
Changed paths:
engines/freescape/gfx_opengl.cpp
engines/freescape/gfx_opengl_shaders.cpp
diff --git a/engines/freescape/gfx_opengl.cpp b/engines/freescape/gfx_opengl.cpp
index 924f3742885..375ba4d9ee3 100644
--- a/engines/freescape/gfx_opengl.cpp
+++ b/engines/freescape/gfx_opengl.cpp
@@ -257,7 +257,7 @@ void OpenGLRenderer::renderCrossair(const Common::Point &crossairPosition) {
useColor(255, 255, 255);
- glLineWidth(MAX(2, g_system->getWidth() / 192)); // It will not work in every OpenGL implementation since the
+ glLineWidth(MAX(2, g_system->getWidth() / 640)); // It will not work in every OpenGL implementation since the
// spec doesn't require support for line widths other than 1
glEnableClientState(GL_VERTEX_ARRAY);
copyToVertexArray(0, Math::Vector3d(crossairPosition.x - 3, crossairPosition.y, 0));
@@ -458,7 +458,7 @@ void OpenGLRenderer::renderFace(const Common::Array<Math::Vector3d> &vertices) {
copyToVertexArray(0, v0);
copyToVertexArray(1, v1);
glVertexPointer(3, GL_FLOAT, 0, _verts);
- glLineWidth(MAX(1, g_system->getWidth() / 192));
+ glLineWidth(MAX(1, g_system->getWidth() / 640));
glDrawArrays(GL_LINES, 0, 2);
glLineWidth(1);
glDisableClientState(GL_VERTEX_ARRAY);
diff --git a/engines/freescape/gfx_opengl_shaders.cpp b/engines/freescape/gfx_opengl_shaders.cpp
index 26b8586921b..a853208b079 100644
--- a/engines/freescape/gfx_opengl_shaders.cpp
+++ b/engines/freescape/gfx_opengl_shaders.cpp
@@ -421,7 +421,7 @@ void OpenGLShaderRenderer::renderCrossair(const Common::Point &crossairPosition)
useColor(255, 255, 255);
- glLineWidth(MAX(2, g_system->getWidth() / 192)); // It will not work in every OpenGL implementation since the
+ glLineWidth(MAX(2, g_system->getWidth() / 640)); // It will not work in every OpenGL implementation since the
// spec doesn't require support for line widths other than 1
copyToVertexArray(0, Math::Vector3d(remap(crossairPosition.x - 3, _screenW), remap(_screenH - crossairPosition.y, _screenH), 0));
@@ -462,7 +462,7 @@ void OpenGLShaderRenderer::renderFace(const Common::Array<Math::Vector3d> &verti
copyToVertexArray(0, v0);
copyToVertexArray(1, v1);
- glLineWidth(MAX(1, g_system->getWidth() / 192));
+ glLineWidth(MAX(1, g_system->getWidth() / 640));
glBindBuffer(GL_ARRAY_BUFFER, _triangleVBO);
glBufferData(GL_ARRAY_BUFFER, 2 * 3 * sizeof(float), _verts, GL_DYNAMIC_DRAW);
Commit: 441c5a06ffed84b6da62cf9525087d91a7b1b715
https://github.com/scummvm/scummvm/commit/441c5a06ffed84b6da62cf9525087d91a7b1b715
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-09-30T14:29:19-03:00
Commit Message:
FREESCAPE: restored sounds in castle for dos
Changed paths:
engines/freescape/freescape.h
engines/freescape/games/castle/castle.cpp
engines/freescape/games/castle/dos.cpp
engines/freescape/games/dark/dos.cpp
engines/freescape/games/driller/dos.cpp
engines/freescape/games/eclipse/dos.cpp
engines/freescape/sound.cpp
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 2dc5bdc51ac..91ff3c3751d 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -487,7 +487,7 @@ public:
virtual void playSoundFx(int index, bool sync);
virtual void loadSoundsFx(Common::SeekableReadStream *file, int offset, int number);
Common::HashMap<uint16, soundFx *> _soundsFx;
- void loadSpeakerFxDOS(Common::SeekableReadStream *file, int offsetFreq, int offsetDuration);
+ void loadSpeakerFxDOS(Common::SeekableReadStream *file, int offsetFreq, int offsetDuration, int numberSounds);
void loadSpeakerFxZX(Common::SeekableReadStream *file, int sfxTable, int sfxData);
Common::HashMap<uint16, soundSpeakerFx *> _soundsSpeakerFx;
diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index b07c3c38d2a..524fec7a75e 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -40,7 +40,11 @@ CastleEngine::CastleEngine(OSystem *syst, const ADGameDescription *gd) : Freesca
error("Failed to parse bool from rock_travel option");
_soundIndexStart = 9;
- _soundIndexAreaChange = 5;
+ _soundIndexAreaChange = 24;
+ _soundIndexCollide = 4;
+ _soundIndexStepUp = 5;
+ _soundIndexStepDown = 6;
+
k8bitVariableShield = 29;
if (isDOS())
diff --git a/engines/freescape/games/castle/dos.cpp b/engines/freescape/games/castle/dos.cpp
index 1b1306d05ac..ae51c7be435 100644
--- a/engines/freescape/games/castle/dos.cpp
+++ b/engines/freescape/games/castle/dos.cpp
@@ -154,7 +154,7 @@ void CastleEngine::loadAssetsDOSFullGame() {
file.open("CME.EXE");
stream = unpackEXE(file);
if (stream) {
- loadSpeakerFxDOS(stream, 0x636d + 0x200, 0x63ed + 0x200);
+ loadSpeakerFxDOS(stream, 0x636d + 0x200, 0x63ed + 0x200, 30);
stream->seek(0x197c0);
_endGameBackgroundFrame = loadFrameFromPlanes(stream, 112, 108);
@@ -314,7 +314,7 @@ void CastleEngine::loadAssetsDOSDemo() {
file.open("CMDE.EXE");
stream = unpackEXE(file);
if (stream) {
- loadSpeakerFxDOS(stream, 0x636d + 0x200, 0x63ed + 0x200);
+ loadSpeakerFxDOS(stream, 0x636d + 0x200, 0x63ed + 0x200, 30);
stream->seek(0x197c0 - 0x2a0);
_endGameBackgroundFrame = loadFrameFromPlanes(stream, 112, 108);
diff --git a/engines/freescape/games/dark/dos.cpp b/engines/freescape/games/dark/dos.cpp
index 064dbdd04c8..8d13cd30122 100644
--- a/engines/freescape/games/dark/dos.cpp
+++ b/engines/freescape/games/dark/dos.cpp
@@ -69,7 +69,7 @@ void DarkEngine::loadAssetsDOSDemo() {
if (!file.isOpen())
error("Failed to open DSIDEE.EXE");
- loadSpeakerFxDOS(&file, 0x4837 + 0x200, 0x46e8 + 0x200);
+ loadSpeakerFxDOS(&file, 0x4837 + 0x200, 0x46e8 + 0x200, 20);
loadMessagesFixedSize(&file, 0x4525, 16, 27);
loadMessagesFixedSize(&file, 0x993f - 2, 308, 5);
loadFonts(&file, 0xa598);
@@ -98,7 +98,7 @@ void DarkEngine::loadAssetsDOSDemo() {
if (!file.isOpen())
error("Failed to open DSIDEC.EXE");
- loadSpeakerFxDOS(&file, 0x3077 + 0x200, 0x2f28 + 0x200);
+ loadSpeakerFxDOS(&file, 0x3077 + 0x200, 0x2f28 + 0x200, 20);
loadFonts(&file, 0x8907);
loadMessagesFixedSize(&file, 0x2d65, 16, 27);
loadMessagesFixedSize(&file, 0x7c3a, 308, 5);
@@ -126,7 +126,7 @@ void DarkEngine::loadAssetsDOSFullGame() {
if (!file.isOpen())
error("Failed to open DSIDEE.EXE");
- loadSpeakerFxDOS(&file, 0x4837 + 0x200, 0x46e8 + 0x200);
+ loadSpeakerFxDOS(&file, 0x4837 + 0x200, 0x46e8 + 0x200, 20);
loadFonts(&file, 0xa113);
loadMessagesFixedSize(&file, 0x4525, 16, 27);
loadGlobalObjects(&file, 0x3d04, 23);
@@ -154,7 +154,7 @@ void DarkEngine::loadAssetsDOSFullGame() {
if (!file.isOpen())
error("Failed to open DSIDEC.EXE");
- loadSpeakerFxDOS(&file, 0x3077 + 0x200, 0x2f28 + 0x200);
+ loadSpeakerFxDOS(&file, 0x3077 + 0x200, 0x2f28 + 0x200, 20);
loadFonts(&file, 0x8497);
loadMessagesFixedSize(&file, 0x2d65, 16, 27);
loadGlobalObjects(&file, 0x2554, 23);
diff --git a/engines/freescape/games/driller/dos.cpp b/engines/freescape/games/driller/dos.cpp
index 3698c728f6b..45b91095b38 100644
--- a/engines/freescape/games/driller/dos.cpp
+++ b/engines/freescape/games/driller/dos.cpp
@@ -233,7 +233,7 @@ void DrillerEngine::loadAssetsDOSFullGame() {
if (!file.isOpen())
error("Failed to open DRILLE.EXE");
- loadSpeakerFxDOS(&file, 0x4397 + 0x200, 0x4324 + 0x200);
+ loadSpeakerFxDOS(&file, 0x4397 + 0x200, 0x4324 + 0x200, 20);
loadMessagesFixedSize(&file, 0x4135, 14, 20);
loadFonts(&file, 0x99dd);
loadGlobalObjects(&file, 0x3b42, 8);
@@ -258,7 +258,7 @@ void DrillerEngine::loadAssetsDOSFullGame() {
if (!file.isOpen())
error("Failed to open DRILLC.EXE");
- loadSpeakerFxDOS(&file, 0x27e7 + 0x200, 0x2774 + 0x200);
+ loadSpeakerFxDOS(&file, 0x27e7 + 0x200, 0x2774 + 0x200, 20);
loadFonts(&file, 0x07a4a);
loadMessagesFixedSize(&file, 0x2585, 14, 20);
@@ -279,7 +279,7 @@ void DrillerEngine::loadAssetsDOSFullGame() {
if (!file.isOpen())
error("Failed to open DRILLH.EXE");
- //loadSpeakerFxDOS(&file, 0x27e7 + 0x200, 0x2774 + 0x200);
+ //loadSpeakerFxDOS(&file, 0x27e7 + 0x200, 0x2774 + 0x200, 20);
loadFonts(&file, 0x8871);
loadMessagesFixedSize(&file, 0x3411, 14, 20);
diff --git a/engines/freescape/games/eclipse/dos.cpp b/engines/freescape/games/eclipse/dos.cpp
index d249017ae06..91e0c2b3c8f 100644
--- a/engines/freescape/games/eclipse/dos.cpp
+++ b/engines/freescape/games/eclipse/dos.cpp
@@ -59,7 +59,7 @@ void EclipseEngine::loadAssetsDOSFullGame() {
loadMessagesFixedSize(&file, 0x710f, 16, 20);
loadSoundsFx(&file, 0xd670, 5);
- loadSpeakerFxDOS(&file, 0x7396 + 0x200, 0x72a1 + 0x200);
+ loadSpeakerFxDOS(&file, 0x7396 + 0x200, 0x72a1 + 0x200, 20);
loadFonts(&file, 0xd403);
load8bitBinary(&file, 0x3ce0, 16);
diff --git a/engines/freescape/sound.cpp b/engines/freescape/sound.cpp
index 333a9ba5a8a..b626933fff8 100644
--- a/engines/freescape/sound.cpp
+++ b/engines/freescape/sound.cpp
@@ -231,9 +231,9 @@ void FreescapeEngine::loadSpeakerFxZX(Common::SeekableReadStream *file, int sfxT
//assert(0);
}
-void FreescapeEngine::loadSpeakerFxDOS(Common::SeekableReadStream *file, int offsetFreq, int offsetTable) {
+void FreescapeEngine::loadSpeakerFxDOS(Common::SeekableReadStream *file, int offsetFreq, int offsetTable, int numberSounds) {
debugC(1, kFreescapeDebugParser, "Reading PC speaker sound table for DOS");
- for (int i = 1; i <= 20; i++) {
+ for (int i = 1; i <= numberSounds; i++) {
debugC(1, kFreescapeDebugParser, "Reading sound table entry: %d ", i);
int soundIdx = (i - 1) * 4;
file->seek(offsetFreq + soundIdx);
More information about the Scummvm-git-logs
mailing list