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:
Lorenzo Salvadore
2023-11-18 12:02:56 +00:00
parent 3f31601987
commit 597ca5a01e
12 changed files with 41 additions and 187 deletions

View File

@@ -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>

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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")) {

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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")) {

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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