Import higan-106.
higan is a multi-system emulator. It currently supports the following systems: - Nintendo Famicom - Nintendo Super Famicom - Super Game Boy - BS-X Satellaview - Sufami Turbo - Nintendo Game Boy - Nintendo Game Boy Color - Nintendo Game Boy Advance - Sega Master System - Sega Game Gear - Sega Mega Drive - NEC PC Engine - NEC SuperGrafx - Bandai WonderSwan - Bandai WonderSwan Color ok stsp@
This commit is contained in:
parent
7eff883fb5
commit
2e25e2f2a8
72
emulators/higan/Makefile
Normal file
72
emulators/higan/Makefile
Normal file
@ -0,0 +1,72 @@
|
||||
# $OpenBSD: Makefile,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
COMMENT = multi-system Nintendo emulator
|
||||
|
||||
V = 106
|
||||
DISTNAME = higan_v$V-source
|
||||
PKGNAME = higan-$V
|
||||
|
||||
USE_WXNEEDED = Yes
|
||||
|
||||
CATEGORIES = emulators
|
||||
|
||||
HOMEPAGE = https://byuu.org/emulation/higan/
|
||||
|
||||
MAINTAINER = Anthony J. Bentley <anthony@anjbe.name>
|
||||
|
||||
# GPLv3: https://byuu.org/emulation/higan/licensing
|
||||
PERMIT_PACKAGE_CDROM = Yes
|
||||
|
||||
WANTLIB += ${COMPILER_LIBCXX} GL SDL X11 Xcomposite Xcursor Xdamage
|
||||
WANTLIB += Xext Xfixes Xi Xinerama Xrandr Xrender Xv atk-1.0 c
|
||||
WANTLIB += cairo fontconfig freetype gdk-x11-2.0 gdk_pixbuf-2.0
|
||||
WANTLIB += gio-2.0 glib-2.0 gobject-2.0 gtk-x11-2.0 gtksourceview-2.0
|
||||
WANTLIB += intl m openal pango-1.0 pangocairo-1.0 pangoft2-1.0
|
||||
WANTLIB += z
|
||||
|
||||
# upstream only provides .7z
|
||||
#MASTER_SITES = https://download.byuu.org/
|
||||
MASTER_SITES = https://distfiles.ajb.soy/
|
||||
|
||||
RUN_DEPENDS = devel/desktop-file-utils
|
||||
LIB_DEPENDS = audio/openal \
|
||||
devel/sdl \
|
||||
x11/gtksourceview
|
||||
|
||||
MAKE_FLAGS = compiler="${CC}" \
|
||||
cflags="${CFLAGS} -std=c11 -DLIBCO_MPROTECT" \
|
||||
cppflags="${CXXFLAGS} -x c++ -std=c++14 \
|
||||
-I${LOCALBASE}/include -I${X11BASE}/include" \
|
||||
build=
|
||||
|
||||
COMPILER = base-clang ports-gcc ports-clang
|
||||
|
||||
USE_GMAKE = Yes
|
||||
|
||||
NO_TEST = Yes
|
||||
|
||||
MAKE_FILE = GNUmakefile
|
||||
|
||||
pre-configure:
|
||||
${SUBST_CMD} ${WRKDIST}/nall/path.hpp
|
||||
|
||||
do-build:
|
||||
cd ${WRKSRC}/higan && env -i ${MAKE_ENV} ${MAKE_PROGRAM} \
|
||||
${MAKE_FLAGS} -f ${MAKE_FILE} ${ALL_TARGET}
|
||||
cd ${WRKSRC}/icarus && env -i ${MAKE_ENV} ${MAKE_PROGRAM} \
|
||||
${MAKE_FLAGS} -f ${MAKE_FILE} ${ALL_TARGET}
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKDIST}/higan/out/higan ${PREFIX}/bin
|
||||
${INSTALL_PROGRAM} ${WRKDIST}/icarus/out/icarus ${PREFIX}/bin
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/applications
|
||||
${INSTALL_DATA} ${WRKSRC}/*/data/*.desktop ${PREFIX}/share/applications
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/pixmaps
|
||||
${INSTALL_DATA} ${WRKSRC}/*/data/*.png ${PREFIX}/share/pixmaps
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/icarus/Database
|
||||
${INSTALL_DATA} ${WRKSRC}/icarus/Database/*.bml \
|
||||
${PREFIX}/share/icarus/Database
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/higan
|
||||
cp -R ${WRKSRC}/higan/systems/* ${PREFIX}/share/higan
|
||||
|
||||
.include <bsd.port.mk>
|
2
emulators/higan/distinfo
Normal file
2
emulators/higan/distinfo
Normal file
@ -0,0 +1,2 @@
|
||||
SHA256 (higan_v106-source.tar.gz) = pKqen4vcXAYj5EEpiDqT/cb+ALKbtR1UtPTzl+Q8510=
|
||||
SIZE (higan_v106-source.tar.gz) = 1083431
|
16
emulators/higan/patches/patch-higan_GNUmakefile
Normal file
16
emulators/higan/patches/patch-higan_GNUmakefile
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-higan_GNUmakefile,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: higan/GNUmakefile
|
||||
--- higan/GNUmakefile.orig
|
||||
+++ higan/GNUmakefile
|
||||
@@ -23,10 +23,7 @@ else ifeq ($(platform),macos)
|
||||
link += -dynamiclib
|
||||
endif
|
||||
else ifneq ($(filter $(platform),linux bsd),)
|
||||
- flags += -fopenmp
|
||||
- link += -fopenmp
|
||||
ifeq ($(binary),application)
|
||||
- flags += -march=native
|
||||
link += -Wl,-export-dynamic
|
||||
link += -lX11 -lXext
|
||||
else ifeq ($(binary),library)
|
@ -0,0 +1,14 @@
|
||||
$OpenBSD: patch-higan_target-tomoko_GNUmakefile,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: higan/target-tomoko/GNUmakefile
|
||||
--- higan/target-tomoko/GNUmakefile.orig
|
||||
+++ higan/target-tomoko/GNUmakefile
|
||||
@@ -31,7 +31,7 @@ else ifeq ($(platform),linux)
|
||||
ruby += input.sdl input.xlib input.udev
|
||||
else ifeq ($(platform),bsd)
|
||||
ruby += video.glx video.xvideo video.xshm video.sdl
|
||||
- ruby += audio.oss audio.openal
|
||||
+ ruby += audio.openal
|
||||
ruby += input.sdl input.xlib
|
||||
endif
|
||||
|
@ -0,0 +1,14 @@
|
||||
$OpenBSD: patch-higan_target-tomoko_program_medium_cpp,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: higan/target-tomoko/program/medium.cpp
|
||||
--- higan/target-tomoko/program/medium.cpp.orig
|
||||
+++ higan/target-tomoko/program/medium.cpp
|
||||
@@ -17,7 +17,7 @@ auto Program::loadMedium() -> void {
|
||||
auto Program::loadMedium(Emulator::Interface& interface, const Emulator::Interface::Medium& medium) -> void {
|
||||
unloadMedium();
|
||||
|
||||
- mediumPaths.append(locate({medium.name, ".sys/"}));
|
||||
+ mediumPaths.append(locateShared({medium.name, ".sys/"}));
|
||||
|
||||
Emulator::audio.reset(2, audio->frequency());
|
||||
inputManager->bind(emulator = &interface);
|
26
emulators/higan/patches/patch-higan_target-tomoko_tomoko_cpp
Normal file
26
emulators/higan/patches/patch-higan_target-tomoko_tomoko_cpp
Normal file
@ -0,0 +1,26 @@
|
||||
$OpenBSD: patch-higan_target-tomoko_tomoko_cpp,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: higan/target-tomoko/tomoko.cpp
|
||||
--- higan/target-tomoko/tomoko.cpp.orig
|
||||
+++ higan/target-tomoko/tomoko.cpp
|
||||
@@ -4,6 +4,20 @@ unique_pointer<Audio> audio;
|
||||
unique_pointer<Input> input;
|
||||
Emulator::Interface* emulator = nullptr;
|
||||
|
||||
+auto locateShared(string name) -> string {
|
||||
+ string location = {Path::program(), name};
|
||||
+ if(inode::exists(location)) return location;
|
||||
+
|
||||
+ location = {Path::shared(), "higan/", name};
|
||||
+ if(inode::exists(location)) return location;
|
||||
+
|
||||
+ location = {Path::config(), "higan/", name};
|
||||
+ if(inode::exists(location)) return location;
|
||||
+
|
||||
+ directory::create({Path::local(), "higan/"});
|
||||
+ return {Path::local(), "higan/", name};
|
||||
+}
|
||||
+
|
||||
auto locate(string name) -> string {
|
||||
string location = {Path::program(), name};
|
||||
if(inode::exists(location)) return location;
|
11
emulators/higan/patches/patch-higan_target-tomoko_tomoko_hpp
Normal file
11
emulators/higan/patches/patch-higan_target-tomoko_tomoko_hpp
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-higan_target-tomoko_tomoko_hpp,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: higan/target-tomoko/tomoko.hpp
|
||||
--- higan/target-tomoko/tomoko.hpp.orig
|
||||
+++ higan/target-tomoko/tomoko.hpp
|
||||
@@ -18,4 +18,5 @@ extern Emulator::Interface* emulator;
|
||||
#include "tools/tools.hpp"
|
||||
#include "presentation/presentation.hpp"
|
||||
|
||||
+auto locateShared(string name) -> string;
|
||||
auto locate(string name) -> string;
|
38
emulators/higan/patches/patch-icarus_core_core_cpp
Normal file
38
emulators/higan/patches/patch-icarus_core_core_cpp
Normal file
@ -0,0 +1,38 @@
|
||||
$OpenBSD: patch-icarus_core_core_cpp,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: icarus/core/core.cpp
|
||||
--- icarus/core/core.cpp.orig
|
||||
+++ icarus/core/core.cpp
|
||||
@@ -1,18 +1,18 @@
|
||||
Icarus::Icarus() {
|
||||
- database.famicom = BML::unserialize(string::read(locate("Database/Famicom.bml")));
|
||||
- database.superFamicom = BML::unserialize(string::read(locate("Database/Super Famicom.bml")));
|
||||
- database.masterSystem = BML::unserialize(string::read(locate("Database/Master System.bml")));
|
||||
- database.megaDrive = BML::unserialize(string::read(locate("Database/Mega Drive.bml")));
|
||||
- database.pcEngine = BML::unserialize(string::read(locate("Database/PC Engine.bml")));
|
||||
- database.superGrafx = BML::unserialize(string::read(locate("Database/SuperGrafx.bml")));
|
||||
- database.gameBoy = BML::unserialize(string::read(locate("Database/Game Boy.bml")));
|
||||
- database.gameBoyColor = BML::unserialize(string::read(locate("Database/Game Boy Color.bml")));
|
||||
- database.gameBoyAdvance = BML::unserialize(string::read(locate("Database/Game Boy Advance.bml")));
|
||||
- database.gameGear = BML::unserialize(string::read(locate("Database/Game Gear.bml")));
|
||||
- database.wonderSwan = BML::unserialize(string::read(locate("Database/WonderSwan.bml")));
|
||||
- database.wonderSwanColor = BML::unserialize(string::read(locate("Database/WonderSwan Color.bml")));
|
||||
- database.bsMemory = BML::unserialize(string::read(locate("Database/BS Memory.bml")));
|
||||
- database.sufamiTurbo = BML::unserialize(string::read(locate("Database/Sufami Turbo.bml")));
|
||||
+ database.famicom = BML::unserialize(string::read(locateShared("Database/Famicom.bml")));
|
||||
+ database.superFamicom = BML::unserialize(string::read(locateShared("Database/Super Famicom.bml")));
|
||||
+ database.masterSystem = BML::unserialize(string::read(locateShared("Database/Master System.bml")));
|
||||
+ database.megaDrive = BML::unserialize(string::read(locateShared("Database/Mega Drive.bml")));
|
||||
+ database.pcEngine = BML::unserialize(string::read(locateShared("Database/PC Engine.bml")));
|
||||
+ database.superGrafx = BML::unserialize(string::read(locateShared("Database/SuperGrafx.bml")));
|
||||
+ database.gameBoy = BML::unserialize(string::read(locateShared("Database/Game Boy.bml")));
|
||||
+ database.gameBoyColor = BML::unserialize(string::read(locateShared("Database/Game Boy Color.bml")));
|
||||
+ database.gameBoyAdvance = BML::unserialize(string::read(locateShared("Database/Game Boy Advance.bml")));
|
||||
+ database.gameGear = BML::unserialize(string::read(locateShared("Database/Game Gear.bml")));
|
||||
+ database.wonderSwan = BML::unserialize(string::read(locateShared("Database/WonderSwan.bml")));
|
||||
+ database.wonderSwanColor = BML::unserialize(string::read(locateShared("Database/WonderSwan Color.bml")));
|
||||
+ database.bsMemory = BML::unserialize(string::read(locateShared("Database/BS Memory.bml")));
|
||||
+ database.sufamiTurbo = BML::unserialize(string::read(locateShared("Database/Sufami Turbo.bml")));
|
||||
}
|
||||
|
||||
auto Icarus::error() const -> string {
|
26
emulators/higan/patches/patch-icarus_icarus_cpp
Normal file
26
emulators/higan/patches/patch-icarus_icarus_cpp
Normal file
@ -0,0 +1,26 @@
|
||||
$OpenBSD: patch-icarus_icarus_cpp,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: icarus/icarus.cpp
|
||||
--- icarus/icarus.cpp.orig
|
||||
+++ icarus/icarus.cpp
|
||||
@@ -4,6 +4,20 @@ using namespace nall;
|
||||
#include <hiro/hiro.hpp>
|
||||
using namespace hiro;
|
||||
|
||||
+auto locateShared(string name) -> string {
|
||||
+ string location = {Path::program(), name};
|
||||
+ if(inode::exists(location)) return location;
|
||||
+
|
||||
+ location = {Path::shared(), "icarus/", name};
|
||||
+ if(inode::exists(location)) return location;
|
||||
+
|
||||
+ location = {Path::config(), "icarus/", name};
|
||||
+ if(inode::exists(location)) return location;
|
||||
+
|
||||
+ directory::create({Path::local(), "icarus/"});
|
||||
+ return {Path::local(), "icarus/", name};
|
||||
+}
|
||||
+
|
||||
auto locate(string name) -> string {
|
||||
string location = {Path::program(), name};
|
||||
if(inode::exists(location)) return location;
|
14
emulators/higan/patches/patch-nall_path_hpp
Normal file
14
emulators/higan/patches/patch-nall_path_hpp
Normal file
@ -0,0 +1,14 @@
|
||||
$OpenBSD: patch-nall_path_hpp,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
|
||||
Index: nall/path.hpp
|
||||
--- nall/path.hpp.orig
|
||||
+++ nall/path.hpp
|
||||
@@ -117,7 +117,7 @@ inline auto shared() -> string {
|
||||
#elif defined(PLATFORM_MACOS)
|
||||
string result = "/Library/Application Support/";
|
||||
#else
|
||||
- string result = "/usr/share/";
|
||||
+ string result = "${PREFIX}/share/";
|
||||
#endif
|
||||
if(!result) result = ".";
|
||||
if(!result.endsWith("/")) result.append("/");
|
17
emulators/higan/pkg/DESCR
Normal file
17
emulators/higan/pkg/DESCR
Normal file
@ -0,0 +1,17 @@
|
||||
higan is a multi-system emulator. It currently supports the following systems:
|
||||
|
||||
- Nintendo Famicom
|
||||
- Nintendo Super Famicom
|
||||
- Super Game Boy
|
||||
- BS-X Satellaview
|
||||
- Sufami Turbo
|
||||
- Nintendo Game Boy
|
||||
- Nintendo Game Boy Color
|
||||
- Nintendo Game Boy Advance
|
||||
- Sega Master System
|
||||
- Sega Game Gear
|
||||
- Sega Mega Drive
|
||||
- NEC PC Engine
|
||||
- NEC SuperGrafx
|
||||
- Bandai WonderSwan
|
||||
- Bandai WonderSwan Color
|
42
emulators/higan/pkg/PLIST
Normal file
42
emulators/higan/pkg/PLIST
Normal file
@ -0,0 +1,42 @@
|
||||
@comment $OpenBSD: PLIST,v 1.1.1.1 2017/12/24 06:51:38 bentley Exp $
|
||||
@bin bin/higan
|
||||
@bin bin/icarus
|
||||
share/applications/higan.desktop
|
||||
share/applications/icarus.desktop
|
||||
share/higan/
|
||||
share/higan/Famicom.sys/
|
||||
share/higan/Famicom.sys/manifest.bml
|
||||
share/higan/Game Boy Advance.sys/
|
||||
share/higan/Game Boy Advance.sys/manifest.bml
|
||||
share/higan/Game Boy Color.sys/
|
||||
share/higan/Game Boy Color.sys/boot.rom
|
||||
share/higan/Game Boy Color.sys/manifest.bml
|
||||
share/higan/Game Boy.sys/
|
||||
share/higan/Game Boy.sys/boot.rom
|
||||
share/higan/Game Boy.sys/manifest.bml
|
||||
share/higan/Game Gear.sys/
|
||||
share/higan/Game Gear.sys/manifest.bml
|
||||
share/higan/Master System.sys/
|
||||
share/higan/Master System.sys/manifest.bml
|
||||
share/higan/Mega Drive.sys/
|
||||
share/higan/Mega Drive.sys/manifest.bml
|
||||
share/higan/Mega Drive.sys/tmss.rom
|
||||
share/higan/PC Engine.sys/
|
||||
share/higan/PC Engine.sys/manifest.bml
|
||||
share/higan/Super Famicom.sys/
|
||||
share/higan/Super Famicom.sys/ipl.rom
|
||||
share/higan/Super Famicom.sys/manifest.bml
|
||||
share/higan/SuperGrafx.sys/
|
||||
share/higan/SuperGrafx.sys/manifest.bml
|
||||
share/higan/WonderSwan Color.sys/
|
||||
share/higan/WonderSwan Color.sys/manifest.bml
|
||||
share/higan/WonderSwan.sys/
|
||||
share/higan/WonderSwan.sys/manifest.bml
|
||||
share/icarus/
|
||||
share/icarus/Database/
|
||||
share/icarus/Database/Super Famicom.bml
|
||||
share/pixmaps/
|
||||
share/pixmaps/higan.png
|
||||
share/pixmaps/icarus.png
|
||||
@exec %D/bin/update-desktop-database
|
||||
@unexec-delete %D/bin/update-desktop-database
|
Loading…
Reference in New Issue
Block a user