[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / emulators / openmsx

File: [cvs.NetBSD.org] / pkgsrc / emulators / openmsx / Makefile (download)

Revision 1.54, Mon Jun 17 15:16:28 2019 UTC (5 months, 2 weeks ago) by nia
Branch: MAIN
Changes since 1.53: +19 -12 lines

openmsx: Update to 0.15.0 - fix build.

Release Notes for openMSX 0.15.0 (2018-12-08)
=============================================

Again a release, because we did quite a lot, so it's due! Major new stuff is
support for ColecoVision (including Super Game Module and MegaCart mapper),
Musical Memory Mapper and Carnivore 2. And we have fixed a lot of long-standing
OPL4 emulation issues, thanks to Valley Bell. Furthermore, we overhauled the
Android port, but you'll mostly notice the scale factor 2 there. And several
other (sometimes very long standing) issues were fixed.

Here's the list with all highlights and details:

MSX device support:
- fixed 16 year old bug regarding sprites behaviour as shown in Ash Guine 3
- fixed National CF-3300: it has a 2DD disk drive, not 1DD
- fixed V9958 commands in non-bitmap modes
- allow non-standard cartridge slots to be used as normal cartridge slots,
  consistently
- fixed VDP type of National FS-1300
- fixed a bug in the turboR mapper
- fixed a bug regarding VIBrato in the YM2413 (Okazaki core)
- fixed CAPS lock on SVI 318/328
- fixed Canon V-20 configurations
- fixed Sanyo MPC-25FD configuration
- added support for 2 mapper read back bits, used in Panasonic MSX2+ machines
- added emulation of the SN76489 DCSG sound chip
- added emulation of the Musical Memory Mapper
- added emulation of ColecoVision, ColecoVision Super Game Module
- added emulation of the MegaCart mapper, used in some new homebrew
  ColecoVision games (mostly MSX ports)
- added emulation of the Carnivore 2 cartridge
- improved emulation of OPL4 (wave part) considerably, thanks to Valley Bell
- added emulation of bizarre I/O port mirroring of Philips Music Module (thanks
  to Grauw and L. Oliveira for doing the research)
- implemented Y8910 status register bit 0
- fixed exact formula for noise generation on AY8910 (PSG)
- made memory mapper ports readable on MegaFlashROM SCC+ SD, conforming to the
  latest version of this cartridge
- added new machines: Sony HB-G900AP (thanks to Louthrax), Eurohard/Radofin
  Dragon MSX (thanks to MAME), Yamaha CX7/128 and CX7M/128 (thanks to Peter
  Hanraets), Al Alamiah Sakhr AX230, Sanyo MPC-2, Yamaha CX11 (thanks to
  Tabajara Labs) and Toshiba HX-32 (thanks to Jorge Janaite Neto)
- added new extensions: Musical Memory Mapper, Carnivore 2 and SN76489 (on the
  same I/O port as PlaySoniq)

New or improved emulator features:
- fixed some crashes when using very high Z80 frequencies
- improved tab-completion to initially hide internal procs, until you specify
  the namespace
- many updates to the software database
- many updates to the VGM recorder script, thanks to Niek. Use 'help vgm_rec'
  to find out about the new subcommands. Sample RAM content is now logged even
  when starting recording after the sample kit is loaded, actual data recording
  starts automatically when data is sent to the chip, the proper OPL4 init data
  is automatically written to the VGM file, and many more things.
- changed default machine symlinks to JP machines (for applicable systems)
- many robustness fixes against bad XML config files
- added videosource setting to OSD menu, GFX9000 is getting more popular
- fixed reverse bug in GFX9000
- performance improvements: several fixes to improve start-up time
- added support for DCSG in the music keyboard and vu meters script
- changed events about unplugging to an empty plug-event
- changed fixed scale factor from 1 to 2 on Android
- added OSD menu button to open the main menu for Android, as (most?) modern
  Android devices do not have a menu button anymore
- OSD menu: fixed issue of getting stuck in an unreadable directory when
  browsing for a file (e.g. on Android)
- added scrollbar when showing lists in OSD menu, as a visual cue on the length
  of a list; the scrollbar cannot be dragged
- fixed crash in hq/hqlite scalers in interlace modes
- fixed frame skipping when doing 'debug continue'
- fixed function keys not working anymore when console is open on macOS
- exposed tile viewer widget to the console (try "about tile")

Build system, packaging, documentation:
- upgraded C-BIOS to release 0.29a: default to 60Hz generic international
  config
- to load older savestates, added all C-BIOS ROMs shipped with openMSX 0.7.0
  and later for your convenience
- put several pieces of code under unit-test with the Catch2 framework
- added svicpm2dmk utility so disk images from the web can be converted to a
  suitable DMK file for use with the SVI-707 drive with CP/M ROM
- reworked complete Android port build. Now uses NDK 18b and recent version of
  commandergenius Android SDL port and all other 3rd party libraries are built
  by the openMSX build system. Minimum required Android version is now 4.1.
- removed all hand-made ARM and 32-bit x86 assembly code
- fixed version information of application on macOS
- added workaround for FreeType no longer installing its config script
- enabled retina support on macOS
- advise people to compile with Xcode 9.4.1 on macOS, not Xcode 10 (see issue
  #1126)

And of course the usual various bug fixes and performance improvements.

# $NetBSD: Makefile,v 1.54 2019/06/17 15:16:28 nia Exp $

DISTNAME=		openmsx-0.15.0
CATEGORIES=		emulators
MASTER_SITES=		${MASTER_SITE_GITHUB:=openMSX/}
GITHUB_PROJECT=		openMSX
GITHUB_RELEASE=		RELEASE_0_15_0

MAINTAINER=		pkgsrc-users@NetBSD.org
HOMEPAGE=		https://openmsx.org/
COMMENT=		MSX emulator that aims for perfection
LICENSE=		gnu-gpl-v2

USE_TOOLS+=		gmake
USE_LANGUAGES=		c c++14
HAS_CONFIGURE=		yes

MAKE_FILE=		GNUmakefile
MAKE_ENV+=		OPENMSX_FLAVOUR=opt
CONFIGURE_ENV+= 	OPENMSX_FLAVOUR=opt
CONFIGURE_ENV+= 	LOCALBASE=${PREFIX}
INSTALLATION_DIRS+=	bin
INSTALL_MAKE_FLAGS+=	SYMLINK_FOR_BINARY=false
INSTALL_MAKE_FLAGS+=	INSTALL_BASE=${PREFIX}/openmsx
MAKE_ENV+=		OPENMSX_INSTALL=${PREFIX}/openmsx

PYTHON_VERSIONS_INCOMPATIBLE=	36 37 # not yet ported as of 0.9.0

SUBST_CLASSES+=			bswap
SUBST_STAGE.bswap=		pre-configure
SUBST_MESSAGE.bswap=		Do not conflict bswap functions.
SUBST_FILES.bswap=		src/utils/endian.hh
SUBST_FILES.bswap+=		src/utils/sha1.cc
SUBST_FILES.bswap+=		src/utils/tiger.cc
SUBST_SED.bswap=		-e 's, bswap, openmsx_bswap,g'
SUBST_SED.bswap+=		-e 's,::bswap,::openmsx_bswap,g'

# c++14
GCC_REQD+=	5

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

do-configure:
.if !empty(PKGSRC_COMPILER:Mclang)
	cd ${WRKSRC} && ${CONFIGURE_ENV} CXX=clang++ \
	    ${GMAKE} -f build/main.mk probe
.elif !empty(PKGSRC_COMPILER:Mgcc)
	cd ${WRKSRC} && ${CONFIGURE_ENV} CXX=g++ \
	    ${GMAKE} -f build/main.mk probe
.else
	cd ${WRKSRC} && ${CONFIGURE_ENV} \
	    ${GMAKE} -f build/main.mk probe
.endif

post-extract:
	${CP} ${WRKSRC}/build/platform-freebsd.mk \
	      ${WRKSRC}/build/platform-dragonfly.mk

post-build:
	(							\
	${ECHO} "#!${SH}";					\
	${ECHO} 'exec ${PREFIX}/openmsx/bin/openmsx $$@'	\
	) > ${WRKSRC}/openmsx.sh

post-install:
	${INSTALL_SCRIPT} ${WRKSRC}/openmsx.sh ${DESTDIR}${PREFIX}/bin/openmsx
	@${ECHO_MSG} "======================================================================"
	@${ECHO_MSG} "  Don't forget to have sound driver loaded before running openMSX."
	@${ECHO_MSG} "  Otherwise, aRts will throw an exception when launching OpenMSX or"
	@${ECHO_MSG} "  fail to create a directory called '.mcoprc' in the home directory."
	@${ECHO_MSG} "  However, you may execute OpenMSX without sound support like this:"
	@${ECHO_MSG} "  # env SDL_AUDIODRIVER=dummy openmsx <args>"
	@${ECHO_MSG} "======================================================================"

.include "../../audio/libao/buildlink3.mk"
.include "../../devel/SDL/buildlink3.mk"
.include "../../devel/SDL_ttf/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/glew/buildlink3.mk"
.include "../../graphics/SDL_image/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../lang/python/application.mk"
.include "../../lang/tcl/buildlink3.mk"
.include "../../multimedia/libogg/buildlink3.mk"
.include "../../multimedia/libtheora/buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"