summaryrefslogtreecommitdiffstats
path: root/system/vice
diff options
context:
space:
mode:
Diffstat (limited to 'system/vice')
-rw-r--r--system/vice/README11
-rw-r--r--system/vice/README_SBo.txt21
-rw-r--r--system/vice/config/vice.pngbin4040 -> 0 bytes
-rw-r--r--system/vice/config/vsid.desktop9
-rw-r--r--system/vice/config/x128.desktop9
-rw-r--r--system/vice/config/x64.desktop9
-rw-r--r--system/vice/config/x64dtv.desktop9
-rw-r--r--system/vice/config/x64sc.desktop9
-rw-r--r--system/vice/config/xcbm2.desktop9
-rw-r--r--system/vice/config/xcbm5x0.desktop9
-rw-r--r--system/vice/config/xpet.desktop9
-rw-r--r--system/vice/config/xplus4.desktop9
-rw-r--r--system/vice/config/xscpu64.desktop9
-rw-r--r--system/vice/config/xvic.desktop9
-rw-r--r--system/vice/doinst.sh18
-rw-r--r--system/vice/douninst.sh6
-rw-r--r--system/vice/fix_texi.diff79
-rw-r--r--system/vice/man/c1541.1162
-rw-r--r--system/vice/man/cartconv.1247
-rw-r--r--system/vice/man/petcat.1219
-rw-r--r--system/vice/man/vice.1183
-rw-r--r--system/vice/man/vsid.124
-rw-r--r--system/vice/slack-desc2
-rw-r--r--system/vice/vice.SlackBuild357
-rw-r--r--system/vice/vice.info10
25 files changed, 1170 insertions, 268 deletions
diff --git a/system/vice/README b/system/vice/README
index cf93780f1a..7b9ba9f87d 100644
--- a/system/vice/README
+++ b/system/vice/README
@@ -4,5 +4,12 @@ VICE is the one and only Versatile Commodore Emulator. It provides
emulation of the Commodore C64, C128, VIC20, PET, PLUS4 and CBM-II
computers.
-See README_SBo.txt for build options. The defaults should be fine for
-most users.
+This build includes both the GTK+3 and SDL2[*] menu-based user
+interfaces. The SDL2 binaries are installed with -sdl2 suffix,
+e.g. x64-sdl2 and x128-sdl2.
+
+[*] If you'd rather build with SDL 1.x for some reason, set SDL=1 in
+the environment. The SDL1 binaries are installed with -sdl1 suffix.
+It's also possible to omit the SDL binaries entirely with SDL=no.
+
+To build without PulseAudio, set PULSE=no in the environment.
diff --git a/system/vice/README_SBo.txt b/system/vice/README_SBo.txt
deleted file mode 100644
index e8fd15f8de..0000000000
--- a/system/vice/README_SBo.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Optional dependencies: ffmpeg and SDL2.
-
-Vice can use ffmpeg to record videos of the emulated machine. If
-ffmpeg is installed, it will be autodetected. If you have ffmpeg
-installed but don't want ffmpeg support, you'll have to removepkg
-ffmpeg before building (there's no way to override the autodetection).
-
-By default, vice will be built with SDL2 if it's installed, otherwise
-SDL1. You can set SDL=1 to force building with SDL1 even if SDL2 is
-installed.
-
-If you want to build without PulseAudio, set PULSE=no in the environment.
-
-Note: To use the standard application menu instead of the in-emulator
-PETSCII menu, GTK3 v3.22 is required. Slackware 14.2 ships with 3.18
-and there is no upgrade package for this. Slackware -current has
-3.22. So to use the normal application menus, either use Slackware
--current or find a way to upgrade your Slackware 14.2's GTK3 to
-v3.22. The SlackBuild maintainer has NOT tested this build with
-Slackware -current, you're on your own if it doesn't work (fix it and
-send me a patch if you can).
diff --git a/system/vice/config/vice.png b/system/vice/config/vice.png
deleted file mode 100644
index e001fc8620..0000000000
--- a/system/vice/config/vice.png
+++ /dev/null
Binary files differ
diff --git a/system/vice/config/vsid.desktop b/system/vice/config/vsid.desktop
deleted file mode 100644
index c1dfd32f55..0000000000
--- a/system/vice/config/vsid.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE SID Player
-Comment=A SID Player
-StartupNotify=true
-Exec=vsid
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/x128.desktop b/system/vice/config/x128.desktop
deleted file mode 100644
index 92ab76c637..0000000000
--- a/system/vice/config/x128.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE C128 emulator
-Comment=A Commodore 128 emulator
-StartupNotify=true
-Exec=x128
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/x64.desktop b/system/vice/config/x64.desktop
deleted file mode 100644
index 7991b5ecd9..0000000000
--- a/system/vice/config/x64.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE C64 emulator
-Comment=A fast Commodore 64 emulator
-StartupNotify=true
-Exec=x64
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/x64dtv.desktop b/system/vice/config/x64dtv.desktop
deleted file mode 100644
index f3d82b642d..0000000000
--- a/system/vice/config/x64dtv.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE C64DTV emulator
-Comment=A C64DTV emulator
-StartupNotify=true
-Exec=x64dtv
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/x64sc.desktop b/system/vice/config/x64sc.desktop
deleted file mode 100644
index 46d5b89ee0..0000000000
--- a/system/vice/config/x64sc.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE C64 emulator
-Comment=An accurate Commodore 64 emulator
-StartupNotify=true
-Exec=x64sc
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/xcbm2.desktop b/system/vice/config/xcbm2.desktop
deleted file mode 100644
index 1411e41883..0000000000
--- a/system/vice/config/xcbm2.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE CBM-II emulator
-Comment=A Commodore CBM-II (6x0/7x0) emulator
-StartupNotify=true
-Exec=xcbm2
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/xcbm5x0.desktop b/system/vice/config/xcbm5x0.desktop
deleted file mode 100644
index 2acabe36d5..0000000000
--- a/system/vice/config/xcbm5x0.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE CBM-II emulator
-Comment=A Commodore CBM-II (5x0) emulator
-StartupNotify=true
-Exec=xcbm5x0
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/xpet.desktop b/system/vice/config/xpet.desktop
deleted file mode 100644
index 1efabc6b61..0000000000
--- a/system/vice/config/xpet.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE PET emulator
-Comment=A Commodore PET emulator
-StartupNotify=true
-Exec=xpet
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/xplus4.desktop b/system/vice/config/xplus4.desktop
deleted file mode 100644
index 63f095c95a..0000000000
--- a/system/vice/config/xplus4.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE Plus4 emulator
-Comment=A Commodore Plus4 emulator
-StartupNotify=true
-Exec=xplus4
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/xscpu64.desktop b/system/vice/config/xscpu64.desktop
deleted file mode 100644
index 295643f0c8..0000000000
--- a/system/vice/config/xscpu64.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE C64 SuperCPU emulator
-Comment=An accurate SuperCPU64 emulator
-StartupNotify=true
-Exec=xscpu64
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/config/xvic.desktop b/system/vice/config/xvic.desktop
deleted file mode 100644
index d06423e8be..0000000000
--- a/system/vice/config/xvic.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=VICE VIC-20 emulator
-Comment=A Commodore VIC-20 emulator
-StartupNotify=true
-Exec=xvic
-Icon=vice
-Terminal=false
-Type=Application
-Categories=System
diff --git a/system/vice/doinst.sh b/system/vice/doinst.sh
index 2dde7a5cb4..4079257f08 100644
--- a/system/vice/doinst.sh
+++ b/system/vice/doinst.sh
@@ -1,15 +1,13 @@
+if [ -x /usr/bin/xdg-desktop-menu ]; then
+ /usr/bin/xdg-desktop-menu install \
+ usr/share/desktop-directories/vice-org-vice-org.directory \
+ usr/share/applications/vice-org-*.desktop
+fi
+
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
-if [ -x /usr/bin/mkfontdir ]; then
- ( cd /usr/share/fonts/TTF
- mkfontscale .
- mkfontdir .
- )
+if [ -x /usr/bin/install-info -a -e usr/info/vice.info.gz ]; then
+ /usr/bin/install-info usr/info/vice.info.gz usr/info/dir
fi
-if [ -x /usr/bin/fc-cache ]; then
- /usr/bin/fc-cache -f
-fi
-
-chroot . /usr/bin/install-info --info-dir=/usr/info /usr/info/vice.info.gz
diff --git a/system/vice/douninst.sh b/system/vice/douninst.sh
new file mode 100644
index 0000000000..1bef502028
--- /dev/null
+++ b/system/vice/douninst.sh
@@ -0,0 +1,6 @@
+if [ -x /usr/bin/install-info -a -d usr/info ]; then
+ ( cd usr/info
+ rm -f dir
+ for i in *.info*; do /usr/bin/install-info $i dir 2>/dev/null; done
+ )
+fi
diff --git a/system/vice/fix_texi.diff b/system/vice/fix_texi.diff
new file mode 100644
index 0000000000..c1a264538a
--- /dev/null
+++ b/system/vice/fix_texi.diff
@@ -0,0 +1,79 @@
+diff -Naur vice-3.8/doc/vice.texi vice-3.8.patched/doc/vice.texi
+--- vice-3.8/doc/vice.texi 2023-12-24 12:42:36.000000000 -0500
++++ vice-3.8.patched/doc/vice.texi 2024-02-13 20:17:44.907985392 -0500
+@@ -1486,7 +1486,7 @@
+ * Romset files:: Files defining the machine's ROM set.
+ @end menu
+
+-@node ROM files, Keymap files, Gtk3 Hotkeys files, System files, System files
++@node ROM files, Keymap files, Hotkeys files, System files
+ @section ROM files
+
+ Every emulator requires its own ROM set. For the VIC20 and the C64, the
+@@ -2415,17 +2415,6 @@
+ Directives are special commands for the parser. They start with
+ @strong{@code{!}} and are case-insensitive.
+
+-@menu
+-* !CLEAR::
+-* !DEBUG::
+-* !ELSE::
+-* !ENDIF::
+-* !IF::
+-* !INCLUDE::
+-* !UNDEF::
+-* !WARNING::
+-@end menu
+-
+ @strong{!CLEAR}
+ @quotation
+
+@@ -4954,7 +4943,7 @@
+
+ xplus4 control ports and devices:
+
+-@multitable @columnfractions .05 .33 .05 .05 .05 .05 .05 .05 .05 .05 .05
++@multitable @columnfractions .05 .33 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05
+ @headitem nr
+ @tab device
+ @tab N1
+@@ -8005,8 +7994,8 @@
+
+ The windows driver understands various options passed in the so called "mode string"
+ after a colon after the ports name: @code{COMx[:]} @code{[baud=b]} @code{[parity=p]}
+-@code{[data=d]} @code{[stop=s]} @code{[to={on|off}]} @code{[xon={on|off}]} @code{[odsr={on|off}]}
+-@code{[octs={on|off}]} @code{[dtr={on|off|hs}]} @code{[rts={on|off|hs|tg}]} @code{[idsr={on|off}]}
++@code{[data=d]} @code{[stop=s]} @code{[to=on|off]} @code{[xon=on|off]} @code{[odsr=on|off]}
++@code{[octs=on|off]} @code{[dtr=on|off|hs]} @code{[rts=on|off|hs|tg]} @code{[idsr=on|off]}
+ @end table
+
+ @table @code
+@@ -8142,8 +8131,8 @@
+
+ The windows driver understands various options passed in the so called "mode string"
+ after a colon after the ports name: @code{COMx[:]} @code{[baud=b]} @code{[parity=p]}
+-@code{[data=d]} @code{[stop=s]} @code{[to={on|off}]} @code{[xon={on|off}]} @code{[odsr={on|off}]}
+-@code{[octs={on|off}]} @code{[dtr={on|off|hs}]} @code{[rts={on|off|hs|tg}]} @code{[idsr={on|off}]}
++@code{[data=d]} @code{[stop=s]} @code{[to=on|off]} @code{[xon=on|off]} @code{[odsr=on|off]}
++@code{[octs=on|off]} @code{[dtr=on|off|hs]} @code{[rts=on|off|hs|tg]} @code{[idsr=on|off]}
+ @end table
+
+ @table @code
+@@ -9332,7 +9321,7 @@
+
+ @c ----------------------------------------------------------------
+
+-@c @node Misc settings, , Monitor settings, Settings and resources
++@node Misc settings, , Monitor settings, Settings and resources
+ @c @section Miscellaneous settings
+
+ @node Machine-specific features, Platform-specific features, Settings and resources, Top
+@@ -20784,7 +20773,7 @@
+ @end table
+
+
+-@c @node Miscellaneous commands, , Profiling commands, Monitor
++@node Miscellaneous commands, , Profiling commands, Monitor
+ @section Resources commands
+
+ @table @code
diff --git a/system/vice/man/c1541.1 b/system/vice/man/c1541.1
new file mode 100644
index 0000000000..5182a99e46
--- /dev/null
+++ b/system/vice/man/c1541.1
@@ -0,0 +1,162 @@
+.TH C1541 1 "May 2018" "VICE"
+.SH NAME
+c1541 \- a stand alone disk image maintenance program
+.SH SYNOPSIS
+.IR c1541
+[options] [image]
+.SH DESCRIPTION
+.IR c1541
+is a stand alone program that can be used for D64, D71, D81, X64 and G64
+disk image file maintenance. It is part of the
+.IR VICE
+emulator.
+.P
+.IR c1541
+can be used both in interactive and batch mode. It will start in interactive
+mode if no images and no options are specified or if one image is specified;
+when started in interactive mode, command line editing and command history
+are available.
+.P
+Each command line option for use in batch mode has an interactive mode
+counterpart, that is shown in parenthesis.
+.TP 8
+.B \-@ \fIcommand\fR
+execute CBM DOS command
+.TP
+.B \-attach \fIimage\fR (attach \fIimage\fR)
+attach \fIimage\fR for use. All consequent commands in interactive mode will
+refer to this image.
+.TP
+.B \-bam [\fIunit\fR] | \fItrack-min\fR \fItrack_max\fR [\fIunit\fR] (bam [\fIunit\fR] | \fItrack-min\fR \fItrack_max\fR [\fIunit\fR])
+show bam bitmap of an imagem optionally specifying unit and/or a slice of the tracks using \fItrack-min\fR and \fItrack-max\fR.
+.TP
+.B \-bcopy \fIsrc_trk\fR \fIsrc_sec\fR \fIdst_trk\fR \fIdst_sec\fR [\fIsrc_unit\fR [\fIdst_unit\fR]] (bcopy \fIsrc_trk\fR \fIsrc_sec\fR \fIdst_trk\fR \fIdst_sec\fR [\fIsrc_unit\fR [\fIdst_unit\fR]])
+copy a block to another block. When not using the optional unit numbers, the block is copied among the current unit. If one unit (\fIsrc_unit\fR) is specified that unit is used for both source and destination. Using both unit number allows copying blocks between different units.
+.TP
+.B \-bfill \fItrack\fR \fIsector\fR \fIvalue\fR \fI[unit]\fR (bfill \fItrack\fR \fIsector\fR \fIvalue\fR \fI[unit]\fR)
+fill a block with a single value.
+.TP
+.B \-block \fItrack\fR \fIsector\fR \fI[offset]\fR \fI[unit]\fR (block \fItrack\fR \fIsector\fR \fI[offset]\fR \fI[unit]\fR)
+show disk blocks in hex format.
+.TP
+.B \-bpoke [\fI[@unit:]\fR \fItrack\fR \fIsector\fR \fIoffset\fR \fIdata\fR (bpoke [\fI[@unit:]\fR \fItrack\fR \fIsector\fR \fIoffset\fR \fIdata\fR)
+poke data into a block. The \fIdata\fR list should be at least a single byte. Multiple prefixes for the data are supported: 0x/$ for hex, 0b/% for binary, & for octal and unadorned for plain decimal.
+.TP
+.B \-bread \fIfilename\fR \fItrack\fR \fIsector\fR [\fIunit\fR] (bread \fIfilename\fR \fItrack\fR \fIsector\fR [\fIunit\fR])
+read a block from the disk image at (\fItrack\fR,\fIsector\fR) and write it to the host file system as \fIfilename\fR.
+.TP
+.B \-bwrite \fIfilename\fR \fItrack\fR \fIsector\fR [\fIunit\fR] (bwrite \fIfilename\fR \fItrack\fR \fIsector\fR [\fIunit\fR])
+write a block from \fIfilename\fR on the host file system to a disk image at (\fItrack\fR,\fIsector\fR).
+.TP
+.B \-chain \fItrack\fR \fIsector\fR \fi[unit]\fR (chain \fItrack\fR \fIsector\fR \fI[unit]\fR)
+show block chain starting at (\fItrack\fR,\fIsector\fR). The last number shown is the number of bytes in the final block.
+.TP
+.B \-copy \fIimage\fR \fIoldname1\fR \fI[oldname2...]\fR \fInewname\fR (copy \fIoldname1\fR \fI[oldname2...]\fR \fInewname\fR)
+concatenate \fIoldname1\fR, \fIoldname2\fR... into \fInewname\fR on \fIimage\fR
+(can be used to copy files).
+.TP
+.B \-delete \fIimage\fR \fIfiles...\fR (delete \fIfiles...\fR)
+delete \fIfiles\fR from \fIimage\fR
+.TP
+.B \-dir \fI[pattern]\fR (dir \fI[pattern]\fR)
+list directory. See the \fBlist\fR command for details.
+.TP
+.B \-extract \fIimage\fR (extract \fIimage\fR)
+extract all files from \fIimage\fR.
+.TP
+.B \-format \fIimage\fR (format \fIimage\fR '\fIname,id\fR')
+format the disk image \fIimage\fR with the specified label. \fIimage\fR is
+created if it does not exist.
+.TP
+.B \-geosextract \fIsource\fR (geosextract \fIsource\fR)
+extract all the files to the file system and GEOS Convert them.
+.TP
+.B \-geosread \fIsource\fR \fI[destination]\fR (geosread \fIsource\fR \fI[destination]\fR)
+read GEOS \fIsource\fR from the disk image and copy it as a Convert file into
+\fIdestination\fR in the file system. If \fIdestination\fR is not specified,
+copy it into a file with the same name as \fIsource\fR.
+Please note that since GEOS files are stored in ASCII, violating CBMDOS
+conventions, the filename should be given in inverted case.
+.TP
+.B \-geoswrite \fIsource\fR (geoswrite \fIsource\fR)
+write GEOS Convert file \fIsource\fR from the file system on a disk image.
+.TP
+.B \-help \fI[command]\fR (help)
+show help on all commands or more detailed help on a specific \fIcommand\fR
+.TP
+.B \-info \fIimage\fR \fI[unit]\fR (info \fI[unit]\fR)
+show information about image (format, geometry, error-block, write-protect)
+.TP
+.B \-list \fI[pattern]\fR (list)
+list directory. The optional \fIpattern\fR accepts the usual
+CBM DOS wildcards (\fB*\fR and \fB?\fR) and also supports file type selection
+with '=X', where \fBX\fR is one of \fBS\fR, \fBP\fR, \fBU\fR or \fBR\fR.
+Multiple sub patterns can be specified by using comma's.
+.TP
+.B \-name \fIdiskname[,id]\fR \fI[unit]\fR (name \fIdiskname[,id]\fR \fI[unit]\fR)
+set diskname and optionally id.
+.TP
+.B \-p00save \fIenable\fR \fI[unit]\fR (p00save \fIenable\fR \fI[unit\fR)
+save P00 files to the file system.
+.TP
+.B \-read \fIimage\fR \fI1541name\fR \fI[fsname]\fR (read \fI1541name\fR \fI[fsname]\fR)
+extract \fI1541name\fR from the disk image into \fIfsname\fR (\fI1541name\fR
+by default) from \fIimage\fR.
+.TP
+.B \-rename \fIoldname\fR \fInewname\fR (rename \fIoldname\fR \fInewname\fR)
+rename files. The files must be on the same drive.
+.TP
+.B \-show \fI'copying'\fR|\fI'warranty'\fR (show \fI'copying'\fR|\fI'warranty'\fR)
+show license or warranty information.
+.TP
+.B \-tape \fIimage\fR \fItapeimage\fR \fI[files...]\fR (tape \fIimage\fR \fItapeimage\fR \fI[files...]\fR)
+transfer \fIfiles\fR from \fItapeimage\fR to \fIimage\fR (default is all files).
+.TP
+.B \-unlynx \fIarchive\fR \fI[unit]\fR (unlynx \fIarchive\fR \fI[unit]\fR)
+dissolve Lynx \fIarchive\fR.
+.TP
+.B \-validate \fIimage\fR (validate)
+validate \fImage\fR.
+.TP
+.B \-verbose \fR[off] (verbose [off])
+set verbose mode. Output extra logging information, disable with \fBverbose off\fR.
+.TP
+.B \-write \fIimage\fR \fIfsname\fR \fI[1541name]\fR (write \fIfsname\fR \fI[1541name]\fR)
+write \fIfsname\fR to \fIimage\fR as \fI1541name\fR (\fIfsname\fR by default).
+(works with \fIP00\fR files as well).
+.TP
+.B \-zcreate \fIx64name\fR \fIzipname\fR [\fIlabel,id\fR] (zcreate \fIx64name\fR \fIzipname\fR [\fIlabel,id\fR]
+create an X64 disk image from four Zipcoded files named \fI1!zipname\fR through
+\fI4!zipname\fR.
+.P
+When more than one command is specified in batch mode, all of them are
+executed in the same order they have on the command line.
+.P
+If you use
+.B \-
+as a file name, it stands for \fIstdin\fR or \fIstdout\fR.
+.P
+Exit interactive mode with either \fBexit\fR or \fBquit\fR.
+.SH SEE ALSO
+.BR vice(1),
+.BR cartconv(1),
+.BR petcat(1)
+.P
+@HTMLDOC@
+.SH AUTHORS
+Teemu Rantanen <tvr@cs.hut.fi>
+.br
+Ettore Perazzoli <ettore@comm2000.it>
+.br
+Andreas Boose <boose@linux.rz.fh-hannover.de>
+.br
+Jouko Valta <jopi@stekt.oulu.fi>
+.P
+with improvements by
+.P
+.br
+Olaf Seibert <rhialto@mbfys.kun.nl>
+.br
+Gerhard Wesp <gwesp@cosy.sbg.ac.at>
+.br
+Bas Wassink <b.wassink@ziggo.nl>
diff --git a/system/vice/man/cartconv.1 b/system/vice/man/cartconv.1
new file mode 100644
index 0000000000..4bf0a7dae8
--- /dev/null
+++ b/system/vice/man/cartconv.1
@@ -0,0 +1,247 @@
+.TH CARTCONV 1 "March 2017" "VICE"
+.SH NAME
+cartconv \- a stand alone cartridge conversion program
+.SH SYNOPSIS
+.IR cartconv
+[options]
+.SH DESCRIPTION
+.IR cartconv
+is a cartridge conversion utility, it can convert between binary and .crt
+images and it can 'insert' binary and/or .crt images into the EPROM type of
+cartridges. It is part of the
+.IR VICE
+emulator.
+.TP 8
+.B \-i \fIinput name\fR
+This parameter is mandatory, it should contain the name of the binary/.crt
+file you want to convert. For the EPROM type of cartridges this parameter
+can be used multiple times to insert images into the resulting file.
+.TP
+.B \-o \fIoutput name\fR
+This parameter is mandatory, it should contain the name of the binary/.crt
+file you want to convert the input file to.
+.TP
+.B \-t \fIcarttype\fR
+This parameter is optional. It is only needed when converting to a .crt
+file. See below for the supported cartridge types.
+.TP
+.B \-n \fIcart name\fR
+This parameter is optional and is used as the cartridge name when creating
+a .crt file.
+.TP
+.B \-l \fIloadaddress\fR
+This parameter is optional and is used as the load-address when converting
+a .crt file to a .prg file, or when converting to a generic type .crt file.
+.TP
+.B \-f \fIinput name\fR
+This parameter is optional, and is meant to output information about the
+named file. It can't be used in conjuction with any of the other parameters.
+.TP
+.B \-r
+This parameter is optional, it enables repair mode (accept broken input files)
+.TP
+.B \-q
+This parameter is optional, it disables all non-error messages
+.P
+
+The following cartridge types are supported:
+
+.TP
+.B bin
+Binary .bin file (Default crt->bin)
+.TP
+.B normal
+Generic 8kB/12kB/16kB .crt file (Default bin->crt)
+.TP
+.B prg
+Binary C64 .prg file with load-address
+.TP
+.B ulti
+Ultimax mode 4kB/8kB/16kB .crt file
+.TP
+.B ap
+Atomic Power .crt file
+.TP
+.B ar2
+Action Replay MK2 .crt file
+.TP
+.B ar3
+Action Replay MK3 .crt file
+.TP
+.B ar4
+Action Replay MK4 .crt file
+.TP
+.B ar5
+Action Replay V5 .crt file
+.TP
+.B cap
+Capture .crt file
+.TP
+.B comal
+Comal 80 .crt file
+.TP
+.B dep256
+Dela EP256 .crt file, extra files can be inserted
+.TP
+.B dep64
+Dela EP64 .crt file, extra files can be inserted
+.TP
+.B dep7x8
+Dela EP7x8 .crt file, extra files can be inserted
+.TP
+.B din
+Dinamic .crt file
+.TP
+.B dsm
+Diashow-Maker .crt file
+.TP
+.B easy
+EasyFlash .crt file
+.TP
+.B ecr
+Easy Calc Result .crt file
+.TP
+.B epyx
+Epyx FastLoad .crt file
+.TP
+.B exos
+EXOS .crt file
+.TP
+.B expert
+Expert Cartridge .crt file
+.TP
+.B f64
+Formel 64 .crt file
+.TP
+.B fc1
+The Final Cartridge .crt file
+.TP
+.B fc3
+The Final Cartridge III .crt file
+.TP
+.B fcp
+Final Cartridge Plus .crt file
+.TP
+.B ff
+Freeze Frame .crt file
+.TP
+.B fm
+Freeze Machine .crt file
+.TP
+.B fp
+Fun Play .crt file
+.TP
+.B gk
+Game Killer .crt file
+.TP
+.B gmod2
+GMod2 .crt file
+.TP
+.B gs
+C64 Games System .crt file
+.TP
+.B ide64
+IDE64 .crt file
+.TP
+.B ieee
+IEEE-488 Interface .crt file
+.TP
+.B kcs
+KCS Power Cartridge .crt file
+.TP
+.B ks
+Kingsoft .crt file
+.TP
+.B mach5
+MACH 5 .crt file
+.TP
+.B md
+Magic Desk .crt file
+.TP
+.B mf
+Magic Formel .crt file
+.TP
+.B mikro
+Mikro Assembler .crt file
+.TP
+.B mmc64
+MMC64 .crt file
+.TP
+.B mmcr
+MMC Replay .crt file
+.TP
+.B mv
+Magic Voice .crt file
+.TP
+.B ocean
+Ocean .crt file
+.TP
+.B p64
+Prophet64 .crt file
+.TP
+.B pf
+Pagefox .crt file
+.TP
+.B rep256
+REX 256k EPROM Cart .crt file, extra files can be inserted
+.TP
+.B rgcd
+RGCD .crt file
+.TP
+.B ross
+ROSS .crt file
+.TP
+.B rr
+Retro Replay .crt file
+.TP
+.B rrnet
+RR-Net MK3 .crt file
+.TP
+.B ru
+REX Utility .crt file
+.TP
+.B s64
+Snapshot 64 .crt file
+.TP
+.B sb
+Structured BASIC .crt file
+.TP
+.B se5
+Super Explode V5.0 .crt file
+.TP
+.B sg
+Super Games .crt file
+.TP
+.B silver
+Silverrock 128K Cartridge .crt file
+.TP
+.B simon
+Simons' BASIC .crt file
+.TP
+.B ss4
+Super Snapshot V4 .crt file
+.TP
+.B ss5
+Super Snapshot V5 .crt file
+.TP
+.B star
+Stardos .crt file
+.TP
+.B wl
+Westermann Learning .crt file
+.TP
+.B ws
+Warp Speed .crt file
+.TP
+.B zaxxon
+Zaxxon .crt file
+@end table
+
+.SH SEE ALSO
+.BR vice(1),
+.BR c1541(1),
+.BR petcat(1)
+.P
+@HTMLDOC@
+.SH AUTHORS
+Marco van den Heuvel <blackystardust68@yahoo.com>
diff --git a/system/vice/man/petcat.1 b/system/vice/man/petcat.1
new file mode 100644
index 0000000000..e49cc3afc5
--- /dev/null
+++ b/system/vice/man/petcat.1
@@ -0,0 +1,219 @@
+.TH PETCAT 1 "March 2017" "VICE" "C64 Program Development"
+.nr X
+.SH NAME
+petcat \- convert and display PETSCII or BASIC files
+.SH SYNOPSIS
+.IR petcat
+[
+.B \-text
+|
+\-<\fIversion\fR>
+|
+.B \-w<\fIversion\fR>
+|
+.B \-k<\fIversion\fR>
+] [
+.B \-l \fIhexaddr\fR
+] [
+.B \-c
+|
+.B \-nc
+] [
+.B \-o \fIoutfile\fR
+] [
+.B \-skip \fIoffset\fR
+] [
+\--
+] [
+.B file list
+]
+.SH DESCRIPTION
+.IR petcat
+converts input files from the most common CBM file formats into
+printable ASCII form and writes to standard output. The type
+of input file is determined automatically, if possible, and
+appropriate conversion is performed.
+Since a few of the BASIC versions have keywords defined differently,
+the right conversion has to be selected on the command line.
+Where such confusion cannot happen, automatical recognition of input
+is used. This is useful when expanding several files at once or if
+the program contains code for several versions, selected according to
+the hardware; eg. Simons' Basic vs. Basic 7.0.
+.br
+Please note that each input file is converted individually,
+but the output is produced as continuous flow. Also, all input
+files that are read trough a pipe, are concatenated before they
+reach
+.IR petcat
+so any machine language section in between the BASIC programs causes
+all consecutive files to be taken as one machine language program.
+For that reason files containing machine language parts attached to
+them must be input separately, otherwise the remaining files won't
+be expanded.
+.IR petcat
+recognizes normal PETSCII text files (SEQ), program files containing
+directory listing, and BASIC programs. Both the original CBM files and
+files with a PC64 `P00' header are accepted. The different BASIC versions
+are not automatically distinguished, but standard C64 and C128 versions
+are used as default.
+.br
+In order to tokenize a text file into a BASIC binary file the desired
+BASIC version must be exclusively specified so that correct set of
+keywords will be used.
+If line numbers are not found in the beginning of each program line,
+the cruncher creates the missing line numbers by adding 2 to the numeric
+value of previous one.
+Since also line numbers deviating from strictly ascendind order are
+accepted, care must be taken when editing such a program on a C64 again.
+.SS Clarification
+.LP
+Since CBM programs usually contain unprintable characters, a way to
+specify them has been created.
+Normally,
+.IR petcat
+uses the same codes as most printers, but for tokenizing programs
+scanned from magazines, it can use the following convention:
+.br
+.TP 12
+.BR "{DOWN}"
+stands for single control code
+.TP
+.BR "{6 RIGHT}"
+contains amout of consecutive codes
+.TP
+List of valid mnemonics:
+.br
+{wht} {dish} {ensh} {swlc} {down} {rvon} {home} {del} {esc} {red}
+{rght} {grn} {blu} {orng} {F1} {F3} {F5} {F7} {F2} {F4} {F6} {F8}
+{sret} {swuc} {blk} {up} {rvof} {clr} {inst} {brn} {lred} {gry1}
+{gry2} {lgrn} {lblu} {gry3} {pur} {left} {yel} {cyn}
+.TP
+List of alternate mnemonics:
+.br
+{wht} {up/lo lock on} {up/lo lock off} {return} {lower case} {down}
+{rvs on} {home} {delete} {esc} {red} {right} {grn} {blu} {orange}
+{f1} {f3} {f5} {f7} {f2} {f4} {f6} {f8} {shift return} {upper case}
+{blk} {up} {rvs off} {clr} {insert} {brown} {lt red} {grey1} {grey2}
+{lt green} {lt blue} {grey3} {pur} {left} {yel} {cyn}
+.SH OPTIONS
+.TP 8
+.B \-l \fIload_address\fR
+Specify \fIload_address\fR (in hex) for tokenized program.
+.TP
+.B \-c
+Causes
+.IR petcat
+to interpret also control characters.
+By default, these strings are the same as used by printers. However,
+an alternate set is attempted whenever none within the primary set
+matches. Default is ON, unless text mode is selected.
+.TP
+.B \-nc
+Suppress control codes.
+.TP
+.B \-f
+Force overwrite of existing output file. Default true.
+.TP
+.B \-h
+Print filename and start address for each Basic file expanded. Default true.
+.TP
+.B \-nh
+Suppress file header in printout.
+.TP
+.B \-o \fIfile\fR
+Redirect output to the specified \fIfile\fR. This option overrules -h.
+When \fIfile\fP has extension `.P00' and also -w option is specified, the PC64
+file header is written automatically. .P00 file cannot be written on stdout
+but to a file only.
+.TP
+.B \-skip \fIoffset\fR
+Skip \fIoffset\fR bytes in the beginning of input file.
+.TP
+.B \-text
+Force text mode even if the input file looks like a Basic program, i.e.
+the first byte in file is 01.
+.TP
+.B \-k<\fIversion\fR>
+Just prints all valid keywords for the specified Basic \fIversion\fR.
+Without any \fIversion\fR, all names of supported BASIC versions are
+listed instead.
+.TP
+.B \-w<\fIversion\fR>
+Tokenise program listing using keywords set from the specified Basic
+\fIversion\fR.
+.TP
+\-<\fIversion\fR>
+Changes the set of keywords for the specified Basic \fIversion\fR and
+expands tokenized input file.
+Without this option
+.IR petcat
+uses V7.0 keywords in expanding.
+.SS Versions
+.TP 14
+.B 1
+Basic 1.0
+.TP
+.B 2
+Basic 2.0
+.TP
+.B a
+Basic 2.0 with AtBasic
+.TP
+.B t
+Basic 2.0 with Turtle Basic
+.TP
+.B super su se
+Basic 2.0 with Super Expander
+.TP
+.B simon si
+Basic 2.0 and Simons' Basic
+.TP
+.B speech sp
+Basic 2.0 with Speech Basic v2.7
+.TP
+.B 4
+Basic 4.0
+.TP
+.B 4e
+Basic 4.0 Extension
+.TP
+.B 3
+Basic 3.5
+.TP
+.B 7
+Basic 7.0
+.TP
+.B 10
+Basic 10.0
+.SH RESTRICTIONS
+.LP
+Line numbers must be less than 65536.
+Maximum line length is 255 bytes. Leading white space is ignored.
+Blank lines and line numbers not followed by any text are rejected.
+While expanding, Machine Language section concatenated to a BASIC
+program is ignored.
+While crunching, control codes that appear outside quotes are not
+interpreted.
+The low order byte of load address must be "01".
+.SH SEE ALSO
+.BR cat(1),
+.BR tr(1),
+.BR sed(1),
+.BR fvcbm(1),
+.BR petlp(1),
+.BR cbmconvert(1),
+.BR iso2asc(1),
+.BR ascii(7),
+.BR "\fICBM Tokens Documentation\fP",
+.BR "CBM's \fIProgrammers' Reference Guide\fP series"
+.P
+@HTMLDOC@
+.SH AUTHOR
+ Jouko Valta (jopi@stekt.oulu.fi)
+.SH Thanks to
+ Frederik Ekman (d91fe@lelle.pt.hk-r.se)
+ Marko M\(:akel\(:a (msmakela@nic.funet.fi)
+ Russell Alphey (r.alphey@dce.vic.gov.au)
+ Andr\('e Fachat (a.fachat@physik.tu-chemnitz.de)
+ Onno Ebbinge (ebbin200@hio.tem.NHL.NL)
+ Frank Kontros (jeno@kontr.uzhgorod.ua)
diff --git a/system/vice/man/vice.1 b/system/vice/man/vice.1
new file mode 100644
index 0000000000..b15ee17c81
--- /dev/null
+++ b/system/vice/man/vice.1
@@ -0,0 +1,183 @@
+.TH VICE 1 "August 2021" VICE "SlackBuilds.org"
+.SH NAME
+VICE - Versatile Commodore Emulator and Virtual Commodore Environment
+.SH DESCRIPTION
+.I VICE
+is a multi-platform emulator of the Commodore PET, CBM-II,
+VIC20, C64, C64DTV, C128 and Plus4 8-bit computers. The emulators run as
+separate programs, but have the same user interface, share the same
+settings and support the same file formats. Also some external
+utilities are provided.
+.P
+VICE is made up of the following programs:
+.TP 8
+.B x64
+a fast Commodore 64 emulator
+.TP
+.B x64sc
+an accurate Commodore 64 emulator
+.TP
+.B xscpu64
+an accurate SCPU64 emulator
+.TP
+.B x64dtv
+a C64DTV emulator
+.TP
+.B x128
+a Commodore 128 emulator
+.TP
+.B xvic
+a Commodore VIC20 emulator
+.TP
+.B xpet
+a Commodore PET emulator
+.TP
+.B xplus4
+a Commodore Plus4 emulator
+.TP
+.B xcbm2
+a Commodore CBM-II (6x0/7x0) emulator
+.TP
+.B xcbm5x0
+a Commodore CBM-II (5x0) emulator
+.TP
+.B vsid \fI[*]\fR
+a SID player
+.TP
+.B c1541 \fI[*]\fR
+a stand-alone disk image maintenance utility;
+.TP
+.B petcat \fI[*]\fR
+a Commodore BASIC (de)tokenizer;
+.TP
+.B cartconv \fI[*]\fR
+a cartridge file (bin<--->crt) converter;
+.PP
+Programs marked with \fI[*]\fR have their own man pages.
+.PP
+Any of the above programs can be run with the \fB\-\-help\fR option to
+get a list of command\-line options; there are too many to list here.
+You might want to pipe the output through a pager, e.g.
+.PP
+.B
+x64 \-\-help | less
+.PP
+The whole documentation for these programs is available in HTML
+format; the main file should be installed on your system as
+@HTMLDOC@
+.P
+The same documentation is available in PDF form as
+@PDFDOC@, or by selecting \fIHelp \-> Browse Manual\fR from within the emulator.
+.P
+For up to date news about VICE, have a look at the official home page
+at
+.P
+.RS
+http://vice-emu.sourceforge.net/
+.SH SEE ALSO
+.BR petcat(1),
+.BR cartconv(1),
+.BR c1541(1)
+.SH AUTHORS
+Marco van den Heuvel <blackystardust68@yahoo.com>
+.br
+Fabrizio Gennari <fabrizio.ge@tiscalinet.it>
+.br
+Groepaz <groepaz@gmx.net>
+.br
+Errol Smith <strobey@users.sourceforge.net>
+.br
+Olaf Seibert <rhialto@falu.nl>
+.br
+Marcus Sutton <loggedoubt@gmail.com>
+.br
+Kajtar Zsolt <soci@c64.rulez.org>
+.br
+AreaScout <areascout@gmx.at>
+.br
+Bas Wassink <b.wassink@ziggo.nl>
+.br
+Michael C. Martin <mcmartin@gmail.com>
+.br
+David Hogan <david.q.hogan@gmail.com>
+.br
+Martin Pottendorfer <pottendo@gmx.net>
+.br
+Stefan Haubenthal <polluks@users.sourceforge.net>
+.br
+BSzili <col.lawrence@gmail.com>
+.br
+Andreas Matthies <andreas.matthies@gmx.net>
+.br
+Daniel Kahlin <daniel@kahlin.net>
+.br
+Benjamin 'BeRo' Rosseaux <benjamin@rosseaux.com>
+.br
+Ulrich Schulz <peiselulli@t-online.de>
+.br
+Thomas Giesel <skoe@directbox.com>
+.br
+Ingo Korb <ingo@akana.de>
+.br
+Antti S. Lankila <alankila@bel.fi>
+.br
+Christian Vogelgsang <chris@vogelgsang.org>
+.br
+Dag Lem <resid@nimrod.no>
+.br
+Spiro Trikaliotis <Spiro.Trikaliotis@gmx.de>
+.br
+Hannu Nuotio <hannu.nuotio@tut.fi>
+.br
+Andreas Boose <viceteam@t-online.de>
+.br
+Tibor Biczo <crown@mail.matav.hu>
+.br
+M. Kiesel <mayne@users.sourceforge.net>
+.br
+Andreas Dehmel <zarquon@t-online.de>
+.br
+David Hansel <david@hansels.net>
+.br
+Markus Brenner <markus@brenner.de>
+.br
+Thomas Bretz <tbretz@ph.tum.de>
+.br
+Daniel Sladic <sladic@eecg.toronto.edu>
+.br
+Andr\('e Fachat <fachat@physik.tu-chemnitz.de>
+.br
+Ettore Perazzoli <ettore@comm2000.it>
+.br
+Teemu Rantanen <tvr@cs.hut.fi>
+.br
+Jouko Valta <jopi@stekt.oulu.fi>
+.br
+Jarkko Sonninen <sonninen@lut.fi>
+.br
+Mikkel Holm Olsen <vice-dk@symlink.dk>
+.br
+Manuel Antonio Rodriguez Bas <formater@winuaespanol.com>
+.br
+Paul Dub\('e
+.br
+Czirkos Zoltan <cirix@fw.hu>
+.br
+Karai Csaba <cskarai@freemail.hu>
+.br
+Andrea Musuruane <musuruan@bmm.it>
+.br
+Jesse Lee <interpreters.jesse@gmail.com>
+.br
+Jarek Sobolewski <r@sledinmay.com>
+.br
+Michael Litvinov <litvinov.m@i.ua>
+.br
+Peter Krefting <peter@softwolves.pp.se>
+.br
+Emir Akaydin (aka: Skate) <emir@akaydin.com>
+.br
+with several contributions from other people around the world; see the
+HTML documentation for more information.
+
+
diff --git a/system/vice/man/vsid.1 b/system/vice/man/vsid.1
new file mode 100644
index 0000000000..705dc75415
--- /dev/null
+++ b/system/vice/man/vsid.1
@@ -0,0 +1,24 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH VSID 1 "August 19, 2021" SlackBuilds.org
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.SH NAME
+vsid \- Play Commdore 64 SID music files
+.SH SYNOPSIS
+.B vsid
+.RI [vice-options]
+.RI musicfile.sid
+.SH DESCRIPTION
+.B vsid
+passes a Commodore 64 SID music file to the VICE x64 emulator, which
+then plays the default song. Any options given will also be passed to
+the emulator; in particular, use \fB\-sounddev <pulse|alsa|sdl>\fR
+to choose audio driver.
+.SH SEE ALSO
+.BR x64 (1),
+.BR sidplay (1).
+.SH AUTHOR
+This manual page was written by Zed Pobre <zed@debian.org>,
+for the Debian GNU/Linux system (but may be used by others).
+It was modified by B. Watson <urchlay@slackware.uk> for the
+SlackBuilds.org project.
diff --git a/system/vice/slack-desc b/system/vice/slack-desc
index 589a2077b8..01173caf15 100644
--- a/system/vice/slack-desc
+++ b/system/vice/slack-desc
@@ -14,6 +14,6 @@ vice: VIC20, practically all PET models, the PLUS4 and the CBM-II (aka
vice: C610/C510). An extra emulator is provided for C64 expanded with
vice: the CMD SuperCPU.
vice:
-vice: Build options: ffpmeg=@FF@, sdl=@SDL@, pulse=@PA@
+vice: Build options: SDL=@SDL@, PulseAudio=@PA@
vice:
vice: Homepage: http://vice-emu.sourceforge.io
diff --git a/system/vice/vice.SlackBuild b/system/vice/vice.SlackBuild
index 3ce07bb636..38aa08d8c5 100644
--- a/system/vice/vice.SlackBuild
+++ b/system/vice/vice.SlackBuild
@@ -1,27 +1,49 @@
#!/bin/bash
-# Slackware build script for VICE
+# Slackware build script for vice
# Copyright 2008 Mauro Giachero (email removed)
-# Copyright 2020 B. Watson (yalhcru@gmail.com)
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Copyright 2020, 2021, 2022, 2023 B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# 20240213 bkw: update for v3.8.
+# - had to add --disable-parsid to the configure command. it was breaking
+# the build. also, do you really have a SID chip connected to your
+# parallel port? (do you even *have* a parallel port?)... if so, either
+# send me a patch, or wait until upstream does another release.
+# - LAME is no longer supported, remove --enable-lame.
+# - add --enable-catweasel.
+
+# 20230504 bkw: BUILD=2.
+# - fix vice.texi so the GNU info file gets generated.
+# - remove old ./configure arguments and fix a couple of wrong ones.
+# thanks to Franzen for sending a patch to fix this.
+# - changed -Wl,--allow-multiple-definition to -fcommon, which does
+# basically the same thing but matches how other builds do it.
+# - fix doinst.sh silliness.
+# - add douninst.sh, to clean up /usr/info/dir after the package is removed.
+
+# 20221228 bkw: update for v3.7.1.
+
+# 20221129 bkw: update for v3.6.1.
+# - can't build our own HTML or plaintext docs from vice.texi.
+# - include upstream's HTML docs in package.
+
+# 20210809 bkw: update for v3.5, many changes, can't build old versions.
+# - Relicense as WTFPL, with permission from the original author.
+# - Build & install the actual HTML docs (not the bundled copy of
+# the upstream website).
+# - Don't install fonts. They were part of the above.
+# - Use upstream's .desktop files instead of our own.
+# - Upstream removed the man pages; restore them (for now).
+# - Build the gtk+3 UI. Also build the SDL2 UI, unless the user's
+# requested the SDL1 one (or disabled SDL).
+# - Really fix the paths in the documentation.
+# - ffmpeg now included in Slackware (pre-15.0 -current). Still
+# autodetected, but the docs no longer mention it.
+# - Get rid of README_SBo.txt as the build options are simpler
+# and "fit" in the regular README now.
# 20200801 bkw:
# - Take over maintenance
@@ -38,8 +60,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vice
-VERSION=${VERSION:-3.4}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-3.8}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -51,9 +73,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -82,143 +101,221 @@ fi
set -e
-# The "--enable-shared-ffmpeg" option creates conflicts with external
-# ffmpeg libraries, so we don't use it here. Static would be OK, but
-# it won't build, so it's not an option for now either: I don't care
-# enough about it to spend any more time trying to fix it. If you do
-# care, come up with a way to build with --enable-static-ffmpeg, send
-# me a patch, and I'll include it here.
-
-[ -x /usr/bin/ffmpeg ] && ffmpeg="--enable-external-ffmpeg"
-
-SDL="${SDL:-auto}"
-if [ "$SDL" = "auto" ]; then
- SDL=1
- pkg-config --exists sdl2 && SDL=2
-fi
-
-case "$SDL" in
- 1) sdlopt="--enable-sdlui" ;;
- 2) sdlopt="--enable-sdlui2" ;;
- *) echo -e "$( basename $0 ):" \
- "invalid SDL option '$SDL'." \
- "Valid options are:\n auto 1 2" \
- 1>&2
- exit 1 ;;
-esac
+# ffmpeg is included in the base OS on post-14.2 -current, but leave
+# this here in case someone's doing something clever.
+[ -x /usr/bin/ffmpeg ] && ffmpeg="--enable-ffmpeg"
# Anticipating 15.0's pure-alsa-system
+# 20240214 bkw: which sadly never materialized. I keep this here for
+# my own use, anyway.
if [ "${PULSE:-yes}" != "yes" ]; then
pulseopt="--without-pulse"
fi
-echo "=== sdlopt '$sdlopt', ffmpeg '$ffmpeg', pulseopt '$pulseopt'"
+echo "=== pulseopt='$pulseopt'"
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
+
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+
cd $PRGNAM-$VERSION
chown -R root:root .
+chmod 644 doc/html/fonts/OFL.txt # this file shouldn't be +x
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-# Set proper paths in documentation.
-sed -i "s/\/usr\/local\/lib\//\/usr\/lib${LIBDIRSUFFIX}\//g" \
- man/vice.1
-sed -i 's/"\/vice_toc\.html"/"\/html\/vice_toc\.html"/g' \
- src/arch/gtk3/uicommands.c
-sed -i "s/\/usr\/local/\/usr/g" doc/vice.* doc/html/*html
-sed -i "s/\/usr\/lib\//\/usr\/lib${LIBDIRSUFFIX}\//g" doc/vice.* doc/html/*html
-
-# Avoid the need for xa. It's only used to generate a small C header
-# file, which we include a prebuilt version of here. There's nothing
-# dynamic about this header, it's just a small chunk of 6502 object
-# code as a C array, and for a given version of vice it'll always be
-# the same code.
-cat $CWD/psiddrv.h.prebuilt.$VERSION > src/c64/psiddrv.h
-
-autoreconf -vif
+# Fix some mildly broken constructs in vice.texi, so we can generate
+# the vice.info doc.
+patch -p1 < $CWD/fix_texi.diff
DOCDIR=/usr/doc/$PRGNAM-$VERSION
PKGDOC=$PKG/$DOCDIR
-CFLAGS="$SLKCFLAGS -w -Wl,--allow-multiple-definition" \
-CXXFLAGS="$SLKCFLAGS" \
-XA=/bin/true \
-./configure \
- $sdlopt \
- $ffmpeg \
- $pulseopt \
- --enable-x64 \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --docdir=$DOCDIR \
- --with-x \
- --enable-quicktime \
- --enable-ethernet \
- --enable-parsid \
- --enable-cpuhistory \
- --build=$ARCH-slackware-linux
+# setting TEXMFVAR prevents writing to /root, which SlackBuilds
+# really shouldn't do.
+export TEXMFVAR=$( pwd )/.texmf-var
+# Set proper paths in documentation.
+rm -rf doc/vice.pdf # will be rebuilt, along with the HTML doc.
+sed -i -e "s/\/usr\/local/\/usr/g" \
+ -e "s,/lib/vice/,/share/vice/,Ig" \
+ doc/vice.texi
+autoreconf -vif
+
+# We build up to 3 times with slightly different ./configure args,
+# so make it a function.
+config() {
+ local configarg="$1"
+
+ # Avoid the need for xa. It's only used to generate a small C header
+ # file, which we include a prebuilt version of here. There's nothing
+ # dynamic about this header, it's just a small chunk of 6502 object
+ # code as a C array, and for a given version of vice it'll always be
+ # the same code. It didn't change between vice 3.4 and 3.5, either.
+ cat $CWD/psiddrv.h.prebuilt.3.4 > src/c64/psiddrv.h
+
+ # 20210809 bkw: in 3.5, upstream added dos2unix as a required dep,
+ # but it's *only used* if you run "make dist" or "make dist-gzip",
+ # which we don't do. DOS2UNIX=/bin/true bypasses the autodetection.
+ # XDG_DESKTOP_MENU=/bin/true prevents installing .desktop files,
+ # because those don't respect $DESTDIR. We can't just disable them
+ # with a configure argument, because that stops them being built
+ # at all.
+
+ # 20230504 bkw: note to self: -w means disable all warnings.
+ CFLAGS="$SLKCFLAGS -w -fcommon" \
+ CXXFLAGS="$SLKCFLAGS" \
+ DOS2UNIX=/bin/true \
+ XA=/bin/true \
+ XDG_DESKTOP_MENU=/bin/true \
+ ./configure \
+ $configarg \
+ $ffmpeg \
+ $pulseopt \
+ --enable-html-docs \
+ --enable-platformdox \
+ --enable-x64 \
+ --enable-x64-image \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=$DOCDIR \
+ --enable-ethernet \
+ --disable-parsid \
+ --enable-cpuhistory \
+ --with-mpg123 \
+ --with-flac \
+ --with-vorbis \
+ --with-gif \
+ --with-png \
+ --enable-midi \
+ --enable-catweasel \
+ --build=$ARCH-slackware-linux
+
+ make
+}
+
+# SDL UI: *Only* build/install the binaries (not the docs or ROMs),
+# rename them to <whatever>-sdl2 (or -sdl1).
+buildsdl() {
+ local exesuf="-sdl$1"
+ local configarg="--disable-pdf-docs --enable-sdl${1}ui"
+
+ config "$configarg"
+ make -C src install-binPROGRAMS \
+ DESTDIR="$PKG" \
+ EXEEXT="$exesuf" \
+ INSTALL_PROGRAM="install -s -m0755"
+
+ # get rid of the non-graphical tools (the gtk3 build will
+ # install them again without -$exesuf).
+ rm -f $PKG/usr/bin/[cp]*$exesuf
+
+ make distclean
+}
+
+# Build the SDL binaries, unless disabled.
+# Be generous in what we accept for SDL in the env. "both" isn't
+# mentioned in README, it's probably only useful to me.
+case "${SDL:-2}" in
+ ""|2*|y*|Y*|t*|T*) buildsdl 2 ;;
+ 1*) buildsdl 1 ;;
+ both) buildsdl 1 ; buildsdl 2 ;;
+ n*|N*|f*|F*|0*) ;; # NOP
+ *) cat <<EOF
+
+***
+$0: invalid value for SDL environment variable.
+Allowed values: "1", "2", "no", "both", or empty/unset (same as "2").
+***
+EOF
+ exit 1 ;;
+esac
+
+# Now build & install the whole project with the gtk3 UI.
+config "--enable-gtk3ui --enable-desktop-files"
make
make install-strip DESTDIR=$PKG
-rm -f $PKG/usr/info/dir
-gzip -9 $PKG/usr/man/man?/*.? $PKG/usr/info/*
-
-mkdir -p $PKG/usr/share/{applications,pixmaps}
-install -D -m 0644 $CWD/config/*.desktop $PKG/usr/share/applications
-install -D -m 0644 $CWD/config/vice.png $PKG/usr/share/pixmaps
-# Move the docs to the Slackware standard place, symlink to where vice
-# expects it to be.
+# 20240214 bkw: in 3.8, 'make install' no longer installs any of
+# the docs. Do it manually. Leave out building/ (we don't need to
+# care about building on fedora, windows, mac OS).
mkdir -p $PKGDOC
-mv $PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM/doc/* $PKGDOC
-( cd $PKGDOC
- chmod 644 *
- mkdir html
- mv *.html *.png *.gif *.css html/ )
-( cd $PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM
- rmdir doc
- ln -s $DOCDIR doc )
-
-# 20200728 bkw: when I inherited this build, it was installing the
-# fonts to the doc dir (where they can't be used), but updating
-# the font cache in doinst.sh. I'm not so sure the fonts are
-# really necessary, but in case they are, I've moved them to
-# /usr/share/fonts/TTF (and gotten rid of the non-TTF ones).
-mkdir -p $PKG/usr/share/fonts/TTF
-mv $PKGDOC/*.ttf $PKG/usr/share/fonts/TTF
-rm -f $PKGDOC/Lato-*
-
-# This would install Commodore font where other software can use it.
-# However, the characters in the font are in PETSCII order, not ASCII
-# or Unicode, so it's not all that useful.
-#ln -s ../../../lib$LIBDIRSUFFIX/$PRGNAM/common/CBM.ttf $PKG/usr/share/fonts/TTF
-
-cp -a AUTHORS ChangeLog COPYING FEEDBACK NEWS README $PKGDOC
+cp -a doc/*.txt $PKGDOC
+
+# Install desktop files manually.
+mkdir -p $PKG/usr/share/desktop-directories \
+ $PKG/usr/share/applications
+install -m0644 src/arch/gtk3/data/unix/vice*desktop \
+ $PKG/usr/share/applications
+install -m0644 src/arch/gtk3/data/unix/vice*directory \
+ $PKG/usr/share/desktop-directories
+
+# Documentation. vice.pdf has already been installed to the doc dir.
+# Generate info, plaintext, and HTML versions here. The text doc is
+# harder to navigate, but easier to grep, so it's worth having IMO.
+# 20221130 bkw: vice.texi no longer works with makeinfo, as of
+# vice-3.6.1. Not sure whether this is because we have an
+# outdated texinfo package in Slackware 15.0, or because upstream
+# broke some kind of rule... regardless, it's disabled for now.
+# 20230504 bkw: Patched vice.texi, so this is now enabled by default.
+if [ "${MAKEINFO:-yes}" = "yes" ]; then
+ makeinfo doc/$PRGNAM.texi
+ mkdir -p $PKG/usr/info
+ mv $PRGNAM.info* $PKG/usr/info
+ gzip -9 $PKG/usr/info/*
+
+ makeinfo --plaintext doc/$PRGNAM.texi > $PKGDOC/$PRGNAM.txt
+fi
+
+# 20221130 bkw: HTML docs do get built, but never installed.
+mkdir -p $PKGDOC/html
+cp -a doc/html/{NEWS,COPYING,fonts/,images/,*.{html,css,ico}} $PKGDOC/html
+ln -s html/NEWS $PKGDOC/NEWS
+ln -s html/COPYING $PKGDOC/COPYING
+
+# 20210810 bkw: as of 3.5, upstream dropped the man pages. I'm
+# including the man pages from 3.4 in the 3.5 package. Edited them
+# slightly to add correct paths to the HTML and PDF docs, also
+# convert the iso-8859-1 characters into troff escapes. Also
+# added (and expanded) vsid.1 from Debian.
+mkdir -p $PKG/usr/man/man1
+for i in $CWD/man/*.?; do
+ sed -e "s,@HTMLDOC@,$DOCDIR/html/index.html," \
+ -e "s,@PDFDOC@,$DOCDIR/$PRGNAM.pdf," \
+ < $i > $PKG/usr/man/man1/$( basename $i )
+done
+gzip -9 $PKG/usr/man/man?/*.?
+for i in x64 x64sc xscpu64 x64dtv x128 xvic xpet xplus4 xcbm2 xcbm5x0; do
+ ln -s vice.1.gz $PKG/usr/man/man1/$i.1.gz
+done
+
+cp -a NEWS README $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
# Make the slack-desc reflect the build options.
-FF=no; SDL=1.2; PA=no
-
-# We can't use ldd to detect whether ffmpeg is built in since it
-# gets loaded with dlopen(). Hence this stuff:
-grep -q '^#define USE_SDLUI2\>' src/config.h && SDL=2.0
-grep -q '^#define HAVE_FFMPEG\>' src/config.h && FF=yes
-grep -q '^#define USE_PULSE\>' src/config.h && PA=yes
+PA=no
+if [ "$SDL" = "both" ]; then
+ SDL="1.2 and 2.0"
+else
+ SDL=no
+ [ -x $PKG/usr/bin/x128-sdl1 ] && SDL=1.2
+ [ -x $PKG/usr/bin/x128-sdl2 ] && SDL=2.0
+fi
+grep -q '^#define USE_PULSE\>' src/config.h && PA=yes
mkdir -p $PKG/install
-sed -e "s,@FF@,$FF," \
- -e "s,@PA@,$PA," \
+sed -e "s,@PA@,$PA," \
-e "s,@SDL@,$SDL," \
- $CWD/slack-desc > $PKG/install/slack-desc
+ $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/douninst.sh > $PKG/install/douninst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/system/vice/vice.info b/system/vice/vice.info
index 481d98ad3f..f3ab5a74cb 100644
--- a/system/vice/vice.info
+++ b/system/vice/vice.info
@@ -1,10 +1,10 @@
PRGNAM="vice"
-VERSION="3.4"
-HOMEPAGE="http://vice-emu.sourceforge.io"
-DOWNLOAD="https://downloads.sourceforge.net/project/vice-emu/releases/vice-3.4.tar.gz"
-MD5SUM="24d83f692910f5d87de19857e8095f0b"
+VERSION="3.8"
+HOMEPAGE="https://vice-emu.sourceforge.io"
+DOWNLOAD="https://downloads.sourceforge.net/project/vice-emu/releases/vice-3.8.tar.gz"
+MD5SUM="023febe71bef57ff2537b6b5e961bd7a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
-EMAIL="yalhcru@gmail.com"
+EMAIL="urchlay@slackware.uk"