diff options
author | ryoon <ryoon@pkgsrc.org> | 2013-11-10 12:50:19 +0000 |
---|---|---|
committer | ryoon <ryoon@pkgsrc.org> | 2013-11-10 12:50:19 +0000 |
commit | 24e314d93b72bc57e644692ad38b22475cef7033 (patch) | |
tree | 742ca107e8563367785228bec94f52b73fe15e2e /emulators | |
parent | 4f65cdd47a0e6e5ccd66f0678fc7592d264b9e30 (diff) | |
download | pkgsrc-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/Makefile | 14 | ||||
-rw-r--r-- | emulators/arcem/distinfo | 21 | ||||
-rw-r--r-- | emulators/arcem/patches/patch-aa | 57 | ||||
-rw-r--r-- | emulators/arcem/patches/patch-ab | 56 | ||||
-rw-r--r-- | emulators/arcem/patches/patch-ac | 35 | ||||
-rw-r--r-- | emulators/arcem/patches/patch-ad | 35 | ||||
-rw-r--r-- | emulators/arcem/patches/patch-ae | 12 | ||||
-rw-r--r-- | emulators/arcem/patches/patch-hostfs.c | 26 |
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__ |