[Scummvm-git-logs] scummvm master -> 3fd13952733fb4dd453f519b8efb65b6d27fa43f

somaen einarjohants at gmail.com
Mon Feb 15 22:42:40 UTC 2021


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

Summary:
ca96788c5a TINSEL: Stub library function 86
f7f4669e54 TINSEL: Map SETSYSTEMSTRING
918dce9803 TINSEL: Map and stub DECINVMAIN
29685806ad TINSEL: Map DECINV2
1a7d06c5ce TINSEL: Map and stub ADDNOTEBOOK
4c358a7753 TINSEL: Map and stub ADDINV3
5993212fab TINSEL: Map and stub ADDCONV
430e3e4bf6 TINSEL: Map ADDINV1
77692d3d7c TINSEL: Patch heap_mem to use 512 MiB for Noir.
3fd1395273 TINSEL: Map NEWSCENE, and error out during loading.


Commit: ca96788c5a595ab40c9954c758872ff07fe5d63f
    https://github.com/scummvm/scummvm/commit/ca96788c5a595ab40c9954c758872ff07fe5d63f
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T22:55:27+01:00

Commit Message:
TINSEL: Stub library function 86

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index 69e11bc473..7cd4657f2a 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -4222,6 +4222,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
 		break;
+	case 86:
+		mapping = NoirMapping{"OP86", ZZZZZZ, 2};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X, 0x%08X)", mapping.name, pp[0], pp[1]);
+		break;
 	case 151:
 		mapping = NoirMapping{"SETSYSTEMREEL", SETSYSTEMREEL, 2};
 		pp -= mapping.numArgs - 1;


Commit: f7f4669e54bdc60409cd057535085e5d62e8671a
    https://github.com/scummvm/scummvm/commit/f7f4669e54bdc60409cd057535085e5d62e8671a
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T22:59:48+01:00

Commit Message:
TINSEL: Map SETSYSTEMSTRING

Changed paths:
    engines/tinsel/sysvar.h
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/sysvar.h b/engines/tinsel/sysvar.h
index 49391cc5cf..2efc8e89c0 100644
--- a/engines/tinsel/sysvar.h
+++ b/engines/tinsel/sysvar.h
@@ -121,6 +121,12 @@ typedef enum {
 	SS_CONTROLS_HEADING,
 	SS_LANGUAGE_SELECT,
 
+	// Noir only:
+	SS_NOIR1,
+	SS_NOIR2,
+	SS_NOIR3,
+	SS_NOIR4,
+
 	SS_MAX_VALID
 } BOLLOX;
 
diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index 7cd4657f2a..c033c91ff9 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -4232,6 +4232,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(%d, 0x%08X)", mapping.name, pp[0], pp[1]);
 		break;
+	case 152:
+		mapping = NoirMapping{"SETSYSTEMSTRING", SETSYSTEMSTRING, 2};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(%d, %08X)", mapping.name, pp[0], pp[1]);
+		break;
 	case 153:
 		mapping = NoirMapping{"SETSYSTEMVAR", SETSYSTEMVAR, 2};
 		pp -= mapping.numArgs - 1;
@@ -5297,7 +5302,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		}
 
 	case SETSYSTEMSTRING:
-		// DW2 only
+		// DW2 & Noir
 		pp -= 1;				// 2 parameters
 		SetSystemString(pp[0], pp[1]);
 		return -2;


Commit: 918dce9803b655f03fddbfe4fa72cbc06bab0a6e
    https://github.com/scummvm/scummvm/commit/918dce9803b655f03fddbfe4fa72cbc06bab0a6e
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:02:59+01:00

Commit Message:
TINSEL: Map and stub DECINVMAIN

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index c033c91ff9..277cc51bf6 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -152,7 +152,7 @@ enum MASTER_LIB_CODES {
 	THISOBJECT, THISTAG, TIMER, TOPIC, TOPPLAY, TOPWINDOW, TRANSLUCENTINDEX,
 	TRYPLAYSAMPLE, UNDIMMUSIC, UNHOOKSCENE, UNTAGACTOR, VIBRATE, WAITFRAME, WAITKEY,
 	WAITSCROLL, WAITTIME, WALK, WALKED, WALKEDPOLY, WALKEDTAG, WALKINGACTOR, WALKPOLY,
-	WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, ZZZZZZ, DEC3D,
+	WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, ZZZZZZ, DEC3D, DECINVMAIN,
 	HIGHEST_LIBCODE
 };
 
@@ -4197,6 +4197,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
 		break;
+	case 43:
+		mapping = NoirMapping{"DECINVMAIN", DECINVMAIN, 8};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X)", mapping.name, pp[0], pp[1], pp[2], pp[3], pp[4], pp[5], pp[6], pp[7]);
+		break;
 	case 45:
 		mapping = NoirMapping{"DECLARELANGUAGE", DECLARELANGUAGE, 3};
 		pp -= mapping.numArgs - 1;
@@ -4607,6 +4612,10 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 			 pp[4], pp[5], pp[6], pp[7]);
 		return -8;
 
+	case DECINVMAIN:
+		warning("TODO: Implement DECINVMAIN");
+		return -8;
+
 	case DECINVW:
 		// Common to both DW1 & DW2
 		DecInvW(pp[0]);


Commit: 29685806adf5b72520644e486638716f65f42978
    https://github.com/scummvm/scummvm/commit/29685806adf5b72520644e486638716f65f42978
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:39:51+01:00

Commit Message:
TINSEL: Map DECINV2

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index 277cc51bf6..0dd4f743cb 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -4202,6 +4202,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X)", mapping.name, pp[0], pp[1], pp[2], pp[3], pp[4], pp[5], pp[6], pp[7]);
 		break;
+	case 44: // Changed in Noir
+		mapping = NoirMapping{"DECINV2", DECINV2, 8};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X)", mapping.name, pp[0], pp[1], pp[2], pp[3], pp[4], pp[5], pp[6], pp[7]);
+		break;
 	case 45:
 		mapping = NoirMapping{"DECLARELANGUAGE", DECLARELANGUAGE, 3};
 		pp -= mapping.numArgs - 1;
@@ -4606,7 +4611,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		return -8;
 
 	case DECINV2:
-		// Common to both DW1 & DW2
+		// Common to DW1 / DW2 / Noir
 		pp -= 7;			// 8 parameters
 		DecInv2(pp[0], pp[1], pp[2], pp[3],
 			 pp[4], pp[5], pp[6], pp[7]);


Commit: 1a7d06c5cea3bc313721440e106910017d0251be
    https://github.com/scummvm/scummvm/commit/1a7d06c5cea3bc313721440e106910017d0251be
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:39:51+01:00

Commit Message:
TINSEL: Map and stub ADDNOTEBOOK

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index 0dd4f743cb..411a62b2e8 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -153,7 +153,7 @@ enum MASTER_LIB_CODES {
 	TRYPLAYSAMPLE, UNDIMMUSIC, UNHOOKSCENE, UNTAGACTOR, VIBRATE, WAITFRAME, WAITKEY,
 	WAITSCROLL, WAITTIME, WALK, WALKED, WALKEDPOLY, WALKEDTAG, WALKINGACTOR, WALKPOLY,
 	WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, ZZZZZZ, DEC3D, DECINVMAIN,
-	HIGHEST_LIBCODE
+	ADDNOTEBOOK, HIGHEST_LIBCODE
 };
 
 static const MASTER_LIB_CODES DW1DEMO_CODES[] = {
@@ -4192,6 +4192,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(%d, 0x%08X)", mapping.name, pp[0], pp[1]);
 		break;
+	case 8:
+		mapping = NoirMapping{"ADDNOTEBOOK", ADDNOTEBOOK, 1};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
+		break;
 	case 28:
 		mapping = NoirMapping{"CDCHANGESCENE", CDCHANGESCENE, 1};
 		pp -= mapping.numArgs - 1;
@@ -4387,6 +4392,11 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		AddInv(INV_2, pp[0]);
 		return -1;
 
+	case ADDNOTEBOOK:
+		// Noir Only
+		warning("TODO: Implement ADDNOTEBOOK");
+		return -1;
+
 	case ADDOPENINV:
 		// Common to both DW1 & DW2
 		AddInv(TinselV2 ? DW2_INV_OPEN : INV_OPEN, pp[0]);


Commit: 4c358a7753f4cb3df23a4ea31c7cd255115071b0
    https://github.com/scummvm/scummvm/commit/4c358a7753f4cb3df23a4ea31c7cd255115071b0
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:39:52+01:00

Commit Message:
TINSEL: Map and stub ADDINV3

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index 411a62b2e8..53b31b5dbc 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -153,7 +153,7 @@ enum MASTER_LIB_CODES {
 	TRYPLAYSAMPLE, UNDIMMUSIC, UNHOOKSCENE, UNTAGACTOR, VIBRATE, WAITFRAME, WAITKEY,
 	WAITSCROLL, WAITTIME, WALK, WALKED, WALKEDPOLY, WALKEDTAG, WALKINGACTOR, WALKPOLY,
 	WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, ZZZZZZ, DEC3D, DECINVMAIN,
-	ADDNOTEBOOK, HIGHEST_LIBCODE
+	ADDNOTEBOOK, ADDINV3, HIGHEST_LIBCODE
 };
 
 static const MASTER_LIB_CODES DW1DEMO_CODES[] = {
@@ -4197,6 +4197,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
 		break;
+	case 16:
+		mapping = NoirMapping{"ADDINV3", ADDINV3, 1};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(%08X)", mapping.name, pp[0]);
+		break;
 	case 28:
 		mapping = NoirMapping{"CDCHANGESCENE", CDCHANGESCENE, 1};
 		pp -= mapping.numArgs - 1;
@@ -4392,6 +4397,11 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		AddInv(INV_2, pp[0]);
 		return -1;
 
+	case ADDINV3:
+		// Noir only
+		warning("TODO: Implement ADDINV3");
+		return -1;
+
 	case ADDNOTEBOOK:
 		// Noir Only
 		warning("TODO: Implement ADDNOTEBOOK");


Commit: 5993212fab802993a262986a5171edfa24f8761b
    https://github.com/scummvm/scummvm/commit/5993212fab802993a262986a5171edfa24f8761b
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:39:52+01:00

Commit Message:
TINSEL: Map and stub ADDCONV

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index 53b31b5dbc..b8c850dd6a 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -153,7 +153,7 @@ enum MASTER_LIB_CODES {
 	TRYPLAYSAMPLE, UNDIMMUSIC, UNHOOKSCENE, UNTAGACTOR, VIBRATE, WAITFRAME, WAITKEY,
 	WAITSCROLL, WAITTIME, WALK, WALKED, WALKEDPOLY, WALKEDTAG, WALKINGACTOR, WALKPOLY,
 	WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, ZZZZZZ, DEC3D, DECINVMAIN,
-	ADDNOTEBOOK, ADDINV3, HIGHEST_LIBCODE
+	ADDNOTEBOOK, ADDINV3, ADDCONV, HIGHEST_LIBCODE
 };
 
 static const MASTER_LIB_CODES DW1DEMO_CODES[] = {
@@ -4197,6 +4197,10 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
 		break;
+	case 9:
+		mapping = NoirMapping{"ADDCONV", ADDCONV, 1};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
 	case 16:
 		mapping = NoirMapping{"ADDINV3", ADDINV3, 1};
 		pp -= mapping.numArgs - 1;
@@ -4376,6 +4380,11 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		pp[0] = ActorPos(ACTORYPOS, pp[0]);
 		return 0;
 
+	case ADDCONV:
+		// Noir only
+		warning("TODO: Implement ADDCONV");
+		return -1;
+
 	case ADDHIGHLIGHT:
 		// DW2 only
 		// Command doesn't actually do anything


Commit: 430e3e4bf66f1f83fc878b4ab9200c067715bb0b
    https://github.com/scummvm/scummvm/commit/430e3e4bf66f1f83fc878b4ab9200c067715bb0b
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:40:59+01:00

Commit Message:
TINSEL: Map ADDINV1

Changed paths:
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index b8c850dd6a..d8511ac375 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -4201,6 +4201,10 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		mapping = NoirMapping{"ADDCONV", ADDCONV, 1};
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
+	case 12:
+		mapping = NoirMapping{"ADDINV1", ADDINV1, 1};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X)", mapping.name, pp[0]);
 	case 16:
 		mapping = NoirMapping{"ADDINV3", ADDINV3, 1};
 		pp -= mapping.numArgs - 1;
@@ -4397,7 +4401,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		return -1;
 
 	case ADDINV1:
-		// Common to both DW1 & DW2
+		// Common to DW1 / DW2 / Noir
 		AddInv(INV_1, pp[0]);
 		return -1;
 


Commit: 77692d3d7c31b0e37669db015f97bd740a1a7221
    https://github.com/scummvm/scummvm/commit/77692d3d7c31b0e37669db015f97bd740a1a7221
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:41:04+01:00

Commit Message:
TINSEL: Patch heap_mem to use 512 MiB for Noir.

This is similar to what Kerbox' implementation does, but not
verified to be the precise value needed.

Changed paths:
    engines/tinsel/heapmem.cpp


diff --git a/engines/tinsel/heapmem.cpp b/engines/tinsel/heapmem.cpp
index c1c036a2fa..e189f9524d 100644
--- a/engines/tinsel/heapmem.cpp
+++ b/engines/tinsel/heapmem.cpp
@@ -52,7 +52,7 @@ struct MEM_NODE {
 // Currently this is set at 5MB for the DW1 demo and DW1 and 10MB for DW2
 // This could probably be reduced somewhat
 // If the memory is not enough, the engine throws an "Out of memory" error in handle.cpp inside LockMem()
-static const uint32 MemoryPoolSize[3] = {5 * 1024 * 1024, 5 * 1024 * 1024, 10 * 1024 * 1024};
+static const uint32 MemoryPoolSize[4] = {5 * 1024 * 1024, 5 * 1024 * 1024, 10 * 1024 * 1024, 512 * 1024 * 1024};
 
 // These vars are reset upon engine destruction
 
@@ -128,6 +128,10 @@ void MemoryInit() {
 	uint32 size = MemoryPoolSize[0];
 	if (TinselVersion == TINSEL_V1) size = MemoryPoolSize[1];
 	else if (TinselVersion == TINSEL_V2) size = MemoryPoolSize[2];
+	else if (TinselVersion == TINSEL_V3) {
+		warning("TODO: Find the correct memory pool size for Noir, using 512 MiB for now");
+		size = MemoryPoolSize[3];
+	}
 	g_heapSentinel.size = size;
 }
 


Commit: 3fd13952733fb4dd453f519b8efb65b6d27fa43f
    https://github.com/scummvm/scummvm/commit/3fd13952733fb4dd453f519b8efb65b6d27fa43f
Author: Einar Johan Trøan Sømåen (somaen at scummvm.org)
Date: 2021-02-15T23:41:27+01:00

Commit Message:
TINSEL: Map NEWSCENE, and error out during loading.

Changed paths:
    engines/tinsel/scene.cpp
    engines/tinsel/tinlib.cpp


diff --git a/engines/tinsel/scene.cpp b/engines/tinsel/scene.cpp
index 1dd90d50a6..eb0930bbe2 100644
--- a/engines/tinsel/scene.cpp
+++ b/engines/tinsel/scene.cpp
@@ -263,6 +263,9 @@ static void LoadScene(SCNHANDLE scene, int entry) {
 
 	} else {
 		// Genuine new scene
+		if (TinselV3) {
+			error("TODO: Implement scene loading for Noir");
+		}
 
 		// Initialize all the polygons for this scene
 		InitPolygons(FROM_32(ss->hPoly), FROM_32(ss->numPoly), false);
diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp
index d8511ac375..e273db01be 100644
--- a/engines/tinsel/tinlib.cpp
+++ b/engines/tinsel/tinlib.cpp
@@ -4255,6 +4255,11 @@ NoirMapping translateNoirLibCode(int libCode, int32 *pp) {
 		pp -= mapping.numArgs - 1;
 		debug(7, "%s(0x%08X, 0x%08X)", mapping.name, pp[0], pp[1]);
 		break;
+	case 99:
+		mapping = NoirMapping{"NEWSCENE", NEWSCENE, 3};
+		pp -= mapping.numArgs - 1;
+		debug(7, "%s(0x%08X, 0x%08X, 0x%08X)", mapping.name, pp[0], pp[1], pp[2]);
+		break;
 	case 151:
 		mapping = NoirMapping{"SETSYSTEMREEL", SETSYSTEMREEL, 2};
 		pp -= mapping.numArgs - 1;
@@ -4982,7 +4987,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
 		return -3;
 
 	case NEWSCENE:
-		// Common to both DW1 & DW2
+		// Common to DW1 / DW2 / Noir
 		pp -= 2;			// 3 parameters
 		if (*pResumeState == RES_2)
 			*pResumeState = RES_NOT;




More information about the Scummvm-git-logs mailing list