system/ti99sim: Added (emulator for TI-99/4A computer)

Signed-off-by: bedlam <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2023-05-04 23:35:38 +01:00 committed by Willy Sudiarto Raharjo
parent ebcdad8477
commit 357eca3b8b
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
9 changed files with 342 additions and 0 deletions

19
system/ti99sim/README Normal file
View File

@ -0,0 +1,19 @@
ti99sim (emulator for TI-99/4A computer)
ti99sim emulates the Texas Instruments TI-99/4A computer. It supports
emulated disk drives, joysticks, speech synthesis, and various other
hardware.
The package includes the system ROMs and a large collection of
cartridge ROM images installed in /opt/ti99sim/cartridges.
See /usr/doc/ti99sim-$VERSION/README.html for documentation. Although
there's a desktop menu launcher, you'll have to use the command line
to run cartridges and disk images.
Note: because some of the utilities have very generic names (such as
"disk", "decode", "say"), they're installed in /usr/bin with the
prefix ti99sim- (e.g. "ti99sim-disk"). If you really want to call
them by their original names, try:
export PATH=/opt/ti99sim/bin:$PATH

9
system/ti99sim/doinst.sh Normal file
View File

@ -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

View File

@ -0,0 +1,73 @@
diff -Naur ti99sim-0.16.0/scripts/setup ti99sim-0.16.0.patched/scripts/setup
--- ti99sim-0.16.0/scripts/setup 2020-05-25 16:52:23.000000000 -0400
+++ ti99sim-0.16.0.patched/scripts/setup 2023-04-29 02:32:53.326030933 -0400
@@ -1,15 +1,18 @@
#!/bin/sh
+CWD="$1"
+OUTDIR="$2"
+
root=`dirname $0`
root=`dirname $root`
root=`readlink -f $root`
-tmpdir=$(mktemp -d)
+TMPDIR=`pwd` tmpdir=$(mktemp -d)
cd $tmpdir
-wget http://ftp.whtech.com/System%20ROMs/MAME/pre_0.174/ti99_complete.zip
-wget http://ftp.whtech.com/System%20ROMs/MAME/ti99_gkracker.zip
-wget http://ftp.whtech.com/emulators/mess/mess_modules.zip
+cp "$CWD"/ti99_complete.zip .
+cp "$CWD"/ti99_gkracker.zip .
+cp "$CWD"/mess_modules.zip .
unzip -oq ti99_complete ti99_4a.zip
unzip -oq ti99_complete ti99_4qi.zip
@@ -33,33 +36,16 @@
$root/bin/convert-ctg $root/roms/ti-disk.dat
$root/bin/convert-ctg $root/roms/ti-pcard.dat
-mkdir -p ~/.ti99sim
-
-if [ -d /home/pi/RetroPie ]; then
- if [ ! -d ~/.ti99sim/console ]; then
- mkdir -p /home/pi/RetroPie/BIOS/ti99
- ln -s /home/pi/RetroPie/BIOS/ti99 ~/.ti99sim/console
- fi
- if [ ! -d ~/.ti99sim/cartridges ]; then
- mkdir -p /home/pi/RetroPie/roms/ti99
- ln -s /home/pi/RetroPie/roms/ti99 ~/.ti99sim/cartridges
- fi
-fi
-
-mkdir -p ~/.ti99sim/console
-mkdir -p ~/.ti99sim/cartridges
-mkdir -p ~/.ti99sim/disks
-
-if [ ! -f ~/.ti99sim/disks/image.cf7 ]; then
+if [ ! -f $OUTDIR/disks/image.cf7 ]; then
tmpdisk=$(mktemp -uq)
$root/bin/disk --create=sssd $tmpdisk > /dev/null
$root/bin/disk --output=cf7+ --filename=image.cf7#32 $tmpdisk > /dev/null
rm $tmpdisk
- mv image.cf7 ~/.ti99sim/disks
+ mv image.cf7 $OUTDIR/disks
fi
-mv -n *ctg ~/.ti99sim/console
-mv -n spchrom.bin ~/.ti99sim/console
+mv -n *ctg $OUTDIR/console
+mv -n spchrom.bin $OUTDIR/console
unzip -oq mess_modules -d roms
mv roms/minimem*.bin .
@@ -67,7 +53,7 @@
$root/bin/convert-ctg $root/roms/mini-memory.dat
$root/bin/mkcart roms
-mv -n *ctg ~/.ti99sim/cartridges
+mv -n *ctg $OUTDIR/cartridges
cd -

19
system/ti99sim/slack-desc Normal file
View File

@ -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------------------------------------------------------|
ti99sim: ti99sim (emulator for TI-99/4A computer)
ti99sim:
ti99sim: ti99sim emulates the Texas Instruments TI-99/4A computer. It supports
ti99sim: emulated disk drives, joysticks, speech synthesis, and various other
ti99sim: hardware.
ti99sim:
ti99sim: The package includes the system ROMs and a large collection of
ti99sim: cartridge ROM images.
ti99sim:
ti99sim:
ti99sim:

View File

@ -0,0 +1,118 @@
#!/bin/bash
# Slackware build script for ti99sim
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ti99sim
VERSION=${VERSION:-0.16.0}
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.src.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 {} \+
# The actual code doesn't need patching, but the build stuff does.
# Make it show the damn compile commands.
patch -p1 < $CWD/verbose_compile.diff
# Modify the setup script so it doesn't download anything, and so
# it installs stuff in $PKG, not ~/.ti99sim.
patch -p1 < $CWD/setup_paths.diff
# No other way to make it use our flags.
sed -i "s,-g3 *-O3,$SLKCFLAGS," rules.mak
# Binaries already installed stripped. SYS_BIN must be <DATA_DIR>/bin
# to avoid it creating absolute symlinks (we'll create relative ones, below).
make install DATA_DIR=$PKG/opt/$PRGNAM SYS_BIN=$PKG/opt/$PRGNAM/bin
# Modified setup script requires arguments (original one didn't).
sh scripts/setup $CWD $PKG/opt/$PRGNAM
# Names are too generic, prefix with ti99sim- unless already prefixed.
mkdir -p $PKG/usr/bin
for i in $PKG/opt/$PRGNAM/bin/*; do
src=$( basename $i )
case "$src" in
ti99sim-*) dest=$src ;;
*) dest=ti99sim-$src ;;
esac
ln -s ../../opt/$PRGNAM/bin/$src $PKG/usr/bin/$dest
done
# Icon cut from TI logo, found here:
# https://logos.fandom.com/wiki/Texas_Instruments
for px in 16 22 32 48 64 128; do
size="${px}x${px}"
dir=$PKG/usr/share/icons/hicolor/$size/apps
mkdir -p $dir
convert -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
# .desktop file by SlackBuild author. It's not that useful since there's no
# way to attach disk images or cartridges to the emulator after it starts.
# The .desktop file just starts it up with no media, you can plunk around
# in BASIC but not save your work. Have to use --dsk1 and other options
# to actually do anything fun.
mkdir -p $PKG/usr/share/applications
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a doc/* $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

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Name=TI-99 Sim
GenericName=TI-99/4A Emulator
Type=Application
Exec=ti99sim-sdl
Icon=ti99sim
Terminal=false
StartupNotify=false
Categories=Emulator;System;

View File

@ -0,0 +1,16 @@
PRGNAM="ti99sim"
VERSION="0.16.0"
HOMEPAGE="https://mrousseau.org/programs/ti99sim/"
DOWNLOAD="https://mrousseau.org/programs/ti99sim/archives/ti99sim-0.16.0.src.tar.xz \
http://ftp.whtech.com/System%20ROMs/MAME/pre_0.174/ti99_complete.zip \
http://ftp.whtech.com/System%20ROMs/MAME/ti99_gkracker.zip \
http://ftp.whtech.com/emulators/mess/mess_modules.zip"
MD5SUM="224c88ae9b44d98be0b19f0686452572 \
bffb2d2132febf594b26bfffeaca8101 \
687d3633c736f8aa9646af0752acc850 \
73b40263a4e869e51c8957823eb97aa2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
EMAIL="urchlay@slackware.uk"

BIN
system/ti99sim/ti99sim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,78 @@
diff -Naur ti99sim-0.16.0/Makefile.linux ti99sim-0.16.0.patched/Makefile.linux
--- ti99sim-0.16.0/Makefile.linux 2020-05-25 16:52:22.000000000 -0400
+++ ti99sim-0.16.0.patched/Makefile.linux 2023-04-29 04:55:35.807225123 -0400
@@ -42,15 +42,15 @@
src/util
install: ti99sim
- @$(INSTALL) -d $(DATA_DIR)
- @$(INSTALL) -d $(DATA_DIR)/cartridges
- @$(INSTALL) -d $(DATA_DIR)/console
- @$(INSTALL) -d $(DATA_DIR)/disks
- @$(INSTALL) -d $(BIN_DIR)
- @for target in $(ITARGETS); do \
+ $(INSTALL) -d $(DATA_DIR)
+ $(INSTALL) -d $(DATA_DIR)/cartridges
+ $(INSTALL) -d $(DATA_DIR)/console
+ $(INSTALL) -d $(DATA_DIR)/disks
+ $(INSTALL) -d $(BIN_DIR)
+ for target in $(ITARGETS); do \
$(INSTALL) -s $$target $(BIN_DIR); \
done
- @if [ $(BIN_DIR) != $(SYS_BIN) ]; then \
+ if [ $(BIN_DIR) != $(SYS_BIN) ]; then \
for target in $(notdir $(ITARGETS)); do \
ln -f -s $(BIN_DIR)/$$target $(SYS_BIN)/$$target; \
done \
@@ -67,7 +67,7 @@
@if [ -x src ]; then \
rm -f {.,include,doc}/*~; \
for dir in $(SRC_DIRS); do \
- $(MAKE) -sC $$dir clean; \
+ $(MAKE) -C $$dir clean; \
done \
fi
@if [ -x bin ]; then \
@@ -90,13 +90,13 @@
fi \
fi; \
for dir in $(SRC_DIRS); do \
- $(MAKE) -sC $$dir $(TI_DATA_DIR); \
+ $(MAKE) -C $$dir $(TI_DATA_DIR); \
done \
fi
test: ti99sim
@if [ -x test ]; then \
- $(MAKE) -sC test; \
+ $(MAKE) -C test; \
for test in test/bin/test-*; do \
$$test; \
done \
diff -Naur ti99sim-0.16.0/rules.mak ti99sim-0.16.0.patched/rules.mak
--- ti99sim-0.16.0/rules.mak 2020-05-25 16:52:22.000000000 -0400
+++ ti99sim-0.16.0.patched/rules.mak 2023-04-29 04:56:01.280222726 -0400
@@ -102,20 +102,18 @@
DF = $(CFG)/$(*F)
$(CFG)/%.o : %.cpp
- @echo $<
- @$(CXX) -c $(CFLAGS) $(WARNINGS) $(INCLUDES) -MD -o $@ $<
+ $(CXX) -c $(CFLAGS) $(WARNINGS) $(INCLUDES) -MD -o $@ $<
@cp $(DF).d $(DF).dep; \
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-e '/^$$/ d' -e 's/$$/ :/' < $(DF).d >> $(DF).dep; \
rm -f $(DF).d
$(CFG)/%.o : %.m
- @echo $<
- @$(CC) -c $(CFLAGS) $(WARNINGS) $(INCLUDES) -o $@ $<
+ $(CC) -c $(CFLAGS) $(WARNINGS) $(INCLUDES) -o $@ $<
%.h.gch: %.h
@echo Generating pre-compiled header for $<
- @$(CXX) $(CFLAGS) $(WARNINGS) $(INCLUDES) $<
+ $(CXX) $(CFLAGS) $(WARNINGS) $(INCLUDES) $<
.SUFFIXES: .cpp .c .o