games-misc/render96ex - 20260716 (tatsh-overlay)

Search

Install

Install this version:

emerge -a =games-misc/render96ex-20260716

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =games-misc/render96ex-20260716

Or alternatively:

emerge --autounmask-write -a =games-misc/render96ex-20260716

Package Information

Description:
Fork of sm64-port with additional features (alpha branch).
Homepage:
https://github.com/Render96/Render96ex/tree/alpha
License:
all-rights-reserved

Ebuild Details

Version EAPI Keywords Slot
20260716 8 ~amd64 ~ppc64 0
View Raw Ebuild
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop edo linux-info toolchain-funcs wrapper

DESCRIPTION="Fork of sm64-port with additional features (alpha branch)."
HOMEPAGE="https://github.com/Render96/Render96ex/tree/alpha"
SHA="f6e9e1b54f43b2caeffcf71644c6165f2652948c"
MODELS_SHA="f4f438447748782b7c824cee903594706a3941e2"
TEXTURES_SHA="239156bea1903ca15989d1e7143a88b32e9f1b99"
MY_PN="Render96ex"
SRC_URI="fetch+https://github.com/Render96/${MY_PN}/archive/${SHA}.tar.gz -> ${P}.tar.gz
	textures? ( fetch+https://github.com/pokeheadroom/RENDER96-HD-TEXTURE-PACK/archive/${TEXTURES_SHA}.tar.gz -> ${PN}-texture-pack-${TEXTURES_SHA:0:7}.tar.gz )
	models? ( fetch+https://github.com/Render96/ModelPack/archive/${MODELS_SHA}.tar.gz -> ${PN}-models-vanilla-${MODELS_SHA:0:7}.tar.gz )
	us? ( sm64.us.z64 )
	eu? ( sm64.eu.z64 )
	jp? ( sm64.jp.z64 )"
S="${WORKDIR}/${MY_PN}-${SHA}"
LICENSE="all-rights-reserved"
SLOT="0"
KEYWORDS="~amd64 ~ppc64"

IUSE="+goddard
	+models
	+texture-fix
	+textures
	debug
	discord
	eu
	jp
	+us"
REQUIRED_USE="|| ( eu jp us )"
RESTRICT="fetch"

DEPEND="media-libs/glew:= media-libs/libsdl2 media-libs/libglvnd[X]"
RDEPEND="${DEPEND}"
BDEPEND="|| ( app-arch/7zip app-arch/p7zip ) media-libs/audiofile"

PATCHES=( "${FILESDIR}/${PN}-0001-custom-flags.patch" )

pkg_nofetch() {
	if use us; then
		einfo "Please place a copy of your North American version ROM of Super Mario 64 in your DISTDIR directory and name it sm64.us.z64"
	elif use jp; then
		einfo "Please place a copy of your Japanese version ROM of Super Mario 64 in your DISTDIR directory and name it sm64.jp.z64"
	elif use eu; then
		einfo "Please place a copy of your European version ROM of Super Mario 64 in your DISTDIR and name it sm64.eu.z64"
	fi
	einfo "The ROM must be in Z64 format. If the checksums do not match, it is possibly a V64 ROM that must be byteswapped. Use the tool here to convert: https://hack64.net/tools/swapper.php"
}

src_unpack() {
	local archive
	for archive in ${A}; do
		case "${archive}" in
			*.7z)
				echo ">>> Unpacking ${archive} to ${WORKDIR}"
				7z x -bd -y "-o${WORKDIR}" -- "${DISTDIR}/${archive}" >/dev/null 2>&1 || die
				;;
			*.z64)
				;;
			*)
				unpack "${archive}"
				;;
		esac
	done
}

src_prepare() {
	local i
	for i in ${A}; do
		if [[ "${i}" == *.z64 ]]; then
			cp "${DISTDIR}/${i}" "$(basename "${i/sm64/baserom}")" || die
		fi
	done
	sed -re 's/^GIT_HASH=.*/GIT_HASH?=/' -i Makefile || die
	edo ./extract_assets.py "$(get_version)"
	if use models; then
		cp -fR "${WORKDIR}/ModelPack-${MODELS_SHA}/Render96/actors/"* actors/ || die
	fi
	if use goddard; then
		cp -fR "${WORKDIR}/ModelPack-${MODELS_SHA}/Goddard/src/goddard/"* src/goddard/ || die
	fi
	default
}

get_version() {
	use us && echo us
	use eu && echo eu
	use jp && echo jp
}

src_compile() {
	local version=us
	use eu && version=eu
	use jp && version=jp
	emake \
		"CC=$(tc-getCC)" \
		"CUSTOM_CFLAGS=${CFLAGS}" \
		"CUSTOM_LDFLAGS=${LDFLAGS}" \
		"CXX=$(tc-getCXX)" \
		"DEBUG=$(usex debug 1 0)" \
		"DISCORDRPC=$(usex discord 1 0)" \
		"GIT_HASH=${SHA}" \
		"TEXTURE_FIX=$(usex texture-fix 1 0)" \
		"VERSION=$(get_version)" \
		NOEXTRACT=1
}

src_install() {
	local -r exe=sm64.us.f3dex2e
	find build '(' -iname '*.o' -o -iname '*.d' -o -iname '*.c' ')' -delete || die
	find build -type d -empty -delete || die
	rm -fR "build/$(get_version)_pc/"{basepack.lst,endian-and-bitwidth,include,assets}
	mv "build/$(get_version)_pc/${exe}" . || die
	insinto "/usr/share/${PN}"
	doins -r "build/$(get_version)_pc/"*
	exeinto "/usr/share/${PN}"
	doexe "${exe}"
	if use textures; then
		insinto "/usr/share/${PN}/res"
		doins -r "${WORKDIR}/RENDER96-HD-TEXTURE-PACK-${TEXTURES_SHA}/gfx"
	fi
	make_wrapper "${PN}" "./${exe}" "/usr/share/${PN}"
	make_desktop_entry "${PN}" "${MY_PN}"
	einstalldocs
}

USE Flags

Manage flags for this package: euse -i <flag> -p games-misc/render96ex | euse -E <flag> -p games-misc/render96ex | euse -D <flag> -p games-misc/render96ex

Global/Standard Flags

goddard
Default: Enabled (+)
models
Default: Enabled (+)
texture-fix
Default: Enabled (+)
textures
Default: Enabled (+)
eu
jp
us
Default: Enabled (+)

Inherited Eclasses

edo

Dependencies

DEPEND

media-libs/glew:= media-libs/libsdl2 media-libs/libglvnd[X]

RDEPEND

media-libs/glew:= media-libs/libsdl2 media-libs/libglvnd[X]

BDEPEND

|| ( app-arch/7zip app-arch/p7zip ) media-libs/audiofile

Manifest for 20260716

Type File Size Source URLs
DIST render96ex-20260716.tar.gz 403056188 bytes fetch+https://github.com/Render96/Render96ex/archive/f6e9e1b54f43b2caeffcf71644c6165f2652948c.tar.gz
DIST render96ex-models-vanilla-f4f4384.tar.gz 75846014 bytes fetch+https://github.com/Render96/ModelPack/archive/f4f438447748782b7c824cee903594706a3941e2.tar.gz
DIST render96ex-texture-pack-239156b.tar.gz 595497666 bytes fetch+https://github.com/pokeheadroom/RENDER96-HD-TEXTURE-PACK/archive/239156bea1903ca15989d1e7143a88b32e9f1b99.tar.gz