emulators/openmsx: Update to 16.0
Changelog[1]: - Lots of new features and fixes - New version scheme (0.15.0 to 16.0) [1] https://raw.githubusercontent.com/openMSX/openMSX/RELEASE_16_0/doc/release-notes.txt Ports changes: - Update PORTVERSION - Remove BROKEN - Update distinfo - Add patches with FreeBSD gcc specific changes - Use secure URL in pkg-descr PR: 250399 Submitted by: Daniel Menelkir <menelkir@itroll.org> (maintainer) Approved by: arrowd (mentor), tcberner (mentor) Differential Revision: https://reviews.freebsd.org/D26825
This commit is contained in:
parent
da8bff6cbe
commit
0922623f3f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=552553
@ -1,8 +1,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
PORTNAME= openmsx
|
PORTNAME= openmsx
|
||||||
PORTVERSION= 0.15.0
|
PORTVERSION= 16.0
|
||||||
PORTREVISION= 2
|
|
||||||
CATEGORIES= emulators
|
CATEGORIES= emulators
|
||||||
|
|
||||||
MAINTAINER= menelkir@itroll.org
|
MAINTAINER= menelkir@itroll.org
|
||||||
@ -11,8 +10,6 @@ COMMENT= Open source MSX emulator
|
|||||||
LICENSE= GPLv2
|
LICENSE= GPLv2
|
||||||
LICENSE_FILE= ${WRKSRC}/doc/GPL.txt
|
LICENSE_FILE= ${WRKSRC}/doc/GPL.txt
|
||||||
|
|
||||||
BROKEN= fails to build
|
|
||||||
|
|
||||||
LIB_DEPENDS= libpng.so:graphics/png \
|
LIB_DEPENDS= libpng.so:graphics/png \
|
||||||
libogg.so:audio/libogg \
|
libogg.so:audio/libogg \
|
||||||
libvorbis.so:audio/libvorbis \
|
libvorbis.so:audio/libvorbis \
|
||||||
@ -29,7 +26,7 @@ USE_SDL= sdl2 ttf2
|
|||||||
USE_GITHUB= yes
|
USE_GITHUB= yes
|
||||||
GH_ACCOUNT= openMSX
|
GH_ACCOUNT= openMSX
|
||||||
GH_PROJECT= openMSX
|
GH_PROJECT= openMSX
|
||||||
GH_TAGNAME= 0f2b558
|
GH_TAGNAME= a46a814
|
||||||
|
|
||||||
BINARY_ALIAS= python3=${PYTHON_CMD}
|
BINARY_ALIAS= python3=${PYTHON_CMD}
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1588351340
|
TIMESTAMP = 1602852184
|
||||||
SHA256 (openMSX-openMSX-0.15.0-0f2b558_GH0.tar.gz) = 4be0852c3eed442771dc450ad5385a5b30c97927be543da91bd685e5484d560d
|
SHA256 (openMSX-openMSX-16.0-a46a814_GH0.tar.gz) = 56d66cd7baa4e93febf36fba9ed3e0efa65fb2095432aa659c37e364c23852ac
|
||||||
SIZE (openMSX-openMSX-0.15.0-0f2b558_GH0.tar.gz) = 5589585
|
SIZE (openMSX-openMSX-16.0-a46a814_GH0.tar.gz) = 5605130
|
||||||
|
88
emulators/openmsx/files/patch-src_utils_endian.hh
Normal file
88
emulators/openmsx/files/patch-src_utils_endian.hh
Normal file
@ -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)
|
11
emulators/openmsx/files/patch-src_utils_sha1.cc
Normal file
11
emulators/openmsx/files/patch-src_utils_sha1.cc
Normal file
@ -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
|
15
emulators/openmsx/files/patch-src_utils_tiger.cc
Normal file
15
emulators/openmsx/files/patch-src_utils_tiger.cc
Normal file
@ -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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
OpenMSX, the open source MSX emulator that tries to achieve
|
OpenMSX, the open source MSX emulator that tries to achieve
|
||||||
near-perfect emulation by using a novel emulation model.
|
near-perfect emulation by using a novel emulation model.
|
||||||
|
|
||||||
WWW: http://openmsx.org
|
WWW: https://openmsx.org
|
||||||
|
Loading…
Reference in New Issue
Block a user