emulators/higan: Update to v110
Moreover, - Switch to USE_GITHUB, since the sources are now available only there. - Replace WWW with the GitHub repository link, since the site in WWW does not exist anymore. - Change default sound option from OSS to OPENAL: OSS does not work. - Do not require GCC anymore. PR: 273678 Approved by: Naram Qashat <cyberbotx@cyberbotx.com> (maintainer)
This commit is contained in:
@@ -1,29 +1,32 @@
|
||||
PORTNAME= higan
|
||||
PORTVERSION= 106
|
||||
PORTREVISION= 12
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 110
|
||||
CATEGORIES= emulators games
|
||||
MASTER_SITES= http://download.byuu.org/ \
|
||||
http://www.cyberbotx.com/higan/
|
||||
DISTNAME= ${PORTNAME}_v${PORTVERSION}-source
|
||||
|
||||
MAINTAINER= cyberbotx@cyberbotx.com
|
||||
COMMENT= Nintendo multi-system emulator
|
||||
WWW= http://byuu.org/higan/
|
||||
WWW= https://github.com/higan-emu/higan
|
||||
|
||||
LICENSE= GPLv3+
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
|
||||
|
||||
ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64le
|
||||
|
||||
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
|
||||
libfreetype.so:print/freetype2
|
||||
libfreetype.so:print/freetype2 \
|
||||
libharfbuzz.so:print/harfbuzz
|
||||
|
||||
USES= 7z compiler:c++14-lang gettext gmake gnome pkgconfig xorg
|
||||
USES= compiler:c++14-lang gettext gmake gnome pkgconfig xorg
|
||||
USE_GNOME= cairo gdkpixbuf2 gtk20 gtksourceview2
|
||||
USE_XORG= x11 xext
|
||||
USE_XORG= x11 xext xrandr
|
||||
USE_CSTD= c99
|
||||
USE_CXXSTD= c++14
|
||||
USE_GCC= yes
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= higan-emu
|
||||
|
||||
MAKEFILE= GNUmakefile
|
||||
MAKE_ENV= compiler="${CXX}" hiro="gtk"
|
||||
MAKE_ENV= compiler="${CXX}" hiro="gtk2"
|
||||
|
||||
OPTIONS_DEFINE= DEBUG
|
||||
OPTIONS_MULTI= VIDEO SOUND INPUT
|
||||
@@ -31,7 +34,7 @@ OPTIONS_MULTI_VIDEO= GLX SDL XSHM XV
|
||||
OPTIONS_MULTI_SOUND= AO OPENAL OSS PULSEAUDIO
|
||||
OPTIONS_MULTI_INPUT= INPUT_SDL INPUT_X
|
||||
OPTIONS_DEFAULT= GLX XSHM XV SDL \
|
||||
OSS INPUT_SDL INPUT_X
|
||||
OPENAL INPUT_SDL INPUT_X
|
||||
|
||||
XSHM_DESC= Build XShm video driver
|
||||
XV_DESC= Build Xv video driver
|
||||
@@ -43,7 +46,7 @@ GLX_USE= GL=gl
|
||||
GLX_VARS= VIDEO_DRIVER+=video.glx
|
||||
|
||||
SDL_USES= sdl
|
||||
SDL_USE= XORG=xv SDL=sdl
|
||||
SDL_USE= XORG=xv SDL=sdl2
|
||||
SDL_VARS= VIDEO_DRIVER+=video.sdl
|
||||
|
||||
XSHM_USE= XORG=xext
|
||||
@@ -70,11 +73,6 @@ INPUT_SDL_VARS= INPUT_DRIVER+=input.sdl
|
||||
INPUT_X_VARS= INPUT_DRIVER+=input.xlib
|
||||
|
||||
post-patch:
|
||||
${REINPLACE_CMD} \
|
||||
-e 's|%%VIDEO%%|${VIDEO_DRIVER}|' \
|
||||
-e 's|%%AUDIO%%|${AUDIO_DRIVER}|' \
|
||||
-e 's|%%INPUT%%|${INPUT_DRIVER}|' \
|
||||
${WRKSRC}/higan/target-tomoko/GNUmakefile
|
||||
${REINPLACE_CMD} -e 's|/usr/share/|${PREFIX}/share/|' \
|
||||
${WRKSRC}/nall/path.hpp
|
||||
|
||||
@@ -91,9 +89,9 @@ do-build:
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/higan/out/higan ${STAGEDIR}${PREFIX}/bin/
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/icarus/out/icarus ${STAGEDIR}${PREFIX}/bin/
|
||||
${INSTALL_DATA} ${WRKSRC}/higan/data/higan.png ${STAGEDIR}${PREFIX}/share/pixmaps/
|
||||
${INSTALL_DATA} ${WRKSRC}/higan/data/higan.desktop ${STAGEDIR}${PREFIX}/share/applications/
|
||||
(cd ${WRKSRC}/higan/systems && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/)
|
||||
${INSTALL_DATA} ${WRKSRC}/higan/target-higan/resource/higan.png ${STAGEDIR}${PREFIX}/share/pixmaps/
|
||||
${INSTALL_DATA} ${WRKSRC}/higan/target-higan/resource/higan.desktop ${STAGEDIR}${PREFIX}/share/applications/
|
||||
(cd ${WRKSRC}/higan/System && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/)
|
||||
(cd ${WRKSRC}/icarus/Database && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/icarus/Database/)
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1516118942
|
||||
SHA256 (higan_v106-source.7z) = 6564f91f232040c46c052de763dc139e94005e0f2376959fdacbb6ccd3fd6d18
|
||||
SIZE (higan_v106-source.7z) = 830639
|
||||
TIMESTAMP = 1700308663
|
||||
SHA256 (higan-emu-higan-v110_GH0.tar.gz) = 18457ac2608ab548983c3266ae38e6397d1801773969a796a672e2d9c56c69c5
|
||||
SIZE (higan-emu-higan-v110_GH0.tar.gz) = 1661896
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
--- higan/GNUmakefile.orig 2020-02-08 23:13:45 UTC
|
||||
+++ higan/GNUmakefile
|
||||
@@ -26,7 +26,6 @@ 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)
|
||||
@@ -1,15 +0,0 @@
|
||||
--- higan/target-tomoko/GNUmakefile.orig 2017-09-23 21:35:23 UTC
|
||||
+++ higan/target-tomoko/GNUmakefile
|
||||
@@ -30,9 +30,9 @@ else ifeq ($(platform),linux)
|
||||
ruby += audio.oss audio.alsa audio.openal audio.pulseaudio audio.pulseaudiosimple audio.ao
|
||||
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 += input.sdl input.xlib
|
||||
+ ruby += %%VIDEO%%
|
||||
+ ruby += %%AUDIO%%
|
||||
+ ruby += %%INPUT%%
|
||||
endif
|
||||
|
||||
# ruby
|
||||
@@ -1,11 +0,0 @@
|
||||
--- higan/target-tomoko/presentation/presentation.cpp.orig 2017-01-13 17:52:31 UTC
|
||||
+++ higan/target-tomoko/presentation/presentation.cpp
|
||||
@@ -278,7 +278,7 @@ auto Presentation::toggleFullScreen() ->
|
||||
}
|
||||
|
||||
auto Presentation::loadShaders() -> void {
|
||||
- auto pathname = locate("Video Shaders/");
|
||||
+ auto pathname = locateShared("Video Shaders/");
|
||||
|
||||
if(settings["Video/Driver"].text() == "OpenGL") {
|
||||
for(auto shader : directory::folders(pathname, "*.shader")) {
|
||||
@@ -1,11 +0,0 @@
|
||||
--- higan/target-tomoko/program/medium.cpp.orig 2017-01-13 10:43:46 UTC
|
||||
+++ 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->get(Audio::Frequency).get<uint>(44100));
|
||||
inputManager->bind(emulator = &interface);
|
||||
@@ -1,23 +0,0 @@
|
||||
--- higan/target-tomoko/tomoko.cpp.orig 2016-07-01 08:21:27 UTC
|
||||
+++ 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;
|
||||
@@ -1,8 +0,0 @@
|
||||
--- higan/target-tomoko/tomoko.hpp.orig 2017-01-11 11:35:22 UTC
|
||||
+++ 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;
|
||||
@@ -1,11 +0,0 @@
|
||||
--- higan/target-tomoko/tools/cheat-database.cpp.orig 2016-05-03 22:40:39 UTC
|
||||
+++ higan/target-tomoko/tools/cheat-database.cpp
|
||||
@@ -18,7 +18,7 @@ auto CheatDatabase::findCodes() -> void
|
||||
if(!emulator) return;
|
||||
auto sha256 = emulator->sha256();
|
||||
|
||||
- auto contents = string::read(locate("cheats.bml"));
|
||||
+ auto contents = string::read(locateShared("cheats.bml"));
|
||||
auto document = BML::unserialize(contents);
|
||||
|
||||
for(auto cartridge : document.find("cartridge")) {
|
||||
@@ -1,35 +0,0 @@
|
||||
--- icarus/core/core.cpp.orig 2017-01-23 13:51:10 UTC
|
||||
+++ 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 {
|
||||
@@ -1,23 +0,0 @@
|
||||
--- icarus/icarus.cpp.orig 2017-01-11 13:07:07 UTC
|
||||
+++ 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;
|
||||
@@ -1,21 +1,24 @@
|
||||
%%DATADIR%%/Game Boy Color/boot.cgb-0.rom
|
||||
%%DATADIR%%/Game Boy Color/boot.cgb-1.rom
|
||||
%%DATADIR%%/Game Boy/boot.dmg-0.rom
|
||||
%%DATADIR%%/Game Boy/boot.dmg-1.rom
|
||||
%%DATADIR%%/Game Boy/boot.mgb.rom
|
||||
%%DATADIR%%/MSX/Keyboard/Japanese/layout.bml
|
||||
%%DATADIR%%/MSX/bios.rom
|
||||
%%DATADIR%%/MSX2/Keyboard/Japanese/layout.bml
|
||||
%%DATADIR%%/MSX2/bios.rom
|
||||
%%DATADIR%%/MSX2/sub.rom
|
||||
%%DATADIR%%/Mega Drive/tmss.rom
|
||||
%%DATADIR%%/Pocket Challenge V2/boot.rom
|
||||
%%DATADIR%%/Super Famicom/boards.bml
|
||||
%%DATADIR%%/Super Famicom/ipl.rom
|
||||
%%DATADIR%%/SwanCrystal/boot.rom
|
||||
%%DATADIR%%/WonderSwan Color/boot.rom
|
||||
%%DATADIR%%/WonderSwan/boot.rom
|
||||
bin/higan
|
||||
bin/icarus
|
||||
share/applications/higan.desktop
|
||||
%%DATADIR%%/Famicom.sys/manifest.bml
|
||||
%%DATADIR%%/Game Boy Advance.sys/manifest.bml
|
||||
%%DATADIR%%/Game Boy Color.sys/boot.rom
|
||||
%%DATADIR%%/Game Boy Color.sys/manifest.bml
|
||||
%%DATADIR%%/Game Boy.sys/boot.rom
|
||||
%%DATADIR%%/Game Boy.sys/manifest.bml
|
||||
%%DATADIR%%/Game Gear.sys/manifest.bml
|
||||
%%DATADIR%%/Master System.sys/manifest.bml
|
||||
%%DATADIR%%/Mega Drive.sys/manifest.bml
|
||||
%%DATADIR%%/Mega Drive.sys/tmss.rom
|
||||
%%DATADIR%%/PC Engine.sys/manifest.bml
|
||||
%%DATADIR%%/Super Famicom.sys/ipl.rom
|
||||
%%DATADIR%%/Super Famicom.sys/manifest.bml
|
||||
%%DATADIR%%/SuperGrafx.sys/manifest.bml
|
||||
%%DATADIR%%/WonderSwan Color.sys/manifest.bml
|
||||
%%DATADIR%%/WonderSwan.sys/manifest.bml
|
||||
share/icarus/Database/Super Famicom.bml
|
||||
share/icarus/Database/BS Memory.bml
|
||||
share/icarus/Database/Sufami Turbo.bml
|
||||
share/pixmaps/higan.png
|
||||
|
||||
Reference in New Issue
Block a user