diff --git a/games-emulation/bsnes_libretro/additional-files/bsnes_accuracy_libretro.info.in b/games-emulation/bsnes_libretro/additional-files/bsnes_accuracy_libretro.info.in new file mode 100644 index 000000000..50bbce519 --- /dev/null +++ b/games-emulation/bsnes_libretro/additional-files/bsnes_accuracy_libretro.info.in @@ -0,0 +1,68 @@ +display_name = "Nintendo - SNES / Famicom (bsnes Accuracy)" +authors = "byuu" +supported_extensions = "sfc|smc|bml" +corename = "bsnes/higan Accuracy" +manufacturer = "Nintendo" +categories = "Emulator" +systemname = "Super Nintendo Entertainment System" +database = "Nintendo - Super Nintendo Entertainment System|Nintendo - Super Nintendo Entertainment System Hacks|Nintendo - Sufami Turbo" +license = "GPLv3" +permissions = "" +display_version = "@DISPLAY_VERSION@ (Accuracy)" +supports_no_game = "false" +firmware_count = 18 +firmware0_desc = "dsp1.data.rom" +firmware0_path = "dsp1.data.rom" +firmware0_opt = "true" +firmware1_desc = "dsp1.program.rom" +firmware1_path = "dsp1.program.rom" +firmware1_opt = "true" +firmware2_desc = "dsp1b.data.rom" +firmware2_path = "dsp1b.data.rom" +firmware2_opt = "true" +firmware3_desc = "dsp1b.program.rom" +firmware3_path = "dsp1b.program.rom" +firmware3_opt = "true" +firmware4_desc = "dsp2.data.rom" +firmware4_path = "dsp2.data.rom" +firmware4_opt = "true" +firmware5_desc = "dsp2.program.rom" +firmware5_path = "dsp2.program.rom" +firmware5_opt = "true" +firmware6_desc = "dsp3.data.rom" +firmware6_path = "dsp3.data.rom" +firmware6_opt = "true" +firmware7_desc = "dsp3.program.rom" +firmware7_path = "dsp3.program.rom" +firmware7_opt = "true" +firmware8_desc = "dsp4.data.rom" +firmware8_path = "dsp4.data.rom" +firmware8_opt = "true" +firmware9_desc = "dsp4.program.rom" +firmware9_path = "dsp4.program.rom" +firmware9_opt = "true" +firmware10_desc = "cx4.data.rom" +firmware10_path = "cx4.data.rom" +firmware10_opt = "true" +firmware11_desc = "st010.data.rom" +firmware11_path = "st010.data.rom" +firmware11_opt = "true" +firmware12_desc = "st010.program.rom" +firmware12_path = "st010.program.rom" +firmware12_opt = "true" +firmware13_desc = "st011.data.rom" +firmware13_path = "st011.data.rom" +firmware13_opt = "true" +firmware14_desc = "st011.program.rom" +firmware14_path = "st011.program.rom" +firmware14_opt = "true" +firmware15_desc = "st018.data.rom" +firmware15_path = "st018.data.rom" +firmware15_opt = "true" +firmware16_desc = "st018.program.rom" +firmware16_path = "st018.program.rom" +firmware16_opt = "true" +firmware17_desc = "sgb.boot.rom (SGB Boot Image)" +firmware17_path = "sgb.boot.rom" +firmware17_opt = "true" +notes = "[1] bsnes/higan Accuracy uses split ROMS for special chip games.|[*] Notable DSP1/DSP1B Games: Super Mario Kart, Pilotwings|[*] Notable DSP2 Games: Dungeon Master|[*] Notable DSP3 Games: SD Gundam GX|[*] Notable DSP4 Games: Top Gear 3000|[*] Notable Cx4 Games: Mega Man X2, Mega Man X3|[2] SGB Emulation will only work with command line." diff --git a/games-emulation/bsnes_libretro/additional-files/bsnes_balanced_libretro.info.in b/games-emulation/bsnes_libretro/additional-files/bsnes_balanced_libretro.info.in new file mode 100644 index 000000000..0cd6dc107 --- /dev/null +++ b/games-emulation/bsnes_libretro/additional-files/bsnes_balanced_libretro.info.in @@ -0,0 +1,68 @@ +display_name = "Nintendo - SNES / Famicom (bsnes Balanced)" +authors = "byuu" +supported_extensions = "sfc|smc|bml" +corename = "bsnes/higan Balanced" +manufacturer = "Nintendo" +categories = "Emulator" +systemname = "Super Nintendo Entertainment System" +database = "Nintendo - Super Nintendo Entertainment System|Nintendo - Super Nintendo Entertainment System Hacks|Nintendo - Sufami Turbo" +license = "GPLv3" +permissions = "" +display_version = "@DISPLAY_VERSION@ (Balanced)" +supports_no_game = "false" +firmware_count = 18 +firmware0_desc = "dsp1.data.rom" +firmware0_path = "dsp1.data.rom" +firmware0_opt = "true" +firmware1_desc = "dsp1.program.rom" +firmware1_path = "dsp1.program.rom" +firmware1_opt = "true" +firmware2_desc = "dsp1b.data.rom" +firmware2_path = "dsp1b.data.rom" +firmware2_opt = "true" +firmware3_desc = "dsp1b.program.rom" +firmware3_path = "dsp1b.program.rom" +firmware3_opt = "true" +firmware4_desc = "dsp2.data.rom" +firmware4_path = "dsp2.data.rom" +firmware4_opt = "true" +firmware5_desc = "dsp2.program.rom" +firmware5_path = "dsp2.program.rom" +firmware5_opt = "true" +firmware6_desc = "dsp3.data.rom" +firmware6_path = "dsp3.data.rom" +firmware6_opt = "true" +firmware7_desc = "dsp3.program.rom" +firmware7_path = "dsp3.program.rom" +firmware7_opt = "true" +firmware8_desc = "dsp4.data.rom" +firmware8_path = "dsp4.data.rom" +firmware8_opt = "true" +firmware9_desc = "dsp4.program.rom" +firmware9_path = "dsp4.program.rom" +firmware9_opt = "true" +firmware10_desc = "cx4.data.rom" +firmware10_path = "cx4.data.rom" +firmware10_opt = "true" +firmware11_desc = "st010.data.rom" +firmware11_path = "st010.data.rom" +firmware11_opt = "true" +firmware12_desc = "st010.program.rom" +firmware12_path = "st010.program.rom" +firmware12_opt = "true" +firmware13_desc = "st011.data.rom" +firmware13_path = "st011.data.rom" +firmware13_opt = "true" +firmware14_desc = "st011.program.rom" +firmware14_path = "st011.program.rom" +firmware14_opt = "true" +firmware15_desc = "st018.data.rom" +firmware15_path = "st018.data.rom" +firmware15_opt = "true" +firmware16_desc = "st018.program.rom" +firmware16_path = "st018.program.rom" +firmware16_opt = "true" +firmware17_desc = "sgb.boot.rom (SGB Boot Image)" +firmware17_path = "sgb.boot.rom" +firmware17_opt = "true" +notes = "[1] bsnes/higan Balanced uses split ROMS for special chip games.|[*] Notable DSP1/DSP1B Games: Super Mario Kart, Pilotwings|[*] Notable DSP2 Games: Dungeon Master|[*] Notable DSP3 Games: SD Gundam GX|[*] Notable DSP4 Games: Top Gear 3000|[*] Notable Cx4 Games: Mega Man X2, Mega Man X3|[2] SGB Emulation will only work with command line." diff --git a/games-emulation/bsnes_libretro/additional-files/bsnes_performance_libretro.info.in b/games-emulation/bsnes_libretro/additional-files/bsnes_performance_libretro.info.in new file mode 100644 index 000000000..ba62dc95c --- /dev/null +++ b/games-emulation/bsnes_libretro/additional-files/bsnes_performance_libretro.info.in @@ -0,0 +1,65 @@ +display_name = "Nintendo - SNES / Famicom (bsnes Performance)" +authors = "byuu" +supported_extensions = "sfc|smc|bml" +corename = "bsnes/higan Performance" +manufacturer = "Nintendo" +categories = "Emulator" +systemname = "Super Nintendo Entertainment System" +database = "Nintendo - Super Nintendo Entertainment System|Nintendo - Super Nintendo Entertainment System Hacks|Nintendo - Sufami Turbo" +license = "GPLv3" +permissions = "" +display_version = "@DISPLAY_VERSION@ (Performance)" +supports_no_game = "false" +firmware_count = 17 +firmware0_desc = "dsp1.data.rom" +firmware0_path = "dsp1.data.rom" +firmware0_opt = "true" +firmware1_desc = "dsp1.program.rom" +firmware1_path = "dsp1.program.rom" +firmware1_opt = "true" +firmware2_desc = "dsp1b.data.rom" +firmware2_path = "dsp1b.data.rom" +firmware2_opt = "true" +firmware3_desc = "dsp1b.program.rom" +firmware3_path = "dsp1b.program.rom" +firmware3_opt = "true" +firmware4_desc = "dsp2.data.rom" +firmware4_path = "dsp2.data.rom" +firmware4_opt = "true" +firmware5_desc = "dsp2.program.rom" +firmware5_path = "dsp2.program.rom" +firmware5_opt = "true" +firmware6_desc = "dsp3.data.rom" +firmware6_path = "dsp3.data.rom" +firmware6_opt = "true" +firmware7_desc = "dsp3.program.rom" +firmware7_path = "dsp3.program.rom" +firmware7_opt = "true" +firmware8_desc = "dsp4.data.rom" +firmware8_path = "dsp4.data.rom" +firmware8_opt = "true" +firmware9_desc = "dsp4.program.rom" +firmware9_path = "dsp4.program.rom" +firmware9_opt = "true" +firmware10_desc = "st010.data.rom" +firmware10_path = "st010.data.rom" +firmware10_opt = "true" +firmware11_desc = "st010.program.rom" +firmware11_path = "st010.program.rom" +firmware11_opt = "true" +firmware12_desc = "st011.data.rom" +firmware12_path = "st011.data.rom" +firmware12_opt = "true" +firmware13_desc = "st011.program.rom" +firmware13_path = "st011.program.rom" +firmware13_opt = "true" +firmware14_desc = "st018.data.rom" +firmware14_path = "st018.data.rom" +firmware14_opt = "true" +firmware15_desc = "st018.program.rom" +firmware15_path = "st018.program.rom" +firmware15_opt = "true" +firmware16_desc = "sgb.boot.rom (SGB Boot Image)" +firmware16_path = "sgb.boot.rom" +firmware16_opt = "true" +notes = "[1] bsnes/higan Performance uses split ROMS for special chip games.|[*] Notable DSP1/DSP1B Games: Super Mario Kart, Pilotwings|[*] Notable DSP2 Games: Dungeon Master|[*] Notable DSP3 Games: SD Gundam GX|[*] Notable DSP4 Games: Top Gear 3000|[2] Emulation for Cx4 games is broken." diff --git a/games-emulation/bsnes_libretro/bsnes_libretro-0.94.git20171227.recipe b/games-emulation/bsnes_libretro/bsnes_libretro-0.94.git20171227.recipe new file mode 100644 index 000000000..f2f047528 --- /dev/null +++ b/games-emulation/bsnes_libretro/bsnes_libretro-0.94.git20171227.recipe @@ -0,0 +1,64 @@ +SUMMARY="A port of bsnes to the libretro architecture" +DESCRIPTION="bsnes is an accurate SNES emulator, but can also emulate the NES, \ +Game Boy (DMG), Game Boy Color, and Game Boy Advance systems. This package \ +provides three different profiles: one focuses on accuracy but can be \ +CPU-intensive, one focuses on speed but is less accurate, and one is \ +attempting to provide a reasonable balance between the previous two." +HOMEPAGE="https://byuu.org/emulation/higan/" +COPYRIGHT="2014-2018 byuu, the libretro team" +LICENSE="GNU GPL v3" +REVISION="1" +srcGitRev="4e572a3cfa10e56bedb6737b0494e8165f6490d5" +SOURCE_URI="https://github.com/libretro/bsnes-libretro/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="77255571b654ef1b7559608818393dc8377c657dc30aa7d3ec45e40662c99a31" +SOURCE_DIR="bsnes-libretro-$srcGitRev" +PATCHES="bsnes_libretro-$portVersion.patchset" +ADDITIONAL_FILES=" + bsnes_accuracy_libretro.info.in + bsnes_balanced_libretro.info.in + bsnes_performance_libretro.info.in + " + +ARCHITECTURES="!x86_gcc2 ?x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + bsnes_libretro$secondaryArchSuffix = $portVersion + lib:bsnes_accuracy_libretro$secondaryArchSuffix = $portVersion + lib:bsnes_balanced_libretro$secondaryArchSuffix = $portVersion + lib:bsnes_performance_libretro$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + " +SUPPLEMENTS=" + retroarch$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + for bsnesProfile in "accuracy" "balanced" "performance"; do + sed -e "s/@DISPLAY_VERSION@/v${portVersion%.git*}/" \ + $portDir/additional-files/bsnes_"$bsnesProfile"_libretro.info.in \ + > bsnes_"$bsnesProfile"_libretro.info + make $jobArgs profile="$bsnesProfile" + done +} + +INSTALL() +{ + install -d "$libDir"/libretro + for bsnesProfile in "accuracy" "balanced" "performance"; do + install -t "$libDir"/libretro \ + out/bsnes_"$bsnesProfile"_libretro.so \ + bsnes_"$bsnesProfile"_libretro.info + done +} diff --git a/games-emulation/bsnes_libretro/bsnes_libretro-git.recipe b/games-emulation/bsnes_libretro/bsnes_libretro-git.recipe deleted file mode 100644 index 99abc0c7d..000000000 --- a/games-emulation/bsnes_libretro/bsnes_libretro-git.recipe +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY="A port of bsnes to the libretro architecture" -DESCRIPTION="bsnes is a SNES, NES, and Game Boy (DMG), Color, and Advance \ -emulator. It has a focus on accuracy, but also on speed and can also emulate \ -the Super Game Boy." -HOMEPAGE="http://wiki.libretro.com/index.php?title=Bsnes" -COPYRIGHT="2014-2015 byuu, the libretro team" -LICENSE="GNU GPL v3" -REVISION="1" -SOURCE_URI="https://github.com/libretro/bsnes-libretro/archive/4a98250c9bf814d3b48ae8e7836a72115823c05a.tar.gz" -CHECKSUM_SHA256="ae3742fdffce9581ff92ce56bd407dd53afe60efa6efa044bde79f3d89629c39" -SOURCE_DIR="bsnes-libretro-4a98250c9bf814d3b48ae8e7836a72115823c05a" - -ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64" -SECONDARY_ARCHITECTURES="x86" - -PROVIDES=" - bsnes_libretro$secondaryArchSuffix = $portVersion - lib:bsnes_libretro$secondaryArchSuffix = $portVersion - " -REQUIRES=" - haiku$secondaryArchSuffix - " - -BUILD_REQUIRES=" - haiku${secondaryArchSuffix}_devel - " -BUILD_PREREQUIRES=" - cmd:make - cmd:gcc$secondaryArchSuffix - " - -BUILD() -{ - make $jobArgs ui=target-libretro -} - -INSTALL() -{ - mkdir -p $libDir - cp -a out/bsnes_libretro.so $libDir -} diff --git a/games-emulation/bsnes_libretro/patches/bsnes_libretro_x86-git.patchset b/games-emulation/bsnes_libretro/patches/bsnes_libretro-0.94.git20171227.patchset similarity index 64% rename from games-emulation/bsnes_libretro/patches/bsnes_libretro_x86-git.patchset rename to games-emulation/bsnes_libretro/patches/bsnes_libretro-0.94.git20171227.patchset index 2778ae6cc..bb2b9ac82 100644 --- a/games-emulation/bsnes_libretro/patches/bsnes_libretro_x86-git.patchset +++ b/games-emulation/bsnes_libretro/patches/bsnes_libretro-0.94.git20171227.patchset @@ -1,14 +1,14 @@ -From 56a7340a68473a078cc321d4c50bf8a0d1628efd Mon Sep 17 00:00:00 2001 +From 14cffc4226e26fae9179841806780800592927d7 Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Sat, 17 Jan 2015 19:54:22 +0100 Subject: Fix Haiku build diff --git a/Makefile b/Makefile -index 70f3e6d..96e38da 100644 +index e208c15..073dc3c 100644 --- a/Makefile +++ b/Makefile -@@ -47,6 +47,9 @@ ifeq ($(findstring libretro,$(ui)),) +@@ -62,6 +62,9 @@ ifeq ($(findstring libretro,$(ui)),) ifeq ($(platform),x) flags += -march=native link += -Wl,-export-dynamic -ldl -lX11 -lXext @@ -19,25 +19,24 @@ index 70f3e6d..96e38da 100644 ifeq ($(arch),win32) flags += -m32 diff --git a/nall/Makefile b/nall/Makefile -index 4e12a39..051cfe2 100755 +index 94b58fc..6d7174e 100644 --- a/nall/Makefile +++ b/nall/Makefile -@@ -25,6 +25,9 @@ ifeq ($(platform),) +@@ -22,6 +22,8 @@ ifeq ($(platform),) + platform := windows else ifneq ($(findstring Darwin,$(uname)),) platform := osx - delete = rm -f $1 + else ifneq ($(findstring Haiku,$(uname)),) + platform := haiku -+ delete = rm -f $1 else platform := unix - delete = rm -f $1 + endif diff --git a/nall/directory.hpp b/nall/directory.hpp -index 45a062c..d711554 100644 +index 691b31e..a930191 100644 --- a/nall/directory.hpp +++ b/nall/directory.hpp @@ -190,12 +190,18 @@ private: - while(ep = readdir(dp)) { + while((ep = readdir(dp))) { if(!strcmp(ep->d_name, ".")) continue; if(!strcmp(ep->d_name, "..")) continue; +#if defined(PLATFORM_HAIKU) @@ -56,7 +55,7 @@ index 45a062c..d711554 100644 if(strmatch(ep->d_name, pattern)) list.append(ep->d_name); } @@ -215,7 +221,13 @@ private: - while(ep = readdir(dp)) { + while((ep = readdir(dp))) { if(!strcmp(ep->d_name, ".")) continue; if(!strcmp(ep->d_name, "..")) continue; +#if defined(PLATFORM_HAIKU) @@ -70,7 +69,7 @@ index 45a062c..d711554 100644 } } diff --git a/nall/intrinsics.hpp b/nall/intrinsics.hpp -index db44996..e3dc078 100755 +index 7377ed1..7a4784a 100644 --- a/nall/intrinsics.hpp +++ b/nall/intrinsics.hpp @@ -3,7 +3,7 @@ @@ -79,7 +78,7 @@ index db44996..e3dc078 100755 enum class Compiler : unsigned { Clang, GCC, VisualCPP, Unknown }; - enum class Platform : unsigned { Windows, MacOSX, X, Unknown }; //X = Linux, BSD, etc + enum class Platform : unsigned { Windows, MacOSX, X, BeAPI, Unknown }; //X = Linux, BSD, etc - enum class Architecture : unsigned { x86, amd64, ARM, Unknown }; + enum class Architecture : unsigned { x86, amd64, ARM, aarch64, Unknown }; enum class Endian : unsigned { LSB, MSB, Unknown }; @@ -38,6 +38,9 @@ struct Intrinsics { @@ -93,27 +92,54 @@ index db44996..e3dc078 100755 #warning "unable to detect platform" #define PLATFORM_UNKNOWN diff --git a/target-libretro/Makefile b/target-libretro/Makefile -index b923e2b..66bf743 100755 +index 997cd48..13dc9ba 100644 --- a/target-libretro/Makefile +++ b/target-libretro/Makefile -@@ -7,6 +7,8 @@ output := libretro +@@ -9,6 +9,8 @@ core_installdir := $(prefix)/lib - ifeq ($(platform),unix) + ifeq ($(platform),linux) flags += -fPIC +else ifeq ($(platform),haiku) + flags += -fPIC else ifeq ($(platform),osx) flags += -fPIC - else ifeq ($(platform),ios) -@@ -35,6 +37,8 @@ obj/libretro.o: $(ui)/libretro.cpp $(ui)/* + else ifneq (,$(findstring ios,$(platform))) +@@ -47,6 +49,8 @@ obj/libretro-$(profile).o: $(ui)/libretro.cpp $(ui)/* build: $(objects) - ifeq ($(platform),unix) - $(compiler) -o out/bsnes_libretro.so -shared $(objects) -ldl -Wl,--no-undefined -Wl,--version-script=$(ui)/link.T + ifeq ($(platform),linux) + $(compiler) -o out/bsnes_$(profile)_libretro.so -shared $(objects) -ldl -Wl,--no-undefined -Wl,--version-script=$(ui)/link.T +else ifeq ($(platform),haiku) -+ $(compiler) -o out/bsnes_libretro.so -shared $(objects) -lnetwork -Wl,--no-undefined -Wl,--version-script=$(ui)/link.T - else ifeq ($(platform),ios) - $(compiler) -o out/bsnes_libretro_ios.dylib -dynamiclib $(objects) -isysroot $(IOSSDK) -arch armv7 - else ifeq ($(platform),osx) ++ $(compiler) -o out/bsnes_$(profile)_libretro.so -shared $(objects) -lnetwork -Wl,--no-undefined -Wl,--version-script=$(ui)/link.T + else ifneq (,$(findstring ios,$(platform))) + ifeq ($(platform),ios-arm64) + $(compiler) -o out/bsnes_$(profile)_libretro_ios.dylib -dynamiclib $(objects) -isysroot $(IOSSDK) -arch arm64 -- -1.8.3.4 +2.16.2 + + +From 246e7cdeb44452454c4c4b8e3f148f1a09693a04 Mon Sep 17 00:00:00 2001 +From: Benjamin FRANCOIS +Date: Sat, 3 Mar 2018 02:06:40 +0000 +Subject: Fix endianness + + +diff --git a/nall/platform.hpp b/nall/platform.hpp +index e5e3f8e..36f0f6c 100644 +--- a/nall/platform.hpp ++++ b/nall/platform.hpp +@@ -44,7 +44,11 @@ namespace Math { + #ifdef __linux__ + #include + #else +- #include ++ #if defined(__HAIKU__) ++ #include ++ #else ++ #include ++ #endif + #endif + #include + #include +-- +2.16.2