summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorryoon <ryoon@pkgsrc.org>2013-11-10 12:50:19 +0000
committerryoon <ryoon@pkgsrc.org>2013-11-10 12:50:19 +0000
commit24e314d93b72bc57e644692ad38b22475cef7033 (patch)
tree742ca107e8563367785228bec94f52b73fe15e2e /emulators
parent4f65cdd47a0e6e5ccd66f0678fc7592d264b9e30 (diff)
downloadpkgsrc-24e314d93b72bc57e644692ad38b22475cef7033.tar.gz
Update to 1.50
* Included Linux image works fine on NetBSD/amd64 6.99.23 Changelog: New features Addition of ports to Amiga OS 3 and OS 4. Sound emulation. Support for RAM sizes other than 4MB (512KB, 1MB, 2MB, 4MB, 8MB, 12MB & 16MB now supported). ARM250 & ARM3 CPU emulation. ArcEm clock set from host's clock, partial RTC support. Extension ROM emulation, allowing support for the following new features when emulation RISC OS: HostFS - A RISC OS filesystem to allow use of a directory on the Host Filing system as a virtual hard drive. Mouse scroll wheel support. Extra video modes, up to 1024x768 in 16 colours and 800x600 in 256 colours. Bug fixes/Improvements Many performance tweaks and optimisations, resulting in a 5-6 times performance gain on ARM hosts. A 600MHz XScale can now achieve a level of performance roughly equivalent to an 8MHz ARM2. Similar performance gains can be seen on other low-power hosts. Video emulation rewritten to provide accurate redraw and VSync timing, down to the scanline level. Video emulation now supports upscaling and aspect ratio correction for rectangular pixel modes. All hardware clocks/timers (IOC timers, video DMA, audio DMA, etc.) now run in real time, ensuring one second takes one second no matter how fast the host machine is. Source code tidied a bit to remove redundant code, including support for emulation of 32bit processor modes (there are other, much better emulators for that!). Source code converted to use C99 number types to aid portability. Instruction prefetch now correctly emulated - ensures correct operation with self-modifying code and some forms of copy protection. RISC OS version now 32bit compatible, and ARMv7-safe. Also much more useable with modern machines/LCD monitors as it no longer requires the host to be able to support Archimedes screen modes. Windows version updated to build under Visual Studio 2010 (including Express edition). Unix/X11 version now supports X servers that don't support XWarpPointer.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/arcem/Makefile14
-rw-r--r--emulators/arcem/distinfo21
-rw-r--r--emulators/arcem/patches/patch-aa57
-rw-r--r--emulators/arcem/patches/patch-ab56
-rw-r--r--emulators/arcem/patches/patch-ac35
-rw-r--r--emulators/arcem/patches/patch-ad35
-rw-r--r--emulators/arcem/patches/patch-ae12
-rw-r--r--emulators/arcem/patches/patch-hostfs.c26
8 files changed, 57 insertions, 199 deletions
diff --git a/emulators/arcem/Makefile b/emulators/arcem/Makefile
index 083ca05fb8f..bc67310b36b 100644
--- a/emulators/arcem/Makefile
+++ b/emulators/arcem/Makefile
@@ -1,15 +1,11 @@
-# $NetBSD: Makefile,v 1.22 2012/10/23 10:24:03 wiz Exp $
+# $NetBSD: Makefile,v 1.23 2013/11/10 12:50:19 ryoon Exp $
#
-DISTNAME= arcem-1.00-src
+DISTNAME= arcem-1.50-src
PKGNAME= ${DISTNAME:S/-src//}
-PKGREVISION= 2
CATEGORIES= emulators
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=arcem/}
-
-NOT_FOR_PLATFORM+= ${LP64PLATFORMS}
-
-EXTRACT_SUFX= .tgz
+EXTRACT_SUFX= .zip
LINUX_FILES= \
linux.rom.gz \
@@ -26,14 +22,14 @@ MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://arcem.sourceforge.net/
COMMENT= Dave Gilbert's Acorn Archimedes emulator
-WRKSRC= ${WRKDIR}/arcem
+WRKSRC= ${WRKDIR}/arcem-src
USE_TOOLS+= gmake
MAKE_ENV+= SYSTEM=X
INSTALLATION_DIRS+= bin share/arcem
-BUILDLINK_TRANSFORM+= rm:-Werror
+#BUILDLINK_TRANSFORM+= rm:-Werror
post-install:
${INSTALL_DATA} ${WRKDIR}/linux.rom \
diff --git a/emulators/arcem/distinfo b/emulators/arcem/distinfo
index 356028124ef..80de5fee00a 100644
--- a/emulators/arcem/distinfo
+++ b/emulators/arcem/distinfo
@@ -1,16 +1,13 @@
-$NetBSD: distinfo,v 1.5 2011/03/03 12:55:48 obache Exp $
+$NetBSD: distinfo,v 1.6 2013/11/10 12:50:19 ryoon Exp $
-SHA1 (arcem-1.00-src.tgz) = d2a487531ce6c66dfbeb59d1f1093c7d8fc3282a
-RMD160 (arcem-1.00-src.tgz) = 95044eed6e5cd871d5bd926c3d02d17706e0f93b
-Size (arcem-1.00-src.tgz) = 206416 bytes
-SHA1 (linux.rom.gz) = 5a3ed7b8bf7e560d14ede14232e50a40a96f9147
-RMD160 (linux.rom.gz) = 5bf035a3e6f054a61de62fcf880c52c996f503c6
-Size (linux.rom.gz) = 341085 bytes
SHA1 (HardImage1.gz) = ab3c2ddd5a913a4051d4c21707e7701b27a103f3
RMD160 (HardImage1.gz) = 09176071c9c325b50a3a2074938789f4e6136d44
Size (HardImage1.gz) = 3545800 bytes
-SHA1 (patch-aa) = 3e3b3619552cd71326e9042d6f5878ead287ab62
-SHA1 (patch-ab) = f55cf50560e5a3d87ec1540fddd88990981d56ec
-SHA1 (patch-ac) = a9f3edbd7e7a974b7098936d62790821c5d3d4a1
-SHA1 (patch-ad) = 61823a1e47f783d1852c1f50762cdecbe3aeb3fb
-SHA1 (patch-ae) = c2580ed6b4940022dc427456519a066413a3c91f
+SHA1 (arcem-1.50-src.zip) = b1f39b15e2d9ec5d7c82f618cb2beb0bc011c0b1
+RMD160 (arcem-1.50-src.zip) = 74253d5d6fcf5fc64abc10f95f6fbcd121f7eddf
+Size (arcem-1.50-src.zip) = 1420685 bytes
+SHA1 (linux.rom.gz) = 5a3ed7b8bf7e560d14ede14232e50a40a96f9147
+RMD160 (linux.rom.gz) = 5bf035a3e6f054a61de62fcf880c52c996f503c6
+Size (linux.rom.gz) = 341085 bytes
+SHA1 (patch-aa) = 558eefa0f3061b295a24d8adfef86d902e7894aa
+SHA1 (patch-hostfs.c) = 56b3649fdd95ff4b6c98fc2666fd6b0d04c811f8
diff --git a/emulators/arcem/patches/patch-aa b/emulators/arcem/patches/patch-aa
index ebee702bb8e..b71a40da3dc 100644
--- a/emulators/arcem/patches/patch-aa
+++ b/emulators/arcem/patches/patch-aa
@@ -1,47 +1,24 @@
-$NetBSD: patch-aa,v 1.3 2011/03/03 12:55:48 obache Exp $
+$NetBSD: patch-aa,v 1.4 2013/11/10 12:50:19 ryoon Exp $
---- Makefile.orig 2002-05-05 22:09:39.000000000 +0000
+--- Makefile.orig 2012-12-12 23:41:33.000000000 +0000
+++ Makefile
-@@ -36,16 +36,15 @@ WARN = -Wall -Wno-return-type -Wno-unkno
+@@ -48,7 +48,9 @@ endif
+ CC=gcc
+ LD=gcc
+-LDFLAGS=
++LDFLAGS= ${COMPILER_RPATH_FLAG}${LOCALBASE}/lib \
++ ${COMPILER_RPATH_FLAG}${X11BASE}/lib
++
- # add -DHOST_BIGENDIAN for big endian hosts, e.g. Sun, SGI, HP
--CFLAGS = -O3 -D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) \
-- -I$(SYSTEM) -Iarch -funroll-loops -fexpensive-optimizations -ffast-math \
-- -fomit-frame-pointer -frerun-cse-after-loop
-+#CFLAGS = -O3 -D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) \
-+# -I$(SYSTEM) -Iarch -funroll-loops -fexpensive-optimizations -ffast-math \
-+# -fomit-frame-pointer -frerun-cse-after-loop
-+CFLAGS = -g -D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) -I$(SYSTEM) -Iarch
+ WARN = -Wall -Wno-return-type -Wno-unknown-pragmas -Wshadow \
+ -Wpointer-arith -Wcast-align -Wstrict-prototypes \
+@@ -69,7 +71,7 @@ endif
+ CFLAGS += \
+ $(CFL) $(WARN) \
+- -I$(SYSTEM) -Iarch -I.
++ -I$(SYSTEM) -Iarch -I. \
+ prefix=/usr/local
--prefix=/usr/local
--
--INSTALL_DIR = $(prefix)/bin
--INSTALL=cp
-+INSTALL_DIR = $(DESTDIR)$(PREFIX)/bin
-+INSTALL= ${BSD_INSTALL_PROGRAM}
-
-
- # Everything else should be ok as it is.
-@@ -82,8 +81,8 @@ TARGET=!ArcEm/arcem
- endif
-
- ifeq (${SYSTEM},X)
--CFLAGS += -DSYSTEM_X -I/usr/X11R6/include
--LIBS += -L/usr/X11R6/lib -lXext -lX11
-+CFLAGS += -DSYSTEM_X -I${X11BASE}/include
-+LIBS += -L${X11BASE}/lib -Wl,-R${X11BASE}/lib -lXext -lX11
- endif
-
- ifeq (${SYSTEM},win)
-@@ -110,7 +109,7 @@ VER=1.0
- all: $(TARGET)
-
- install: all
-- $(INSTALL) armul $(INSTALL_DIR)
-+ $(INSTALL) arcem $(INSTALL_DIR)
-
- $(TARGET): $(OBJS) $(MODEL).o
- $(CC) $(OBJS) $(LIBS) $(MODEL).o -o $@
diff --git a/emulators/arcem/patches/patch-ab b/emulators/arcem/patches/patch-ab
deleted file mode 100644
index 85a9cedc712..00000000000
--- a/emulators/arcem/patches/patch-ab
+++ /dev/null
@@ -1,56 +0,0 @@
-$NetBSD: patch-ab,v 1.3 2007/10/10 22:36:05 rillig Exp $
-
---- X/DispKbd.c.orig 2002-05-06 00:09:39.000000000 +0200
-+++ X/DispKbd.c 2007-10-11 00:34:12.000000000 +0200
-@@ -45,7 +45,9 @@
- #define HD HOSTDISPLAY
- #define DC DISPLAYCONTROL
-
-+#if 0
- static unsigned AutoKey(ARMul_State *state);
-+#endif
-
- static struct EventNode enodes[4];
- //static int autokeyenode=0; /* Flips between 0 and 1 */
-@@ -87,12 +89,14 @@ static unsigned long get_pixelval(unsign
- } /* get_pixval */
-
- /*----------------------------------------------------------------------------*/
-+#if 0
- static unsigned AutoKey(ARMul_State *state) {
- /*fprintf(stderr,"AutoKey!\n"); */
- KBD.TimerIntHasHappened+=2;
-
- return 0;
- };
-+#endif
- /*-----------------------------------------------------------------------------*/
- /* I'm not confident that this is completely correct - if it's wrong all hell
- is bound to break loose! If it works however it should speed things up
-@@ -731,7 +735,7 @@ static void RefreshDisplay_TrueColor_8bp
- int DisplayWidth=(VIDC.Horiz_DisplayEnd-VIDC.Horiz_DisplayStart)*2;
- int x,y,memoffset;
- int VisibleDisplayWidth;
-- unsigned char Buffer[MonitorWidth];
-+ char Buffer[MonitorWidth];
- char *ImgPtr=HD.ImageData;
-
- /* First configure the colourmap */
-@@ -762,7 +766,7 @@ static void RefreshDisplay_TrueColor_8bp
- CopyScreenRAM(state,memoffset,VisibleDisplayWidth, Buffer);
-
- for(x=0;x<VisibleDisplayWidth;x++) {
-- XPutPixel(HD.DisplayImage,x,y,HD.pixelMap[Buffer[x]]);
-+ XPutPixel(HD.DisplayImage,x,y,HD.pixelMap[(unsigned char)Buffer[x]]);
- }; /* X loop */
- }; /* Refresh test */
- }; /* y */
-@@ -1119,7 +1123,7 @@ static void ProcessKey(ARMul_State *stat
- {
- XColor black, dummy;
- Pixmap bm_no;
-- static unsigned char bm_no_data[] = { 0,0,0,0, 0,0,0,0 };
-+ static char bm_no_data[] = { 0,0,0,0, 0,0,0,0 };
- XAllocNamedColor(HD.disp,HD.ArcsColormap,"black",&black,&dummy);
- bm_no = XCreateBitmapFromData(HD.disp, HD.MainPane, bm_no_data, 8,8);
- XDefineCursor(HD.disp, HD.MainPane, XCreatePixmapCursor(HD.disp, bm_no, bm_no, &black, &black,0, 0));
diff --git a/emulators/arcem/patches/patch-ac b/emulators/arcem/patches/patch-ac
deleted file mode 100644
index 1e4868c096c..00000000000
--- a/emulators/arcem/patches/patch-ac
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD: patch-ac,v 1.1 2004/12/03 15:15:23 skrll Exp $
-
---- armrdi.c.orig 2004-06-04 09:21:14.000000000 +0100
-+++ armrdi.c
-@@ -114,11 +114,13 @@ void ARMul_ConsolePrint(ARMul_State *sta
- }
- }
-
-+#if 0
- static void ARMul_DebugPause(ARMul_State *state)
- {
- if(!(rdi_log & 8))
- state->hostif->dbgpause(state->hostif->dbgarg);
- }
-+#endif
-
- /***************************************************************************\
- * RDI_open *
-@@ -278,6 +280,7 @@ static int RDI_CPUwrite(unsigned mode, u
- * Internal functions for breakpoint table manipulation *
- \***************************************************************************/
-
-+#if 0
- static void deletewatchnode(WatchNode **prevp)
- { WatchNode *p = *prevp;
- *prevp = p->next;
-@@ -305,7 +308,7 @@ static WatchNode *installwatch(ARMword a
- p->bound = bound;
- return p;
- }
--
-+#endif
- /***************************************************************************\
- * RDI_execute *
- \***************************************************************************/
diff --git a/emulators/arcem/patches/patch-ad b/emulators/arcem/patches/patch-ad
deleted file mode 100644
index 79678af0f3a..00000000000
--- a/emulators/arcem/patches/patch-ad
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD: patch-ad,v 1.1 2004/12/03 15:15:23 skrll Exp $
-
---- arch/armarc.c.orig 2002-05-06 09:52:53.000000000 +0100
-+++ arch/armarc.c
-@@ -355,7 +355,7 @@ unsigned ARMul_MemoryInit(ARMul_State *s
- FILE *ROMFile;
- unsigned int ROMWordNum,ROMWord;
- int PresPage;
-- unsigned int index;
-+ unsigned int idx;
-
- PrivDPtr = (PrivateDataType *)malloc(sizeof(PrivateDataType));
- if (PrivDPtr == NULL) {
-@@ -392,8 +392,8 @@ unsigned ARMul_MemoryInit(ARMul_State *s
- exit(3);
- };
-
-- for (index = 0; index < (MEMC.RAMSize / 4); index++)
-- MEMC.PhysRamfuncs[index]=ARMul_Emulate_DecodeInstr;
-+ for (idx = 0; idx < (MEMC.RAMSize / 4); idx++)
-+ MEMC.PhysRamfuncs[idx]=ARMul_Emulate_DecodeInstr;
-
- MEMC.ROMMapFlag=1; /* Map ROM to address 0 */
- MEMC.ControlReg=0; /* Defaults */
-@@ -461,8 +461,8 @@ unsigned ARMul_MemoryInit(ARMul_State *s
- PRIVD->irqflags = 0;
- PRIVD->fiqflags = 0;
-
-- for(index = 0;index < (512 * 1024) / UPDATEBLOCKSIZE; index++) {
-- MEMC.UpdateFlags[index] = 1;
-+ for(idx = 0;idx < (512 * 1024) / UPDATEBLOCKSIZE; idx++) {
-+ MEMC.UpdateFlags[idx] = 1;
- }
-
- MEMC.OldAddress1 = -1;
diff --git a/emulators/arcem/patches/patch-ae b/emulators/arcem/patches/patch-ae
deleted file mode 100644
index f41e8278c45..00000000000
--- a/emulators/arcem/patches/patch-ae
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-ae,v 1.1 2007/10/10 22:36:05 rillig Exp $
-
---- armdefs.h.orig 2002-03-17 00:30:30.000000000 +0100
-+++ armdefs.h 2007-10-11 00:31:14.000000000 +0200
-@@ -302,7 +302,6 @@ extern ARMword ARMul_OSLastErrorP(ARMul_
-
- extern ARMword ARMul_Debug(ARMul_State *state, ARMword pc, ARMword instr);
- extern unsigned ARMul_OSException(ARMul_State *state, ARMword vector, ARMword pc);
--extern int rdi_log;
-
- /***************************************************************************\
- * Host-dependent stuff *
diff --git a/emulators/arcem/patches/patch-hostfs.c b/emulators/arcem/patches/patch-hostfs.c
new file mode 100644
index 00000000000..caec5108415
--- /dev/null
+++ b/emulators/arcem/patches/patch-hostfs.c
@@ -0,0 +1,26 @@
+$NetBSD: patch-hostfs.c,v 1.1 2013/11/10 12:50:19 ryoon Exp $
+
+* Fix build on NetBSD, functionality is not tested.
+
+--- hostfs.c.orig 2012-10-21 14:43:19.000000000 +0000
++++ hostfs.c
+@@ -35,7 +35,7 @@
+ #include <dirent.h>
+ #include <unistd.h>
+ #endif
+-#if defined __unix || defined __MACH__ || defined __riscos__
++#if defined __unix || defined __MACH__ || defined __riscos__ || defined __NetBSD__
+ #include <utime.h>
+ #else
+ #include <sys/utime.h>
+@@ -72,6 +72,10 @@ int __riscosify_control = 0;
+
+ #endif /* !__riscos__ */
+
++#if defined __NetBSD__
++#define NO_OPEN64
++#endif
++
+ #include "hostfs.h"
+
+ #if defined NO_OPEN64 || defined __MACH__