summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--games/ovcc/README11
-rw-r--r--games/ovcc/doinst.sh9
-rw-r--r--games/ovcc/git2tarxz.sh66
-rw-r--r--games/ovcc/ovcc.6145
-rw-r--r--games/ovcc/ovcc.SlackBuild146
-rw-r--r--games/ovcc/ovcc.desktop8
-rw-r--r--games/ovcc/ovcc.info18
-rw-r--r--games/ovcc/ovcc.pngbin0 -> 7357 bytes
-rw-r--r--games/ovcc/ovcc.rst137
-rw-r--r--games/ovcc/ovcc.sh37
-rw-r--r--games/ovcc/slack-desc19
11 files changed, 596 insertions, 0 deletions
diff --git a/games/ovcc/README b/games/ovcc/README
new file mode 100644
index 0000000000..463031c30e
--- /dev/null
+++ b/games/ovcc/README
@@ -0,0 +1,11 @@
+ovcc (CoCo 3 emulator)
+
+ovcc is the portable and Open Virtual Color Computer, a cross-platform
+port of the Windows-only VCC emulator.
+
+ovcc is an accurate emulation of a "stock" Tandy Color Computer 3 (aka
+CoCo 3), just as you would have bought in a Radio Shack store or Tandy
+Computer Center in 1986-1992.
+
+The package includes the ROM images needed for all the emulated
+hardware.
diff --git a/games/ovcc/doinst.sh b/games/ovcc/doinst.sh
new file mode 100644
index 0000000000..65c7e2eeb9
--- /dev/null
+++ b/games/ovcc/doinst.sh
@@ -0,0 +1,9 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
diff --git a/games/ovcc/git2tarxz.sh b/games/ovcc/git2tarxz.sh
new file mode 100644
index 0000000000..b3d5c34daf
--- /dev/null
+++ b/games/ovcc/git2tarxz.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+# Create source tarball from git repo, with generated version number.
+
+# Takes one optional argument, which is the commit or tag to create a
+# tarball of. With no arg, HEAD is used.
+
+# Version number example: 0.0.1+20200227_ad7ec17
+
+# Notes:
+
+# Do not use this if you're packaging a release.
+
+# This script doesn't need to be run as root. It does need to be able
+# to write to the current directory it's run from.
+
+# Running this script twice for the same commit will NOT give identical
+# tarballs, even if the contents are identical. This is because tar
+# includes the current time in a newly-created tarball (plus there may
+# be other git-related reasons).
+
+# Once you've generated a tarball, you'll still need a place to host it.
+# Ask on the mailing list, if you don't have your own web server to
+# play with.
+
+## Config:
+# Github project and user names:
+PRGNAM=ovcc
+CLONE_URL=https://github.com/WallyZambotti/OVCC
+
+## End of config.
+
+set -e
+
+GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
+rm -rf $GITDIR
+git clone $CLONE_URL $GITDIR
+
+CWD="$( pwd )"
+cd $GITDIR
+
+if [ "$1" != "" ]; then
+ git reset --hard "$1" || exit 1
+fi
+
+GIT_SHA=$( git rev-parse --short HEAD )
+
+DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 )
+
+# ovcc doesn't use tags, but does have a version number, in the git log.
+LOGVER=1.6.0
+
+VERSION=$LOGVER+${DATE}_${GIT_SHA}
+
+rm -rf .git
+find . -name .gitignore -print0 | xargs -0 rm -f
+
+cd "$CWD"
+rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
+mv $GITDIR $PRGNAM-$VERSION
+tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
+
+echo
+echo "Created tarball: $PRGNAM-$VERSION.tar.xz"
+echo "VERSION=\"$VERSION\""
+echo "MD5SUM=\"$( md5sum $PRGNAM-$VERSION.tar.xz | cut -d' ' -f1 )\""
diff --git a/games/ovcc/ovcc.6 b/games/ovcc/ovcc.6
new file mode 100644
index 0000000000..24f282aa5a
--- /dev/null
+++ b/games/ovcc/ovcc.6
@@ -0,0 +1,145 @@
+.\" 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 "OVCC" 6 "2023-05-23" "1.6.0+20230510_f6c395c" "SlackBuilds.org"
+.SH NAME
+ovcc \- TRS-80 CoCo 3 emulator
+.\" RST source for ovcc(1) man page. Convert with:
+.
+.\" rst2man.py ovcc.rst > ovcc.6
+.
+.SH SYNOPSIS
+.sp
+\fBovcc\fP [\fIquickload\-file\fP]
+.SH DESCRIPTION
+.sp
+\fBovcc\fP is "the portable and open Virtual Color Computer", an emulator
+for the TRS\-80 Color Computer 3.
+.sp
+This man page documents \fBovcc\fP as packaged by SlackBuilds.org.
+.sp
+[\fIquickload\-file\fP] can be a cartridge ROM image (\fB*.rom\fP or \fB*.ccc\fP)
+or a binary executable (\fB*.bin\fP). If the file exists, it will be
+loaded into the emulator at startup and executed. The filename
+extensions are required, although they are case\-insensitive.
+.sp
+There are no other command\-line options.
+.SH KEYBOARD
+.sp
+The keyboard is laid out like the CoCo 3, meaning that e.g. the
+double\-quote is \fIShift\-2\fP\&.
+.sp
+While \fBovcc\fP is running, press \fIF12\fP for a list of keyboard commands.
+.SH DISK IMAGES
+.sp
+To use a disk image (\fB*.dsk\fP), first connect the floppy drive:
+select \fICartridge\fP \-> \fILoad Cart\fP \-> \fBlibfd502.so\fP\&. After doing
+this, the \fICartridge\fP menu will now have entries for 4 drives. Select
+\fIFD\-502 Drive 0\fP \-> \fIInsert\fP, then use the file selector to navigate
+to the disk image. If necessary, you can choose \fIFile\fP \-> \fIHard Reset\fP
+or press \fIF9\fP to reboot the Coco 3.
+.sp
+Note that it\(aqs easier to move or symlink the disk images into the
+\fB~/.ovcc\fP directory, since this is the default location for the file
+selector.
+.sp
+All the inserted media are remembered in the config file, so when
+you exit and re\-run \fBovcc\fP, the devices and disks will still be
+connected and loaded.
+.SH FILES
+.INDENT 0.0
+.TP
+.B /usr/games/ovcc
+Shell script wrapper, which sets up the per\-user working directory if
+needed, \fBchdir\fPs to it, and executes the real executable.
+.TP
+.B /usr/libexec/ovcc/ovcc
+The actual executable. Normally you don\(aqt want to call this directly.
+Since \fBovcc\fP was ported from Windows, it expects to find its config
+files, ROMs, and loadable modules in the directory it was launched from.
+.TP
+.B ~/.ovcc
+Per\-user working directory for \fBovcc\fP\&. If this dir doesn\(aqt exist, the
+\fBovcc\fP wrapper script will create it. Contents:
+.INDENT 7.0
+.TP
+.B Vcc.ini
+The config file. Human\-readable and (if you\(aqre careful), editable. However,
+the primary way to change the settings here is to use the graphical user
+interface. Any changes made there will be written to this file.
+.TP
+.B Vcc.ini_bck
+Backup of the config file, created whenever \fBovcc\fP is about to overwrite the
+config.
+.TP
+.B lib*.so
+Loadable modules which emulate various hardware that can be attached to the
+CoCo 3. In the GUI, you load these from the Cartridge menu. The standard
+floppy disk module is \fBlibfd502.so\fP\&. These are symlinks to the real files
+in the package.
+.sp
+For a description of each emulated device, see:
+.sp
+\fI\%https://raw.githubusercontent.com/VCCE/VCC/main/README.md\fP
+.TP
+.B *.rom
+ROM images.
+.sp
+\fBcoco3.rom\fP is automatically loaded when the emulator starts up.
+.sp
+\fBdisk11.rom\fP is loaded when the \fBlibfd502.so\fP module is loaded.
+.sp
+Other modules may require other ROM images (not included in the SBo package).
+.UNINDENT
+.UNINDENT
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/ovcc\-1.6.0+20230510_f6c395c/README.md for license information.
+.SH AUTHORS
+.sp
+ovcc was ported from the original VCC by Joseph Forgione.
+.sp
+VCC was written by the VCC Developement Team.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+The ovcc homepage: \fI\%https://github.com/WallyZambotti/OVCC\fP
+.sp
+The original (Windows\-only) VCC homepage: \fI\%https://github.com/VCCE/VCC/\fP
+.sp
+The TRS\-80 Color Computer Archive, which has lots of software for TRS\-80
+CoCo machines, including the CoCo 3:
+.sp
+\fI\%https://colorcomputerarchive.com/\fP
+.sp
+\fBxroar\fP(6), which can emulate the Color Computer 2.
+.\" Generated by docutils manpage writer.
+.
diff --git a/games/ovcc/ovcc.SlackBuild b/games/ovcc/ovcc.SlackBuild
new file mode 100644
index 0000000000..4b97d3bfc9
--- /dev/null
+++ b/games/ovcc/ovcc.SlackBuild
@@ -0,0 +1,146 @@
+#!/bin/bash
+
+# Slackware build script for ovcc
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# This started out as a Windows app, it expects everything to be
+# in the current directory (its .ini file, ROMs, "paks" which are
+# loadable shared libs). So use a wrapper script to symlink up a dir
+# in the user's $HOME, and keep the real binary out of $PATH.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=ovcc
+VERSION=${VERSION:-1.6.0+20230510_f6c395c}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-$VERSION
+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 {} \+
+
+# Do not trust precompiled stuff.
+rm -f testlib mpu/flt
+
+# Build everything stripped.
+sed -i '/^LDFLAGS /s|=|= -Wl,-s|' Makefile.common
+
+LIBDIR=/usr/lib$LIBDIRSUFFIX/$PRGNAM
+
+# Multiple Makefiles, no DESTDIR support.
+runmake() {
+ local destdir="$1"
+ [ -n "$1" ] && shift
+ make \
+ OPT="$SLKCFLAGS" \
+ prefix=$destdir/usr \
+ LIBDIR=$destdir/$LIBDIR \
+ EXEDIR=$destdir/usr/libexec/$PRGNAM \
+ "$@"
+}
+
+runmake
+runmake $PKG install
+
+# Shared libs are supposed to be +x.
+chmod 755 $PKG/usr/lib*/$PRGNAM/*.so
+
+# Wrapper script.
+mkdir -p $PKG/usr/games
+sed "s,@64@,$LIBDIRSUFFIX,g" $CWD/$PRGNAM.sh > $PKG/usr/games/$PRGNAM
+chmod +x $PKG/usr/games/$PRGNAM
+
+# ROMs. Same as what MAME/MESS uses.
+# from grepping the source, it needs these ROMs:
+# coco3.rom (coco3.zip; always required)
+# disk11.rom (coco3.zip; needed for libfd502.so)
+# rgbdos.rom (disk11.rom; needed for libharddisk.so, can be used by libfd502.so)
+# orch90.rom (coco_orch90.zip; liborch90.so)
+# hdbdwbck.rom (libbecker.so; coco3_hdb1.zip)
+
+unzip $CWD/coco3.zip -d $PKG/$LIBDIR
+unzip -p $CWD/coco_orch90.zip '*.ccc' > $PKG/$LIBDIR/orch90.rom
+unzip -p $CWD/coco3_hdb1.zip '*.rom' > $PKG/$LIBDIR/hdbdwbck.rom
+# Not 100% sure this is the correct ROM, but it seems to work:
+cat $CWD/disk11.rom > $PKG/$LIBDIR/rgbdos.rom
+
+# Icon converted from ovcc.app/Contents/Resources/Icon.icns. Use
+# adaptive resize because with plain -resize, the 16x16 and 22x22
+# icons are just a smear of grey. They still look awful though. But
+# upstream's windows icon (OVCC/CoCo/ovcc.ico) looks just as bad.
+for px in 16 22 32 48 64 96 128 256; do
+ size=${px}x${px}
+ dir=$PKG/usr/share/icons/hicolor/$size/apps
+ mkdir -p $dir
+ convert -adaptive-resize $size $CWD/$PRGNAM.png $dir/$PRGNAM.png
+done
+
+mkdir -p $PKG/usr/share/pixmaps
+ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
+
+# man page by SlackBuild author. I wasn't going to do this, but I can't find
+# any documentation at all on actually using ovcc, so I had to trial-and-error.
+# Hopefully documenting my results will save someone some time.
+mkdir -p $PKG/usr/man/man6
+gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
+
+# .desktop file by SlackBuild author.
+mkdir -p $PKG/usr/share/applications
+cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+
+# Precious little documentation. README.md is mostly install instructions,
+# but it's all we have.
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+cp -a README.md $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/games/ovcc/ovcc.desktop b/games/ovcc/ovcc.desktop
new file mode 100644
index 0000000000..a15a13c8ca
--- /dev/null
+++ b/games/ovcc/ovcc.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=ovcc
+Comment=TRS-80 CoCo III Emulator
+Exec=/usr/games/ovcc %F
+Icon=ovcc
+Terminal=false
+Categories=Game;Emulator;
diff --git a/games/ovcc/ovcc.info b/games/ovcc/ovcc.info
new file mode 100644
index 0000000000..b5e04059f4
--- /dev/null
+++ b/games/ovcc/ovcc.info
@@ -0,0 +1,18 @@
+PRGNAM="ovcc"
+VERSION="1.6.0+20230510_f6c395c"
+HOMEPAGE="https://github.com/WallyZambotti/OVCC"
+DOWNLOAD="https://slackware.uk/~urchlay/src/ovcc-1.6.0+20230510_f6c395c.tar.xz \
+ https://colorcomputerarchive.com/repo/ROMs/MAME-MESS/coco3.zip \
+ https://colorcomputerarchive.com/repo/ROMs/MAME-MESS/coco_orch90.zip \
+ https://colorcomputerarchive.com/repo/ROMs/RGBDOS/MESS/disk11.rom \
+ https://colorcomputerarchive.com/repo/ROMs/MAME-MESS/coco3_hdb1.zip"
+MD5SUM="5a151d00d8ce9a017a0f578d1ab2f435 \
+ 57edb0561a11265b8777ed76e5f37b79 \
+ 834aa159b22f79396bc5bb7ec91d71ed \
+ 196124f2e10da318e5d355814cfcaa2c \
+ 328277bb10f45ca9bdcf7789b4fef99f"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="agar"
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"
diff --git a/games/ovcc/ovcc.png b/games/ovcc/ovcc.png
new file mode 100644
index 0000000000..ef8a42f914
--- /dev/null
+++ b/games/ovcc/ovcc.png
Binary files differ
diff --git a/games/ovcc/ovcc.rst b/games/ovcc/ovcc.rst
new file mode 100644
index 0000000000..e1b95bc14f
--- /dev/null
+++ b/games/ovcc/ovcc.rst
@@ -0,0 +1,137 @@
+.. RST source for ovcc(1) man page. Convert with:
+.. rst2man.py ovcc.rst > ovcc.6
+
+.. |version| replace:: 1.6.0+20230510_f6c395c
+.. |date| date::
+
+====
+ovcc
+====
+
+----------------------
+TRS-80 CoCo 3 emulator
+----------------------
+
+:Manual section: 6
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**ovcc** [*quickload-file*]
+
+DESCRIPTION
+===========
+
+**ovcc** is "the portable and open Virtual Color Computer", an emulator
+for the TRS-80 Color Computer 3.
+
+This man page documents **ovcc** as packaged by SlackBuilds.org.
+
+[*quickload-file*] can be a cartridge ROM image (**\*.rom** or **\*.ccc**)
+or a binary executable (**\*.bin**). If the file exists, it will be
+loaded into the emulator at startup and executed. The filename
+extensions are required, although they are case-insensitive.
+
+There are no other command-line options.
+
+KEYBOARD
+========
+
+The keyboard is laid out like the CoCo 3, meaning that e.g. the
+double-quote is *Shift-2*.
+
+While **ovcc** is running, press *F12* for a list of keyboard commands.
+
+DISK IMAGES
+===========
+
+To use a disk image (**\*.dsk**), first connect the floppy drive:
+select *Cartridge* -> *Load Cart* -> **libfd502.so**. After doing
+this, the *Cartridge* menu will now have entries for 4 drives. Select
+*FD-502 Drive 0* -> *Insert*, then use the file selector to navigate
+to the disk image. If necessary, you can choose *File* -> *Hard Reset*
+or press *F9* to reboot the Coco 3.
+
+Note that it's easier to move or symlink the disk images into the
+**~/.ovcc** directory, since this is the default location for the file
+selector.
+
+All the inserted media are remembered in the config file, so when
+you exit and re-run **ovcc**, the devices and disks will still be
+connected and loaded.
+
+FILES
+=====
+
+/usr/games/ovcc
+ Shell script wrapper, which sets up the per-user working directory if
+ needed, **chdir**\s to it, and executes the real executable.
+
+/usr/libexec/ovcc/ovcc
+ The actual executable. Normally you don't want to call this directly.
+ Since **ovcc** was ported from Windows, it expects to find its config
+ files, ROMs, and loadable modules in the directory it was launched from.
+
+~/.ovcc
+ Per-user working directory for **ovcc**. If this dir doesn't exist, the
+ **ovcc** wrapper script will create it. Contents:
+
+ Vcc.ini
+ The config file. Human-readable and (if you're careful), editable. However,
+ the primary way to change the settings here is to use the graphical user
+ interface. Any changes made there will be written to this file.
+
+ Vcc.ini_bck
+ Backup of the config file, created whenever **ovcc** is about to overwrite the
+ config.
+
+ lib\*.so
+ Loadable modules which emulate various hardware that can be attached to the
+ CoCo 3. In the GUI, you load these from the Cartridge menu. The standard
+ floppy disk module is **libfd502.so**. These are symlinks to the real files
+ in the package.
+
+ For a description of each emulated device, see:
+
+ https://raw.githubusercontent.com/VCCE/VCC/main/README.md
+
+ \*.rom
+ ROM images.
+
+ **coco3.rom** is automatically loaded when the emulator starts up.
+
+ **disk11.rom** is loaded when the **libfd502.so** module is loaded.
+
+ Other modules may require other ROM images (not included in the SBo package).
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/ovcc-|version|/README.md for license information.
+
+AUTHORS
+=======
+
+ovcc was ported from the original VCC by Joseph Forgione.
+
+VCC was written by the VCC Developement Team.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+The ovcc homepage: https://github.com/WallyZambotti/OVCC
+
+The original (Windows-only) VCC homepage: https://github.com/VCCE/VCC/
+
+The TRS-80 Color Computer Archive, which has lots of software for TRS-80
+CoCo machines, including the CoCo 3:
+
+https://colorcomputerarchive.com/
+
+**xroar**\(6), which can emulate the Color Computer 2.
diff --git a/games/ovcc/ovcc.sh b/games/ovcc/ovcc.sh
new file mode 100644
index 0000000000..bd4fd39cf8
--- /dev/null
+++ b/games/ovcc/ovcc.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# wrapper script for ovcc, makes it play nicer with unixey systems.
+# it expects to find loadable media (ROMs and shared libs that emulate
+# peripherals) in the current dir, when it's run.
+
+PRGNAM=ovcc
+REALBIN=/usr/libexec/$PRGNAM/$PRGNAM
+USERDIR=~/.$PRGNAM
+LIBDIR=/usr/lib@64@/$PRGNAM
+
+# ovcc takes one optional argument, the name of a "quickload" file,
+# which must end in .rom, .ccc, or .bin. since we're changing
+# directories, we have to get the absolute path of the argument,
+# if present. yes, this works even with spaces in the filename.
+ARG="$1"
+if [ "$ARG" != "" ]; then
+ ARG="$( realpath "$ARG" )"
+fi
+
+set -e
+
+if [ ! -d $USERDIR ]; then
+ mkdir $USERDIR
+ cd $USERDIR
+ for i in $LIBDIR/*; do
+ ln -s $i $( basename $i )
+ done
+fi
+
+cd $USERDIR
+
+if [ "$ARG" = "" ]; then
+ exec $REALBIN
+else
+ exec $REALBIN "$ARG"
+fi
diff --git a/games/ovcc/slack-desc b/games/ovcc/slack-desc
new file mode 100644
index 0000000000..23e6d8c5b1
--- /dev/null
+++ b/games/ovcc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+ovcc: ovcc (CoCo 3 emulator)
+ovcc:
+ovcc: ovcc is the portable and Open Virtual Color Computer, a cross-platform
+ovcc: port of the Windows-only VCC emulator.
+ovcc:
+ovcc: ovcc is an accurate emulation of a "stock" Tandy Color Computer 3 (aka
+ovcc: CoCo 3), just as you would have bought in a Radio Shack store or Tandy
+ovcc: Computer Center in 1986-1992.
+ovcc:
+ovcc:
+ovcc: