Tue Jun 2 13:25:00 2020 UTC ()
emulators: add gearsystem

Gearsystem is a cross-platform Sega Master System / Game Gear / SG-1000
emulator written in C++.

## Features

- Accurate Z80 core, including undocumented opcodes and behaviour like R
  and MEMPTR registers.
- Multi-Mapper support: SEGA, Codemasters, Korean, MSX, SG-1000, and ROM
  only cartridges.
- External RAM support with save files.
- Automatic region detection: NTSC-JAP, NTSC-USA, PAL-EUR.
- Accurate VDP emulation including timing and SMS2 only 224 mode support.
- Internal database for rom detection.
- Audio emulation using SDL Audio and Sms_Snd_Emu library.
- Saves battery powered RAM cartridges to file.
- Save states.
- Compressed rom support (ZIP deflate).
- Game Genie and Pro Action Replay cheat support.
- Full debugger with disassembler, breakpoints, debug symbols, memory editor,
  IO inspector and and VRAM viewer including tiles, sprites, backgrounds and
  palettes.


(nia)
diff -r1.324 -r1.325 pkgsrc/emulators/Makefile
diff -r0 -r1.1 pkgsrc/emulators/gearsystem/DESCR
diff -r0 -r1.1 pkgsrc/emulators/gearsystem/Makefile
diff -r0 -r1.1 pkgsrc/emulators/gearsystem/Makefile.common
diff -r0 -r1.1 pkgsrc/emulators/gearsystem/PLIST
diff -r0 -r1.1 pkgsrc/emulators/gearsystem/distinfo
diff -r0 -r1.1 pkgsrc/emulators/gearsystem/patches/patch-platforms_desktop-shared_Makefile.common

cvs diff -r1.324 -r1.325 pkgsrc/emulators/Makefile (expand / switch to unified diff)

--- pkgsrc/emulators/Makefile 2020/06/02 13:24:31 1.324
+++ pkgsrc/emulators/Makefile 2020/06/02 13:25:00 1.325
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile,v 1.324 2020/06/02 13:24:31 nia Exp $ 1# $NetBSD: Makefile,v 1.325 2020/06/02 13:25:00 nia Exp $
2# 2#
3 3
4COMMENT= Emulators for other operating systems 4COMMENT= Emulators for other operating systems
5 5
6SUBDIR+= 8086tiny 6SUBDIR+= 8086tiny
7SUBDIR+= BasiliskII 7SUBDIR+= BasiliskII
8SUBDIR+= Cygne-SDL 8SUBDIR+= Cygne-SDL
9SUBDIR+= DatLib 9SUBDIR+= DatLib
10SUBDIR+= DatUtil 10SUBDIR+= DatUtil
11SUBDIR+= MAMEDiff 11SUBDIR+= MAMEDiff
12SUBDIR+= PC6001VX 12SUBDIR+= PC6001VX
13SUBDIR+= ROMBuild 13SUBDIR+= ROMBuild
14SUBDIR+= ROMInfo 14SUBDIR+= ROMInfo
@@ -59,26 +59,27 @@ SUBDIR+= dynagen @@ -59,26 +59,27 @@ SUBDIR+= dynagen
59SUBDIR+= dynamips 59SUBDIR+= dynamips
60SUBDIR+= e-uae 60SUBDIR+= e-uae
61SUBDIR+= emulationstation 61SUBDIR+= emulationstation
62SUBDIR+= fceu 62SUBDIR+= fceu
63SUBDIR+= fmsx 63SUBDIR+= fmsx
64SUBDIR+= free42 64SUBDIR+= free42
65SUBDIR+= freebsd_lib 65SUBDIR+= freebsd_lib
66SUBDIR+= fs-uae 66SUBDIR+= fs-uae
67SUBDIR+= fs-uae-arcade 67SUBDIR+= fs-uae-arcade
68SUBDIR+= fs-uae-launcher 68SUBDIR+= fs-uae-launcher
69SUBDIR+= fuse-emulator 69SUBDIR+= fuse-emulator
70SUBDIR+= fuse-emulator-utils 70SUBDIR+= fuse-emulator-utils
71SUBDIR+= gearboy 71SUBDIR+= gearboy
 72SUBDIR+= gearsystem
72SUBDIR+= generator-cbiere 73SUBDIR+= generator-cbiere
73SUBDIR+= gens 74SUBDIR+= gens
74SUBDIR+= gns3-gui 75SUBDIR+= gns3-gui
75SUBDIR+= gns3-server 76SUBDIR+= gns3-server
76SUBDIR+= gnuboy 77SUBDIR+= gnuboy
77SUBDIR+= gnuboy-sdl 78SUBDIR+= gnuboy-sdl
78SUBDIR+= gpsim 79SUBDIR+= gpsim
79SUBDIR+= gpsim-devel 80SUBDIR+= gpsim-devel
80SUBDIR+= gpsim-oscilloscope 81SUBDIR+= gpsim-oscilloscope
81SUBDIR+= gpsim-ptyusart 82SUBDIR+= gpsim-ptyusart
82SUBDIR+= gpsp-rpi 83SUBDIR+= gpsp-rpi
83SUBDIR+= gxemul 84SUBDIR+= gxemul
84SUBDIR+= handy_sdl 85SUBDIR+= handy_sdl

File Added: pkgsrc/emulators/gearsystem/DESCR
Gearsystem is a cross-platform Sega Master System / Game Gear / SG-1000
emulator written in C++.

## Features

- Accurate Z80 core, including undocumented opcodes and behaviour like R
  and MEMPTR registers.
- Multi-Mapper support: SEGA, Codemasters, Korean, MSX, SG-1000, and ROM
  only cartridges.
- External RAM support with save files.
- Automatic region detection: NTSC-JAP, NTSC-USA, PAL-EUR.
- Accurate VDP emulation including timing and SMS2 only 224 mode support.
- Internal database for rom detection.
- Audio emulation using SDL Audio and Sms_Snd_Emu library.
- Saves battery powered RAM cartridges to file.
- Save states.
- Compressed rom support (ZIP deflate).
- Game Genie and Pro Action Replay cheat support.
- Full debugger with disassembler, breakpoints, debug symbols, memory editor,
  IO inspector and and VRAM viewer including tiles, sprites, backgrounds and
  palettes.

File Added: pkgsrc/emulators/gearsystem/Makefile
# $NetBSD: Makefile,v 1.1 2020/06/02 13:25:00 nia Exp $

.include "Makefile.common"

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://github.com/drhelius/Gearsystem
COMMENT=	Sega Master System / Game Gear / SG-1000 emulator
LICENSE=	gnu-gpl-v3

USE_TOOLS+=	gmake

BUILD_DIRS=	platforms/linux

MAKE_FLAGS+=	CXX=${CXX}
MAKE_FLAGS+=	GIT_VERSION="pkgsrc"

.include "../../mk/bsd.prefs.mk"

.if ${OPSYS} != "Darwin"
MAKE_FLAGS+=	UNAME_S="Linux"
.else
MAKE_FLAGS+=	UNAME_S="Darwin"
.endif

# alloca
BUILDLINK_TRANSFORM+=	opt:-std=c++11:-std=gnu++11

INSTALLATION_DIRS+=	bin share/applications share/pixmaps

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/${BUILD_DIRS}/gearsystem \
		${DESTDIR}${PREFIX}/bin
	${INSTALL_DATA} ${FILESDIR}/gearsystem.desktop \
		${DESTDIR}${PREFIX}/share/applications
	${INSTALL_DATA} ${WRKSRC}/platforms/ios/Gearsystem/Images.xcassets/AppIcon.appiconset/sms_icon_120.png \
		${DESTDIR}${PREFIX}/share/pixmaps/gearsystem.png

.include "../../devel/SDL2/buildlink3.mk"
.if ${OPSYS} != "Darwin"
.  include "../../graphics/glew/buildlink3.mk"
.  include "../../graphics/MesaLib/buildlink3.mk"
.endif
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../mk/dlopen.buildlink3.mk"
BUILDLINK_TRANSFORM+=	opt:-ldl:${BUILDLINK_LDADD.dl:Q}
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/emulators/gearsystem/Makefile.common
# $NetBSD: Makefile.common,v 1.1 2020/06/02 13:25:00 nia Exp $
# used by emulators/gearsystem/Makefile
# used by emulators/libretro-gearsystem/Makefile

DISTNAME=	gearsystem-3.1.0
CATEGORIES=	emulators
MASTER_SITES=	${MASTER_SITE_GITHUB:=drhelius/}
GITHUB_PROJECT=	Gearsystem
GITHUB_TAG=	${DISTNAME}

USE_LANGUAGES=	c c++

DISTINFO_FILE=	${.CURDIR}/../../emulators/gearsystem/distinfo
PATCHDIR=	${.CURDIR}/../../emulators/gearsystem/patches

CHECK_PORTABILITY_SKIP+=	platforms/*/dependencies/SDL-*/premake/*/build-scripts/*
CHECK_PORTABILITY_SKIP+=	platforms/ios/dependencies/SDL-*/build-scripts/*

File Added: pkgsrc/emulators/gearsystem/PLIST
@comment $NetBSD: PLIST,v 1.1 2020/06/02 13:25:00 nia Exp $
bin/gearsystem
share/applications/gearsystem.desktop
share/pixmaps/gearsystem.png

File Added: pkgsrc/emulators/gearsystem/distinfo
$NetBSD: distinfo,v 1.1 2020/06/02 13:25:00 nia Exp $

SHA1 (gearsystem-3.1.0.tar.gz) = 7f18fb9513cdde9e66d5bb7b023777797ba079f9
RMD160 (gearsystem-3.1.0.tar.gz) = 259d0bf11044e2c7adf915193b5df742c7350996
SHA512 (gearsystem-3.1.0.tar.gz) = 579c620780ce0f44aa7c6c3ec5257f6d4f3b257d8c736e472776280c7c4820b97cae6fb68836a7b78a46ee2b82ca60ae95ece751e55384e3bed9c2ec50533f11
Size (gearsystem-3.1.0.tar.gz) = 11274822 bytes
SHA1 (patch-platforms_desktop-shared_Makefile.common) = a22b4d53d1bf6e4e47cfafcc0e65747ef1fbe33d

File Added: pkgsrc/emulators/gearsystem/patches/patch-platforms_desktop-shared_Makefile.common
$NetBSD: patch-platforms_desktop-shared_Makefile.common,v 1.1 2020/06/02 13:25:00 nia Exp $

Avoid overriding variables we want to pass through pkgsrc.

--- platforms/desktop-shared/Makefile.common.orig	2020-05-23 18:52:56.000000000 +0000
+++ platforms/desktop-shared/Makefile.common
@@ -27,14 +27,14 @@ OBJS = $(addsuffix .o, $(basename $(notd
 
 UNAME_S := $(shell uname -s)
 
-CXXFLAGS = -I../ -I../../
+CXXFLAGS += -I../ -I../../
 CXXFLAGS += -Wall -Wextra -Wformat -std=c++11 -DEMULATOR_BUILD=\"$(GIT_VERSION)\"
 
 DEBUG ?= 0
 ifeq ($(DEBUG), 1)
-    CXXFLAGS +=-DDEBUG -g3
+    CXXFLAGS +=-DDEBUG
 else
-    CXXFLAGS +=-DNDEBUG -O3
+    CXXFLAGS +=-DNDEBUG
 endif
 
 LIBS =
@@ -48,7 +48,7 @@ ifeq ($(UNAME_S), Linux) #LINUX
 	LIBS += -lGL -lGLEW -ldl `sdl2-config --libs`
 
 	CXXFLAGS += `sdl2-config --cflags`
-	CFLAGS = $(CXXFLAGS)
+	CFLAGS += $(CXXFLAGS)
 endif
 
 ifeq ($(UNAME_S), Darwin) #APPLE
@@ -58,7 +58,7 @@ ifeq ($(UNAME_S), Darwin) #APPLE
 
 	CXXFLAGS += `sdl2-config --cflags`
 	CXXFLAGS += -I/usr/local/include -I/opt/local/include
-	CFLAGS = $(CXXFLAGS)
+	CFLAGS += $(CXXFLAGS)
 endif
 
 ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
@@ -95,7 +95,7 @@ all: $(EXE)
 	@echo Build complete for $(ECHO_MESSAGE)
 
 $(EXE): $(OBJS)
-	$(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
+	$(CXX) -o $@ $^ $(LDFLAGS) $(LIBS)
 
 clean:
 	rm -f $(EXE) $(OBJS)