summaryrefslogtreecommitdiff
path: root/emulators/fmsx
diff options
context:
space:
mode:
authormartin <martin>2000-07-28 15:54:26 +0000
committermartin <martin>2000-07-28 15:54:26 +0000
commit0520f5749d7ef5156ea46ab61fc4b0e67ce95015 (patch)
tree0aca88cca293e33e0d86d541bf65e2341dfd2f64 /emulators/fmsx
parent814374547c8089f086a1c1aa12c05322951400a5 (diff)
downloadpkgsrc-0520f5749d7ef5156ea46ab61fc4b0e67ce95015.tar.gz
fMSX is a portable emulator of MSX home computers written in C.
This pkg was submitted by SUNAGAWA Keiki in PR pkg/6731, modified slightly by me.
Diffstat (limited to 'emulators/fmsx')
-rw-r--r--emulators/fmsx/Makefile60
-rw-r--r--emulators/fmsx/files/md53
-rw-r--r--emulators/fmsx/files/patch-sum6
-rw-r--r--emulators/fmsx/patches/patch-aa24
-rw-r--r--emulators/fmsx/patches/patch-ab14
-rw-r--r--emulators/fmsx/patches/patch-ac20
-rw-r--r--emulators/fmsx/patches/patch-ad105
-rw-r--r--emulators/fmsx/pkg/COMMENT1
-rw-r--r--emulators/fmsx/pkg/DESCR13
-rw-r--r--emulators/fmsx/pkg/PLIST17
10 files changed, 263 insertions, 0 deletions
diff --git a/emulators/fmsx/Makefile b/emulators/fmsx/Makefile
new file mode 100644
index 00000000000..963387ecd86
--- /dev/null
+++ b/emulators/fmsx/Makefile
@@ -0,0 +1,60 @@
+# $NetBSD: Makefile,v 1.1.1.1 2000/07/28 15:54:26 martin Exp $
+
+DISTNAME= fMSX21.tar
+PKGNAME= fmsx-2.1
+CATEGORIES= emulators x11
+MASTER_SITES= http://www.komkon.org/fms/fMSX/
+EXTRACT_SUFX= .Z
+
+MAINTAINER= martin@netbsd.org
+HOMEPAGE= http://www.komkon.org/fms/fMSX/
+
+RESTRICTED= "ROM image copyright is questionable"
+NO_BIN_ON_CDROM= ${RESTRICTED}
+NO_SRC_ON_CDROM= ${RESTRICTED}
+NO_BIN_ON_FTP= ${RESTRICTED}
+NO_SRC_ON_FTP= ${RESTRICTED}
+MIRROR_DISTFILE= no
+
+USE_X11= yes
+
+WRKSRC= ${WRKDIR}/MSX
+
+DEFS= -DFontDir=\"\\\"${PREFIX}/share/fmsx/\"\\\"
+DEFS+= -DRomDir=\"\\\"${PREFIX}/share/fmsx/\"\\\"
+DEFS+= -DMITSHM -D${CUR_DEPTH}
+
+MAKE_ENV= DEFS="${DEFS}"
+
+pre-install:
+ @${MKDIR} ${PREFIX}/share/fmsx \
+ && ${CHMOD} a+rx ${PREFIX}/share/fmsx
+ @${MKDIR} ${PREFIX}/share/doc/html/fmsx \
+ && ${CHMOD} a+rx ${PREFIX}/share/doc/html/fmsx
+
+# Makefile of fMSX doesn't have install target.
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/fmsx ${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/rddsk ${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/wrdsk ${PREFIX}/bin
+ ${MKDIR} ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/CYRILLIC.FNT ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/ITALIC.FNT ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/DISK.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/KANJI.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/MSX.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/MSX2.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/MSX2EXT.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/MSX2P.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/MSX2PEXT.ROM ${PREFIX}/share/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/PAINTER.ROM ${PREFIX}/share/fmsx
+ ${MKDIR} ${PREFIX}/share/doc/fmsx
+ ${INSTALL_DATA} ${WRKSRC}/fMSX.html ${PREFIX}/share/doc/fmsx
+
+.include "../../mk/bsd.pkg.mk"
+
+.ifdef DISPLAY
+CUR_DEPTH!= ( xwininfo -display ${DISPLAY} -root | fgrep Depth: | ${SED} 's-.*Depth: -BPP-' )
+.else
+CUR_DEPTH= BPP8
+.endif
diff --git a/emulators/fmsx/files/md5 b/emulators/fmsx/files/md5
new file mode 100644
index 00000000000..3deae60d70f
--- /dev/null
+++ b/emulators/fmsx/files/md5
@@ -0,0 +1,3 @@
+$NetBSD: md5,v 1.1.1.1 2000/07/28 15:54:28 martin Exp $
+
+MD5 (fMSX21.tar.Z) = b775b6bb2951a81374b114f104c5bed2
diff --git a/emulators/fmsx/files/patch-sum b/emulators/fmsx/files/patch-sum
new file mode 100644
index 00000000000..d4ce13e3a1a
--- /dev/null
+++ b/emulators/fmsx/files/patch-sum
@@ -0,0 +1,6 @@
+$NetBSD: patch-sum,v 1.1.1.1 2000/07/28 15:54:28 martin Exp $
+
+MD5 (patch-aa) = 58870e1c9541e530a76d4ebff2b8750f
+MD5 (patch-ab) = 86fa2a902e011f0897ac4a4073d82f01
+MD5 (patch-ac) = 8267b487b34c9e12b4d15e19b8ecf8d3
+MD5 (patch-ad) = f437ba2d61e00df2d6f3dc69787a52e4
diff --git a/emulators/fmsx/patches/patch-aa b/emulators/fmsx/patches/patch-aa
new file mode 100644
index 00000000000..2f25eae5066
--- /dev/null
+++ b/emulators/fmsx/patches/patch-aa
@@ -0,0 +1,24 @@
+$NetBSD: patch-aa,v 1.1.1.1 2000/07/28 15:54:29 martin Exp $
+
+--- Makefile.orig Thu Sep 9 00:32:06 1999
++++ Makefile Sat Jun 3 03:19:48 2000
+@@ -41,8 +41,8 @@
+ # change the -L/usr/X11R6/lib to the directory where X11
+ # libraries libX11.* and libXext.* are located on your system.
+ CC = gcc
+-DEFINES = -DFMSX -DUNIX -DLSB_FIRST -DDEBUG -DMITSHM -DNARROW -DSOUND -DBPP16
+-CFLAGS = -O3 -fomit-frame-pointer -I/usr/X11/include -L/usr/X11/lib ${DEFINES}
++DEFINES = -DFMSX -DUNIX -DNARROW ${DEFS}
++CFLAGS = -O3 -fomit-frame-pointer -I${X11BASE}/include ${DEFINES}
+ OBJECTS = fMSX.o MSX.o Z80.o V9938.o Patch.o Debug.o Unix.o LibUnix.o Sound.o
+
+ # Make the standard distribution: fMSX and contributed programs
+@@ -57,7 +57,7 @@
+ # fMSX Unix/X requires X11 libraries. See note above if you are
+ # experiencing any problems.
+ fmsx: ${OBJECTS}
+- ${CC} ${CFLAGS} -o fmsx ${OBJECTS} -lXext -lX11
++ ${CC} ${CFLAGS} -o fmsx ${OBJECTS} -Wl,-R${X11BASE}/lib -L${X11BASE}/lib -lXext -lX11
+
+ # Clean up.
+ clean:
diff --git a/emulators/fmsx/patches/patch-ab b/emulators/fmsx/patches/patch-ab
new file mode 100644
index 00000000000..45b8716ce8c
--- /dev/null
+++ b/emulators/fmsx/patches/patch-ab
@@ -0,0 +1,14 @@
+$NetBSD: patch-ab,v 1.1.1.1 2000/07/28 15:54:28 martin Exp $
+
+--- Sound.c.orig Mon Jan 4 06:43:54 1999
++++ Sound.c Mon Jan 4 06:44:13 1999
+@@ -50,7 +50,9 @@
+
+ #include <sys/audioio.h>
+ #include <sys/conf.h>
++#ifndef __NetBSD__
+ #include <stropts.h>
++#endif
+ #include <signal.h>
+
+ static unsigned char dsp_ulaw[256] = {
diff --git a/emulators/fmsx/patches/patch-ac b/emulators/fmsx/patches/patch-ac
new file mode 100644
index 00000000000..617e03305f7
--- /dev/null
+++ b/emulators/fmsx/patches/patch-ac
@@ -0,0 +1,20 @@
+$NetBSD: patch-ac,v 1.1.1.1 2000/07/28 15:54:29 martin Exp $
+
+--- Z80.h.orig Sat Jun 3 01:23:31 2000
++++ Z80.h Sat Jun 3 01:29:01 2000
+@@ -40,6 +40,15 @@
+ typedef unsigned short word;
+ typedef signed char offset;
+
++#include <sys/endian.h>
++#if (_BYTE_ORDER == _LITTLE_ENDIAN)
++#define LSB_FIRST
++#elif (_BYTE_ORDER == _BIG_ENDIAN)
++#define MSB_FIRST
++#else
++#warn Check if your machine is big endian or not and define as appropriate one.
++#endif
++
+ /** Structured Datatypes *************************************/
+ /** NOTICE: #define LSB_FIRST for machines where least **/
+ /** signifcant byte goes first. **/
diff --git a/emulators/fmsx/patches/patch-ad b/emulators/fmsx/patches/patch-ad
new file mode 100644
index 00000000000..cc51bdcf2c3
--- /dev/null
+++ b/emulators/fmsx/patches/patch-ad
@@ -0,0 +1,105 @@
+$NetBSD: patch-ad,v 1.1.1.1 2000/07/28 15:54:29 martin Exp $
+
+--- MSX.c.orig Tue Sep 7 01:18:17 1999
++++ MSX.c Fri Jul 28 17:30:49 2000
+@@ -85,7 +85,7 @@
+ int Drives[2] = { -1,-1 }; /* Disk image files */
+
+ /** Fixed font used by fMSX **********************************/
+-char *FontName = "DEFAULT.FNT"; /* Font file for text */
++char *FontName = FontDir "DEFAULT.FNT"; /* Font file for text */
+ byte *FontBuf; /* Font for text modes */
+ byte UseFont = 0; /* Use ext. font when 1 */
+
+@@ -339,7 +339,7 @@
+ {
+ case 0:
+ if(Verbose) printf(" Opening MSX.ROM...");
+- P=LoadROM("MSX.ROM",0x8000,0);
++ P=LoadROM(RomDir "MSX.ROM",0x8000,0);
+ PRINTRESULT(P);
+ if(!P) return(0);
+ MemMap[0][0][0]=P;
+@@ -350,7 +350,7 @@
+
+ case 1:
+ if(Verbose) printf(" Opening MSX2.ROM...");
+- P=LoadROM("MSX2.ROM",0x8000,0);
++ P=LoadROM(RomDir "MSX2.ROM",0x8000,0);
+ PRINTRESULT(P);
+ if(!P) return(0);
+ MemMap[0][0][0]=P;
+@@ -358,7 +358,7 @@
+ MemMap[0][0][2]=P+0x4000;
+ MemMap[0][0][3]=P+0x6000;
+ if(Verbose) printf(" Opening MSX2EXT.ROM...");
+- P=LoadROM("MSX2EXT.ROM",0x4000,0);
++ P=LoadROM(RomDir "MSX2EXT.ROM",0x4000,0);
+ PRINTRESULT(P);
+ if(!P) return(0);
+ MemMap[3][1][0]=P;
+@@ -367,7 +367,7 @@
+
+ case 2:
+ if(Verbose) printf(" Opening MSX2P.ROM...");
+- P=LoadROM("MSX2P.ROM",0x8000,0);
++ P=LoadROM(RomDir "MSX2P.ROM",0x8000,0);
+ PRINTRESULT(P);
+ if(!P) return(0);
+ MemMap[0][0][0]=P;
+@@ -375,7 +375,7 @@
+ MemMap[0][0][2]=P+0x4000;
+ MemMap[0][0][3]=P+0x6000;
+ if(Verbose) printf(" Opening MSX2PEXT.ROM...");
+- P=LoadROM("MSX2PEXT.ROM",0x4000,0);
++ P=LoadROM(RomDir "MSX2PEXT.ROM",0x4000,0);
+ PRINTRESULT(P);
+ if(!P) return(0);
+ MemMap[3][1][0]=P;
+@@ -384,7 +384,7 @@
+ }
+
+ /* Try loading DiskROM */
+- if(P=LoadROM("DISK.ROM",0x4000,0))
++ if(P=LoadROM(RomDir "DISK.ROM",0x4000,0))
+ {
+ if(Verbose) puts(" Opening DISK.ROM...OK");
+ MemMap[3][1][2]=P;
+@@ -434,16 +434,16 @@
+ if(Verbose) printf("Loading other ROMs:\n ");
+
+ /* Try loading CMOS memory contents */
+- if(LoadROM("CMOS.ROM",sizeof(RTC),(byte *)RTC))
++ if(LoadROM(RomDir "CMOS.ROM",sizeof(RTC),(byte *)RTC))
+ { if(Verbose) printf(" CMOS.ROM"); }
+ else memcpy(RTC,RTCInit,sizeof(RTC));
+
+ /* Try loading Kanji alphabet ROM */
+- if(Kanji=LoadROM("KANJI.ROM",0x20000,0))
++ if(Kanji=LoadROM(RomDir "KANJI.ROM",0x20000,0))
+ { if(Verbose) printf(" KANJI.ROM"); }
+
+ /* Try loading RS232 support ROM */
+- if(P=LoadROM("RS232.ROM",0x4000,0))
++ if(P=LoadROM(RomDir "RS232.ROM",0x4000,0))
+ {
+ if(Verbose) printf(" RS232.ROM");
+ MemMap[3][0][2]=P;
+@@ -451,7 +451,7 @@
+ }
+
+ /* Try loading FM-PAC support ROM */
+- if(P=LoadROM("FMPAC.ROM",0x4000,0))
++ if(P=LoadROM(RomDir "FMPAC.ROM",0x4000,0))
+ {
+ if(Verbose) printf(" FMPAC.ROM");
+ MemMap[3][3][2]=P;
+@@ -467,7 +467,7 @@
+ else J=0;
+
+ /* Try loading PAINTER ROM if slot found */
+- if(J&&(P=LoadROM("PAINTER.ROM",0x10000,0)))
++ if(J&&(P=LoadROM(RomDir "PAINTER.ROM",0x10000,0)))
+ {
+ if(Verbose) printf(" PAINTER.ROM");
+ for(I=0;I<8;I++) MemMap[J][0][I]=P+I*0x2000;
diff --git a/emulators/fmsx/pkg/COMMENT b/emulators/fmsx/pkg/COMMENT
new file mode 100644
index 00000000000..109cef84a1a
--- /dev/null
+++ b/emulators/fmsx/pkg/COMMENT
@@ -0,0 +1 @@
+MSX (Z80-based computer) emulator
diff --git a/emulators/fmsx/pkg/DESCR b/emulators/fmsx/pkg/DESCR
new file mode 100644
index 00000000000..c73d5b9bdcb
--- /dev/null
+++ b/emulators/fmsx/pkg/DESCR
@@ -0,0 +1,13 @@
+fMSX is a portable emulator of MSX home computers written in C. You
+can always get the latest fMSX source code and support files from
+
+ http://www.komkon.org/fms/fMSX/
+
+MSX is an old Z80-based family of home computers which appeared in
+1982 as an attempt to establish a single standard in home computing
+similar to VHS in video. They were popular in Asian (Korea, Japan) and
+South American (Brazil, Chile) countries as well as in Europe
+(Netherlands, France, Spain) and former Soviet Union, but they are
+virtually unknown in USA. Although MSX standard quietly died to year
+1988, the world got to see MSX2, MSX2+, and TurboR extensions of the
+standard.
diff --git a/emulators/fmsx/pkg/PLIST b/emulators/fmsx/pkg/PLIST
new file mode 100644
index 00000000000..ee107826b70
--- /dev/null
+++ b/emulators/fmsx/pkg/PLIST
@@ -0,0 +1,17 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2000/07/28 15:54:27 martin Exp $
+bin/fmsx
+bin/rddsk
+bin/wrdsk
+share/fmsx/CYRILLIC.FNT
+share/fmsx/ITALIC.FNT
+share/fmsx/DISK.ROM
+share/fmsx/KANJI.ROM
+share/fmsx/MSX.ROM
+share/fmsx/MSX2.ROM
+share/fmsx/MSX2EXT.ROM
+share/fmsx/MSX2P.ROM
+share/fmsx/MSX2PEXT.ROM
+share/fmsx/PAINTER.ROM
+share/doc/fmsx/fMSX.html
+@dirrm share/fmsx
+@dirrm share/doc/fmsx