Package Details: sm64pc-git r513.57c20346-1

Git Clone URL: (read-only, click to copy)
Package Base: sm64pc-git
Description: Super Mario 64 PC (sm64ex aka. sm64pc) - OpenGL adaptation of n64decomp/sm64
Upstream URL:
Licenses: reverse-engineered and unlicensed
Provides: sm64ex
Submitter: Hekuran
Maintainer: Hekuran
Last Packager: Hekuran
Votes: 8
Popularity: 0.013726
First Submitted: 2020-05-10 13:22
Last Updated: 2020-11-07 14:04

Latest Comments

1 2 Next › Last »

BrianAllred commented on 2020-07-10 18:40

For anyone looking for a package that's a little more customizable, check out my package here:

Thanks to Hekuran for this package, I used it as a base and built on it.

Hekuran commented on 2020-06-15 16:20

@cobaltspace unredistributable, sure cause you need a ROM, but why nonfree? the code is open. i will change it to unlicensed.

cobaltspace commented on 2020-06-15 09:04

License should be something like custom: nonfree and unredistributable

fishears commented on 2020-06-07 11:08

@Hekuran Do not address me in that manner; People would not be confused in the first place if you had been clear about the assumptions made by your package

Hekuran commented on 2020-05-21 17:04

@acideain42 sure

@selurvedu idk, when i read the aw there were many programs that didn't fully support xdg, since i had problems with xdg config, so i wrote all three to be safe. And i already made a .desktop file and also added an icon...

selurvedu commented on 2020-05-21 15:42

First of all, everyone should have these 3 lines in their ~/.(z)profile:

@Hekuran, well, actually no:

$XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.

Every application that supports the XDG_* vars defined in this spec should use the default value if a variable is empty/unset. Users don't have to define any of XDG_* vars manually anywhere, unless they want to change the defaults. In the past 10 years I saw only one application that broke with empty $XDG_CONFIG_HOME, and it was fixed after contacting the developer.


@acidrain42, nice catch. I thought of that, but forgot to include it in my patch.


@nissen22, I thought of that too. Here's an example desktop file:

[Desktop Entry]
Name=Super Mario 64 PC
Comment=Play the PC port of Super Mario 64

It currently lacks a launcher icon. I opened an upstream issue for that:

acidrain42 commented on 2020-05-21 14:05

The launcher script should propagate command line arguments to the actual binary. Could you apply this patch please?

diff --git a/sm64pc-xdg b/sm64pc-xdg
index 6afb76f..98c4d95 100755
--- a/sm64pc-xdg
+++ b/sm64pc-xdg
@@ -3,4 +3,4 @@ set -e
 [ -d "$XDG_DATA_HOME/sm64pc" ] || mkdir "$XDG_DATA_HOME/sm64pc"
 cd "$XDG_DATA_HOME/sm64pc"
+/usr/bin/sm64pc.bin "$@"

nissen22 commented on 2020-05-13 11:57

Would it be a good idea to add a .desktop file and perhaps an icon to this package so that it shows up properly in application launchers?

Hekuran commented on 2020-05-12 21:47

First of all, everyone should have these 3 lines in their ~/.(z)profile:

export XDG_CONFIG_HOME="$HOME/.config" 
export XDG_DATA_HOME="$HOME/.local/share" 
export XDG_CACHE_HOME="$HOME/.cache" 

@selurvedu Thats great, you definitely spend more than 5min like i did. I will use that! @Hengi they have no LICENSE file, nor does n64decomp/sm64, but they are based on tools that are MIT, therefore if not mentioned, MIT by default, most importantly, if it has no license, WHO CARES? It litteraly means i found code on street, i then can license it. #ImNoLawyer

Thanks yall for the comments, it only improves the package.

@fishears no d!psh!t, have you read the wiki once? XDG_DATA_HOME is ~/.local/share , its ok if ur dumb for urself, but dont spread misinfo. peace!

selurvedu commented on 2020-05-12 12:18

Hello, thanks for packaging this. Please consider applying the following patch:

diff --git a/PKGBUILD b/PKGBUILD
index 0f8d096..b0a93e9 100644
@@ -1,18 +1,19 @@
 # Maintainer: Hekuran

 pkgdesc='Super Mario 64-PC - OpenGL adaptation of n64decomp/sm64'
 depends=('python' 'audiofile' 'sdl2' 'glew')



 pkgver() {
@@ -22,17 +23,21 @@ pkgver() {

 prepare() {
     cd "$srcdir/$_gitname"
-    cp ../../ . || printf "$(printf "%"$(stty size | awk '{print $2}')"s\n" | sed "s/ /░/g" && printf "\\n%s\\n%s\\n\\n" "US by default, if you want JP or EU, edit the PKGBUILD." "NO ROM FOUND\!: Copy your sm64 rom to \"src/sm64pc/\", if using 'yay' then \"~/.cache/yay/sm64pc/\". And then rename it as \"\" or \"\" or \"\"." && printf "%"$(stty size | awk '{print $2}')"s\n" | sed "s/ /░/g")"
+    cp "../../baserom.${_region}.z64" . || {
+        printf "%$(stty size | awk '{print $2}')s\n" | sed "s/ /░/g"
+        printf "\\n%s\\n%s\\n\\n" \
+            "NO ROM FOUND! Copy your sm64 ROM to \"$(realpath ../../)\" and rename it to \"baserom.${_region}.z64\"." \
+            "The default ROM region is US. You have to edit the PKGBUILD if you would like to use a JP or EU version."
+        printf "%$(stty size | awk '{print $2}')s\n" | sed "s/ /░/g"
+    }

 build() {
     cd "$srcdir/$_gitname"
-    make VERSION=us -j4
+    make VERSION=$_region BETTERCAMERA=1 ${MAKEFLAGS:--j$(nproc)}

 package() {
-   cd "$srcdir/$_gitname/build/us_pc"
-       install -Dm755* "${pkgdir}/usr/bin/sm64pc"
-   cd "$srcdir"
-       install -Dm755 ../sm64pc-xdg "${pkgdir}/usr/local/bin/sm64pc"
+    install -Dm755 "$srcdir/../sm64pc-xdg" "${pkgdir}/usr/bin/sm64pc"
+    install -Dm755 "$srcdir/$_gitname/build/${_region}_pc/sm64.${_region}".* "${pkgdir}/usr/bin/sm64pc.bin"
diff --git a/sm64pc-xdg b/sm64pc-xdg
index 05e83df..6afb76f 100755
--- a/sm64pc-xdg
+++ b/sm64pc-xdg
@@ -1,2 +1,6 @@
-mkdir $XDG_DATA_HOME/sm64pc >/dev/null 2>&1 ; cd $XDG_DATA_HOME/sm64pc && /usr/bin/sm64pc >/dev/null 2>&1 &
+set -e
+[ -d "$XDG_DATA_HOME/sm64pc" ] || mkdir "$XDG_DATA_HOME/sm64pc"
+cd "$XDG_DATA_HOME/sm64pc"

It fixes a few issues, the most important is the one regarding XDG_DATA_HOME that was mentioned in the comments below. A make flag BETTERCAMERA=1 was added to enable compiling the analogue camera and mouse camera options. By default the options are disabled, but they can easily be toggled in the game menu or in the config file. The patch also moves the wrapper script from /usr/local/bin to /usr/bin, and the game binary is renamed from sm64pc to sm64pc.bin. I also added a variable for ROM region, as it was hard coded to us, and a few other minor improvements.