summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevan Franchini <twitch153@gentoo.org>2013-08-26 04:25:00 +0000
committerDevan Franchini <twitch153@gentoo.org>2013-08-26 04:25:00 +0000
commit020db97fa2a8d947aa6b651aa712f62ea7444abc (patch)
treeeb095011d54792525df06861b75f268a0ab42363 /games-emulation
parentdev-haskell/asn1-types: 0.2.0 (diff)
downloadgentoo-2-020db97fa2a8d947aa6b651aa712f62ea7444abc.tar.gz
gentoo-2-020db97fa2a8d947aa6b651aa712f62ea7444abc.tar.bz2
gentoo-2-020db97fa2a8d947aa6b651aa712f62ea7444abc.zip
New ebuild and live ebuild for dolphin emulator. Written by myself. Fixes bug #281543
(Portage version: 2.1.12.2/cvs/Linux x86_64, signed Manifest commit with key )
Diffstat (limited to 'games-emulation')
-rw-r--r--games-emulation/dolphin/ChangeLog11
-rw-r--r--games-emulation/dolphin/Manifest5
-rw-r--r--games-emulation/dolphin/dolphin-3.5.ebuild143
-rw-r--r--games-emulation/dolphin/dolphin-9999.ebuild129
-rw-r--r--games-emulation/dolphin/files/dolphin-emu-3.5-gcc-4.8.patch211
-rw-r--r--games-emulation/dolphin/metadata.xml12
6 files changed, 511 insertions, 0 deletions
diff --git a/games-emulation/dolphin/ChangeLog b/games-emulation/dolphin/ChangeLog
new file mode 100644
index 000000000000..dc39f48315a9
--- /dev/null
+++ b/games-emulation/dolphin/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for games-emulation/dolphin
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/games-emulation/dolphin/ChangeLog,v 1.1 2013/08/26 04:25:00 twitch153 Exp $
+
+*dolphin-9999 (26 Aug 2013)
+*dolphin-3.5 (26 Aug 2013)
+
+ 26 Aug 2013; twitch153 +dolphin-3.5.ebuild, +dolphin-9999.ebuild,
+ +files/dolphin-emu-3.5-gcc-4.8.patch, +metadata.xml:
+ New ebuild and live ebuild for dolphin emulator. Written by myself. Fixes bug
+ #281543
diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest
new file mode 100644
index 000000000000..77a439cc414c
--- /dev/null
+++ b/games-emulation/dolphin/Manifest
@@ -0,0 +1,5 @@
+AUX dolphin-emu-3.5-gcc-4.8.patch 6682 SHA256 8f153b45b354d52e084694d285fe49409a47f0738e064ca7ba88b38cbbd6f1ca SHA512 98a2e0435b262af4bcf875ef29d14ed5ae204faebadbed7778cfedb3c9841552ecab83ef932e943c779d634d83f6df6d43a656c5e72732e85827902cb08622aa WHIRLPOOL 7128c98fcd22efde2a8067a28d9b064689fa7a5f81b068313a19e41f4fc659b726293bc00539be725077ff5529276c0769e7acbf8146c2c8d578c3812776d488
+DIST dolphin-3.5-src.zip 28805192 SHA256 b95cb6f487c1f77471c08cfb52bc9844bb2385f0ffd8fb45416b4c5095eb8d9a SHA512 4e607f9ed15c19967382a178c725a015fa8e2db4f624e9b54c50af31bdbae333989be8397cd32d0aa3b5283caf85a67e5529583be4423ada5c6f098ca7c309ef WHIRLPOOL a840f15153eff2edb5f2c75410e6fed3cca7fbffe2eb05bbf6441b914f7b27c6d9ee90de27fb9a773b601c44311828b95e3c597000cf607ff12d1141266e50bc
+EBUILD dolphin-3.5.ebuild 3750 SHA256 faf60eae44525cb1c50060fc3d8a2be0ddfa23ab09e7cd1862b404faecfe7692 SHA512 e6e65927756e99939beab0c8be2b67a51b3d2b9b80a812d4d0e451add4d7ac7ec655eec6143a5b24c84befbeea59603747d9be2da77cebe8ae096029bb6a7178 WHIRLPOOL 84c1aeecd4b623d97d82f9581e7c5c6151dc6ecbbcbbf6f56584c749e50dd3d0db46d871b4e34f6148e456ebbe5003e008e0a29a13ed23703fa5b09e70291e8a
+EBUILD dolphin-9999.ebuild 3150 SHA256 410c1f56cbd32fafda7f54de9e73adb92d665e6506646c7c44bd9f5d0ae8a55a SHA512 87be512add453fea123f7f917d91b347460d2ac224545caf796e11a7b059be2bafa4d189b8bacb64f9ab4d2281c5a03672c113f0057643c00fbe52deb72ce8ad WHIRLPOOL 00c05054bd9db886a8d7294d5733a365942d3200c235d411556833516ac6fff2be655e3efeff021cde70dbe4ff8441cc66401ac21a1f06606a5fbb274c4f0b4f
+MISC metadata.xml 442 SHA256 11ac55298ad628e589b592a2da00db1cabfd31ff8621c0fea059d714acdce334 SHA512 96abf53048bb8aea1387eacc40b9cda4e6099f079ddeb669fb23458d67880804fb015970207aa10a21227b87c153208a8dfa4bf4ea279ff7e53dcfebf18ac30e WHIRLPOOL e72458e354da2e4bfeb67de52c31d50a61f3b926fe16c0bcf4aae5e599858e413fcc9057fe1b098e43ee18fabe6a0f05dff008f59065cf34bad02da6480fc120
diff --git a/games-emulation/dolphin/dolphin-3.5.ebuild b/games-emulation/dolphin/dolphin-3.5.ebuild
new file mode 100644
index 000000000000..71612b53ed25
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-3.5.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-emulation/dolphin/dolphin-3.5.ebuild,v 1.1 2013/08/26 04:24:59 twitch153 Exp $
+
+EAPI=5
+
+WX_GTK_VER="2.9"
+
+inherit cmake-utils eutils flag-o-matic pax-utils toolchain-funcs versionator wxwidgets games
+
+DESCRIPTION="Dolphin is a Gamecube and Wii game emulator"
+HOMEPAGE="http://www.dolphin-emulator.com/"
+SRC_URI="http://${PN}-emu.googlecode.com/files/${P}-src.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="alsa ao bluetooth doc ffmpeg +lzo openal opengl openmp portaudio pulseaudio"
+
+RESTRICT="mirror"
+
+RDEPEND=">=media-libs/glew-1.6
+ >=media-libs/libsdl-1.2[joystick]
+ <media-libs/libsfml-2.0
+ sys-libs/readline
+ x11-libs/libXext
+ x11-libs/libXrandr
+ alsa? ( media-libs/alsa-lib )
+ ao? ( media-libs/libao )
+ bluetooth? ( net-wireless/bluez )
+ ffmpeg? ( virtual/ffmpeg )
+ lzo? ( dev-libs/lzo )
+ openal? ( media-libs/openal )
+ opengl? ( virtual/opengl )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ "
+DEPEND="${RDEPEND}
+ app-arch/zip
+ media-gfx/nvidia-cg-toolkit
+ media-libs/freetype
+ >=sys-devel/gcc-4.6.0
+ sys-devel/gettext
+ virtual/pkgconfig
+ x11-libs/wxGTK:2.9
+ "
+
+src_prepare() {
+
+ version_is_at_least 4.6.0 $(gcc-fullversion) || die "${PN} needs >=gcc-4.6.0 set to compile."
+
+ if has_version "=sys-devel/gcc-4.8.0"; then
+ epatch "${FILESDIR}"/${PN}-emu-${PV}-gcc-4.8.patch
+ fi
+
+ # Remove automatic dependencies to prevent building without flags enabled.
+ if use !alsa; then
+ sed -i -e '/^include(FindALSA/d' CMakeLists.txt || die
+ fi
+ if use !ao; then
+ sed -i -e '/^check_lib(AO/d' CMakeLists.txt || die
+ fi
+ if use !bluetooth; then
+ sed -i -e '/^check_lib(BLUEZ/d' CMakeLists.txt || die
+ fi
+ if use !openal; then
+ sed -i -e '/^include(FindOpenAL/d' CMakeLists.txt || die
+ fi
+ if use !portaudio; then
+ sed -i -e '/CMAKE_REQUIRED_LIBRARIES portaudio/d' CMakeLists.txt || die
+ fi
+ if use !pulseaudio; then
+ sed -i -e '/^check_lib(PULSEAUDIO/d' CMakeLists.txt || die
+ fi
+
+ # Remove ALL the bundled libraries, aside from:
+ # - SOIL: The sources are not public.
+ # - Bochs_disasm: Don't know what it is.
+ # - CLRun: Part of OpenCL
+ mv Externals/SOIL . || die
+ mv Externals/Bochs_disasm . || die
+ mv Externals/CLRun . || die
+ rm -r Externals/* || die "Failed to remove bundled libs"
+ mv CLRun Externals || die
+ mv Bochs_disasm Externals || die
+ mv SOIL Externals || die
+}
+
+src_configure() {
+
+ if $($(tc-getPKG_CONFIG) --exists nvidia-cg-toolkit); then
+ append-flags "$($(tc-getPKG_CONFIG) --cflags nvidia-cg-toolkit)"
+ else
+ append-flags "-I/opt/nvidia-cg-toolkit/include"
+ fi
+
+ if $($(tc-getPKG_CONFIG) --exists nvidia-cg-toolkit); then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-L nvidia-cg-toolkit)"
+ else
+ if has_version ">=media-gfx/nvidia-cg-toolkit-3.1.0013"; then
+ append-ldflags "-L/opt/nvidia-cg-toolkit/lib64"
+ elif has_version "<=media-gfx/nvidia-cg-toolkit-2.1.0017-r1"; then
+ append-ldflags "-L/opt/nvidia-cg-toolkit/lib"
+ fi
+ fi
+
+ local mycmakeargs=(
+ "-DDOLPHIN_WC_REVISION=${PV}"
+ "-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}"
+ "-Dprefix=${GAMES_PREFIX}"
+ "-Ddatadir=${GAMES_DATADIR}/${PN}"
+ "-Dplugindir=$(games_get_libdir)/${PN}"
+ $(cmake-utils_use ffmpeg ENCODE_FRAMEDUMPS)
+ $(cmake-utils_use openmp OPENMP )
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+
+ cmake-utils_src_install
+
+ dodoc Readme.txt
+ if use doc; then
+ doins -r doc
+ fi
+
+ doicon Source/Core/DolphinWX/resources/Dolphin.xpm
+ make_desktop_entry "dolphin-emu" "Dolphin" "Dolphin" "Game;"
+
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ # Add pax markings for hardened systems
+ pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu
+
+ if ! use portaudio; then
+ ewarn "If you want microphone capabilities in dolphin-emu, rebuild with"
+ ewarn "USE=\"portaudio\""
+ fi
+}
diff --git a/games-emulation/dolphin/dolphin-9999.ebuild b/games-emulation/dolphin/dolphin-9999.ebuild
new file mode 100644
index 000000000000..21e9911f70d6
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-9999.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-emulation/dolphin/dolphin-9999.ebuild,v 1.1 2013/08/26 04:24:59 twitch153 Exp $
+
+EAPI=5
+
+WX_GTK_VER="2.9"
+
+inherit cmake-utils eutils pax-utils toolchain-funcs versionator wxwidgets games
+
+if [[ ${PV} == 9999* ]]
+then
+ EGIT_REPO_URI="https://code.google.com/p/dolphin-emu/"
+ inherit git-2
+ KEYWORKD=""
+else
+ SRC_URI="http://${PN}-emu.googlecode.com/files/${P}-src.zip"
+ KEYWORDS="~amd"
+fi
+
+DESCRIPTION="Dolphin is a Gamecube and Wii game emulator"
+HOMEPAGE="http://www.dolphin-emulator.com/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="alsa ao bluetooth doc ffmpeg +lzo openal opengl openmp portaudio pulseaudio"
+
+RDEPEND=">=media-libs/glew-1.6
+ >=media-libs/libsdl-1.2[joystick]
+ <media-libs/libsfml-2.0
+ >=net-libs/miniupnpc-1.8
+ sys-libs/readline
+ x11-libs/libXext
+ x11-libs/libXrandr
+ alsa? ( media-libs/alsa-lib )
+ ao? ( media-libs/libao )
+ bluetooth? ( net-wireless/bluez )
+ ffmpeg? ( virtual/ffmpeg )
+ lzo? ( dev-libs/lzo )
+ openal? ( media-libs/openal )
+ opengl? ( virtual/opengl )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ "
+DEPEND="${RDEPEND}
+ app-arch/zip
+ media-gfx/nvidia-cg-toolkit
+ media-libs/freetype
+ media-libs/libsoundtouch
+ >=sys-devel/gcc-4.6.0
+ x11-libs/wxGTK:2.9
+ "
+
+src_prepare() {
+
+ version_is_at_least 4.6.0 $(gcc-fullversion) || die "${PN} needs >=gcc-4.6.0 set to compile."
+
+ # Remove automatic dependencies to prevent building without flags enabled.
+ if use !alsa; then
+ sed -i -e '^/include(FindALSA/d' CMakeLists.txt || die
+ fi
+ if use !ao; then
+ sed -i -e '/^check_lib(AO/d' CMakeLists.txt || die
+ fi
+ if use !bluetooth; then
+ sed -i -e '/^check_lib(BLUEZ/d' CMakeLists.txt || die
+ fi
+ if use !openal; then
+ sed -i -e '/^include(FindOpenAL/d' CMakeLists.txt || die
+ fi
+ if use !portaudio; then
+ sed -i -e '/CMAKE_REQUIRED_LIBRARIES portaudio/d' CMakeLists.txt || die
+ fi
+ if use !pulseaudio; then
+ sed -i -e '/^check_lib(PULSEAUDIO/d' CMakeLists.txt || die
+ fi
+
+ # Remove ALL the bundled libraries, aside from:
+ # - SOIL: The sources are not public.
+ # - Bochs-disasm: Don't know what it is.
+ # - CLRun: Part of OpenCL
+ mv Externals/SOIL . || die
+ mv Externals/Bochs_disasm . || die
+ mv Externals/CLRun . || die
+ rm -r Externals/* || die
+ mv CLRun Externals || die
+ mv Bochs_disasm Externals || die
+ mv SOIL Externals || die
+}
+
+src_configure() {
+
+ local mycmakeargs=(
+ "-DDOLPHIN_WC_REVISION=${PV}"
+ "-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}"
+ "-Dprefix=${GAMES_PREFIX}"
+ "-Ddatadir=${GAMES_DATADIR}/${PN}"
+ "-Dplugindir=$(games_get_libdir)/${PN}"
+ $( cmake-utils_use ffmpeg ENCODE_FRAMEDUMPS )
+ $( cmake-utils_use openmp OPENMP )
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+
+ cmake-utils_src_install
+
+ dodoc Readme.txt
+ if use doc; then
+ doins -r doc
+ fi
+
+ doicon Source/Core/DolphinWX/resources/Dolphin.xpm
+ make_desktop_entry "dolphin-emu" "Dolphin" "Dolphin" "Game;"
+
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ # Add pax markings for hardened systems
+ pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu
+
+ if ! use portaudio; then
+ ewarn "If you want microphone capabilities in dolphin-emu, rebuild with"
+ ewarn "USE=\"portaudio\""
+ fi
+}
diff --git a/games-emulation/dolphin/files/dolphin-emu-3.5-gcc-4.8.patch b/games-emulation/dolphin/files/dolphin-emu-3.5-gcc-4.8.patch
new file mode 100644
index 000000000000..98b128f90542
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-emu-3.5-gcc-4.8.patch
@@ -0,0 +1,211 @@
+--- Externals/Bochs_disasm/PowerPCDisasm.cpp 2013-05-04 10:01:04.218490222 +0200
++++ Externals/Bochs_disasm/PowerPCDisasm.cpp 2013-05-04 10:01:19.159459773 +0200
+@@ -580,7 +580,7 @@
+ if (me < mb)
+ mask = ~mask;
+ //rotate the mask so it can be applied to source reg
+- return _rotl(mask, 32 - r);
++ return __rotl(mask, 32 - r);
+ }
+
+
+--- Source/Core/Common/Src/CommonFuncs.h 2013-05-04 10:01:04.139490384 +0200
++++ Source/Core/Common/Src/CommonFuncs.h 2013-05-04 10:02:18.181339068 +0200
+@@ -65,7 +65,7 @@
+ #endif
+ #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))
+
+-inline u32 _rotl(u32 x, int shift) {
++inline u32 __rotl(u32 x, int shift) {
+ shift &= 31;
+ if (!shift) return x;
+ return (x << shift) | (x >> (32 - shift));
+@@ -76,7 +76,7 @@
+ return (x << n) | (x >> (64 - n));
+ }
+
+-inline u32 _rotr(u32 x, int shift) {
++inline u32 __rotr(u32 x, int shift) {
+ shift &= 31;
+ if (!shift) return x;
+ return (x >> shift) | (x << (32 - shift));
+--- Source/Core/Common/Src/Hash.cpp 2013-05-04 10:01:04.140490382 +0200
++++ Source/Core/Common/Src/Hash.cpp 2013-05-04 10:01:19.161459756 +0200
+@@ -362,15 +362,15 @@
+ inline void bmix32(u32 & h1, u32 & h2, u32 & k1, u32 & k2, u32 & c1, u32 & c2)
+ {
+ k1 *= c1;
+- k1 = _rotl(k1,11);
++ k1 = __rotl(k1,11);
+ k1 *= c2;
+ h1 ^= k1;
+ h1 += h2;
+
+- h2 = _rotl(h2,17);
++ h2 = __rotl(h2,17);
+
+ k2 *= c2;
+- k2 = _rotl(k2,11);
++ k2 = __rotl(k2,11);
+ k2 *= c1;
+ h2 ^= k2;
+ h2 += h1;
+--- Source/Core/Core/Src/ARDecrypt.cpp 2013-05-04 10:01:04.193490273 +0200
++++ Source/Core/Core/Src/ARDecrypt.cpp 2013-05-04 10:01:19.161459756 +0200
+@@ -270,26 +270,26 @@
+ {
+ u32 tmp;
+
+- *val = _rotl(*val,4);
++ *val = __rotl(*val,4);
+
+ tmp = ((*addr^*val)&0xF0F0F0F0);
+ *addr ^= tmp;
+- *val = _rotr((*val^tmp),0x14);
++ *val = __rotr((*val^tmp),0x14);
+
+ tmp = ((*addr^*val)&0xFFFF0000);
+ *addr ^= tmp;
+- *val = _rotr((*val^tmp),0x12);
++ *val = __rotr((*val^tmp),0x12);
+
+ tmp = ((*addr^*val)&0x33333333);
+ *addr ^= tmp;
+- *val = _rotr((*val^tmp),6);
++ *val = __rotr((*val^tmp),6);
+
+ tmp = ((*addr^*val)&0x00FF00FF);
+ *addr ^= tmp;
+- *val = _rotl((*val^tmp),9);
++ *val = __rotl((*val^tmp),9);
+
+ tmp = ((*addr^*val)&0xAAAAAAAA);
+- *addr = _rotl((*addr^tmp),1);
++ *addr = __rotl((*addr^tmp),1);
+ *val ^= tmp;
+ }
+
+@@ -297,27 +297,27 @@
+ {
+ u32 tmp;
+
+- *val = _rotr(*val,1);
++ *val = __rotr(*val,1);
+
+ tmp = ((*addr^*val)&0xAAAAAAAA);
+ *val ^= tmp;
+- *addr = _rotr((*addr^tmp),9);
++ *addr = __rotr((*addr^tmp),9);
+
+ tmp = ((*addr^*val)&0x00FF00FF);
+ *val ^= tmp;
+- *addr = _rotl((*addr^tmp),6);
++ *addr = __rotl((*addr^tmp),6);
+
+ tmp = ((*addr^*val)&0x33333333);
+ *val ^= tmp;
+- *addr = _rotl((*addr^tmp),0x12);
++ *addr = __rotl((*addr^tmp),0x12);
+
+ tmp = ((*addr^*val)&0xFFFF0000);
+ *val ^= tmp;
+- *addr = _rotl((*addr^tmp),0x14);
++ *addr = __rotl((*addr^tmp),0x14);
+
+ tmp = ((*addr^*val)&0xF0F0F0F0);
+ *val ^= tmp;
+- *addr = _rotr((*addr^tmp),4);
++ *addr = __rotr((*addr^tmp),4);
+ }
+
+ void decryptcode(u32 *seeds, u32 *code)
+@@ -330,11 +330,11 @@
+ unscramble1(&addr,&val);
+ while (i < 32)
+ {
+- tmp = (_rotr(val,4)^seeds[i++]);
++ tmp = (__rotr(val,4)^seeds[i++]);
+ tmp2 = (val^seeds[i++]);
+ addr ^= (table6[tmp&0x3F]^table4[(tmp>>8)&0x3F]^table2[(tmp>>16)&0x3F]^table0[(tmp>>24)&0x3F]^table7[tmp2&0x3F]^table5[(tmp2>>8)&0x3F]^table3[(tmp2>>16)&0x3F]^table1[(tmp2>>24)&0x3F]);
+
+- tmp = (_rotr(addr,4)^seeds[i++]);
++ tmp = (__rotr(addr,4)^seeds[i++]);
+ tmp2 = (addr^seeds[i++]);
+ val ^= (table6[tmp&0x3F]^table4[(tmp>>8)&0x3F]^table2[(tmp>>16)&0x3F]^table0[(tmp>>24)&0x3F]^table7[tmp2&0x3F]^table5[(tmp2>>8)&0x3F]^table3[(tmp2>>16)&0x3F]^table1[(tmp2>>24)&0x3F]);
+ }
+--- Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_Integer.cpp 2013-05-04 10:01:04.187490286 +0200
++++ Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_Integer.cpp 2013-05-04 10:01:19.162459748 +0200
+@@ -194,21 +194,21 @@
+ void Interpreter::rlwimix(UGeckoInstruction _inst)
+ {
+ u32 mask = Helper_Mask(_inst.MB,_inst.ME);
+- m_GPR[_inst.RA] = (m_GPR[_inst.RA] & ~mask) | (_rotl(m_GPR[_inst.RS],_inst.SH) & mask);
++ m_GPR[_inst.RA] = (m_GPR[_inst.RA] & ~mask) | (__rotl(m_GPR[_inst.RS],_inst.SH) & mask);
+ if (_inst.Rc) Helper_UpdateCR0(m_GPR[_inst.RA]);
+ }
+
+ void Interpreter::rlwinmx(UGeckoInstruction _inst)
+ {
+ u32 mask = Helper_Mask(_inst.MB,_inst.ME);
+- m_GPR[_inst.RA] = _rotl(m_GPR[_inst.RS],_inst.SH) & mask;
++ m_GPR[_inst.RA] = __rotl(m_GPR[_inst.RS],_inst.SH) & mask;
+ if (_inst.Rc) Helper_UpdateCR0(m_GPR[_inst.RA]);
+ }
+
+ void Interpreter::rlwnmx(UGeckoInstruction _inst)
+ {
+ u32 mask = Helper_Mask(_inst.MB,_inst.ME);
+- m_GPR[_inst.RA] = _rotl(m_GPR[_inst.RS], m_GPR[_inst.RB] & 0x1F) & mask;
++ m_GPR[_inst.RA] = __rotl(m_GPR[_inst.RS], m_GPR[_inst.RB] & 0x1F) & mask;
+
+ if (_inst.Rc) Helper_UpdateCR0(m_GPR[_inst.RA]);
+ }
+--- Source/Core/Core/Src/PowerPC/Jit64/Jit_Integer.cpp 2013-05-04 10:01:04.185490290 +0200
++++ Source/Core/Core/Src/PowerPC/Jit64/Jit_Integer.cpp 2013-05-04 10:01:19.190459657 +0200
+@@ -1672,7 +1672,7 @@
+ {
+ unsigned result = (int)gpr.R(s).offset;
+ if (inst.SH != 0)
+- result = _rotl(result, inst.SH);
++ result = __rotl(result, inst.SH);
+ result &= Helper_Mask(inst.MB, inst.ME);
+ gpr.SetImmediate32(a, result);
+ if (inst.Rc)
+@@ -1739,7 +1739,7 @@
+ if (gpr.R(a).IsImm() && gpr.R(s).IsImm())
+ {
+ u32 mask = Helper_Mask(inst.MB,inst.ME);
+- gpr.SetImmediate32(a, ((u32)gpr.R(a).offset & ~mask) | (_rotl((u32)gpr.R(s).offset,inst.SH) & mask));
++ gpr.SetImmediate32(a, ((u32)gpr.R(a).offset & ~mask) | (__rotl((u32)gpr.R(s).offset,inst.SH) & mask));
+ if (inst.Rc)
+ {
+ ComputeRC(gpr.R(a));
+@@ -1824,7 +1824,7 @@
+ u32 mask = Helper_Mask(inst.MB, inst.ME);
+ if (gpr.R(b).IsImm() && gpr.R(s).IsImm())
+ {
+- gpr.SetImmediate32(a, _rotl((u32)gpr.R(s).offset, (u32)gpr.R(b).offset & 0x1F) & mask);
++ gpr.SetImmediate32(a, __rotl((u32)gpr.R(s).offset, (u32)gpr.R(b).offset & 0x1F) & mask);
+ if (inst.Rc)
+ {
+ ComputeRC(gpr.R(a));
+--- Source/Core/Core/Src/PowerPC/Jit64IL/IR.cpp 2013-05-04 10:01:04.188490284 +0200
++++ Source/Core/Core/Src/PowerPC/Jit64IL/IR.cpp 2013-05-04 10:01:19.191459655 +0200
+@@ -248,7 +248,7 @@
+ return 0;
+ case Rol:
+ if (isImm(*getOp2(I))) {
+- return _rotl(ComputeKnownZeroBits(getOp1(I)),
++ return __rotl(ComputeKnownZeroBits(getOp1(I)),
+ GetImmValue(getOp2(I)));
+ }
+ default:
+@@ -844,7 +844,7 @@
+ InstLoc IRBuilder::FoldRol(InstLoc Op1, InstLoc Op2) {
+ if (isImm(*Op2)) {
+ if (isImm(*Op1))
+- return EmitIntConst(_rotl(GetImmValue(Op1),
++ return EmitIntConst(__rotl(GetImmValue(Op1),
+ GetImmValue(Op2)));
+ if (!(GetImmValue(Op2) & 31)) return Op1;
+ }
diff --git a/games-emulation/dolphin/metadata.xml b/games-emulation/dolphin/metadata.xml
new file mode 100644
index 000000000000..f71fb1631033
--- /dev/null
+++ b/games-emulation/dolphin/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<longdescription lang="en">
+Dolphin is a Gamecube and Wii emulator. Most games run perfectly or with minor
+bugs. Games are playable at HD quality, with 1080p and more.
+</longdescription>
+ <maintainer>
+ <email>twitch153@gentoo.org</email>
+ <name>Devan Franchini</name>
+ </maintainer>
+</pkgmetadata>