summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2020-03-06 12:23:01 +0000
committernia <nia@pkgsrc.org>2020-03-06 12:23:01 +0000
commit2994d1f3aaf88485f9c53cd1dec85490dabbfb68 (patch)
treead8870aa8d7c15acc0c5526794279cecd9d3cbba /emulators
parent219db9984f040cf0c1901a4a215c602c7140c2eb (diff)
downloadpkgsrc-2994d1f3aaf88485f9c53cd1dec85490dabbfb68.tar.gz
emulators: Add caprice32.
Caprice32 is a software emulator of the Amstrad CPC 8bit home computer series. The emulator faithfully imitates the CPC464, CPC664, and CPC6128 models. By recreating the operations of all hardware components at a low level, the emulator achieves a high degree of compatibility with original CPC software. These programs or games can be run unmodified at real-time or higher speeds, depending on the emulator host environment.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile3
-rw-r--r--emulators/caprice32/DESCR6
-rw-r--r--emulators/caprice32/MESSAGE14
-rw-r--r--emulators/caprice32/Makefile41
-rw-r--r--emulators/caprice32/PLIST20
-rw-r--r--emulators/caprice32/distinfo10
-rw-r--r--emulators/caprice32/patches/patch-cap32.cfg24
-rw-r--r--emulators/caprice32/patches/patch-doc_man6_cap32.624
-rw-r--r--emulators/caprice32/patches/patch-makefile53
-rw-r--r--emulators/caprice32/patches/patch-src_cap32.cpp15
10 files changed, 209 insertions, 1 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index 04c6fd951c8..e8c958e659c 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.312 2020/01/29 10:33:16 nia Exp $
+# $NetBSD: Makefile,v 1.313 2020/03/06 12:23:01 nia Exp $
#
COMMENT= Emulators for other operating systems
@@ -24,6 +24,7 @@ SUBDIR+= blastem
SUBDIR+= blinkensim
SUBDIR+= bochs
SUBDIR+= cannonball
+SUBDIR+= caprice32
SUBDIR+= ckmame
SUBDIR+= cmdpack
SUBDIR+= compat12
diff --git a/emulators/caprice32/DESCR b/emulators/caprice32/DESCR
new file mode 100644
index 00000000000..f2a6c28d2d3
--- /dev/null
+++ b/emulators/caprice32/DESCR
@@ -0,0 +1,6 @@
+Caprice32 is a software emulator of the Amstrad CPC 8bit home computer
+series. The emulator faithfully imitates the CPC464, CPC664, and CPC6128
+models. By recreating the operations of all hardware components at a
+low level, the emulator achieves a high degree of compatibility with
+original CPC software. These programs or games can be run unmodified at
+real-time or higher speeds, depending on the emulator host environment.
diff --git a/emulators/caprice32/MESSAGE b/emulators/caprice32/MESSAGE
new file mode 100644
index 00000000000..0374c11481b
--- /dev/null
+++ b/emulators/caprice32/MESSAGE
@@ -0,0 +1,14 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+For copyright reasons ROM files cannot be redistributed with the package.
+
+Caprice32 searches ${PREFIX}/share/caprice32/rom for BASIC and AMSDOS ROM
+images in MAME/MESS format (only not compressed), e.g. cpc6128.rom and
+amsdos.rom.
+
+Note that Caprice32's executable name is "cap32" rather than "caprice32".
+
+The F1 key opens Caprice32's menu.
+
+===========================================================================
diff --git a/emulators/caprice32/Makefile b/emulators/caprice32/Makefile
new file mode 100644
index 00000000000..d25472fc12f
--- /dev/null
+++ b/emulators/caprice32/Makefile
@@ -0,0 +1,41 @@
+# $NetBSD: Makefile,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+DISTNAME= caprice32-4.5.0
+CATEGORIES= emulators
+MASTER_SITES= ${MASTER_SITE_GITHUB:=ColinPitrat/}
+GITHUB_TAG= v${PKGVERSION_NOREV}
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://github.com/ColinPitrat/caprice32
+COMMENT= Emulator of the Amstrad CPC 8bit home computer range
+LICENSE= gnu-gpl-v2
+
+USE_TOOLS+= gmake pkg-config
+USE_LANGUAGES= c c++
+MAKE_FILE= makefile
+
+MAKE_FLAGS+= prefix=${PREFIX}
+MAKE_FLAGS+= GIT_HASH="pkgsrc"
+
+SUBST_CLASSES+= conf
+SUBST_STAGE.conf= pre-configure
+SUBST_MESSAGE.conf= Fix paths.
+SUBST_FILES.conf+= cap32.cfg
+SUBST_FILES.conf+= src/cap32.cfg
+SUBST_FILES.conf+= src/cap32.cpp
+SUBST_FILES.conf+= doc/man6/cap32.6
+SUBST_VARS.conf+= PREFIX
+SUBST_VARS.conf+= PKG_SYSCONFDIR
+
+EGDIR= ${PREFIX}/share/examples/caprice32
+
+CONF_FILES+= ${EGDIR}/cap32.cfg ${PKG_SYSCONFDIR}/cap32.cfg
+
+RESTRICTED= Questionable ROM images in source tree
+NO_SRC_ON_FTP= ${RESTRICTED}
+
+.include "../../devel/SDL/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/emulators/caprice32/PLIST b/emulators/caprice32/PLIST
new file mode 100644
index 00000000000..b1f5fbb9c3f
--- /dev/null
+++ b/emulators/caprice32/PLIST
@@ -0,0 +1,20 @@
+@comment $NetBSD: PLIST,v 1.1 2020/03/06 12:23:01 nia Exp $
+bin/cap32
+man/man6/cap32.6
+share/caprice32/resources/audio.bmp
+share/caprice32/resources/cap32logo.bmp
+share/caprice32/resources/disk.bmp
+share/caprice32/resources/general.bmp
+share/caprice32/resources/input.bmp
+share/caprice32/resources/keymap_es_linux.map
+share/caprice32/resources/keymap_es_win.map
+share/caprice32/resources/keymap_fr_linux.map
+share/caprice32/resources/keymap_fr_win.map
+share/caprice32/resources/keymap_uk_linux.map
+share/caprice32/resources/keymap_uk_win.map
+share/caprice32/resources/keymap_us.map
+share/caprice32/resources/rom.bmp
+share/caprice32/resources/vera_mono.ttf
+share/caprice32/resources/vera_sans.ttf
+share/caprice32/resources/video.bmp
+share/examples/caprice32/cap32.cfg
diff --git a/emulators/caprice32/distinfo b/emulators/caprice32/distinfo
new file mode 100644
index 00000000000..7543cb98adb
--- /dev/null
+++ b/emulators/caprice32/distinfo
@@ -0,0 +1,10 @@
+$NetBSD: distinfo,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+SHA1 (caprice32-4.5.0.tar.gz) = c1f824023a0cee23488e238cb518d4b176594ee2
+RMD160 (caprice32-4.5.0.tar.gz) = b803d7f0f8742fc7bb10d23e24c71dbaa7484f6b
+SHA512 (caprice32-4.5.0.tar.gz) = 9f4c2583fa7d5215901765109177eef60c89dc322b59c352473bdc00dabc5d65dba112bcf4c41b47322c98e9b76d11fc7ecdf9e9973c57ba42b6966ceaba5efd
+Size (caprice32-4.5.0.tar.gz) = 577297 bytes
+SHA1 (patch-cap32.cfg) = 862cb8eff1235e3cbd95410a5e2074cf7a48df09
+SHA1 (patch-doc_man6_cap32.6) = 9779e2fb84d22f4f74bb8540872239e4359d0aeb
+SHA1 (patch-makefile) = 8a25b98eeb0e7b2c016628bb3dda0e8a8e084915
+SHA1 (patch-src_cap32.cpp) = c6d6c23f8a0cc59cdecbe63d99cca5b87f1eb274
diff --git a/emulators/caprice32/patches/patch-cap32.cfg b/emulators/caprice32/patches/patch-cap32.cfg
new file mode 100644
index 00000000000..3b4062815b4
--- /dev/null
+++ b/emulators/caprice32/patches/patch-cap32.cfg
@@ -0,0 +1,24 @@
+$NetBSD: patch-cap32.cfg,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+Fix paths.
+
+--- cap32.cfg.orig 2019-01-04 19:01:29.000000000 +0000
++++ cap32.cfg
+@@ -50,7 +50,7 @@ joystick_menu_button=9
+ joystick_vkeyboard_button=10
+ # resources_path
+ # path to resources (menu images...)
+-resources_path=/usr/local/share/caprice32/resources
++resources_path=@PREFIX@/share/caprice32/resources
+ # boot_time
+ # Estimated time in video frames the CPC takes to boot.
+ # Caprice will emulate this number of frames before starting to send a provided autocmd.
+@@ -167,7 +167,7 @@ printer_file=./printer.dat
+ sdump_dir=./screenshots
+
+ [rom]
+-rom_path=/usr/local/share/caprice32/rom
++rom_path=@PREFIX@/share/caprice32/rom
+ slot00=
+ slot01=
+ slot02=
diff --git a/emulators/caprice32/patches/patch-doc_man6_cap32.6 b/emulators/caprice32/patches/patch-doc_man6_cap32.6
new file mode 100644
index 00000000000..26934087aef
--- /dev/null
+++ b/emulators/caprice32/patches/patch-doc_man6_cap32.6
@@ -0,0 +1,24 @@
+$NetBSD: patch-doc_man6_cap32.6,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+Fix path.
+
+--- doc/man6/cap32.6.orig 2019-01-04 19:01:29.000000000 +0000
++++ doc/man6/cap32.6
+@@ -26,7 +26,7 @@ The \fBrom_path\fR entry in the configur
+ .PP
+ \fBConfiguration\fR
+ .RS
+-When launched, Caprice32 will look for a configuration file in several locations. If a configuration file was specified using the \fB\-\-cfg_file\fR command line switch, Caprice32 will try and use it. If no configuration file was specified, or the configuration file specified does not exist, Caprice32 will try and open, in this order: \fB$CWD/cap32.cfg\fR ($CWD being the directory where the cap32 executable resides), then a \fB.cap32.cfg\fR file in the user home directory, then \fB/etc/cap32.cfg\fR. Caprice32 will use the first valid file it finds. If no configuration file is found, a default configuration will be used.
++When launched, Caprice32 will look for a configuration file in several locations. If a configuration file was specified using the \fB\-\-cfg_file\fR command line switch, Caprice32 will try and use it. If no configuration file was specified, or the configuration file specified does not exist, Caprice32 will try and open, in this order: \fB$CWD/cap32.cfg\fR ($CWD being the directory where the cap32 executable resides), then a \fB.cap32.cfg\fR file in the user home directory, then \fB@PKG_SYSCONFDIR@/cap32.cfg\fR. Caprice32 will use the first valid file it finds. If no configuration file is found, a default configuration will be used.
+ .PP
+ The configuration file contains various configuration parameters, some of which can be modified from the GUI.
+ When saving the configuration from the GUI, it will be written in the configuration file specified by the \fB\-\-cfg_file\fR switch, if it exists, else in $CWD/cap32.cfg if it exists, otherwise in $HOME/.cap32.cfg.
+@@ -138,7 +138,7 @@ The screen capture code uses driedfruit
+ .SH FILES
+ $HOME/.cap32.cfg
+ .br
+-/etc/cap32.cfg
++@PKG_SYSCONFDIR@/cap32.cfg
+
+ .SH SEE ALSO
+ https://github.com/ColinPitrat/caprice32
diff --git a/emulators/caprice32/patches/patch-makefile b/emulators/caprice32/patches/patch-makefile
new file mode 100644
index 00000000000..e32556062b8
--- /dev/null
+++ b/emulators/caprice32/patches/patch-makefile
@@ -0,0 +1,53 @@
+$NetBSD: patch-makefile,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+We pass our own flags.
+
+--- makefile.orig 2019-01-04 19:01:29.000000000 +0000
++++ makefile
+@@ -50,7 +50,6 @@ COMMON_CFLAGS += -DWITH_IPF
+ LIBS += $(MINGW_PATH)/bin/$(CAPSIPFDLL)
+ endif
+ else
+-prefix = /usr/local
+ TARGET = cap32
+ TEST_TARGET = test_runner
+ IPATHS = -Isrc/ -Isrc/gui/includes `pkg-config --cflags freetype2` `sdl-config --cflags` `pkg-config --cflags libpng`
+@@ -97,7 +96,7 @@ TEST_OBJECTS:=$(TEST_DEPENDS:.d=.o)
+ WARNINGS = -Wall -Wextra -Wzero-as-null-pointer-constant -Wformat=2 -Wold-style-cast -Wmissing-include-dirs -Wlogical-op -Woverloaded-virtual -Wpointer-arith -Wredundant-decls
+ COMMON_CFLAGS += $(CFLAGS) -std=c++11 $(IPATHS)
+ DEBUG_FLAGS = -Werror -g -O0 -DDEBUG
+-RELEASE_FLAGS = -O2 -funroll-loops -ffast-math -fomit-frame-pointer -fno-strength-reduce -finline-functions -s
++RELEASE_FLAGS = -ffast-math -fno-strength-reduce -finline-functions
+ BUILD_FLAGS = $(RELEASE_FLAGS)
+
+ debug: BUILD_FLAGS:=$(DEBUG_FLAGS)
+@@ -117,7 +116,7 @@ ifdef DEBUG
+ BUILD_FLAGS = $(DEBUG_FLAGS)
+ all: check_deps debug
+ else
+-all: check_deps distrib
++all: check_deps $(TARGET)
+ endif
+
+ # gtest doesn't build with warnings flags, hence the COMMON_CFLAGS
+@@ -204,11 +203,15 @@ distrib: $(TARGET)
+ ln -s caprice32-$(VERSION).tar.bz2 $(ARCHIVE)/caprice32_$(VERSION).orig.tar.bz2 || true
+
+ install: $(TARGET)
+- install -D $(TARGET) $(DESTDIR)$(prefix)/bin/$(TARGET)
+- install -D $(GROFF_DOC) $(DESTDIR)$(prefix)/share/man/man6/cap32.6
+- install -D -m664 cap32.cfg $(DESTDIR)/etc/cap32.cfg
+- mkdir -p $(DESTDIR)$(prefix)/share/caprice32
+- cp -r resources rom $(DESTDIR)$(prefix)/share/caprice32
++ $(BSD_INSTALL_PROGRAM_DIR) $(DESTDIR)$(prefix)/bin
++ $(BSD_INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(prefix)/bin/$(TARGET)
++ $(BSD_INSTALL_MAN_DIR) $(DESTDIR)$(prefix)/$(PKGMANDIR)/man6
++ $(BSD_INSTALL_MAN) $(GROFF_DOC) $(DESTDIR)$(prefix)/$(PKGMANDIR)/man6/cap32.6
++ $(BSD_INSTALL_DATA_DIR) $(DESTDIR)$(prefix)/share/examples/caprice32
++ $(BSD_INSTALL_DATA) cap32.cfg $(DESTDIR)$(prefix)/share/examples/caprice32/cap32.cfg
++ $(BSD_INSTALL_DATA_DIR) $(DESTDIR)$(prefix)/share/caprice32/resources
++ $(BSD_INSTALL_DATA) resources/* $(DESTDIR)$(prefix)/share/caprice32/resources
++ $(BSD_INSTALL_DATA_DIR) $(DESTDIR)$(prefix)/share/caprice32/rom
+ endif
+
+ ####################################
diff --git a/emulators/caprice32/patches/patch-src_cap32.cpp b/emulators/caprice32/patches/patch-src_cap32.cpp
new file mode 100644
index 00000000000..3e384b02408
--- /dev/null
+++ b/emulators/caprice32/patches/patch-src_cap32.cpp
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_cap32.cpp,v 1.1 2020/03/06 12:23:01 nia Exp $
+
+Fix paths.
+
+--- src/cap32.cpp.orig 2019-01-04 19:01:29.000000000 +0000
++++ src/cap32.cpp
+@@ -1578,7 +1578,7 @@ std::string getConfigurationFilename(boo
+ configFilename = std::string(getenv("HOME")) + "/.cap32.cfg";
+ // If still not found, look for cap32.cfg in /etc
+ if (!forWrite && access(configFilename.c_str(), F_OK) != 0) {
+- configFilename = "/etc/cap32.cfg";
++ configFilename = "@PKG_SYSCONFDIR@/cap32.cfg";
+ }
+ }
+ }