aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2023-04-10 02:53:45 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2023-04-15 07:15:42 +0700
commit5c11112b7d6157aa15d37cab153576a4ab77dc9f (patch)
tree6643abbf05fa2d9360ab0a62bcd3d4fcd17f8dae
parent65ab356d2a0a4ef146e78997b1effec546951087 (diff)
games/snes9x: Updated for version 1.62.3.
Signed-off-by: B. Watson <urchlay@slackware.uk> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--games/snes9x/ChangeLog.old71
-rw-r--r--games/snes9x/README29
-rw-r--r--games/snes9x/snes9x-gtk.6154
-rw-r--r--games/snes9x/snes9x-gtk.rst91
-rw-r--r--games/snes9x/snes9x.689
-rw-r--r--games/snes9x/snes9x.SlackBuild195
-rw-r--r--games/snes9x/snes9x.info12
-rw-r--r--games/snes9x/snes9x.rst78
-rw-r--r--games/snes9x/snes9x_libretro.info.txt (renamed from games/snes9x/snes9x_libretro-info)0
9 files changed, 529 insertions, 190 deletions
diff --git a/games/snes9x/ChangeLog.old b/games/snes9x/ChangeLog.old
new file mode 100644
index 0000000000000..48518fd463d3c
--- /dev/null
+++ b/games/snes9x/ChangeLog.old
@@ -0,0 +1,71 @@
+# 20220622 bkw, BUILD=2:
+# - strip binary (whoops).
+# - remove mention of retroarch support from README, it FTBFS.
+# sooner or later I'll fix it or remove it entirely.
+# Note: I tried snes9x 1.61 on Slackware 15.0 with all updates, and
+# it still crashes as described below. Also tried latest post-1.61 git
+# and it has the same problem. So staying with 1.59 for now, sorry.
+
+# 20211014 bkw: *downgrade* to 1.59, for now at least. 1.60 crashes
+# immediately if built with gtk+2 and started with a ROM filename.
+# If you pick a ROM from within the app, it'll work sometimes, but
+# sometimes it'll crash. When build with gtk+3, it crashes any time
+# you try to open the Preferences dialog while a ROM is loaded. I
+# also tried the latest git, it acts the same as 1.60 (except that it
+# can't be built with gtk+2 any more). I can't get 1.59 to crash, so
+# that's what I'm packaging. I don't know if the issues with 1.60 are
+# something to do with -current (something that might be fixed before
+# 15.0 releases) or something broken upstream. If you're reading this
+# after Slackware 15.0 has been released, please remind me to look
+# into it again.
+
+# 20191126 bkw: update for 1.60. Upstream has switched from autotools
+# to meson for the build system, so this script can no longer build
+# old versions.
+
+# 20181201 bkw:
+# - update for 1.57.
+# - disable OSS audio by default, add OSS=yes option.
+# - autodetect RetroArch, add RETROARCH=yes|no option.
+# - document the above in the README.
+# - document PULSE=no in README.
+# - stop including snes9x.conf.default in the docdir, since it's
+# outdated and will cause snes9x to segfault if you try to use it!
+# - since we now have 3 build options, make slack-desc show them.
+# - add patch from upstream to speed up linking the libretro core if
+# -jX is in MAKEFLAGS.
+# - add patch fro upstream to stop segfaulting if the config file is
+# missing the ScanlineIntensity variable. Means I can finaly remove
+# the "you should delete your old config file" from the README.
+
+# 20180730 bkw:
+# - BUILD=2.
+# - add libretro/RetroArch, thanks to orbea.
+# - add --without-portaudio to configure args. snes9x runs about
+# 1 frame/sec if I start it up with the sound driver set to portaudio,
+# and I've gotten a report of it blasting high-volume white noise
+# thru the speakers if you switch to portaudio while a ROM is already
+# running. I can't see any reason to use it in favor of pulse, alsa,
+# oss, or sdl audio.
+# - don't extract windows, mac, old-school unix stuff from tarball.
+# uses 50% less $TMP space.
+
+# 20180623 bkw: update for 1.56.2.
+# 20180611 bkw:
+# - update for 1.56.1.
+# - switch the UI from gtk3 to gtk2, as 14.2's gtk3 is too old.
+# - add undocumented PULSE=no build option (in anticipation of 15.0's
+# pure-alsa-system).
+# - add SDL2 to REQUIRES. technically, it's not truly required: snes9x
+# only uses SDL2 to support joysticks. playing with the keyboard/mouse
+# would still work without it. 15.0 is coming soon, and will have SDL2
+# in the core OS, so don't bother me about this decision.
+# - update README, the snes9x_gtk build went away in 2010, no need to
+# mention it now. also add notes about upgrading from 1.55.
+# 20171221 bkw: use --without-system-zip to build bundled unzip, instead
+# of adding minizip as a dependency.
+# 20171213 bkw: update for 1.55.
+# 20170302 bkw: use long-format github URL
+# 20161015 bkw: update for 1.54.1. script has changed enough that it
+# can't build 1.53 any more.
+
diff --git a/games/snes9x/README b/games/snes9x/README
index 859bd56325c3d..6370b07b82809 100644
--- a/games/snes9x/README
+++ b/games/snes9x/README
@@ -6,7 +6,10 @@ for the SNES and Super Famicom Nintendo game systems on your PC or
Workstation. The games include some real gems that were only ever
released in Japan.
-When you first run snes9x:
+This package includes both snes9x (the command-line build) and
+snes9x-gtk (with graphical user interface).
+
+When you first run snes9x-gtk:
- The first thing you'll want to do is configure the controls. By
default there are *no* controls set up; you'll be unable to play any
@@ -16,24 +19,22 @@ When you first run snes9x:
- If the game audio is choppy or distorted, try setting the
sound driver to Pulse or ALSA (Options -> Preferences -> Sound
- tab). Specifically, avoid SDL audio (unfortunately it's the default
- if PULSE=no).
+ tab). Specifically, avoid SDL audio. PortAudio support may be
+ included (it's an optional dependency), but so far as I can tell,
+ offers no advantage.
Notes:
-- This is not the latest release of snes9x. Version 1.60 crashes under
- pre-15.0 Slackware-current, so version 1.59 is packaged here. This
- will be revisited sometime after Slackware 15.0 is released.
-
- The package can optionally include the snes9x libretro core, for use
with RetroArch. By default, the core will be built if RetroArch is
installed. You can set RETROARCH=yes to force the core to be built,
or RETROARCH=no to forcibly disable the core. Note that RetroArch
doesn't have to be installed to build the libretro core, but it's
- useless without RetroArch installed.
-
-- Starting with 1.57, OSS audio is disabled by default. Most users
- won't be affected, since pulseaudio is now the default audio system on
- Slackware, and ALSA is the fallback option. If you *need* OSS support,
- set OSS=yes in the script's environment. You may also disable
- PulseAudio by setting PULSE=no in the environment.
+ useless without RetroArch installed. Also note: the libretro core
+ builds, but has not been tested by the SlackBuild author.
+
+- OSS audio is disabled by default. Most users won't be affected,
+ since PulseAudio is now the default audio system on Slackware, and
+ ALSA is the fallback option. If you *need* OSS support, set OSS=yes
+ in the script's environment. You may also disable PulseAudio by
+ setting PULSE=no in the environment.
diff --git a/games/snes9x/snes9x-gtk.6 b/games/snes9x/snes9x-gtk.6
index 2dc3f1fa4a90b..6b9e9413cadd9 100644
--- a/games/snes9x/snes9x-gtk.6
+++ b/games/snes9x/snes9x-gtk.6
@@ -1,70 +1,104 @@
-.TH SNES9X-GTK 6 "22 OCT 2009" "SlackBuilds.org Project" "Slackware Linux"
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "SNES9X-GTK" 6 "2023-04-10" "1.62.3" "SlackBuilds.org"
.SH NAME
snes9x-gtk \- Super Nintendo Entertainment System emulator
+.\" RST source for snes9x-gtk(1) man page. Convert with:
+.
+.\" rst2man.py snes9x-gtk.rst > snes9x-gtk.6
+.
.SH SYNOPSIS
-.B snes9x\-gtk
-[\-filter \fItype\fR]
-[\-mutesound]
-[\fIrom\-file]
+.sp
+\fBsnes9x\-gtk\fP [\fB\-filter\fP \fItype\fP] [\fB\-mutesound\fP] [\fBrom\-file\fP]
.SH DESCRIPTION
-Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
-emulator. It basically allows you to play most games designed for the SNES
-and Super Famicom Nintendo game systems on your PC or Workstation; they
-include some real gems that were only ever released in Japan.
-.PP
-.B snes9x\-gtk
-is an unofficial port of Snes9x with a GTK+ graphical frontend.
-.PP
-With no ROM file argument, snes9x\-gtk will start its graphical user interface.
-When a ROM file is named on the command line, snes9x\-gtk will start
-emulation immediately.
-.PP
-Unlike the original snes9x, snes9x\-gtk doesn't extensively use command\-line
-options to affect its behaviour. Instead, use the GUI and/or keyboard
-shortcuts from within the emulator.
-.SS OPTIONS
+.sp
+Snes9x is a portable, freeware Super Nintendo Entertainment
+System (SNES) emulator. It basically allows you to play most games
+designed for the SNES and Super Famicom Nintendo game systems
+on your PC or Workstation; they include some real gems that were only
+ever released in Japan.
+.sp
+\fBsnes9x\-gtk\fP is an unofficial port of Snes9x with a GTK+ graphical front‐end.
+.sp
+With no ROM file argument, \fBsnes9x\-gtk\fP will start its graphical user
+interface. When a ROM file is named on the command line, snes9x\-gtk
+will start emulation immediately.
+.sp
+Unlike the original snes9x, \fBsnes9x\-gtk\fP doesn\(aqt extensively use
+command\-line options to affect its behaviour. Instead, use the GUI
+and/or keyboard shortcuts from within the emulator.
+.SH OPTIONS
+.INDENT 0.0
.TP
-\fB\-filter\fR \fItype\fR
+.B \fB\-filter\fP \fItype\fP
Use a filter to scale the video. Filter types are:
-.br
-.nh
-.I none
-.I supereagle
-.I 2xsai
-.I super2xsai
-.I hq2x
-.I hq3x
-.I hq4x
-.I epx
-.I ntsc
-.hy
-.PP
-The \-filter option does the same thing as the GUI's "Apply Scaling Filter"
-selection (under Preferences / Display).
+.INDENT 7.0
+.INDENT 3.5
+\fInone\fP \fIsupereagle\fP \fI2xsai\fP \fIsuper2xsai\fP \fIhq2x\fP \fIhq3x\fP \fIhq4x\fP \fIepx\fP \fIntsc\fP
+.UNINDENT
+.UNINDENT
+.sp
+The \-filter option does the same thing as the GUI\(aqs "Apply Scaling
+Filter" selection (under Preferences / Display).
.TP
-.B \-mutesound
+.B \fB\-mutesound\fP
Disable audio output. The sound CPU is still emulated. Note that this
option will enable the "mute sound?" checkbox in the Preferences user
-interface, whose value will be saved across sessions (you must use the GUI to
-unmute the audio).
+interface, whose value will be saved across sessions (you must use
+the GUI to unmute the audio).
+.UNINDENT
.SH FILES
-.B ~/.snes9x/snes9x.xml
-.br
-Configuration file. Not intended to be edited directly; stores the settings
-made in the GUI. To return all settings to their defaults, remove this file.
-.PP
-.B ~/.snes9x/snapshots/*
-.br
-Saved states, named after ROM filenames.
-.PP
-.B ~/.snes9x/*.png
-.br
-Screenshots, named after ROM filenames.
-.SH AUTHOR
-snes9x\-gtk was ported by Brandon Wright <bearoso@gmail.com>.
-.PP
-Snes9x was written by Gary Henderson and Jerremy Koot. It also includes code
-from Ivar (Ivar@snes9x.com), zsKnight and _Demo_ and many others.
-.PP
-This manual page was written by B. Watson
-for the SlackBuilds.org project (but may be used by others).
+.INDENT 0.0
+.TP
+.B \fB~/.config/snes9x/snes9x.conf\fP
+Configuration file. Not intended to be edited directly; stores the
+settings made in the GUI. To return all settings to their defaults,
+remove this file.
+.UNINDENT
+.sp
+Note that the graphical \fBsnes9x\-gtk\fP does not share config files or
+directories with command\-line \fBsnes9x\fP\&.
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/snes9x\-1.62.3/LICENSE for license information.
+.SH AUTHORS
+.sp
+snes9x\-gtk was ported by Brandon Wright <\fI\%bearoso@gmail.com\fP>.
+.sp
+Snes9x was written by Gary Henderson and Jerremy Koot. It also includes
+code from Ivar (\fI\%Ivar@snes9x.com\fP), zsKnight, _Demo_, and many others.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBsnes9x\fP(6)
+.\" Generated by docutils manpage writer.
+.
diff --git a/games/snes9x/snes9x-gtk.rst b/games/snes9x/snes9x-gtk.rst
new file mode 100644
index 0000000000000..0434a67ee1bc7
--- /dev/null
+++ b/games/snes9x/snes9x-gtk.rst
@@ -0,0 +1,91 @@
+.. RST source for snes9x-gtk(1) man page. Convert with:
+.. rst2man.py snes9x-gtk.rst > snes9x-gtk.6
+
+.. |version| replace:: 1.62.3
+.. |date| date::
+
+==========
+snes9x-gtk
+==========
+
+--------------------------------------------
+Super Nintendo Entertainment System emulator
+--------------------------------------------
+
+:Manual section: 6
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**snes9x-gtk** [**-filter** *type*] [**-mutesound**] [**rom-file**]
+
+DESCRIPTION
+===========
+
+Snes9x is a portable, freeware Super Nintendo Entertainment
+System (SNES) emulator. It basically allows you to play most games
+designed for the SNES and Super Famicom Nintendo game systems
+on your PC or Workstation; they include some real gems that were only
+ever released in Japan.
+
+**snes9x-gtk** is an unofficial port of Snes9x with a GTK+ graphical front‐end.
+
+With no ROM file argument, **snes9x-gtk** will start its graphical user
+interface. When a ROM file is named on the command line, snes9x-gtk
+will start emulation immediately.
+
+Unlike the original snes9x, **snes9x-gtk** doesn't extensively use
+command-line options to affect its behaviour. Instead, use the GUI
+and/or keyboard shortcuts from within the emulator.
+
+OPTIONS
+=======
+
+**-filter** *type*
+ Use a filter to scale the video. Filter types are:
+
+ *none* *supereagle* *2xsai* *super2xsai* *hq2x* *hq3x* *hq4x* *epx* *ntsc*
+
+ The -filter option does the same thing as the GUI's "Apply Scaling
+ Filter" selection (under Preferences / Display).
+
+**-mutesound**
+ Disable audio output. The sound CPU is still emulated. Note that this
+ option will enable the "mute sound?" checkbox in the Preferences user
+ interface, whose value will be saved across sessions (you must use
+ the GUI to unmute the audio).
+
+FILES
+=====
+
+**~/.config/snes9x/snes9x.conf**
+ Configuration file. Not intended to be edited directly; stores the
+ settings made in the GUI. To return all settings to their defaults,
+ remove this file.
+
+Note that the graphical **snes9x-gtk** does not share config files or
+directories with command-line **snes9x**\.
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/snes9x-|version|/LICENSE for license information.
+
+AUTHORS
+=======
+
+snes9x-gtk was ported by Brandon Wright <bearoso@gmail.com>.
+
+Snes9x was written by Gary Henderson and Jerremy Koot. It also includes
+code from Ivar (Ivar@snes9x.com), zsKnight, _Demo_, and many others.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**snes9x**\(6)
diff --git a/games/snes9x/snes9x.6 b/games/snes9x/snes9x.6
new file mode 100644
index 0000000000000..d5d21a31f5cfb
--- /dev/null
+++ b/games/snes9x/snes9x.6
@@ -0,0 +1,89 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "SNES9X" 6 "2023-04-10" "1.62.3" "SlackBuilds.org"
+.SH NAME
+snes9x \- Super Nintendo Entertainment System emulator
+.\" RST source for snes9x(6) man page. Convert with:
+.
+.\" rst2man.py snes9x.rst > snes9x.6
+.
+.SH SYNOPSIS
+.sp
+\fBsnes9x\fP [\fIoptions\fP] \fBrom\-file\fP
+.SH DESCRIPTION
+.sp
+Snes9x is a portable, freeware Super Nintendo Entertainment
+System (SNES) emulator. It basically allows you to play most games
+designed for the SNES and Super Famicom Nintendo game systems
+on your PC or Workstation; they include some real gems that were only
+ever released in Japan.
+.sp
+For the full documentation, see:
+.INDENT 0.0
+.INDENT 3.5
+/usr/doc/snes9x\-1.62.3/readme_unix.html
+.UNINDENT
+.UNINDENT
+.sp
+This is the command\-line build of \fBsnes9x\fP\&. For the GUI version,
+see \fBsnes9x\-gtk\fP(6).
+.SH OPTIONS
+.sp
+This man page doesn\(aqt include a list of options. Run \fBsnes9x\fP with
+no arguments (or with \fB\-\-help\fP) to see them.
+.SH FILES
+.INDENT 0.0
+.TP
+.B \fB~/.snes9x/snes9x.conf\fP
+The config file. \fBsnes9x\fP doesn\(aqt create this; the default config
+file is found in /usr/doc/snes9x\-1.62.3/snes9x.conf.default and
+must be copied to ~/.snes9x/snes9x.conf manually.
+.UNINDENT
+.sp
+The directory \fB~/.snes9x/\fP also contains subdirectories for savestates,
+screenshots, sram, etc. These are populated by \fBsnes9x\fP as needed.
+.sp
+Note that the graphical \fBsnes9x\-gtk\fP does not share config files or
+directories with command\-line \fBsnes9x\fP\&.
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/snes9x\-1.62.3/LICENSE for license information.
+.SH AUTHORS
+.sp
+Snes9x was written by Gary Henderson and Jerremy Koot. It also includes
+code from Ivar (\fI\%Ivar@snes9x.com\fP), zsKnight, _Demo_, and many others.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBsnes9x\-gtk\fP(6)
+.\" Generated by docutils manpage writer.
+.
diff --git a/games/snes9x/snes9x.SlackBuild b/games/snes9x/snes9x.SlackBuild
index ab3e3e470c200..8244989280c53 100644
--- a/games/snes9x/snes9x.SlackBuild
+++ b/games/snes9x/snes9x.SlackBuild
@@ -6,85 +6,26 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
-# 20220622 bkw, BUILD=2:
-# - strip binary (whoops).
-# - remove mention of retroarch support from README, it FTBFS.
-# sooner or later I'll fix it or remove it entirely.
-# Note: I tried snes9x 1.61 on Slackware 15.0 with all updates, and
-# it still crashes as described below. Also tried latest post-1.61 git
-# and it has the same problem. So staying with 1.59 for now, sorry.
-
-# 20211014 bkw: *downgrade* to 1.59, for now at least. 1.60 crashes
-# immediately if built with gtk+2 and started with a ROM filename.
-# If you pick a ROM from within the app, it'll work sometimes, but
-# sometimes it'll crash. When build with gtk+3, it crashes any time
-# you try to open the Preferences dialog while a ROM is loaded. I
-# also tried the latest git, it acts the same as 1.60 (except that it
-# can't be built with gtk+2 any more). I can't get 1.59 to crash, so
-# that's what I'm packaging. I don't know if the issues with 1.60 are
-# something to do with -current (something that might be fixed before
-# 15.0 releases) or something broken upstream. If you're reading this
-# after Slackware 15.0 has been released, please remind me to look
-# into it again.
-
-# 20191126 bkw: update for 1.60. Upstream has switched from autotools
-# to meson for the build system, so this script can no longer build
-# old versions.
-
-# 20181201 bkw:
-# - update for 1.57.
-# - disable OSS audio by default, add OSS=yes option.
-# - autodetect RetroArch, add RETROARCH=yes|no option.
-# - document the above in the README.
-# - document PULSE=no in README.
-# - stop including snes9x.conf.default in the docdir, since it's
-# outdated and will cause snes9x to segfault if you try to use it!
-# - since we now have 3 build options, make slack-desc show them.
-# - add patch from upstream to speed up linking the libretro core if
-# -jX is in MAKEFLAGS.
-# - add patch fro upstream to stop segfaulting if the config file is
-# missing the ScanlineIntensity variable. Means I can finaly remove
-# the "you should delete your old config file" from the README.
-
-# 20180730 bkw:
-# - BUILD=2.
-# - add libretro/RetroArch, thanks to orbea.
-# - add --without-portaudio to configure args. snes9x runs about
-# 1 frame/sec if I start it up with the sound driver set to portaudio,
-# and I've gotten a report of it blasting high-volume white noise
-# thru the speakers if you switch to portaudio while a ROM is already
-# running. I can't see any reason to use it in favor of pulse, alsa,
-# oss, or sdl audio.
-# - don't extract windows, mac, old-school unix stuff from tarball.
-# uses 50% less $TMP space.
-
-# 20180623 bkw: update for 1.56.2.
-# 20180611 bkw:
-# - update for 1.56.1.
-# - switch the UI from gtk3 to gtk2, as 14.2's gtk3 is too old.
-# - add undocumented PULSE=no build option (in anticipation of 15.0's
-# pure-alsa-system).
-# - add SDL2 to REQUIRES. technically, it's not truly required: snes9x
-# only uses SDL2 to support joysticks. playing with the keyboard/mouse
-# would still work without it. 15.0 is coming soon, and will have SDL2
-# in the core OS, so don't bother me about this decision.
-# - update README, the snes9x_gtk build went away in 2010, no need to
-# mention it now. also add notes about upgrading from 1.55.
-# 20171221 bkw: use --without-system-zip to build bundled unzip, instead
-# of adding minizip as a dependency.
-# 20171213 bkw: update for 1.55.
-# 20170302 bkw: use long-format github URL
-# 20161015 bkw: update for 1.54.1. script has changed enough that it
-# can't build 1.53 any more.
+# 20230410 bkw: update for 1.62.3.
+# Most of the work needed for this update was done by M.Dinslage,
+# to whom I owe thanks. I updated the man page, and added the
+# non-GUI binary plus a man page for it.
+
+# For older change-comments, see ChangeLog.old (it was getting too long
+# to keep in the script).
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=snes9x
-VERSION=${VERSION:-1.59}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-1.62.3}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+SPIRVVER="2021-01-15"
+VULKVER="1.3.246"
+GLSLANGVER="12.1.0"
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -102,6 +43,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
+# Note: the flags we set here are followed by -O3, meaning the
+# -O2 does nothing. *shrug*
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
@@ -122,63 +65,63 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-# Don't extract the stuff we don't need, this saves 7.9MB in $TMP.
-tar xvf $CWD/$PRGNAM-$VERSION.tar.?z \
- --wildcards --exclude '*/win32/*' \
- --exclude '*/macosx/*' --exclude '*/unix/*'
+# Don't extract the stuff we don't need, this saves a few MB in $TMP.
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz \
+ --wildcards \
+ --exclude '*/win32/*' \
+ --exclude '*/macosx/*'
cd $PRGNAM-$VERSION
+
+tar xvf $CWD/glslang-$GLSLANGVER.tar.gz \
+ -C external/glslang --strip-components=1
+tar xvf $CWD/SPIRV-Cross-$SPIRVVER.tar.gz \
+ -C external/SPIRV-Cross --strip-components=1
+tar xvf $CWD/Vulkan-Headers-$VULKVER.tar.gz \
+ -C external/vulkan-headers --strip-components=1
+
chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-cd gtk
-
WITHPULSE=yes
if [ "$PULSE" = "no" ] || ! pkg-config --exists libpulse; then
- PULSEOPT="-D pulseaudio=false"
+ PULSEOPT="-DUSE_PULSEAUDIO=OFF"
WITHPULSE=no
fi
WITHOSS=yes
if [ "${OSS:-no}" = "no" ]; then
- OSSOPT="-D oss=false"
+ OSSOPT="-DUSE_OSS=OFF"
WITHOSS=no
fi
-# 20211012 bkw: we can now build with gtk+3
-if [ "${GTK3:-yes}" = "yes" ]; then
- GTKDEFS="-D gtk3=true -D gtk2=false"
-else
- GTKDEFS="-D gtk3=false -D gtk2=true"
-fi
-
SLKCFLAGS+=" -DNDEBUG"
-mkdir build
-cd build
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS" \
- meson .. \
+mkdir -p gtk/build
+cd gtk/build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_BINDIR=games \
$PULSEOPT $OSSOPT \
- $GTKDEFS \
- --buildtype=release \
- --infodir=/usr/info \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --localstatedir=/var \
- --mandir=/usr/man \
- --prefix=/usr \
- --sysconfdir=/etc \
- -Dstrip=true
- "${NINJA:=ninja}" -v
- DESTDIR=$PKG $NINJA install
- mv $PKG/usr/bin $PKG/usr/games
-cd ..
+ -DCMAKE_INSTALL_DATAROOTDIR=share \
+ -DUSE_SYSTEMZIP=OFF \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make VERBOSE=1
+ make install/strip DESTDIR=$PKG
+cd -
+
+# 20230410 bkw: Insidious weirdness: The bitmap icons all look the
+# same, but the .svg icon looks completely different. Just get rid
+# of it; we have the bitmap icons at every size we could want.
+rm -rf $PKG/usr/share/icons/hicolor/scalable
# RetroArch support, contributed by orbea (Hunter Sezen).
# Note that the source here is self-contained, there's no build-time
# dependency on RetroArch or libretro or such.
# snes9x_libretro-info originally came from:
# https://raw.githubusercontent.com/libretro/libretro-super/383f18fd7c36ffd5fe76ebac58e9e596dde67e66/dist/info/snes9x_libretro.info
-# Renamed .info => -info to avoid confusing SBo tools that deal with
+# Renamed .info => .info.txt to avoid confusing SBo tools that deal with
# SBo's .info files.
# 20181201 bkw: made this optional, auto-detected, and controllable
# via environment. It makes the build take 7x as long, no point wasting
@@ -197,24 +140,50 @@ esac
if [ "$build_ra" = "yes" ]; then
echo "=== Building libretro core"
( LIBNAM=${PRGNAM}_libretro
- cd ../libretro
+ PKGLIB=$PKG/usr/lib$LIBDIRSUFFIX
+ cd libretro
make LTO="-flto=jobserver"
- install -sDm0755 $LIBNAM.so $PKG/usr/lib${LIBDIRSUFFIX}/libretro/$LIBNAM.so
- install -Dm0644 $CWD/$LIBNAM-info \
- $PKG/usr/lib${LIBDIRSUFFIX}/libretro/info/$LIBNAM.info
+ install -sDm0755 $LIBNAM.so $PKGLIB/libretro/$LIBNAM.so
+ install -Dm0644 -o root -g root $CWD/$LIBNAM.info.txt \
+ $PKGLIB/libretro/info/$LIBNAM.info
)
else
echo "=== NOT building libretro core"
fi
+# Go ahead and include the non-gui binary. Note that it doesn't
+# support OSS or Pulse (only ALSA), so the OSS and PULSE environment
+# vars don't affect it.
+cd unix
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --enable-gamepad \
+ --enable-gzip \
+ --enable-screenshot \
+ --enable-zip \
+ --without-system-zip \
+ --build=$ARCH-slackware-linux
+ make
+cd -
+
+# No 'make install' target.
+install -s -m0755 unix/snes9x $PKG/usr/games/snes9x
+
+# Man pages written by SlackBuild author.
mkdir -p $PKG/usr/man/man6
gzip -9c $CWD/snes9x-gtk.6 > $PKG/usr/man/man6/snes9x-gtk.6.gz
-ln -s $PRGNAM-gtk.6.gz $PKG/usr/man/man6/$PRGNAM.6.gz
-ln -s $PRGNAM-gtk $PKG/usr/games/$PRGNAM
+gzip -9c $CWD/snes9x.6 > $PKG/usr/man/man6/snes9x.6.gz
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
-cp -a ../LICENSE ../README* ../docs/* $PKGDOC
+cp -a LICENSE README* docs/* unix/docs/* unix/snes9x.conf.default $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/games/snes9x/snes9x.info b/games/snes9x/snes9x.info
index 75d88face3029..fda41c81b46fe 100644
--- a/games/snes9x/snes9x.info
+++ b/games/snes9x/snes9x.info
@@ -1,8 +1,14 @@
PRGNAM="snes9x"
-VERSION="1.59"
+VERSION="1.62.3"
HOMEPAGE="https://github.com/snes9xgit/snes9x"
-DOWNLOAD="https://github.com/snes9xgit/snes9x/archive/1.59/snes9x-1.59.tar.gz"
-MD5SUM="eab4e3123366711e4bcb014fa87d7ead"
+DOWNLOAD="https://github.com/snes9xgit/snes9x/archive/1.62.3/snes9x-1.62.3.tar.gz \
+ https://github.com/KhronosGroup/glslang/archive/12.1.0/glslang-12.1.0.tar.gz \
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/v1.3.246/Vulkan-Headers-1.3.246.tar.gz \
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/2021-01-15/SPIRV-Cross-2021-01-15.tar.gz"
+MD5SUM="53879c428f871e5e56d5a10dc24e4c10 \
+ 218e2dd3ab422fca3a99ba6ca517c84c \
+ 9b0106c6cae8ef061ba8a7c5b5778b1b \
+ b3d17d652cde727629a68ff338881290"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/snes9x/snes9x.rst b/games/snes9x/snes9x.rst
new file mode 100644
index 0000000000000..a7e03f9edf4f1
--- /dev/null
+++ b/games/snes9x/snes9x.rst
@@ -0,0 +1,78 @@
+.. RST source for snes9x(6) man page. Convert with:
+.. rst2man.py snes9x.rst > snes9x.6
+
+.. |version| replace:: 1.62.3
+.. |date| date::
+
+======
+snes9x
+======
+
+--------------------------------------------
+Super Nintendo Entertainment System emulator
+--------------------------------------------
+
+:Manual section: 6
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**snes9x** [*options*] **rom-file**
+
+DESCRIPTION
+===========
+
+Snes9x is a portable, freeware Super Nintendo Entertainment
+System (SNES) emulator. It basically allows you to play most games
+designed for the SNES and Super Famicom Nintendo game systems
+on your PC or Workstation; they include some real gems that were only
+ever released in Japan.
+
+For the full documentation, see:
+
+ /usr/doc/snes9x-|version|/readme_unix.html
+
+This is the command-line build of **snes9x**. For the GUI version,
+see **snes9x-gtk**\(6).
+
+OPTIONS
+=======
+
+This man page doesn't include a list of options. Run **snes9x** with
+no arguments (or with **--help**) to see them.
+
+FILES
+=====
+
+**~/.snes9x/snes9x.conf**
+ The config file. **snes9x** doesn't create this; the default config
+ file is found in /usr/doc/snes9x-|version|/snes9x.conf.default and
+ must be copied to ~/.snes9x/snes9x.conf manually.
+
+The directory **~/.snes9x/** also contains subdirectories for savestates,
+screenshots, sram, etc. These are populated by **snes9x** as needed.
+
+Note that the graphical **snes9x-gtk** does not share config files or
+directories with command-line **snes9x**\.
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/snes9x-|version|/LICENSE for license information.
+
+AUTHORS
+=======
+
+Snes9x was written by Gary Henderson and Jerremy Koot. It also includes
+code from Ivar (Ivar@snes9x.com), zsKnight, _Demo_, and many others.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**snes9x-gtk**\(6)
diff --git a/games/snes9x/snes9x_libretro-info b/games/snes9x/snes9x_libretro.info.txt
index bcccb02e7edec..bcccb02e7edec 100644
--- a/games/snes9x/snes9x_libretro-info
+++ b/games/snes9x/snes9x_libretro.info.txt