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

Git Clone URL: https://aur.archlinux.org/sm64pc-git.git (read-only, click to copy)
Package Base: sm64pc-git
Description: Super Mario 64 PC (sm64ex aka. sm64pc) - OpenGL adaptation of n64decomp/sm64
Upstream URL: https://github.com/sm64pc/sm64ex
Licenses: reverse-engineered and unlicensed
Provides: sm64ex
Submitter: Hekuran
Maintainer: Hekuran
Last Packager: Hekuran
Votes: 11
Popularity: 0.87
First Submitted: 2020-05-10 13:22 (UTC)
Last Updated: 2022-01-24 18:13 (UTC)

Dependencies (5)

Required by (0)

Sources (1)

Latest Comments

« First ‹ Previous 1 2

Hekuran commented on 2020-05-21 17:04 (UTC)

@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 (UTC)

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

@Hekuran, well, actually no: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

$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]
Type=Application
Name=Super Mario 64 PC
Comment=Play the PC port of Super Mario 64
#Icon=sm64pc
Exec="/usr/bin/sm64pc"
Terminal=false
Categories=Game;
StartupNotify=false

It currently lacks a launcher icon. I opened an upstream issue for that: https://github.com/sm64pc/sm64pc/issues/244

acidrain42 commented on 2020-05-21 14:05 (UTC)

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
 XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
 [ -d "$XDG_DATA_HOME/sm64pc" ] || mkdir "$XDG_DATA_HOME/sm64pc"
 cd "$XDG_DATA_HOME/sm64pc"
-/usr/bin/sm64pc.bin
+/usr/bin/sm64pc.bin "$@"

nissen22 commented on 2020-05-13 11:57 (UTC)

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 (UTC) (edited on 2020-05-12 21:54 (UTC) by Hekuran)

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 (UTC)

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

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

 pkgname=sm64pc-git
-pkgver=r71.b4626bf
+pkgver=r118.0ec63e4
 pkgrel=1
 pkgdesc='Super Mario 64-PC - OpenGL adaptation of n64decomp/sm64'
 arch=('any')
-url="https://github.com/sm64pc/sm64pc/"
+url='https://github.com/sm64pc/sm64pc'
 license=('MIT')
 depends=('python' 'audiofile' 'sdl2' 'glew')
 provides=(sm64pc)

 _gitname=sm64pc
+_region=us

-source=("git+https://github.com/sm64pc/sm64pc.git")
+source=('git+https://github.com/sm64pc/sm64pc.git')
 sha256sums=('SKIP')

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

 prepare() {
     cd "$srcdir/$_gitname"
-    cp ../../baserom.us.z64 . || 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 \"baserom.us.z64\" or \"baserom.jp.z64\" or \"baserom.eu.z64\"." && 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 sm64.us* "${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 @@
 #!/bin/sh
-mkdir $XDG_DATA_HOME/sm64pc >/dev/null 2>&1 ; cd $XDG_DATA_HOME/sm64pc && /usr/bin/sm64pc >/dev/null 2>&1 &
+set -e
+XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
+[ -d "$XDG_DATA_HOME/sm64pc" ] || mkdir "$XDG_DATA_HOME/sm64pc"
+cd "$XDG_DATA_HOME/sm64pc"
+/usr/bin/sm64pc.bin

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.

Hengi commented on 2020-05-11 15:48 (UTC)

Hello, first of all I'd like to say that we're happy to see the port being used in the AUR. However, there's a little issue, at least I would consider it one: The license is not really MIT. Licensing the code is a question in and of itself, however for now, the code remains unlicensed.

deimon commented on 2020-05-11 01:00 (UTC) (edited on 2020-05-11 01:00 (UTC) by deimon)

Hello, to compile download a ROM and rename it in the folder. I compile well. But when I run it, it says the following error:

/usr/local/bin/sm64pc: línea 2: cd: /sm64pc: No existe el fichero o el directorio

(/usr/local/bin/sm64pc: line 2: cd: /sm64pc: File or directory does not exist)