From 7c6598de8c6017f881dc8990405d690336981d79 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 25 Jan 2022 17:59:25 -0500 Subject: games/clksignal: Added (emulate classic computers/consoles). Signed-off-by: Willy Sudiarto Raharjo --- games/clksignal/README | 28 ++++++++ games/clksignal/clksignal-qt.6 | 67 +++++++++++++++++++ games/clksignal/clksignal-qt.desktop | 7 ++ games/clksignal/clksignal-qt.rst | 56 ++++++++++++++++ games/clksignal/clksignal.SlackBuild | 123 +++++++++++++++++++++++++++++++++++ games/clksignal/clksignal.desktop | 8 +++ games/clksignal/clksignal.info | 10 +++ games/clksignal/doinst.sh | 9 +++ games/clksignal/slack-desc | 19 ++++++ 9 files changed, 327 insertions(+) create mode 100644 games/clksignal/README create mode 100644 games/clksignal/clksignal-qt.6 create mode 100644 games/clksignal/clksignal-qt.desktop create mode 100644 games/clksignal/clksignal-qt.rst create mode 100644 games/clksignal/clksignal.SlackBuild create mode 100644 games/clksignal/clksignal.desktop create mode 100644 games/clksignal/clksignal.info create mode 100644 games/clksignal/doinst.sh create mode 100644 games/clksignal/slack-desc (limited to 'games') diff --git a/games/clksignal/README b/games/clksignal/README new file mode 100644 index 000000000000..8ad1d233f73c --- /dev/null +++ b/games/clksignal/README @@ -0,0 +1,28 @@ +clksignal (emulator for various classic computing platforms) + +CLK, also known as Clock Signal, is an emulator for tourists that +seeks to be invisible. Users directly launch classic software with no +emulator or per-emulated-machine learning curve. + +It currently emulates the Acorn Electron, Amstrad CPC, Apple +II/II+/IIe, Atari 2600, Atari ST, ColecoVision, Commodore VIC-20, +Enterprise 64/128, 512K Mac/Mac+, MSX-1, Oric/Atmos, Sega Master +System, Sinclair ZX81/81, and Sinclair ZX Spectrum. + +Through the combination of static analysis and runtime analysis, CLK +seeks to be able automatically to select and configure the appropriate +machine to run any provided disk, tape or ROM; to issue any commands +necessary to run the software contained on the disk, tape or ROM; +and to provide accelerated loading where feasible. The full process +of loading a title - even if you've never used the emulated machine +before - is therefore: 1. locate it in your OS; 2. double click +it. + +Notes: + +- clksignal requires ROM images for most of the systems it emulates. + When an image is missing, it will tell you the name, size, and + CRC of the image, so you can go search for it on the web. + +- For the "locate and click" to work, you'll have to associate the + file types/extensions with clksignal manually. diff --git a/games/clksignal/clksignal-qt.6 b/games/clksignal/clksignal-qt.6 new file mode 100644 index 000000000000..79414956422b --- /dev/null +++ b/games/clksignal/clksignal-qt.6 @@ -0,0 +1,67 @@ +.\" 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 "CLKSIGNAL-QT" 6 "2022-01-08" "20211219" "SlackBuilds.org" +.SH NAME +clksignal-qt \- graphical interface for clksignal emulator +.\" RST source for clksignal-qt(6) man page. Convert with: +. +.\" rst2man.py clksignal-qt.rst > clksignal-qt.6 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.SH SYNOPSIS +.sp +clksignal\-qt [\fIfile\fP] +.SH DESCRIPTION +.sp +\fBclksignal\-qt\fP is a Qt\-based build of \fBclksignal\fP\&. It accepts no +command\-line options; starting and configuring the emulator is +done via the GUI. +.sp +If \fIfile\fP is given, it\(aqs used as the ROM/disk/tape image to run. +If it\(aqs a recognized file type, the appropriate emulated machine will +automatically be started. +.sp +Unlike \fBclksignal\fP, \fBclksignal\-qt\fP \fIonly\fP supports PulseAudio for +audio output. No, it won\(aqt work with \fBapulse\fP(1), either. +.SH COPYRIGHT +.sp +See the file /usr/doc/clksignal\-20211219/LICENSE for license information. +.SH AUTHORS +.sp +clksignal\-qt was written by Thomas Harte. +.sp +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. +.SH SEE ALSO +.sp +\fBclksignal\fP(6) +.\" Generated by docutils manpage writer. +. diff --git a/games/clksignal/clksignal-qt.desktop b/games/clksignal/clksignal-qt.desktop new file mode 100644 index 000000000000..196beeb09d03 --- /dev/null +++ b/games/clksignal/clksignal-qt.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Clock Signal (Qt) +Type=Application +Exec=/usr/games/clksignal-qt +Icon=clksignal +Terminal=false +Categories=Game;Emulator; diff --git a/games/clksignal/clksignal-qt.rst b/games/clksignal/clksignal-qt.rst new file mode 100644 index 000000000000..487dac693650 --- /dev/null +++ b/games/clksignal/clksignal-qt.rst @@ -0,0 +1,56 @@ +.. RST source for clksignal-qt(6) man page. Convert with: +.. rst2man.py clksignal-qt.rst > clksignal-qt.6 +.. rst2man.py comes from the SBo development/docutils package. + +.. |version| replace:: 20211219 +.. |date| date:: + +============ +clksignal-qt +============ + +------------------------------------------ +graphical interface for clksignal emulator +------------------------------------------ + +:Manual section: 6 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +clksignal-qt [*file*] + +DESCRIPTION +=========== + +**clksignal-qt** is a Qt-based build of **clksignal**. It accepts no +command-line options; starting and configuring the emulator is +done via the GUI. + +If *file* is given, it's used as the ROM/disk/tape image to run. +If it's a recognized file type, the appropriate emulated machine will +automatically be started. + +Unlike **clksignal**, **clksignal-qt** *only* supports PulseAudio for +audio output. No, it won't work with **apulse**\(1), either. + +COPYRIGHT +========= + +See the file /usr/doc/clksignal-|version|/LICENSE for license information. + +AUTHORS +======= + +clksignal-qt was written by Thomas Harte. + +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. + +SEE ALSO +======== + +**clksignal**\(6) diff --git a/games/clksignal/clksignal.SlackBuild b/games/clksignal/clksignal.SlackBuild new file mode 100644 index 000000000000..11e6bc9ba5e9 --- /dev/null +++ b/games/clksignal/clksignal.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/bash + +# Slackware build script for clksignal + +# Written by B. Watson (yalhcru@gmail.com) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=clksignal +VERSION=${VERSION:-20211219} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +SRCNAM=CLK +SRCVER="$( echo $VERSION | sed 's,^\(....\)\(..\)\(..\),\1\-\2-\3,' )" + +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 $SRCNAM-$SRCVER +tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz +cd $SRCNAM-$SRCVER +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 {} \+ + +mkdir -p $PKG/usr/games $PKG/usr/man/man6 $PKG/usr/share/applications + +# Qt5 user interface is optional. +if [ "{QT:-yes}" = "yes" ]; then + cd OSBindings/Qt + qmake-qt5 + make + install -s $PRGNAM $PKG/usr/games/$PRGNAM-qt + cd - + # clksignal-qt man page written for this SlackBuild + gzip -9c < $CWD/$PRGNAM-qt.6 > $PKG/usr/man/man6/$PRGNAM-qt.6.gz + cat $CWD/$PRGNAM-qt.desktop > $PKG/usr/share/applications/$PRGNAM-qt.desktop +fi + +cd OSBindings/SDL +scons $MAKEFLAGS +install -s $PRGNAM $PKG/usr/games +cd - + +# fix the clksignal man page (no, I'm not going to use ansible). +THLINE=".TH $PRGNAM 6 \\\"$SRCVER\\\" \\\"$VERSION\\\" \\\"SlackBuilds.org\\\"" +sed '/^\.TH/s,.*,'"$THLINE"',' Packaging/templates/$PRGNAM.1.j2 | \ + gzip -9c > $PKG/usr/man/man6/$PRGNAM.6.gz + +# there actually are a few ROMs in here, plus lots of readme.txt +mkdir -p $PKG/usr/share/$SRCNAM +cp -a ROMImages/* $PKG/usr/share/$SRCNAM + +MACICONS="OSBindings/Mac/Clock Signal/Assets.xcassets/AppIcon.appiconset/" +for px in 16 32 64 128; do + size=${px}x${px} + dir=$PKG/usr/share/icons/hicolor/$size/apps + mkdir -p $dir + cp -a "$MACICONS/Icon$px.png" $dir/$PRGNAM.png +done + +mkdir -p $PKG/usr/share/icons/hicolor/48x48/apps +convert -resize 48x48 \ + "$MACICONS/Icon1024.png" \ + $PKG/usr/share/icons/hicolor/48x48/apps/$PRGNAM.png + +mkdir -p $PKG/usr/share/pixmaps +ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png + +# include a .desktop file with Hidden=true. it won't show up in the menus, +# because running it with no args is useless, but it will be available for +# "Open with". +cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop + +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC/html +cp -a README.md LICENSE* $PKGDOC +markdown_py -f $PKGDOC/html/index.html $PKGDOC/README.md +cp -a READMEImages $PKGDOC/html +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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:-tgz} diff --git a/games/clksignal/clksignal.desktop b/games/clksignal/clksignal.desktop new file mode 100644 index 000000000000..e84c895ffd94 --- /dev/null +++ b/games/clksignal/clksignal.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Clock Signal (Qt) +Type=Application +Exec=/usr/games/clksignal +Icon=clksignal +Hidden=true +Terminal=false +Categories=Game;Emulator; diff --git a/games/clksignal/clksignal.info b/games/clksignal/clksignal.info new file mode 100644 index 000000000000..70e55e46e682 --- /dev/null +++ b/games/clksignal/clksignal.info @@ -0,0 +1,10 @@ +PRGNAM="clksignal" +VERSION="20211219" +HOMEPAGE="https://github.com/TomHarte/CLK" +DOWNLOAD="https://github.com/TomHarte/CLK/archive/2021-12-19/CLK-2021-12-19.tar.gz" +MD5SUM="76cc593607574ee77fda180ec3cbcd68" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/games/clksignal/doinst.sh b/games/clksignal/doinst.sh new file mode 100644 index 000000000000..3e5691a052b5 --- /dev/null +++ b/games/clksignal/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 usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/games/clksignal/slack-desc b/games/clksignal/slack-desc new file mode 100644 index 000000000000..a947ca41261b --- /dev/null +++ b/games/clksignal/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------------------------------------------------------| +clksignal: clksignal (emulator for various classic computing platforms) +clksignal: +clksignal: CLK, also known as Clock Signal, is an emulator for tourists that +clksignal: seeks to be invisible. Users directly launch classic software with no +clksignal: emulator or per-emulated-machine learning curve. +clksignal: +clksignal: It currently emulates the Acorn Electron, Amstrad CPC, Apple +clksignal: II/II+/IIe, Atari 2600, Atari ST, ColecoVision, Commodore VIC-20, +clksignal: Enterprise 64/128, 512K Mac/Mac+, MSX-1, Oric/Atmos, Sega Master +clksignal: System, Sinclair ZX81/81, and Sinclair ZX Spectrum. +clksignal: -- cgit v1.2.3