[Scummvm-git-logs] scummvm master -> 40a6b9acd408b31bd4c4b8ae0acdf75082263c28

bluegr noreply at scummvm.org
Tue Feb 17 18:53:41 UTC 2026


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

Summary:
40a6b9acd4 AGOS: Simon 1 Acorn - Implement Acorn cursor for Simon 1


Commit: 40a6b9acd408b31bd4c4b8ae0acdf75082263c28
    https://github.com/scummvm/scummvm/commit/40a6b9acd408b31bd4c4b8ae0acdf75082263c28
Author: Robert Megone (robert.megone at gmail.com)
Date: 2026-02-17T20:53:37+02:00

Commit Message:
AGOS: Simon 1 Acorn - Implement Acorn cursor for Simon 1

Changed paths:
    engines/agos/cursor.cpp
    engines/agos/detection.h
    engines/agos/detection_tables.h
    engines/agos/dialogs.cpp


diff --git a/engines/agos/cursor.cpp b/engines/agos/cursor.cpp
index 3cb73123079..33ba34310d6 100644
--- a/engines/agos/cursor.cpp
+++ b/engines/agos/cursor.cpp
@@ -127,6 +127,31 @@ static const uint16 _common_moveLeft[32] = {
 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
 };
 
+static const byte _simon1_acorn_cursor[11 * 22] = {
+	0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xFF, 0xFF,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+    0xE6, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+    0xE6, 0xE5, 0xE6, 0xE6, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xFF, 0xE6, 0xE6, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF, 0xFF,
+    0xE6, 0xE6, 0xE6, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF,
+    0xE6, 0xE6, 0xE6, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE5, 0xE5, 0xE6,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE6, 0xE6,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xE6, 0xE6,
+};
+
 static const byte _simon2_cursors[10][256] = {
 	// cross hair
 	{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
@@ -762,6 +787,23 @@ void AGOSEngine_Feeble::drawMousePointer() {
 void AGOSEngine_Simon1::initMouse() {
 	AGOSEngine::initMouse();
 
+	if (getPlatform() == Common::kPlatformAcorn && ConfMan.getBool("use_system_cursor")) {
+		byte pal[256 * 3];
+		memset(pal, 0, sizeof(pal));
+
+		pal[0xE5 * 3 + 0] = 0x00;
+		pal[0xE5 * 3 + 1] = 0x00;
+		pal[0xE5 * 3 + 2] = 0x99;
+
+		pal[0xE6 * 3 + 0] = 0x00;
+		pal[0xE6 * 3 + 1] = 0xFF;
+		pal[0xE6 * 3 + 2] = 0xFF;
+
+		CursorMan.replaceCursorPalette(pal, 0, 256);
+		CursorMan.replaceCursor(_simon1_acorn_cursor, 11, 22, 5, 1, 0xFF);
+		return;
+	}
+
 	const uint16 *src = _common_mouseInfo;
 	for (int i = 0; i < 16; i++) {
 		for (int j = 0; j < 16; j++) {
diff --git a/engines/agos/detection.h b/engines/agos/detection.h
index c5cdffe5296..091db05abe0 100644
--- a/engines/agos/detection.h
+++ b/engines/agos/detection.h
@@ -53,6 +53,7 @@ struct AGOSGameDescription {
 #define GAMEOPTION_DISABLE_FADE_EFFECTS GUIO_GAMEOPTIONS4
 #define GAMEOPTION_COPY_PROTECTION      GUIO_GAMEOPTIONS5
 #define GAMEOPTION_MIDI_MODE            GUIO_GAMEOPTIONS6
+#define GAMEOPTION_USE_SYSTEM_CURSOR	GUIO_GAMEOPTIONS7
 
 /** MIDI devices */
 enum kMidiMode {
diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h
index 679264a39b5..d94a826abfc 100644
--- a/engines/agos/detection_tables.h
+++ b/engines/agos/detection_tables.h
@@ -1083,7 +1083,7 @@ static const AGOSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformAcorn,
 			ADGF_DEMO,
-			GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS)
+			GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_USE_SYSTEM_CURSOR)
 		},
 
 		GType_SIMON1,
@@ -1107,7 +1107,7 @@ static const AGOSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformAcorn,
 			ADGF_NO_FLAGS,
-			GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_COPY_PROTECTION)
+			GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_COPY_PROTECTION, GAMEOPTION_USE_SYSTEM_CURSOR)
 		},
 
 		GType_SIMON1,
@@ -1132,7 +1132,7 @@ static const AGOSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformAcorn,
 			ADGF_DEMO,
-			GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+			GUIO4(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_USE_SYSTEM_CURSOR)
 		},
 
 		GType_SIMON1,
@@ -1157,7 +1157,7 @@ static const AGOSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformAcorn,
 			ADGF_CD,
-			GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+			GUIO4(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS, GAMEOPTION_USE_SYSTEM_CURSOR)
 		},
 
 		GType_SIMON1,
diff --git a/engines/agos/dialogs.cpp b/engines/agos/dialogs.cpp
index 63c88636229..903c41863fc 100644
--- a/engines/agos/dialogs.cpp
+++ b/engines/agos/dialogs.cpp
@@ -87,6 +87,17 @@ const ADExtraGuiOptionsMap optionsList[] = {
 			0
 		}
 	},
+	{
+		GAMEOPTION_USE_SYSTEM_CURSOR,
+		{
+			_s("Use original Acorn system cursor"),
+			_s("Toggle between the system cursor and the default cursor."),
+			"use_system_cursor",
+			true,
+			0,
+			0
+		}
+	},
 	AD_EXTRA_GUI_OPTIONS_TERMINATOR
 };
 




More information about the Scummvm-git-logs mailing list