From 141db3ca735d3cbd81f91d25f140958eae4d0ea8 Mon Sep 17 00:00:00 2001 From: Christian Birchinger Date: Wed, 28 Mar 2007 00:58:24 +0000 Subject: [PATCH] New revision with some patches from the standalone glN64 ebuild. Infos taken from Bug #170763 and thanks to Sal Gonzalez . Package-Manager: portage-2.1.2.2 --- games-emulation/mupen64/ChangeLog | 10 +- games-emulation/mupen64/Manifest | 23 +++- .../mupen64/files/digest-mupen64-0.5-r4 | 3 + .../files/mupen64-glN64-noasmfix.patch | 11 ++ .../mupen64/files/mupen64-glN64-ucode.patch | 121 ++++++++++++++++++ games-emulation/mupen64/mupen64-0.5-r4.ebuild | 91 +++++++++++++ 6 files changed, 254 insertions(+), 5 deletions(-) create mode 100644 games-emulation/mupen64/files/digest-mupen64-0.5-r4 create mode 100644 games-emulation/mupen64/files/mupen64-glN64-noasmfix.patch create mode 100644 games-emulation/mupen64/files/mupen64-glN64-ucode.patch create mode 100644 games-emulation/mupen64/mupen64-0.5-r4.ebuild diff --git a/games-emulation/mupen64/ChangeLog b/games-emulation/mupen64/ChangeLog index fd89841f5ad2..afcdf90fe58f 100644 --- a/games-emulation/mupen64/ChangeLog +++ b/games-emulation/mupen64/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for games-emulation/mupen64 # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/games-emulation/mupen64/ChangeLog,v 1.24 2007/03/27 15:17:01 joker Exp $ +# $Header: /var/cvsroot/gentoo-x86/games-emulation/mupen64/ChangeLog,v 1.25 2007/03/28 00:58:24 joker Exp $ + +*mupen64-0.5-r4 (28 Mar 2007) + + 28 Mar 2007; Christian Birchinger + +files/mupen64-glN64-noasmfix.patch, +files/mupen64-glN64-ucode.patch, + +mupen64-0.5-r4.ebuild: + New revision with some patches from the standalone glN64 ebuild. Infos taken + from Bug #170763 and thanks to Sal Gonzalez . *mupen64-0.5-r3 (27 Mar 2007) diff --git a/games-emulation/mupen64/Manifest b/games-emulation/mupen64/Manifest index d92257cdc05d..da7666be6a8b 100644 --- a/games-emulation/mupen64/Manifest +++ b/games-emulation/mupen64/Manifest @@ -14,6 +14,14 @@ AUX mupen64-0.5-sdl-ttf.patch 1036 RMD160 67a6a8f27b5a5b6d1bdf8997004bc4565add89 MD5 2f740d9ff20f547c6dfcd0c4dc22ac17 files/mupen64-0.5-sdl-ttf.patch 1036 RMD160 67a6a8f27b5a5b6d1bdf8997004bc4565add893f files/mupen64-0.5-sdl-ttf.patch 1036 SHA256 5dfc12b60b2068eb4a6c299e9a3bf4f5a419510bd3c16100b425b85829fea355 files/mupen64-0.5-sdl-ttf.patch 1036 +AUX mupen64-glN64-noasmfix.patch 434 RMD160 ad05e4ec5b2be7e6cd62d9ed6bbf6ff0f53a0b7f SHA1 fca5d07a155a77d65348e29d98d9383a1f8a5510 SHA256 5efc2720f222bdd1cb8980633719d653c31ad8ca892cd785906b316ceca49a40 +MD5 b0c33e3753683fb114b88170723aad42 files/mupen64-glN64-noasmfix.patch 434 +RMD160 ad05e4ec5b2be7e6cd62d9ed6bbf6ff0f53a0b7f files/mupen64-glN64-noasmfix.patch 434 +SHA256 5efc2720f222bdd1cb8980633719d653c31ad8ca892cd785906b316ceca49a40 files/mupen64-glN64-noasmfix.patch 434 +AUX mupen64-glN64-ucode.patch 3343 RMD160 1a9070c59b56e89579f0695d3da5503f80f5cd71 SHA1 426fd0abeef17790651cc982b31cf4663d509d3a SHA256 e54108cddf3e92f863e672e458b9bf776cbce672a34eee367032fcbd9ec5a9d5 +MD5 e0727b9a7c6d622eb66ecd5ea6d4ab1e files/mupen64-glN64-ucode.patch 3343 +RMD160 1a9070c59b56e89579f0695d3da5503f80f5cd71 files/mupen64-glN64-ucode.patch 3343 +SHA256 e54108cddf3e92f863e672e458b9bf776cbce672a34eee367032fcbd9ec5a9d5 files/mupen64-glN64-ucode.patch 3343 DIST mupen64_src-0.5.tar.bz2 1981046 RMD160 da916bc77f2f06ed92630332545dc3ee5ae1ff51 SHA1 fe1c9999fca780f2f8243d36ea7d8c42eca5659b SHA256 1b8e4188ab7a94d8125b77aed8725ee348c24818622b881adfe16be510487dfd EBUILD mupen64-0.5-r2.ebuild 2315 RMD160 9db192afa0a5a19b54e63cbc80cbafc39877718e SHA1 cc06c12d1c5fbef6408b0b2dc30f92fec4fd87db SHA256 7b2f95ead8bc3f1399556df3bbf4d0b252ff35916a317efae205a781d8c38ece MD5 4e95fc3a6c93c1f2a30adafe163b90aa mupen64-0.5-r2.ebuild 2315 @@ -23,10 +31,14 @@ EBUILD mupen64-0.5-r3.ebuild 2153 RMD160 f3c4d4ed79e70dda8f3eb95a7a20743d6620a63 MD5 beb26ec2933f73f52f3027d426c2e960 mupen64-0.5-r3.ebuild 2153 RMD160 f3c4d4ed79e70dda8f3eb95a7a20743d6620a631 mupen64-0.5-r3.ebuild 2153 SHA256 1faae6ea271ce1ddca3b5f11ad618ecc95c0c9b341154b333451c2fe7668cbb4 mupen64-0.5-r3.ebuild 2153 -MISC ChangeLog 4411 RMD160 ea2ce0bb966dee907643698cdd6d5e34d47432e0 SHA1 6276dc4d70b10b3be491b73f22ea9887ad4b1bee SHA256 959144cd1e832d3cc80e93f2091e34db5dd181f581491f43af58531d9db08d4e -MD5 835c6dc17ef359fa1a28d5ebf6466c1e ChangeLog 4411 -RMD160 ea2ce0bb966dee907643698cdd6d5e34d47432e0 ChangeLog 4411 -SHA256 959144cd1e832d3cc80e93f2091e34db5dd181f581491f43af58531d9db08d4e ChangeLog 4411 +EBUILD mupen64-0.5-r4.ebuild 2240 RMD160 365fedbc16e8c9a036424649f8906fe8d25862bd SHA1 54f35f789d21f5a26a68de583d92db4771dfe70e SHA256 a1f7d17e2438177182983c7af83b37bb3dbe5199b9908b0dd0b84dc5c1f491f9 +MD5 c643c0c046fea5e40adbd4148d520f09 mupen64-0.5-r4.ebuild 2240 +RMD160 365fedbc16e8c9a036424649f8906fe8d25862bd mupen64-0.5-r4.ebuild 2240 +SHA256 a1f7d17e2438177182983c7af83b37bb3dbe5199b9908b0dd0b84dc5c1f491f9 mupen64-0.5-r4.ebuild 2240 +MISC ChangeLog 4746 RMD160 e24ee40b8da01e72cdc969449cc81a6c8fe1308b SHA1 958069a26c536e66e5465a095cc03f0f21f885be SHA256 29bff17d341a2488e4ff228364eb63a8fdef4441f7af5e23549c7508d2cac342 +MD5 3e297af7d7c20d9025ebc898a11aeb02 ChangeLog 4746 +RMD160 e24ee40b8da01e72cdc969449cc81a6c8fe1308b ChangeLog 4746 +SHA256 29bff17d341a2488e4ff228364eb63a8fdef4441f7af5e23549c7508d2cac342 ChangeLog 4746 MISC metadata.xml 158 RMD160 cbd9984bb6b426c8c9cee5022fe0a26261612fea SHA1 be5251fa1dacef5c41b74761bb1c8c54fb633b9e SHA256 1423a4fdd4a79b1728a2056d9e300f7e1074253095d82726218d9e9b953888a3 MD5 f17b9b8fa07a38914fe1c03268f51678 metadata.xml 158 RMD160 cbd9984bb6b426c8c9cee5022fe0a26261612fea metadata.xml 158 @@ -37,3 +49,6 @@ SHA256 d3dbd70b6d9bca726be6e4b697f985cd7a83e1bd494f7074e11052da1f3b07d9 files/di MD5 0cdd256b3d2df86cac038aa9d538aedf files/digest-mupen64-0.5-r3 253 RMD160 f626935bb3e16eb360edde7e315583121ad7652c files/digest-mupen64-0.5-r3 253 SHA256 d3dbd70b6d9bca726be6e4b697f985cd7a83e1bd494f7074e11052da1f3b07d9 files/digest-mupen64-0.5-r3 253 +MD5 0cdd256b3d2df86cac038aa9d538aedf files/digest-mupen64-0.5-r4 253 +RMD160 f626935bb3e16eb360edde7e315583121ad7652c files/digest-mupen64-0.5-r4 253 +SHA256 d3dbd70b6d9bca726be6e4b697f985cd7a83e1bd494f7074e11052da1f3b07d9 files/digest-mupen64-0.5-r4 253 diff --git a/games-emulation/mupen64/files/digest-mupen64-0.5-r4 b/games-emulation/mupen64/files/digest-mupen64-0.5-r4 new file mode 100644 index 000000000000..f5e4ac023a01 --- /dev/null +++ b/games-emulation/mupen64/files/digest-mupen64-0.5-r4 @@ -0,0 +1,3 @@ +MD5 11f994bed40e00fad5b82333b553e421 mupen64_src-0.5.tar.bz2 1981046 +RMD160 da916bc77f2f06ed92630332545dc3ee5ae1ff51 mupen64_src-0.5.tar.bz2 1981046 +SHA256 1b8e4188ab7a94d8125b77aed8725ee348c24818622b881adfe16be510487dfd mupen64_src-0.5.tar.bz2 1981046 diff --git a/games-emulation/mupen64/files/mupen64-glN64-noasmfix.patch b/games-emulation/mupen64/files/mupen64-glN64-noasmfix.patch new file mode 100644 index 000000000000..5aee4032eedd --- /dev/null +++ b/games-emulation/mupen64/files/mupen64-glN64-noasmfix.patch @@ -0,0 +1,11 @@ +--- glN64/convert.h.old 2005-04-23 16:32:44.000000000 -0700 ++++ glN64/convert.h 2005-04-23 16:40:43.000000000 -0700 +@@ -442,7 +442,7 @@ + while (numDWords--) + { + u32 dword = *(u32 *)src; +- __asm__ volatile( "bswapl %0\n\t" : "=q"(dword) : "0"(dword) ); ++ dword = ((dword<<24)|((dword<<8)&0x00FF0000)|((dword>>8)&0x0000FF00)|(dword>>24)); + *(u32 *)dest = dword; + dest = (void *)((int)dest+4); + src = (void *)((int)src +4); diff --git a/games-emulation/mupen64/files/mupen64-glN64-ucode.patch b/games-emulation/mupen64/files/mupen64-glN64-ucode.patch new file mode 100644 index 000000000000..8dc9aab0a647 --- /dev/null +++ b/games-emulation/mupen64/files/mupen64-glN64-ucode.patch @@ -0,0 +1,121 @@ +diff -g glN64-old/GBI.cpp glN64/GBI.cpp +*** glN64-old/GBI.cpp 2003-10-15 16:01:07.000000000 -0700 +--- glN64/GBI.cpp 2005-02-02 23:42:30.000000000 -0800 +*************** +*** 37,43 **** + { F3DDKR, FALSE, 0x8d91244f, "Diddy Kong Racing" }, + { F3DDKR, FALSE, 0x6e6fc893, "Diddy Kong Racing" }, + { F3DDKR, FALSE, 0xbde9d1fb, "Jet Force Gemini" }, +! { F3DPD, FALSE, 0x1c4f7869, "Perfect Dark" } + }; + + u32 G_RDPHALF_1, G_RDPHALF_2, G_RDPHALF_CONT; +--- 37,44 ---- + { F3DDKR, FALSE, 0x8d91244f, "Diddy Kong Racing" }, + { F3DDKR, FALSE, 0x6e6fc893, "Diddy Kong Racing" }, + { F3DDKR, FALSE, 0xbde9d1fb, "Jet Force Gemini" }, +! { F3DPD, FALSE, 0x1c4f7869, "Perfect Dark" }, +! { F3DEX, FALSE, 0x0ace4c3f, "Mario Kart" } + }; + + u32 G_RDPHALF_1, G_RDPHALF_2, G_RDPHALF_CONT; +*************** +*** 264,274 **** + + while (selectedMicrocode == -1) + { +! // if( gtk_main_iteration() ) +! // break; + usleep( 10000 ); + } + gdk_threads_leave(); + return selectedMicrocode; + } + #endif // __LINUX__ +--- 265,276 ---- + + while (selectedMicrocode == -1) + { +! if( gtk_main_iteration() ) +! break; + usleep( 10000 ); + } + gdk_threads_leave(); ++ + return selectedMicrocode; + } + #endif // __LINUX__ +*************** +*** 435,441 **** + current->type = DialogBox( hInstance, MAKEINTRESOURCE( IDD_MICROCODEDLG ), hWnd, MicrocodeDlgProc ); + #else // !__LINUX__ + printf( "glN64: Warning - unknown ucode!!!\n" ); +! current->type = MicrocodeDialog(); + #endif // __LINUX__ + return current; + } +--- 437,447 ---- + current->type = DialogBox( hInstance, MAKEINTRESOURCE( IDD_MICROCODEDLG ), hWnd, MicrocodeDlgProc ); + #else // !__LINUX__ + printf( "glN64: Warning - unknown ucode!!!\n" ); +! if(last_good_ucode != -1) { +! current->type=last_good_ucode; +! } else { +! current->type = MicrocodeDialog(); +! } + #endif // __LINUX__ + return current; + } +diff -g glN64-old/GBI.h glN64/GBI.h +*** glN64-old/GBI.h 2003-10-15 16:01:07.000000000 -0700 +--- glN64/GBI.h 2005-02-02 23:37:36.000000000 -0800 +*************** +*** 736,741 **** +--- 736,742 ---- + + void GBI_MakeCurrent( MicrocodeInfo *current ); + MicrocodeInfo *GBI_DetectMicrocode( u32 uc_start, u32 uc_dstart, u16 uc_dsize ); ++ extern u32 last_good_ucode; + void GBI_Init(); + void GBI_Destroy(); + +diff -g glN64-old/glN64.cpp glN64/glN64.cpp +*** glN64-old/glN64.cpp 2003-10-15 16:09:00.000000000 -0700 +--- glN64/glN64.cpp 2005-02-02 23:36:47.000000000 -0800 +*************** +*** 29,35 **** + + char pluginName[] = "glN64 v0.4.1-rc2"; + char *screenDirectory; +! + void (*CheckInterrupts)( void ); + + #ifndef __LINUX__ +--- 29,35 ---- + + char pluginName[] = "glN64 v0.4.1-rc2"; + char *screenDirectory; +! u32 last_good_ucode = -1; + void (*CheckInterrupts)( void ); + + #ifndef __LINUX__ +diff -g glN64-old/gSP.cpp glN64/gSP.cpp +*** glN64-old/gSP.cpp 2003-10-15 16:01:07.000000000 -0700 +--- glN64/gSP.cpp 2005-02-02 23:41:58.000000000 -0800 +*************** +*** 60,66 **** + } + + MicrocodeInfo *ucode = GBI_DetectMicrocode( uc_start, uc_dstart, uc_dsize ); +! + if (ucode->type != NONE) + GBI_MakeCurrent( ucode ); + else +--- 60,66 ---- + } + + MicrocodeInfo *ucode = GBI_DetectMicrocode( uc_start, uc_dstart, uc_dsize ); +! if (ucode->type != -1) last_good_ucode = ucode->type; + if (ucode->type != NONE) + GBI_MakeCurrent( ucode ); + else diff --git a/games-emulation/mupen64/mupen64-0.5-r4.ebuild b/games-emulation/mupen64/mupen64-0.5-r4.ebuild new file mode 100644 index 000000000000..b355f75bd999 --- /dev/null +++ b/games-emulation/mupen64/mupen64-0.5-r4.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-emulation/mupen64/mupen64-0.5-r4.ebuild,v 1.1 2007/03/28 00:58:24 joker Exp $ + +inherit eutils multilib games + +MY_P=${PN}_src-${PV} +DESCRIPTION="A Nintendo 64 (N64) emulator" +HOMEPAGE="http://mupen64.emulation64.com/" +SRC_URI="http://mupen64.emulation64.com/files/${PV}/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="" + +RDEPEND="virtual/opengl + >=x11-libs/gtk+-2 + media-libs/libsdl + media-libs/sdl-ttf + amd64? ( + app-emulation/emul-linux-x86-gtklibs + >=app-emulation/emul-linux-x86-sdl-10.0 + )" +DEPEND="${RDEPEND} + dev-util/pkgconfig + !games-emulation/mupen64-blight-input + !games-emulation/mupen64-glN64 + !games-emulation/mupen64-jttl_sound" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + has_multilib_profile && multilib_toolchain_setup x86 +} + +src_unpack() { + unpack ${A} + cd "${S}" + rm -f plugins/empty blight_input/SDL_ttf* + + epatch \ + "${FILESDIR}"/${P}-anisotropic.patch \ + "${FILESDIR}"/${P}-gentoo3.patch \ + "${FILESDIR}"/${PN}-glN64-ucode.patch \ + "${FILESDIR}"/${PN}-glN64-noasmfix.patch + + sed -i \ + -e "s:#undef WITH_HOME:#define WITH_HOME \"$(games_get_libdir)/\":" \ + -e "s:#undef SHARE:#define SHARE \"$(games_get_libdir)/${PN}/\":" \ + config.h \ + || die "sed failed" +} + +src_compile() { + local t + for t in \ + mupen64 \ + mupen64_nogui \ + plugins/mupen64_input.so \ + plugins/blight_input.so \ + plugins/mupen64_hle_rsp_azimer.so \ + plugins/dummyaudio.so \ + plugins/mupen64_audio.so \ + plugins/jttl_audio.so \ + plugins/mupen64_soft_gfx.so \ + plugins/glN64.so + do + emake ${t} || die "emake ${t} failed" + done +} + +src_install() { + dogamesbin mupen64 mupen64_nogui || die "dogamesbin failed" + + insinto "$(games_get_libdir)/${PN}" + doins -r mupen64.ini jttl_audio.conf lang roms plugins || die "doins failed" + + dodoc *.txt doc/readme.pdf + prepgamesdirs +} + +pkg_postinst() { + games_pkg_postinst + echo + ewarn "If you are upgrading from a previous version of mupen64," + ewarn "backup your saved games then run rm -rf on your" + ewarn ".mupen64 directory. After launching the new version, copy" + ewarn "your saved games to their original place." + echo +} -- 2.26.2