[Scummvm-git-logs] scummvm master -> 4753e85efed0ee2f69fbcffdfc7119130eb64d2a

bluegr noreply at scummvm.org
Wed May 25 16:07:38 UTC 2022


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:
5ebd9b8d23 BUILD: Remove/simplify GCC_ATLEAST() calls when they targeted pre-C++11 compilers
4ac33a72c2 MATH: Just look for a GCC compatible compiler for __builtin_clz()
05121fac02 GLK: ADRIFT: Unconditionally use GCC_PRINTF()
cf9e45d338 KYRA: MODULES: Remove workaround for GCC 3.4.4
b9d3282ed6 COMMON: Remove workaround comment about GCC 2.95.3
7ffa660a44 CINE: Remove the comment about an old PalmOS compiler
452afa29ed SCUMM: Remove the smallCostumeScaleTableAKOS workaround
f4fa731c4c DC: SKY: Remove a workaround for an old Dreamcast compiler
0e489206fe BUILD: Remove mention of GCC 2.95
4753e85efe SCUMM: Drop VC6 workaround


Commit: 5ebd9b8d2345398a001d593296a6f54a848fdc5e
    https://github.com/scummvm/scummvm/commit/5ebd9b8d2345398a001d593296a6f54a848fdc5e
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
BUILD: Remove/simplify GCC_ATLEAST() calls when they targeted pre-C++11 compilers

C++11 is now required, so there's no point in checking for pre-C++11
versions of GCC anymore.  Note that Clang defines __GNUC__ too, but
always reports itself as GCC-4.2.1-compatible (and, in practice, the
earliest C++11-compatible versions of Clang will also be have most
GCC 4.8 features).

Changed paths:
    common/endian.h
    common/lua/luaconf.h
    common/scummsys.h
    common/span.h
    engines/sci/util.h


diff --git a/common/endian.h b/common/endian.h
index 4d3e148abc0..0ad9b467ac3 100644
--- a/common/endian.h
+++ b/common/endian.h
@@ -141,8 +141,8 @@
 		}
 	}
 
-// Test for GCC >= 4.3.0 as this version added the bswap builtin
-#elif GCC_ATLEAST(4, 3)
+// Test for GCC-compatible
+#elif defined(__GNUC__)
 
 	FORCEINLINE uint32 SWAP_BYTES_32(uint32 a) {
 		return __builtin_bswap32(a);
@@ -187,8 +187,8 @@
 		}
 	}
 
-// Test for GCC >= 4.3.0 as this version added the bswap builtin
-#elif GCC_ATLEAST(4, 3)
+// Test for GCC-compatible
+#elif defined(__GNUC__)
 
 	FORCEINLINE uint64 SWAP_BYTES_64(uint64 a) {
 		return __builtin_bswap64(a);
@@ -239,14 +239,10 @@
  *  @{
  */
 
-// Test for GCC >= 4.0. These implementations will automatically use
+// Test for GCC and compatible. These implementations will automatically use
 // CPU-specific instructions for unaligned data when they are available (eg.
-// MIPS). See also this email thread on scummvm-devel for details:
-// <http://thread.gmane.org/gmane.games.devel.scummvm/8063>
-//
-// Moreover, we activate this code for GCC >= 3.3 but *only* if unaligned access
-// is allowed.
-#if GCC_ATLEAST(4, 0) || (GCC_ATLEAST(3, 3) && !defined(SCUMM_NEED_ALIGNMENT))
+// MIPS).
+#if defined(__GNUC__)
 
 	FORCEINLINE uint16 READ_UINT16(const void *ptr) {
 		struct Unaligned16 { uint16 val; } __attribute__ ((__packed__, __may_alias__));
diff --git a/common/lua/luaconf.h b/common/lua/luaconf.h
index bdb4cb68ece..bc72e2968d5 100644
--- a/common/lua/luaconf.h
+++ b/common/lua/luaconf.h
@@ -182,11 +182,7 @@
 #define LUAI_FUNC	static
 #define LUAI_DATA	/* empty */
 
-#elif GCC_ATLEAST(3, 2) && defined(__ELF__)
-/*
-** The PS2 gcc compiler doesn't like the visibility attribute, so
-** we use the normal "extern" definitions in the block below
-*/
+#elif defined(__GNUC__) && defined(__ELF__)
 #define LUAI_FUNC	__attribute__((visibility("hidden"))) extern
 #define LUAI_DATA	LUAI_FUNC
 
diff --git a/common/scummsys.h b/common/scummsys.h
index dfb49690739..780e49fa8d2 100644
--- a/common/scummsys.h
+++ b/common/scummsys.h
@@ -27,7 +27,8 @@
 #endif
 
 // This is a convenience macro to test whether the compiler used is a GCC
-// version, which is at least major.minor.
+// version, which is at least major.minor.  Note that Clang will also define
+// it and report itself as GCC 4.2.1.
 #ifdef __GNUC__
 	#define GCC_ATLEAST(major, minor) (__GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
 #else
@@ -362,7 +363,7 @@
 #ifndef FORCEINLINE
 	#if defined(_MSC_VER)
 		#define FORCEINLINE __forceinline
-	#elif GCC_ATLEAST(3, 1)
+	#elif defined(__GNUC__)
 		#define FORCEINLINE inline __attribute__((__always_inline__))
 	#else
 		#define FORCEINLINE inline
@@ -398,7 +399,7 @@
 #ifndef WARN_UNUSED_RESULT
 	#if __cplusplus >= 201703L
 		#define WARN_UNUSED_RESULT [[nodiscard]]
-	#elif GCC_ATLEAST(3, 4)
+	#elif defined(__GNUC__)
 		#define WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
 	#elif defined(_Check_return_)
 		#define WARN_UNUSED_RESULT _Check_return_
diff --git a/common/span.h b/common/span.h
index 880d0a080e0..85052af6473 100644
--- a/common/span.h
+++ b/common/span.h
@@ -256,11 +256,9 @@ class SpanBase : public SafeBool<Derived<ValueType> > {
 	typedef typename AddConst<derived_type>::type const_derived_type;
 	typedef typename RemoveConst<derived_type>::type mutable_derived_type;
 
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T, bool U> friend class SpanInternal::SpanIterator;
 	template <typename T, template <typename> class U> friend class SpanBase;
 	template <typename T, typename U> friend struct SafeBool;
-#endif
 #ifdef CXXTEST_RUNNING
 	friend class ::SpanTestSuite;
 #endif
@@ -280,9 +278,7 @@ public:
 	inline size_type byteSize() const { return impl().size() * sizeof(value_type); }
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	inline SpanBase() {}
 	inline SpanBase(const SpanBase &) {}
@@ -296,9 +292,7 @@ protected:
 #pragma mark SpanBase - Interface
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	inline void clear();
 
@@ -479,9 +473,7 @@ public:
 	}
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	inline bool operator_bool() const { return impl().data() != nullptr; }
 
@@ -512,9 +504,7 @@ public:
 #pragma mark SpanBase - Validation
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	/**
 	 * @returns true if bounds are invalid.
@@ -546,9 +536,7 @@ class SpanImpl : public SpanBase<ValueType, Derived> {
 	typedef typename AddConst<Derived<ValueType> >::type const_derived_type;
 	typedef typename RemoveConst<Derived<ValueType> >::type mutable_derived_type;
 
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T, template <typename> class U> friend class SpanImpl;
-#endif
 #ifdef CXXTEST_RUNNING
 	friend class ::SpanTestSuite;
 #endif
@@ -637,9 +625,7 @@ public:
 	}
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	template <typename NewValueType>
 	void populateSubspan(Derived<NewValueType> &span, const index_type index, size_type numEntries) const {
@@ -705,9 +691,7 @@ class Span : public SpanImpl<ValueType, Span> {
 	typedef SpanImpl<ValueType, ::Common::Span> super_type;
 	typedef typename AddConst<Span<ValueType> >::type const_derived_type;
 	typedef typename RemoveConst<Span<ValueType> >::type mutable_derived_type;
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T> friend class Span;
-#endif
 
 public:
 	COMMON_SPAN_TYPEDEFS
@@ -731,9 +715,7 @@ class NamedSpanImpl : public SpanImpl<ValueType, Derived> {
 	typedef typename AddConst<Derived<ValueType> >::type const_derived_type;
 	typedef typename RemoveConst<Derived<ValueType> >::type mutable_derived_type;
 
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T, template <typename> class U> friend class NamedSpanImpl;
-#endif
 #ifdef CXXTEST_RUNNING
 	friend class ::SpanTestSuite;
 #endif
@@ -800,9 +782,7 @@ public:
 	}
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	template <typename NewValueType>
 	void populateSubspan(Derived<NewValueType> &span, const index_type index, size_type numEntries, const String &name_, const size_type sourceByteOffset_ = kSpanKeepOffset) const {
@@ -884,9 +864,7 @@ template <typename ValueType>
 class NamedSpan : public NamedSpanImpl<ValueType, NamedSpan> {
 	typedef NamedSpanImpl<ValueType, ::Common::NamedSpan> super_type;
 
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T> friend class NamedSpan;
-#endif
 
 public:
 	COMMON_SPAN_TYPEDEFS
@@ -919,9 +897,7 @@ class SpanOwner : public SafeBool<SpanOwner<OwnedSpan> > {
 	typedef typename OwnedSpan::reference reference;
 	typedef typename OwnedSpan::const_reference const_reference;
 
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T, typename U> friend struct SafeBool;
-#endif
 
 public:
 	inline SpanOwner() : _span() {}
@@ -997,9 +973,7 @@ public:
 	}
 
 #if !defined(_MSC_VER)
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 protected:
-#endif
 #endif
 	inline bool operator_bool() const { return _span; }
 
diff --git a/engines/sci/util.h b/engines/sci/util.h
index 842c233908d..c837cefe5cf 100644
--- a/engines/sci/util.h
+++ b/engines/sci/util.h
@@ -131,9 +131,7 @@ class SciSpanImpl : public Common::NamedSpanImpl<ValueType, Derived> {
 	typedef Common::NamedSpanImpl<ValueType, Derived> super_type;
 	typedef Derived<ValueType> derived_type;
 
-#if !defined(__GNUC__) || GCC_ATLEAST(3, 0)
 	template <typename T, template <typename> class U> friend class SciSpanImpl;
-#endif
 #if defined(CXXTEST_RUNNING) && CXXTEST_RUNNING
 	friend class ::SpanTestSuite;
 #endif


Commit: 4ac33a72c25c07ddf02a59d13d50d3f89e29caed
    https://github.com/scummvm/scummvm/commit/4ac33a72c25c07ddf02a59d13d50d3f89e29caed
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
MATH: Just look for a GCC compatible compiler for __builtin_clz()

There's no need to check for GCC 3.4+ anymore, since we always require
a C++11 compiler.  Just look for __GNUC__, since this is an old
builtin and Clang always has it too.

Also #undef the LT() temporary macro while there, so that it can't
pollute something else by accident, since it's a short macro name in
a header file.

Changed paths:
    common/math.h


diff --git a/common/math.h b/common/math.h
index 85e7d212384..2c2a1554b0d 100644
--- a/common/math.h
+++ b/common/math.h
@@ -66,7 +66,7 @@ struct Complex {
 	float re, im;
 };
 
-#if GCC_ATLEAST(3, 4)
+#if defined(__GNUC__)
 inline int intLog2(uint32 v) {
 	// This is a slightly optimized implementation of log2 for natural numbers
 	// targeting gcc. It also saves some binary size over our fallback
@@ -94,6 +94,7 @@ static const char LogTable256[256] = {
 	-1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
 	LT(4), LT(5), LT(5), LT(6), LT(6), LT(6), LT(6),
 	LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7)
+#undef LT
 };
 
 inline int intLog2(uint32 v) {


Commit: 05121fac02cf727fb4149c480ec6bfff2516a208
    https://github.com/scummvm/scummvm/commit/05121fac02cf727fb4149c480ec6bfff2516a208
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
GLK: ADRIFT: Unconditionally use GCC_PRINTF()

There's no need to check for old GCC versions anymore, and our
GCC_PRINTF macro will just be a no-op if the current compiler doesn't
support this.

Changed paths:
    engines/glk/adrift/scprotos.h
    engines/glk/adrift/sxprotos.h


diff --git a/engines/glk/adrift/scprotos.h b/engines/glk/adrift/scprotos.h
index f441fe41488..8f6423caa3e 100644
--- a/engines/glk/adrift/scprotos.h
+++ b/engines/glk/adrift/scprotos.h
@@ -61,22 +61,11 @@ typedef sc_int(*sc_read_callbackref_t)(void *, sc_byte *, sc_int);
 typedef void (*sc_write_callbackref_t)(void *, const sc_byte *, sc_int);
 
 /*
- * Small utility and wrapper functions.  For printf wrappers, try to apply
- * gcc printf argument checking; this code is cautious about applying the
- * checks.
+ * Small utility and wrapper functions.
  */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-extern void sc_trace(const sc_char *format, ...)
-__attribute__((__format__(__printf__, 1, 2)));
-extern void sc_error(const sc_char *format, ...)
-__attribute__((__format__(__printf__, 1, 2)));
-extern void sc_fatal(const sc_char *format, ...)
-__attribute__((__format__(__printf__, 1, 2)));
-#else
-extern void sc_trace(const sc_char *format, ...);
-extern void sc_error(const sc_char *format, ...);
-extern void sc_fatal(const sc_char *format, ...);
-#endif
+extern void sc_trace(const sc_char *format, ...) GCC_PRINTF(1, 2);
+extern void sc_error(const sc_char *format, ...) GCC_PRINTF(1, 2);
+extern void sc_fatal(const sc_char *format, ...) GCC_PRINTF(1, 2);
 extern void *sc_malloc(size_t size);
 extern void *sc_realloc(void *pointer, size_t size);
 extern void sc_free(void *pointer);
diff --git a/engines/glk/adrift/sxprotos.h b/engines/glk/adrift/sxprotos.h
index e2605328e9f..e2926c97889 100644
--- a/engines/glk/adrift/sxprotos.h
+++ b/engines/glk/adrift/sxprotos.h
@@ -47,22 +47,11 @@ typedef struct sx_test_descriptor_s {
 } sx_test_descriptor_t;
 
 /*
- * Small utility and wrapper functions.  For printf wrappers, try to apply
- * gcc printf argument checking; this code is cautious about applying the
- * checks.
+ * Small utility and wrapper functions.
  */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-extern void sx_trace(const sc_char *format, ...)
-__attribute__((__format__(__printf__, 1, 2)));
-extern void sx_error(const sc_char *format, ...)
-__attribute__((__format__(__printf__, 1, 2)));
-extern void sx_fatal(const sc_char *format, ...)
-__attribute__((__format__(__printf__, 1, 2)));
-#else
-extern void sx_trace(const sc_char *format, ...);
-extern void sx_error(const sc_char *format, ...);
-extern void sx_fatal(const sc_char *format, ...);
-#endif
+extern void sx_trace(const sc_char *format, ...) GCC_PRINTF(1, 2);
+extern void sx_error(const sc_char *format, ...) GCC_PRINTF(1, 2);
+extern void sx_fatal(const sc_char *format, ...) GCC_PRINTF(1, 2);
 extern void *sx_malloc(size_t size);
 extern void *sx_realloc(void *pointer, size_t size);
 extern void sx_free(void *pointer);


Commit: cf9e45d338172f019c6cf2607e252940de19763b
    https://github.com/scummvm/scummvm/commit/cf9e45d338172f019c6cf2607e252940de19763b
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
KYRA: MODULES: Remove workaround for GCC 3.4.4

We require C++11 and GCC 3.4.4 has no support for it.

If the Maemo port has an updated toolchain, this compiler bug has
likely been fixed since then.

Changed paths:
    engines/kyra/module.mk


diff --git a/engines/kyra/module.mk b/engines/kyra/module.mk
index 210a1740b53..44f7e07a7a5 100644
--- a/engines/kyra/module.mk
+++ b/engines/kyra/module.mk
@@ -155,15 +155,5 @@ endif
 # Include common rules
 include $(srcdir)/rules.mk
 
-# HACK: Skip this when including the file for detection objects.
-ifeq "$(USE_RULES)" "1"
-ifeq ($(BACKEND), maemo)
-# Ugly workaround, screen.cpp crashes gcc version 3.4.4 (CodeSourcery ARM 2005q3-2) with anything but -O3
-$(MODULE)/graphics/screen.o: $(MODULE)/graphics/screen.cpp
-	$(MKDIR) $(*D)/$(DEPDIR)
-	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) -O3 $(CPPFLAGS) -c $(<) -o $*.o
-endif # BACKEND=MAEMO
-endif # USE_RULES
-
 # Detection objects
 DETECT_OBJS += $(MODULE)/detection.o


Commit: b9d3282ed629bafded697265cad33085e2e5a773
    https://github.com/scummvm/scummvm/commit/b9d3282ed629bafded697265cad33085e2e5a773
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
COMMON: Remove workaround comment about GCC 2.95.3

GCC 2.95.3 has no C++11 support, so there's no point in referencing
it anymore.

The SYNC_AS() lines could be moved back to the end of the class
declaration, but it still seems fine where it is, so just remove the
workaround comment.

Changed paths:
    common/serializer.h


diff --git a/common/serializer.h b/common/serializer.h
index 1d53f87f3bb..a004148ed97 100644
--- a/common/serializer.h
+++ b/common/serializer.h
@@ -114,14 +114,6 @@ public:
 	inline bool isSaving() { return (_saveStream != 0); }
 	inline bool isLoading() { return (_loadStream != 0); }
 
-	// WORKAROUND for bugs #4698 "BeOS: tinsel does not compile" and
-	// #4697 "BeOS: Cruise does not compile". gcc 2.95.3, which is used
-	// for BeOS fails due to an internal compiler error, when we place the
-	// following function definitions in another place. Before this work-
-	// around the following SYNC_AS definitions were placed at the end
-	// of the class declaration. This caused an internal compiler error
-	// in the line "syncAsUint32LE(_version);" of
-	// "bool syncVersion(Version currentVersion)".
 	SYNC_AS(Byte, byte, 1)
 	SYNC_AS(SByte, int8, 1)
 


Commit: 7ffa660a44a873ef575e9cbcbabd43b00c168772
    https://github.com/scummvm/scummvm/commit/7ffa660a44a873ef575e9cbcbabd43b00c168772
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
CINE: Remove the comment about an old PalmOS compiler

The problematic compiler wouldn't be able to compile any C++11 code,
and the PalmOS port has been removed more than 10 years ago anyway.

Looking at the following original commits

- 3ed2192923a146ee4b3f0784396d8e5479d68778
- 420569626c84be5242237125745a117a6ff9a8b9
- 17fef2950718cc38fb7f7bfc1f634ed1b7491eaf

it appears that this workaround was actually meant to be kept, in the
end, so just remove the comment itself.

Changed paths:
    engines/cine/pal.h


diff --git a/engines/cine/pal.h b/engines/cine/pal.h
index b283fc9bcd2..eedceb8ea78 100644
--- a/engines/cine/pal.h
+++ b/engines/cine/pal.h
@@ -178,11 +178,6 @@ private:
 	int findMinBrightnessColorIndex(uint minColorIndex = 1);
 	byte brightness(byte colorIndex);
 	void setColorFormat(const Graphics::PixelFormat format);
-
-	// WORKAROUND: Using a reference to a result here instead of returning an Color object.
-	// This is needed because when using a Color as return value, this would crash Chrilith's
-	// compiler for PalmOS.
-	// TODO: Add more information about the compiler.
 	void saturatedAddColor(Color &result, const Color &baseColor, signed r, signed g, signed b) const;
 
 private:


Commit: 452afa29ed343ba2e658a2954e461735a9995122
    https://github.com/scummvm/scummvm/commit/452afa29ed343ba2e658a2954e461735a9995122
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
SCUMM: Remove the smallCostumeScaleTableAKOS workaround

This was an old workaround for GCC 3.4, but we don't support this
compiler anymore since we now require C++11.  This removes a hack and
saves some bytes.

This undoes commit a7a17969c312256238f67fba337f4fdc047130c8.

Changed paths:
    engines/scumm/akos.cpp


diff --git a/engines/scumm/akos.cpp b/engines/scumm/akos.cpp
index e7ff52ff986..87b8bb82085 100644
--- a/engines/scumm/akos.cpp
+++ b/engines/scumm/akos.cpp
@@ -654,42 +654,6 @@ void AkosRenderer::codec1_genericDecode(Codec1 &v1) {
 	} while (1);
 }
 
-// This is exact duplicate of smallCostumeScaleTable[] in costume.cpp
-// See FIXME below for explanation
-const byte smallCostumeScaleTableAKOS[256] = {
-	0xFF, 0xFD, 0x7D, 0xBD, 0x3D, 0xDD, 0x5D, 0x9D,
-	0x1D, 0xED, 0x6D, 0xAD, 0x2D, 0xCD, 0x4D, 0x8D,
-	0x0D, 0xF5, 0x75, 0xB5, 0x35, 0xD5, 0x55, 0x95,
-	0x15, 0xE5, 0x65, 0xA5, 0x25, 0xC5, 0x45, 0x85,
-	0x05, 0xF9, 0x79, 0xB9, 0x39, 0xD9, 0x59, 0x99,
-	0x19, 0xE9, 0x69, 0xA9, 0x29, 0xC9, 0x49, 0x89,
-	0x09, 0xF1, 0x71, 0xB1, 0x31, 0xD1, 0x51, 0x91,
-	0x11, 0xE1, 0x61, 0xA1, 0x21, 0xC1, 0x41, 0x81,
-	0x01, 0xFB, 0x7B, 0xBB, 0x3B, 0xDB, 0x5B, 0x9B,
-	0x1B, 0xEB, 0x6B, 0xAB, 0x2B, 0xCB, 0x4B, 0x8B,
-	0x0B, 0xF3, 0x73, 0xB3, 0x33, 0xD3, 0x53, 0x93,
-	0x13, 0xE3, 0x63, 0xA3, 0x23, 0xC3, 0x43, 0x83,
-	0x03, 0xF7, 0x77, 0xB7, 0x37, 0xD7, 0x57, 0x97,
-	0x17, 0xE7, 0x67, 0xA7, 0x27, 0xC7, 0x47, 0x87,
-	0x07, 0xEF, 0x6F, 0xAF, 0x2F, 0xCF, 0x4F, 0x8F,
-	0x0F, 0xDF, 0x5F, 0x9F, 0x1F, 0xBF, 0x3F, 0x7F,
-	0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
-	0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
-	0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
-	0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
-	0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
-	0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
-	0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
-	0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
-	0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
-	0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
-	0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
-	0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
-	0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
-	0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
-	0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
-	0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE
-};
 const byte bigCostumeScaleTable[768] = {
 	0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
 	0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
@@ -805,12 +769,7 @@ byte AkosRenderer::codec1(int xmoveCur, int ymoveCur) {
 
 	/* implement custom scale table */
 
-	// FIXME. HACK
-	// For some illogical reason gcc 3.4.x produces wrong code if
-	// smallCostumeScaleTable from costume.cpp is used here
-	// So I had to put copy of it back here as it was before 1.227 revision
-	// of this file.
-	v1.scaletable = (_vm->_game.heversion >= 61) ? smallCostumeScaleTableAKOS : bigCostumeScaleTable;
+	v1.scaletable = (_vm->_game.heversion >= 61) ? smallCostumeScaleTable : bigCostumeScaleTable;
 	if (_vm->VAR_CUSTOMSCALETABLE != 0xFF && _vm->_res->isResourceLoaded(rtString, _vm->VAR(_vm->VAR_CUSTOMSCALETABLE))) {
 		v1.scaletable = _vm->getStringAddressVar(_vm->VAR_CUSTOMSCALETABLE);
 	}


Commit: f4fa731c4c158db433dadcc42b0b6e59f2703b66
    https://github.com/scummvm/scummvm/commit/f4fa731c4c158db433dadcc42b0b6e59f2703b66
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
DC: SKY: Remove a workaround for an old Dreamcast compiler

This 2003 compiler bug has been fixed since (at least) 2012
with GCC 4.7:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11736

We now require C++11 support, which means that GCC for Dreamcast
should not have this compiler bug anymore.

Changed paths:
    engines/sky/logic.cpp


diff --git a/engines/sky/logic.cpp b/engines/sky/logic.cpp
index 90a7d2a8251..95d641e34ae 100644
--- a/engines/sky/logic.cpp
+++ b/engines/sky/logic.cpp
@@ -1723,10 +1723,6 @@ bool Logic::fnSpeakWaitDir(uint32 a, uint32 b, uint32 c) {
 	b is text message number
 	c is base of mini table within anim_talk_table */
 
-#ifdef __DC__
-	__builtin_alloca(4); // Works around a gcc bug (wrong-code/11736)
-#endif
-
 	_compact->flag = (uint16)a;
 	_compact->logic = L_LISTEN;
 


Commit: 0e489206fe0c57e1bc06cb69324ab63844756150
    https://github.com/scummvm/scummvm/commit/0e489206fe0c57e1bc06cb69324ab63844756150
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
BUILD: Remove mention of GCC 2.95

Since we require C++11 support.

Changed paths:
    Makefile.common


diff --git a/Makefile.common b/Makefile.common
index 22a11b58e0d..bc0be7bc55e 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -192,7 +192,7 @@ base/version.o: base/version.cpp
 else
 
 # Dumb compile rule, for C++ compilers that don't allow dependency tracking or
-# where it is broken (such as GCC 2.95).
+# where it is broken
 %.o: %.cpp
 	$(QUIET)$(MKDIR) $(*D)
 	$(QUIET_CXX)$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $@


Commit: 4753e85efed0ee2f69fbcffdfc7119130eb64d2a
    https://github.com/scummvm/scummvm/commit/4753e85efed0ee2f69fbcffdfc7119130eb64d2a
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-05-25T19:07:30+03:00

Commit Message:
SCUMM: Drop VC6 workaround

This compiler has no C++11 support.

Changed paths:
    engines/scumm/scumm_v7.h


diff --git a/engines/scumm/scumm_v7.h b/engines/scumm/scumm_v7.h
index c6c2da24496..31168eb4665 100644
--- a/engines/scumm/scumm_v7.h
+++ b/engines/scumm/scumm_v7.h
@@ -78,17 +78,6 @@ protected:
 	int _languageIndexSize;
 	char _lastStringTag[12+1];
 
-#if defined(__SYMBIAN32__) // for some reason VC6 cannot find the base class TextObject
-	struct SubtitleText {
-		int16 xpos, ypos;
-		byte color;
-		byte charset;
-		byte text[256];
-		bool actorSpeechMsg;
-		bool center;
-		bool wrap;
-	};
-#else
 	struct SubtitleText : TextObject {
 		void clear() {
 			TextObject::clear();
@@ -98,7 +87,6 @@ protected:
 		bool center;
 		bool wrap;
 	};
-#endif
 
 	friend void syncWithSerializer(Common::Serializer &, SubtitleText &);
 




More information about the Scummvm-git-logs mailing list