diff options
author | Rainer Hurling <rhurlin@FreeBSD.org> | 2020-10-17 10:55:02 +0000 |
---|---|---|
committer | Rainer Hurling <rhurlin@FreeBSD.org> | 2020-10-17 10:55:02 +0000 |
commit | 0922623f3f51360b2b75ad4166dca8a978cc353f (patch) | |
tree | e996f51ac5ef1e82612ed3ce6dd7e426a2019f85 /emulators/openmsx | |
parent | da8bff6cbea9dfc647cdf9a8daea0ed6f263f21f (diff) | |
download | ports-0922623f3f51360b2b75ad4166dca8a978cc353f.tar.gz ports-0922623f3f51360b2b75ad4166dca8a978cc353f.zip |
Notes
Diffstat (limited to 'emulators/openmsx')
-rw-r--r-- | emulators/openmsx/Makefile | 7 | ||||
-rw-r--r-- | emulators/openmsx/distinfo | 6 | ||||
-rw-r--r-- | emulators/openmsx/files/patch-src_utils_endian.hh | 88 | ||||
-rw-r--r-- | emulators/openmsx/files/patch-src_utils_sha1.cc | 11 | ||||
-rw-r--r-- | emulators/openmsx/files/patch-src_utils_tiger.cc | 15 | ||||
-rw-r--r-- | emulators/openmsx/pkg-descr | 2 |
6 files changed, 120 insertions, 9 deletions
diff --git a/emulators/openmsx/Makefile b/emulators/openmsx/Makefile index fde650333d1c..4099755b6dd6 100644 --- a/emulators/openmsx/Makefile +++ b/emulators/openmsx/Makefile @@ -1,8 +1,7 @@ # $FreeBSD$ PORTNAME= openmsx -PORTVERSION= 0.15.0 -PORTREVISION= 2 +PORTVERSION= 16.0 CATEGORIES= emulators MAINTAINER= menelkir@itroll.org @@ -11,8 +10,6 @@ COMMENT= Open source MSX emulator LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/doc/GPL.txt -BROKEN= fails to build - LIB_DEPENDS= libpng.so:graphics/png \ libogg.so:audio/libogg \ libvorbis.so:audio/libvorbis \ @@ -29,7 +26,7 @@ USE_SDL= sdl2 ttf2 USE_GITHUB= yes GH_ACCOUNT= openMSX GH_PROJECT= openMSX -GH_TAGNAME= 0f2b558 +GH_TAGNAME= a46a814 BINARY_ALIAS= python3=${PYTHON_CMD} diff --git a/emulators/openmsx/distinfo b/emulators/openmsx/distinfo index d478d4908c7d..f4d6ade38d00 100644 --- a/emulators/openmsx/distinfo +++ b/emulators/openmsx/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1588351340 -SHA256 (openMSX-openMSX-0.15.0-0f2b558_GH0.tar.gz) = 4be0852c3eed442771dc450ad5385a5b30c97927be543da91bd685e5484d560d -SIZE (openMSX-openMSX-0.15.0-0f2b558_GH0.tar.gz) = 5589585 +TIMESTAMP = 1602852184 +SHA256 (openMSX-openMSX-16.0-a46a814_GH0.tar.gz) = 56d66cd7baa4e93febf36fba9ed3e0efa65fb2095432aa659c37e364c23852ac +SIZE (openMSX-openMSX-16.0-a46a814_GH0.tar.gz) = 5605130 diff --git a/emulators/openmsx/files/patch-src_utils_endian.hh b/emulators/openmsx/files/patch-src_utils_endian.hh new file mode 100644 index 000000000000..196c6acc84db --- /dev/null +++ b/emulators/openmsx/files/patch-src_utils_endian.hh @@ -0,0 +1,88 @@ +--- src/utils/endian.hh.orig 2020-08-25 21:16:08 UTC ++++ src/utils/endian.hh +@@ -9,23 +9,23 @@ + namespace Endian { + + // Reverse bytes in a 16-bit number: 0x1234 becomes 0x3412 +-[[nodiscard]] static inline uint16_t bswap16(uint16_t x) ++[[nodiscard]] static inline uint16_t byteswap16(uint16_t x) + { + // This sequence generates 'optimal' code on a wide range of gcc/clang + // versions (a single rotate instruction on x86). The newer compiler + // versions also do 'the right thing' for the simpler expression below. +- // Those newer compilers also support __builtin_bswap16() but that ++ // Those newer compilers also support __builtin_byteswap16() but that + // doesn't generate better code (and is less portable). + return ((x & 0x00FF) << 8) | ((x & 0xFF00) >> 8); + //return (x << 8) | (x >> 8); + } + + // Reverse bytes in a 32-bit number: 0x12345678 becomes 0x78563412 +-[[nodiscard]] static inline uint32_t bswap32(uint32_t x) ++[[nodiscard]] static inline uint32_t byteswap32(uint32_t x) + { + #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) + // Starting from gcc-4.3 there's a builtin function for this. +- // E.g. on x86 this is translated to a single 'bswap' instruction. ++ // E.g. on x86 this is translated to a single 'byteswap' instruction. + return __builtin_bswap32(x); + #else + return (x << 24) | +@@ -36,22 +36,22 @@ namespace Endian { + } + + // Reverse bytes in a 64-bit value: 0x1122334455667788 becomes 0x8877665544332211 +-[[nodiscard]] static inline uint64_t bswap64(uint64_t x) ++[[nodiscard]] static inline uint64_t byteswap64(uint64_t x) + { + #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) + // Starting from gcc-4.3 there's a builtin function for this. +- // E.g. on x86 this is translated to a single 'bswap' instruction. ++ // E.g. on x86 this is translated to a single 'byteswap' instruction. + return __builtin_bswap64(x); + #else +- return (uint64_t(bswap32(x >> 0)) << 32) | +- (uint64_t(bswap32(x >> 32)) << 0); ++ return (uint64_t(byteswap32(x >> 0)) << 32) | ++ (uint64_t(byteswap32(x >> 32)) << 0); + #endif + } + +-// Use overloading to get a (statically) polymorphic bswap() function. +-[[nodiscard]] static inline uint16_t bswap(uint16_t x) { return bswap16(x); } +-[[nodiscard]] static inline uint32_t bswap(uint32_t x) { return bswap32(x); } +-[[nodiscard]] static inline uint64_t bswap(uint64_t x) { return bswap64(x); } ++// Use overloading to get a (statically) polymorphic byteswap() function. ++[[nodiscard]] static inline uint16_t byteswap(uint16_t x) { return byteswap16(x); } ++[[nodiscard]] static inline uint32_t byteswap(uint32_t x) { return byteswap32(x); } ++[[nodiscard]] static inline uint64_t byteswap(uint64_t x) { return byteswap64(x); } + + + // Identity operator, simply returns the given value. +@@ -61,7 +61,7 @@ struct Ident { + + // Byte-swap operator, swap bytes in the given value (16 or 32 bit). + struct BSwap { +- template <typename T> [[nodiscard]] inline T operator()(T t) const { return bswap(t); } ++ template <typename T> [[nodiscard]] inline T operator()(T t) const { return byteswap(t); } + }; + + // Helper class that stores a value and allows to read/write that value. Though +@@ -165,7 +165,7 @@ static inline void writeL32(void* p, uint32_t x) + + template<bool SWAP, typename T> static ALWAYS_INLINE void write_UA(void* p, T x) + { +- if (SWAP) x = bswap(x); ++ if (SWAP) x = byteswap(x); + memcpy(p, &x, sizeof(x)); + } + static ALWAYS_INLINE void write_UA_B16(void* p, uint16_t x) +@@ -197,7 +197,7 @@ template<bool SWAP, typename T> [[nodiscard]] static A + { + T x; + memcpy(&x, p, sizeof(x)); +- if (SWAP) x = bswap(x); ++ if (SWAP) x = byteswap(x); + return x; + } + [[nodiscard]] static ALWAYS_INLINE uint16_t read_UA_B16(const void* p) diff --git a/emulators/openmsx/files/patch-src_utils_sha1.cc b/emulators/openmsx/files/patch-src_utils_sha1.cc new file mode 100644 index 000000000000..0b0b88d465cb --- /dev/null +++ b/emulators/openmsx/files/patch-src_utils_sha1.cc @@ -0,0 +1,11 @@ +--- src/utils/sha1.cc.orig 2020-10-16 15:25:27 UTC ++++ src/utils/sha1.cc +@@ -123,7 +123,7 @@ static inline __m128i _mm_cmple_epu8(__m128i a, __m128 + // load 64-bit (possibly unaligned) and swap bytes + static inline uint64_t loadSwap64(const char* s) + { +- return Endian::bswap64(*reinterpret_cast<const uint64_t*>(s)); ++ return Endian::byteswap64(*reinterpret_cast<const uint64_t*>(s)); + } + + #else diff --git a/emulators/openmsx/files/patch-src_utils_tiger.cc b/emulators/openmsx/files/patch-src_utils_tiger.cc new file mode 100644 index 000000000000..6553c6e2aa89 --- /dev/null +++ b/emulators/openmsx/files/patch-src_utils_tiger.cc @@ -0,0 +1,15 @@ +--- src/utils/tiger.cc.orig 2020-10-16 15:12:50 UTC ++++ src/utils/tiger.cc +@@ -662,9 +662,9 @@ static inline void initState(uint64_t state[3]) + static inline void returnState(uint64_t state[3]) + { + if (OPENMSX_BIGENDIAN) { +- state[0] = Endian::bswap64(state[0]); +- state[1] = Endian::bswap64(state[1]); +- state[2] = Endian::bswap64(state[2]); ++ state[0] = Endian::byteswap64(state[0]); ++ state[1] = Endian::byteswap64(state[1]); ++ state[2] = Endian::byteswap64(state[2]); + } + } + diff --git a/emulators/openmsx/pkg-descr b/emulators/openmsx/pkg-descr index 462a095eca43..dfab1ff7a085 100644 --- a/emulators/openmsx/pkg-descr +++ b/emulators/openmsx/pkg-descr @@ -1,4 +1,4 @@ OpenMSX, the open source MSX emulator that tries to achieve near-perfect emulation by using a novel emulation model. -WWW: http://openmsx.org +WWW: https://openmsx.org |