From e4b6c402cb0d1d3dddef63a24c3b7d3acee0f32e Mon Sep 17 00:00:00 2001 From: gloof11 Date: Tue, 27 Jun 2023 22:22:01 +0900 Subject: [PATCH] Ports: Cave Story (Aeon Genesis Translation) --- Ports/AvailablePorts.md | 1 + Ports/cavestory/package.sh | 38 +++++++++++++++++++ ...s-a-proper-define-so-that-fstat-is-u.patch | 22 +++++++++++ ...s-a-proper-define-for-time-generatio.patch | 22 +++++++++++ ...-acceleration-from-SDL_CreateRendere.patch | 22 +++++++++++ Ports/cavestory/patches/ReadMe.md | 17 +++++++++ 6 files changed, 122 insertions(+) create mode 100755 Ports/cavestory/package.sh create mode 100644 Ports/cavestory/patches/0001-Added-serenity-as-a-proper-define-so-that-fstat-is-u.patch create mode 100644 Ports/cavestory/patches/0002-Added-serenity-as-a-proper-define-for-time-generatio.patch create mode 100644 Ports/cavestory/patches/0003-Removed-hardware-acceleration-from-SDL_CreateRendere.patch create mode 100644 Ports/cavestory/patches/ReadMe.md diff --git a/Ports/AvailablePorts.md b/Ports/AvailablePorts.md index efffc2daf9..0774f3771f 100644 --- a/Ports/AvailablePorts.md +++ b/Ports/AvailablePorts.md @@ -31,6 +31,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n | [`c-ray`](c-ray/) | C-Ray | 8f30eb9 | https://github.com/vkoskiv/c-ray | | [`ca-certificates`](ca-certificates/) | Mozilla CA certificate store | 2022-04-26 | https://curl.se/docs/caextract.html | | [`carl`](carl/) | Crypto Ancienne Resource Loader | 1.5 | https://github.com/classilla/cryanc | +| [`cavestory`](cavestory/) | Cave Story | 2.6.5-1 | https://github.com/nxengine/nxengine-evo | | [`cbonsai`](cbonsai/) | cbonsai | 1.3.1 | https://gitlab.com/jallbrit/cbonsai | | [`ccache`](ccache/) | ccache | 4.6.3 | https://ccache.dev/ | | [`cfunge`](cfunge/) | cfunge | 2bc4fb2 | https://github.com/VorpalBlade/cfunge/ | diff --git a/Ports/cavestory/package.sh b/Ports/cavestory/package.sh new file mode 100755 index 0000000000..f1abd7b30c --- /dev/null +++ b/Ports/cavestory/package.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env -S bash ../.port_include.sh +port='cavestory' +version='2.6.5-1' +files=('https://github.com/gloof11/nxengine-evo/archive/0f45555c64bae21116bac30cd46002e70b1b6495.zip nxengine-evo-0f45555c64bae21116bac30cd46002e70b1b6495.zip c93cb2c1e16f49cd87bcc886cf6adf289355fabe7b5a30d506ec066cc1d86d1d') +auth_type='sha256' +depends=( + 'libjpeg' + 'libpng' + 'SDL2' + 'SDL2_image' + 'SDL2_mixer' + 'SDL2_ttf' +) +workdir="nxengine-evo-0f45555c64bae21116bac30cd46002e70b1b6495" +launcher_name='Cave Story' +launcher_category='Games' +launcher_command='/usr/local/bin/nxengine-evo' +icon_file='platform/switch/icon.jpg' +useconfigure='true' +configopts=( + '-DCMAKE_BUILD_TYPE=Release ..' + "-DCMAKE_TOOLCHAIN_FILE=${SERENITY_BUILD_DIR}/CMakeToolchain.txt" + "-DSDL2_INCLUDE_DIR=${SERENITY_INSTALL_ROOT}/usr/local/include/SDL2" + "-DSDL2_IMAGE_INCLUDE_DIR=${SERENITY_INSTALL_ROOT}/usr/local/include/SDL2" + "-DSDL2_MIXER_INCLUDE_DIR=${SERENITY_INSTALL_ROOT}/usr/local/include/SDL2" +) + +configure() { + run cmake -B build "${configopts[@]}" +} + +build () { + run make -C build "${makeopts[@]}" +} + +install () { + run make -C build install +} diff --git a/Ports/cavestory/patches/0001-Added-serenity-as-a-proper-define-so-that-fstat-is-u.patch b/Ports/cavestory/patches/0001-Added-serenity-as-a-proper-define-so-that-fstat-is-u.patch new file mode 100644 index 0000000000..cb1d4b0d33 --- /dev/null +++ b/Ports/cavestory/patches/0001-Added-serenity-as-a-proper-define-so-that-fstat-is-u.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: gloof11 +Date: Thu, 29 Jun 2023 22:23:53 +0900 +Subject: [PATCH] Added serenity as a proper #define so that "fstat" is used + +--- + deps/spdlog/details/os.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/deps/spdlog/details/os.h b/deps/spdlog/details/os.h +index 57df5a85a0a5b601b17121f1f1f17c536496b132..11b8ee434687f8b1c318c4c85b393bb438ea53b5 100644 +--- a/deps/spdlog/details/os.h ++++ b/deps/spdlog/details/os.h +@@ -227,7 +227,7 @@ inline size_t filesize(FILE *f) + #else // unix + int fd = fileno(f); + // 64 bits(but not in osx or cygwin, where fstat64 is deprecated) +-#if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__)) && !defined(__CYGWIN__) && !defined(__HAIKU__) ++#if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__)) && !defined(__CYGWIN__) && !defined(__HAIKU__) && !defined(__serenity__) + struct stat64 st; + if (fstat64(fd, &st) == 0) + { diff --git a/Ports/cavestory/patches/0002-Added-serenity-as-a-proper-define-for-time-generatio.patch b/Ports/cavestory/patches/0002-Added-serenity-as-a-proper-define-for-time-generatio.patch new file mode 100644 index 0000000000..9d2350b667 --- /dev/null +++ b/Ports/cavestory/patches/0002-Added-serenity-as-a-proper-define-for-time-generatio.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: gloof11 +Date: Thu, 29 Jun 2023 22:25:40 +0900 +Subject: [PATCH] Added serenity as a proper define for time generation + +--- + deps/spdlog/details/os.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/deps/spdlog/details/os.h b/deps/spdlog/details/os.h +index 11b8ee434687f8b1c318c4c85b393bb438ea53b5..ef3ff77bc1338105a49b688d5b633a17e3f76ae8 100644 +--- a/deps/spdlog/details/os.h ++++ b/deps/spdlog/details/os.h +@@ -272,7 +272,7 @@ inline int utc_minutes_offset(const std::tm &tm = details::os::localtime()) + return offset; + #else + +-#if defined(sun) || defined(__sun) || defined(_AIX) || defined(__VITA__) || defined(__SWITCH__) ++#if defined(sun) || defined(__sun) || defined(_AIX) || defined(__VITA__) || defined(__SWITCH__) || defined(__serenity__) + // 'tm_gmtoff' field is BSD extension and it's missing on SunOS/Solaris + struct helper + { diff --git a/Ports/cavestory/patches/0003-Removed-hardware-acceleration-from-SDL_CreateRendere.patch b/Ports/cavestory/patches/0003-Removed-hardware-acceleration-from-SDL_CreateRendere.patch new file mode 100644 index 0000000000..0bf52f1cea --- /dev/null +++ b/Ports/cavestory/patches/0003-Removed-hardware-acceleration-from-SDL_CreateRendere.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: gloof11 +Date: Thu, 29 Jun 2023 22:27:22 +0900 +Subject: [PATCH] Removed hardware acceleration from SDL_CreateRenderer + +--- + src/graphics/Renderer.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp +index 38c26ab47dcd165db86115cdf6c4c5aaa2b15c36..62268b5263671741c5b486d576ac9f749ff962f5 100644 +--- a/src/graphics/Renderer.cpp ++++ b/src/graphics/Renderer.cpp +@@ -116,7 +116,7 @@ bool Renderer::initVideo() + + if (!_renderer) + { +- _renderer = SDL_CreateRenderer(_window, -1, SDL_RENDERER_ACCELERATED); ++ _renderer = SDL_CreateRenderer(_window, -1, SDL_RENDERER_SOFTWARE); + } + if (!_renderer) + { diff --git a/Ports/cavestory/patches/ReadMe.md b/Ports/cavestory/patches/ReadMe.md new file mode 100644 index 0000000000..9614b558d7 --- /dev/null +++ b/Ports/cavestory/patches/ReadMe.md @@ -0,0 +1,17 @@ +# Patches for cavestory on SerenityOS + +## `0001-Added-serenity-as-a-proper-define-so-that-fstat-is-u.patch` + +Added serenity as a proper #define so that "fstat" is used + + +## `0002-Added-serenity-as-a-proper-define-for-time-generatio.patch` + +Added serenity as a proper define for time generation + + +## `0003-Removed-hardware-acceleration-from-SDL_CreateRendere.patch` + +Removed hardware acceleration from SDL_CreateRenderer + +