summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorDonald Burr <dburr@FreeBSD.org>1999-08-29 05:51:19 +0000
committerDonald Burr <dburr@FreeBSD.org>1999-08-29 05:51:19 +0000
commitd5b0f28017f65c435e57367716ed7831e3d2eff6 (patch)
tree9160577407d25e3d78b4b2e89686d3e1ceaa6154 /emulators
parentMove MAINTAINERship to ports@FreeBSD.org (diff)
PR: ports/12597
Submitted by: troll@digitalspark.net Reviewed by: dburr@FreeBSD.ORG Import of new port emulators/vMac, a software Macintosh emulator. (Requires an image of a MacPlus ROM to work, read the vMac website for more details.)
Notes
Notes: svn path=/head/; revision=21077
Diffstat (limited to 'emulators')
-rw-r--r--emulators/vMac/Makefile42
-rw-r--r--emulators/vMac/distinfo1
-rw-r--r--emulators/vMac/files/dos2unx23
-rw-r--r--emulators/vMac/files/patch-aa483
-rw-r--r--emulators/vMac/pkg-comment1
-rw-r--r--emulators/vMac/pkg-descr19
-rw-r--r--emulators/vMac/pkg-message8
-rw-r--r--emulators/vMac/pkg-plist7
8 files changed, 584 insertions, 0 deletions
diff --git a/emulators/vMac/Makefile b/emulators/vMac/Makefile
new file mode 100644
index 000000000000..d0d7ff95522a
--- /dev/null
+++ b/emulators/vMac/Makefile
@@ -0,0 +1,42 @@
+# New ports collection makefile for: vMac
+# Version required: 0.1.9.3
+# Date created: Jul 11th 1999
+# Whom: troll
+#
+# $Id$
+#
+
+DISTNAME= vMac-0.1.9.3-src
+PKGNAME= vMac-0.1.9.3
+CATEGORIES= emulators
+MASTER_SITES= http://www.vmac.org/download/XWindows/
+EXTRACT_SUFX= .tgz
+
+MAINTAINER= troll@digitalspark.net
+
+MAKEFILE= Makefile
+WRKSRC= ${WRKDIR}/vMac-0.1.9.3
+USE_GMAKE= YES
+HAS_CONFIGURE= yes
+
+pre-patch:
+ (cd ${WRKSRC} && sh ${FILESDIR}/dos2unx gemulator.c)
+
+post-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/vMac \
+ ${PREFIX}/bin
+ @strip ${PREFIX}/bin/vMac
+ @ ${MKDIR} ${PREFIX}/share/doc/vMac
+ ${INSTALL_DATA} ${WRKSRC}/CREDITS \
+ ${PREFIX}/share/doc/vMac
+ ${INSTALL_DATA} ${WRKSRC}/INSTALL \
+ ${PREFIX}/share/doc/vMac
+ ${INSTALL_DATA} ${WRKSRC}/LICENSE \
+ ${PREFIX}/share/doc/vMac
+ ${INSTALL_DATA} ${WRKSRC}/README \
+ ${PREFIX}/share/doc/vMac
+ ${INSTALL_DATA} ${WRKSRC}/README.rom \
+ ${PREFIX}/share/doc/vMac
+ @${CAT} ${PKGDIR}/MESSAGE | ${SED} -e s:/usr/local:${PREFIX}:
+
+.include <bsd.port.mk>
diff --git a/emulators/vMac/distinfo b/emulators/vMac/distinfo
new file mode 100644
index 000000000000..5f4bf82e06db
--- /dev/null
+++ b/emulators/vMac/distinfo
@@ -0,0 +1 @@
+MD5 (vMac-0.1.9.3-src.tgz) = 04b7f8280d83df64c5837d0a9e93485b
diff --git a/emulators/vMac/files/dos2unx b/emulators/vMac/files/dos2unx
new file mode 100644
index 000000000000..f250b4b586ff
--- /dev/null
+++ b/emulators/vMac/files/dos2unx
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# dos2unx file [file...]
+#
+# Converts text files (names specified on command line) from MS-DOS
+# format to UNIX format. Essentially, gets rid of all newlines (\n),
+# since linefeeds (\l) are all it needs.
+
+if [ $# -lt 1 ]
+then
+ echo usage: dos2unx file [file ...]
+ exit 1
+fi
+
+for FILE
+do
+ echo -n "dos2unx: converting ${FILE} ... "
+ tr -d '\r' < ${FILE} > /tmp/conv$$
+ rm -f ${FILE}
+ cp -f /tmp/conv$$ ${FILE}
+ rm -f /tmp/conv$$
+ echo "done"
+done
diff --git a/emulators/vMac/files/patch-aa b/emulators/vMac/files/patch-aa
new file mode 100644
index 000000000000..7f6ebfbf83b4
--- /dev/null
+++ b/emulators/vMac/files/patch-aa
@@ -0,0 +1,483 @@
+diff -ruN ../vMac-0.1.9.3.old/Hardware/Makefile.in ./Hardware/Makefile.in
+--- ../vMac-0.1.9.3.old/Hardware/Makefile.in Sun Feb 15 07:55:19 1998
++++ ./Hardware/Makefile.in Sun Jul 11 16:30:09 1999
+@@ -24,7 +24,7 @@
+
+ .SUFFIXES: .o .c .h .m .i .S
+
+-INCLUDES=-I@top_srcdir@/Includes -I$(X_CFLAGS) -I/usr/include -I../ -I.
++INCLUDES=-I@top_srcdir@/Includes $(X_CFLAGS) -I/usr/include -I../ -I.
+
+ OBJS = IWM.o \
+ Keyboard.o \
+diff -ruN ../vMac-0.1.9.3.old/Includes/sysdeps.h ./Includes/sysdeps.h
+--- ../vMac-0.1.9.3.old/Includes/sysdeps.h Sun Feb 15 22:34:51 1998
++++ ./Includes/sysdeps.h Sun Jul 11 16:30:10 1999
+@@ -62,8 +62,9 @@
+ #endif
+ #endif
+
++#undef HAVE_SYS_STATFS_H
+ #ifdef HAVE_SYS_STATFS_H
+-#include <sys/statfs.h>
++#include <statfs.h>
+ #endif
+
+ #ifdef HAVE_SYS_STATVFS_H
+diff -ruN ../vMac-0.1.9.3.old/Makefile ./Makefile
+--- ../vMac-0.1.9.3.old/Makefile Tue Apr 27 02:49:44 1999
++++ ./Makefile Sun Jul 11 16:30:10 1999
+@@ -25,7 +25,7 @@
+
+ .SUFFIXES: .o .c .h .m .i .S
+
+-INCLUDES=-I./Hardware/ -I./Includes -I$(X_CFLAGS) -I/usr/local/include -I.
++INCLUDES=-I./Hardware/ -I./Includes $(X_CFLAGS) -I/usr/local/include -I.
+
+ OBJS = custom.o main.o prefs.o debug.o gemulator.o \
+ $(GFXOBJS)
+diff -ruN ../vMac-0.1.9.3.old/Makefile.in ./Makefile.in
+--- ../vMac-0.1.9.3.old/Makefile.in Tue Apr 27 02:49:34 1999
++++ ./Makefile.in Sun Jul 11 18:04:53 1999
+@@ -24,12 +24,15 @@
+
+ .SUFFIXES: .o .c .h .m .i .S
+
+-INCLUDES=-I@top_srcdir@/Hardware/ -I@top_srcdir@/Includes -I$(X_CFLAGS) -I/usr/local/include -I.
++INCLUDES=-I@top_srcdir@/Hardware/ -I@top_srcdir@/Includes -I$(X_CFLAGS) -I/usr/local/include -I. -I/usr/X11R6/include/
+
+ OBJS = custom.o main.o prefs.o debug.o gemulator.o \
+ $(GFXOBJS)
+
+ all: $(TARGET)
++
++install:
++ @echo Install target h4x0r3d.
+
+ x11: vMac
+
+diff -ruN ../vMac-0.1.9.3.old/configure ./configure
+--- ../vMac-0.1.9.3.old/configure Mon Feb 16 23:29:26 1998
++++ ./configure Sun Jul 11 16:30:10 1999
+@@ -2760,9 +2760,9 @@
+
+ WANT_MOTIFGUI=no
+ WANT_GTKGUI=no
+-WANT_NOGUI=yes
+-WANT_MITSHM=no
+-WANT_SCAN=no
++WANT_NOGUI=no
++WANT_MITSHM=yes
++WANT_SCAN=yes
+ WANT_SVGA=no
+ WANT_NEXTSTEP=no
+
+@@ -2810,7 +2810,7 @@
+
+
+ if [ "x$no_x" = "xyes" ]; then
+- HAVE_MOTIF=no
++ HAVE_MOTIF=yes
+ else
+ TMP_SAVE_LIBS=$LIBS
+ TMP_SAVE_CFLAGS=$CFLAGS
+@@ -2949,8 +2949,8 @@
+
+ if [ "x$WANT_MOTIFGUI" = "xyes" ]; then
+ if [ "x$HAVE_MOTIF" = "xno" ]; then
+- WANT_MOTIFGUI=no
+- echo "Can't find Motif or LessTif libraries; Motif GUI disabled."
++ WANT_MOTIFGUI=yes
++ echo "Motif support hax0r3d in."
+ else
+ WANT_MOTIFGUI=yes
+ WANT_GTKGUI=no
+diff -ruN ../vMac-0.1.9.3.old/freebsd.patch ./freebsd.patch
+--- ../vMac-0.1.9.3.old/freebsd.patch Thu Jan 1 00:00:00 1970
++++ ./freebsd.patch Sun Jul 11 18:05:06 1999
+@@ -0,0 +1,94 @@
++diff -ruN ../vMac-0.1.9.3.old/Hardware/Makefile.in ./Hardware/Makefile.in
++--- ../vMac-0.1.9.3.old/Hardware/Makefile.in Sun Feb 15 07:55:19 1998
+++++ ./Hardware/Makefile.in Sun Jul 11 16:30:09 1999
++@@ -24,7 +24,7 @@
++
++ .SUFFIXES: .o .c .h .m .i .S
++
++-INCLUDES=-I@top_srcdir@/Includes -I$(X_CFLAGS) -I/usr/include -I../ -I.
+++INCLUDES=-I@top_srcdir@/Includes $(X_CFLAGS) -I/usr/include -I../ -I.
++
++ OBJS = IWM.o \
++ Keyboard.o \
++diff -ruN ../vMac-0.1.9.3.old/Includes/sysdeps.h ./Includes/sysdeps.h
++--- ../vMac-0.1.9.3.old/Includes/sysdeps.h Sun Feb 15 22:34:51 1998
+++++ ./Includes/sysdeps.h Sun Jul 11 16:30:10 1999
++@@ -62,8 +62,9 @@
++ #endif
++ #endif
++
+++#undef HAVE_SYS_STATFS_H
++ #ifdef HAVE_SYS_STATFS_H
++-#include <sys/statfs.h>
+++#include <statfs.h>
++ #endif
++
++ #ifdef HAVE_SYS_STATVFS_H
++diff -ruN ../vMac-0.1.9.3.old/Makefile ./Makefile
++--- ../vMac-0.1.9.3.old/Makefile Tue Apr 27 02:49:44 1999
+++++ ./Makefile Sun Jul 11 16:30:10 1999
++@@ -25,7 +25,7 @@
++
++ .SUFFIXES: .o .c .h .m .i .S
++
++-INCLUDES=-I./Hardware/ -I./Includes -I$(X_CFLAGS) -I/usr/local/include -I.
+++INCLUDES=-I./Hardware/ -I./Includes $(X_CFLAGS) -I/usr/local/include -I.
++
++ OBJS = custom.o main.o prefs.o debug.o gemulator.o \
++ $(GFXOBJS)
++diff -ruN ../vMac-0.1.9.3.old/Makefile.in ./Makefile.in
++--- ../vMac-0.1.9.3.old/Makefile.in Tue Apr 27 02:49:34 1999
+++++ ./Makefile.in Sun Jul 11 18:04:53 1999
++@@ -24,12 +24,15 @@
++
++ .SUFFIXES: .o .c .h .m .i .S
++
++-INCLUDES=-I@top_srcdir@/Hardware/ -I@top_srcdir@/Includes -I$(X_CFLAGS) -I/usr/local/include -I.
+++INCLUDES=-I@top_srcdir@/Hardware/ -I@top_srcdir@/Includes -I$(X_CFLAGS) -I/usr/local/include -I. -I/usr/X11R6/include/
++
++ OBJS = custom.o main.o prefs.o debug.o gemulator.o \
++ $(GFXOBJS)
++
++ all: $(TARGET)
+++
+++install:
+++ @echo Install target h4x0r3d.
++
++ x11: vMac
++
++diff -ruN ../vMac-0.1.9.3.old/configure ./configure
++--- ../vMac-0.1.9.3.old/configure Mon Feb 16 23:29:26 1998
+++++ ./configure Sun Jul 11 16:30:10 1999
++@@ -2760,9 +2760,9 @@
++
++ WANT_MOTIFGUI=no
++ WANT_GTKGUI=no
++-WANT_NOGUI=yes
++-WANT_MITSHM=no
++-WANT_SCAN=no
+++WANT_NOGUI=no
+++WANT_MITSHM=yes
+++WANT_SCAN=yes
++ WANT_SVGA=no
++ WANT_NEXTSTEP=no
++
++@@ -2810,7 +2810,7 @@
++
++
++ if [ "x$no_x" = "xyes" ]; then
++- HAVE_MOTIF=no
+++ HAVE_MOTIF=yes
++ else
++ TMP_SAVE_LIBS=$LIBS
++ TMP_SAVE_CFLAGS=$CFLAGS
++@@ -2949,8 +2949,8 @@
++
++ if [ "x$WANT_MOTIFGUI" = "xyes" ]; then
++ if [ "x$HAVE_MOTIF" = "xno" ]; then
++- WANT_MOTIFGUI=no
++- echo "Can't find Motif or LessTif libraries; Motif GUI disabled."
+++ WANT_MOTIFGUI=yes
+++ echo "Motif support hax0r3d in."
++ else
++ WANT_MOTIFGUI=yes
++ WANT_GTKGUI=no
+diff -ruN ../vMac-0.1.9.3.old/gemulator.c ./gemulator.c
+--- ../vMac-0.1.9.3.old/gemulator.c Tue Apr 27 05:04:38 1999
++++ ./gemulator.c Sun Jul 11 16:30:10 1999
+@@ -1,141 +1,152 @@
+-/* Support for Gemulator ROM Board */
+-
+-/*
+- * Much of this code was written by Darek Michocka,
+- * and adapted to work in vMac by Weston, and ported
+- * to Linux by Michael Samuel.
+- *
+- * If this code fails, try adding defining SLOW_IO, and see how that works.
+- */
++/* Support for Gemulator ROM Board */
++
++/*
++ * Much of this code was written by Darek Michocka,
++ * and adapted to work in vMac by Weston, and ported
++ * to Linux by Michael Samuel.
++ *
++ * If this code fails, try adding defining SLOW_IO, and see how that works.
++ */
++
++#define REMOVE_GEMULATOR_SUPPORT // I'm not even trying to port this
++ // support in, and most people don't use
++ // it. If you have gotten it to work,
++ // send a diff to me
++ // (troll@digitalspark.net)
+
+ #define SLOW_IO
+-
+-#include <stdio.h>
+-#include <asm/io.h>
+-#include <unistd.h>
+-#include <errno.h>
+-#include <string.h>
+-#include <sys/io.h>
+-
+-/* Define TEST to make a linkable ROM dumper */
+-#ifdef TEST
+-#define SOCKNUM 1
+-#define NUMSOCKS 2
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#endif
+-
++
++#include <stdio.h>
++#ifndef REMOVE_GEMULATOR_SUPPORT
++#include <asm/io.h>
++#endif
++#include <unistd.h>
++#include <errno.h>
++#include <string.h>
++#ifndef REMOVE_GEMULATOR_SUPPORT
++#include <sys/io.h>
++#endif
++
++/* Define TEST to make a linkable ROM dumper */
++#ifdef TEST
++#define SOCKNUM 1
++#define NUMSOCKS 2
++
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#endif
++
+ #include "sysconfig.h"
+ #include "sysdeps.h"
+-#include "gemulator.h"
+-
+-/*
+- * Change this if your board is on a different I/O Port
+- * This is statically compiled into the binary *deliberately*
+- */
+-#define GEM_BASE 0x240
+-
+-/*
+- * Much of this code was written by Darek Michocka,
+- * and adapted to work in vMac by Weston, and ported
+- * to Linux, and thrown into BasiliskII by Michael Samuel
+- */
+-
+-/*
+- * Don't forget to drop root permissions after trying to load the ROM,
+- * especially before trying to read a ROM from a file...
+- */
+-
+-#define cbSocket (128*1024)
+-#define countSocket (8)
+-
+-unsigned char bigbuf[cbSocket*countSocket*2];
+-
+-int Gemulator_LoadROM(UBYTE * NewROM, UWORD Base, UBYTE Socket, UBYTE Length)
+-{
+- int i;
+- int rgsize[countSocket];
+-
++#include "gemulator.h"
++
++/*
++ * Change this if your board is on a different I/O Port
++ * This is statically compiled into the binary *deliberately*
++ */
++#define GEM_BASE 0x240
++
++/*
++ * Much of this code was written by Darek Michocka,
++ * and adapted to work in vMac by Weston, and ported
++ * to Linux, and thrown into BasiliskII by Michael Samuel
++ */
++
++/*
++ * Don't forget to drop root permissions after trying to load the ROM,
++ * especially before trying to read a ROM from a file...
++ */
++
++#define cbSocket (128*1024)
++#define countSocket (8)
++
++unsigned char bigbuf[cbSocket*countSocket*2];
++
++int Gemulator_LoadROM(UBYTE * NewROM, UWORD Base, UBYTE Socket, UBYTE Length)
++{
++#ifndef REMOVE_GEMULATOR_SUPPORT
++ int i;
++ int rgsize[countSocket];
++
+ --Socket; //Our socket 1 is really socket 0
+
+- /* Give I/O Permissions to the Base address */
+- if(ioperm(GEM_BASE, 1, 1) == -1) {
+- fprintf(stderr, "Cannot get IO permissions: %s\n",
+- strerror(errno));
+- return 0;
+- }
+-
+-#ifdef SLOW_IO
+- if(ioperm(0x80, 1, 1) == -1) {
+- fprintf(stderr, "Cannot get IO permissions: %s\n",
+- strerror(errno));
+- return 0;
+- }
+- outb_p(0, GEM_BASE);
+-#else
+- outb(0, GEM_BASE);
+-#endif
+- for (i = 0; i < (Socket+Length)*cbSocket; i++) {
+-#ifdef SLOW_IO
+- bigbuf[i] = inb_p(GEM_BASE);
+-#else
+- bigbuf[i] = inb(GEM_BASE);
+-#endif
+- }
+-
+- /* Drop I/O permissions, now that we're done */
+- ioperm(GEM_BASE, 1, 0);
+-#ifdef SLOW_IO
+- ioperm(0x80, 1, 0);
+-#endif
+- for (i = 0; i < countSocket; i++) {
+- unsigned char *pb = &bigbuf[i * cbSocket];
+- int size = cbSocket/1024;
+- while ((size > 32) && !memcmp(pb, pb+(size*512), size*512)) {
+- size /= 2;
+- }
+- rgsize[i] = size;
+- }
+-
+- // scramble the bytes from socket order to byte order
+- memmove(bigbuf + countSocket * cbSocket, bigbuf + Socket * cbSocket,
+- Length * cbSocket);
+-
+- for (i = 0; i < countSocket * cbSocket; i++) {
+- bigbuf[i] = bigbuf[(countSocket + (i%Length)) *
+- cbSocket + (i/Length)];
+- }
+- memcpy(NewROM, bigbuf, 1024 * rgsize[Socket] * Length);
+-
+- return(1024 * rgsize[Socket] * Length); //Return size
+-}
+-
+-#ifdef TEST
+-int main(int argc, char **argv)
+-{
+- unsigned char rombuff[(1024*128*NUMSOCKS)];
+- int fd;
+- int size = Gemulator_LoadROM(rombuff, SOCKNUM, NUMSOCKS);
+-
+- if(size == 0) {
+- printf("ROM Loading Failed\n");
+- exit(1);
+- }
+- printf("ROM Size: %d bytes\n", size);
+- fd = open("Gemulator_dump", O_CREAT | O_WRONLY);
+- if(fd == -1) {
+- fprintf(stderr, "Cannot dump ROM file\n");
+- exit(1);
+- }
+- if(write(fd, rombuff, (ssize_t)size) != (ssize_t)size) {
+- fprintf(stderr, "error writing file\n");
+- close(fd);
+- exit(1);
+- }
+- close(fd);
+- return 0;
+-}
+-#endif
+-
++ /* Give I/O Permissions to the Base address */
++ if(ioperm(GEM_BASE, 1, 1) == -1) {
++ fprintf(stderr, "Cannot get IO permissions: %s\n",
++ strerror(errno));
++ return 0;
++ }
++
++#ifdef SLOW_IO
++ if(ioperm(0x80, 1, 1) == -1) {
++ fprintf(stderr, "Cannot get IO permissions: %s\n",
++ strerror(errno));
++ return 0;
++ }
++ outb_p(0, GEM_BASE);
++#else
++ outb(0, GEM_BASE);
++#endif
++ for (i = 0; i < (Socket+Length)*cbSocket; i++) {
++#ifdef SLOW_IO
++ bigbuf[i] = inb_p(GEM_BASE);
++#else
++ bigbuf[i] = inb(GEM_BASE);
++#endif
++ }
++
++ /* Drop I/O permissions, now that we're done */
++ ioperm(GEM_BASE, 1, 0);
++#ifdef SLOW_IO
++ ioperm(0x80, 1, 0);
++#endif
++ for (i = 0; i < countSocket; i++) {
++ unsigned char *pb = &bigbuf[i * cbSocket];
++ int size = cbSocket/1024;
++ while ((size > 32) && !memcmp(pb, pb+(size*512), size*512)) {
++ size /= 2;
++ }
++ rgsize[i] = size;
++ }
++
++ // scramble the bytes from socket order to byte order
++ memmove(bigbuf + countSocket * cbSocket, bigbuf + Socket * cbSocket,
++ Length * cbSocket);
++
++ for (i = 0; i < countSocket * cbSocket; i++) {
++ bigbuf[i] = bigbuf[(countSocket + (i%Length)) *
++ cbSocket + (i/Length)];
++ }
++ memcpy(NewROM, bigbuf, 1024 * rgsize[Socket] * Length);
++
++ return(1024 * rgsize[Socket] * Length); //Return size
++#endif
++}
++
++#ifdef TEST
++int main(int argc, char **argv)
++{
++ unsigned char rombuff[(1024*128*NUMSOCKS)];
++ int fd;
++ int size = Gemulator_LoadROM(rombuff, SOCKNUM, NUMSOCKS);
++
++ if(size == 0) {
++ printf("ROM Loading Failed\n");
++ exit(1);
++ }
++ printf("ROM Size: %d bytes\n", size);
++ fd = open("Gemulator_dump", O_CREAT | O_WRONLY);
++ if(fd == -1) {
++ fprintf(stderr, "Cannot dump ROM file\n");
++ exit(1);
++ }
++ if(write(fd, rombuff, (ssize_t)size) != (ssize_t)size) {
++ fprintf(stderr, "error writing file\n");
++ close(fd);
++ exit(1);
++ }
++ close(fd);
++ return 0;
++}
++#endif
diff --git a/emulators/vMac/pkg-comment b/emulators/vMac/pkg-comment
new file mode 100644
index 000000000000..772b4a10304f
--- /dev/null
+++ b/emulators/vMac/pkg-comment
@@ -0,0 +1 @@
+Emulates a MacPlus machine! Runs MacOS versions up to 7.5.5
diff --git a/emulators/vMac/pkg-descr b/emulators/vMac/pkg-descr
new file mode 100644
index 000000000000..197072bdcb99
--- /dev/null
+++ b/emulators/vMac/pkg-descr
@@ -0,0 +1,19 @@
+What is vMac? vMac is a free software emulator that emulates the Apple
+Macintosh Plus(tm). That means that vMac does not cost anything, and
+does not use any hardware. A lot of the Macintosh Plus' functionality is
+already implemented in this port, and that includes:
+
+- 68000 CPU, 68010 CPU, 68020 CPU + 68881 FPU emulation
+- 4 MB of RAM
+- Keyboard support
+- Mouse support
+- Floppy support
+- HardDisk support (However, vMac will treat all harddisks or partitions
+ as floppies).
+- Sound support (soon!)
+- Can run MacOS (System Software) versions up to 7.5.5
+
+Currently, work is being done on IceCube, a new CPU emulator which will
+replace UAE's CPU emulator which we use currently, and other stuff :).
+
+WWW: http://www.vmac.org/
diff --git a/emulators/vMac/pkg-message b/emulators/vMac/pkg-message
new file mode 100644
index 000000000000..a598f29033b6
--- /dev/null
+++ b/emulators/vMac/pkg-message
@@ -0,0 +1,8 @@
+ - --------------------------------------------------------------------- -
+ - You need to obtain a vMac ROM file to use vMac. Instructions are -
+ - found in /usr/local/share/doc/vMac/README.rom. -
+ - -
+ - Also reading /usr/local/share/doc/vMac/README is a good idea -
+ - -
+ - vMac Website: http://www.vmac.org/ -
+ - --------------------------------------------------------------------- -
diff --git a/emulators/vMac/pkg-plist b/emulators/vMac/pkg-plist
new file mode 100644
index 000000000000..7bef3c949910
--- /dev/null
+++ b/emulators/vMac/pkg-plist
@@ -0,0 +1,7 @@
+bin/vMac
+share/doc/vMac/CREDITS
+share/doc/vMac/INSTALL
+share/doc/vMac/LICENSE
+share/doc/vMac/README
+share/doc/vMac/README.rom
+@dirrm share/doc/vMac