diff options
-rw-r--r-- | Makefile | 18 | ||||
-rwxr-xr-x | hakchi/bin/snes | 38 | ||||
-rwxr-xr-x | hakchi/bin/snes05 | 38 | ||||
-rw-r--r-- | hakchi/etc/preinit.d/pe9b0_retroarch_snes | 1 | ||||
-rw-r--r-- | hakchi/readme.md | 23 |
5 files changed, 117 insertions, 1 deletions
@@ -223,6 +223,12 @@ else ifeq ($(platform), gcw0) LIBM := LOAD_FROM_MEMORY_TEST = 0 CFLAGS += -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float +#Nintendo Classics (Hakchi) +else ifeq ($(platform), nintendoc) + TARGET := $(TARGET_NAME)_libretro.so + fpic := -fPIC + SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T + CFLAGS += -fno-builtin -fno-exceptions -ffunction-sections -DARM -marm -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard # Windows MSVC 2010 x86 else ifeq ($(platform), windows_msvc2010_x86) @@ -359,8 +365,18 @@ else $(CC) $(LINKOUT)$@ $(OBJECTS) $(LDFLAGS) $(LIBS) endif +ifeq ($(platform),nintendoc) + @echo "** BUILDING HAKCHI HMOD PACKAGE **" + mkdir -p hakchi/etc/libretro/core/ hakchi/etc/libretro/info/ hakchi/etc/preinit.d/ + rm -f hakchi/etc/libretro/info/* + cp $(TARGET_NAME)_libretro.so hakchi/etc/libretro/core/ + cd hakchi/etc/libretro/info/; wget https://buildbot.libretro.com/assets/frontend/info/$(TARGET_NAME)_libretro.info + cd hakchi/; tar -czvf "CORE_$(TARGET_NAME).hmod" * +endif + + clean: - rm -f $(TARGET) $(OBJECTS) + rm -f $(TARGET) $(OBJECTS) hakchi/CORE_$(TARGET_NAME).hmod .PHONY: clean endif diff --git a/hakchi/bin/snes b/hakchi/bin/snes new file mode 100755 index 0000000..4447455 --- /dev/null +++ b/hakchi/bin/snes @@ -0,0 +1,38 @@ +#!/bin/sh + +setFileName(){ + filename="$(readlink -f "$1")" + filebase="$(basename "$filename")" + extension="${filebase##*.}" +} + +getSfrom(){ + local rom="$(hexdump -e '1/4 "%u"' -s8 -n4 "$1")" + local footer="$(hexdump -e '1/4 "%u"' -s20 -n4 "$1")" + local size="$(hexdump -e '1/4 "%u"' -s$((footer+1)) -n4 "$1")" + dd "status=none" "if=$1" "iflag=skip_bytes" "skip=$rom" "bs=$size" "count=1" +} + +setFileName "$1" +shift + +tmppath="/tmp/rom" +rm -rf "$tmppath" +mkdir -p "$tmppath" +cd "$tmppath" + +if [ "$extension" = "7z" ]; then + tiny7zx x "$filename" + filename="$tmppath/$(ls | head -n1)" + filename_str="${filename// /_}" + mv "$filename" "$filename_str" + setFileName "$filename_str" +fi + +if [ "$extension" = "sfrom" ]; then + filename_str="$filebase.sfc" + getSfrom "$filename" > "$filename_str" + setFileName "$filename_str" +fi + +exec retroarch-clover snes9x "$filename" "$@" diff --git a/hakchi/bin/snes05 b/hakchi/bin/snes05 new file mode 100755 index 0000000..c6da74b --- /dev/null +++ b/hakchi/bin/snes05 @@ -0,0 +1,38 @@ +#!/bin/sh + +setFileName(){ + filename="$(readlink -f "$1")" + filebase="$(basename "$filename")" + extension="${filebase##*.}" +} + +getSfrom(){ + local rom="$(hexdump -e '1/4 "%u"' -s8 -n4 "$1")" + local footer="$(hexdump -e '1/4 "%u"' -s20 -n4 "$1")" + local size="$(hexdump -e '1/4 "%u"' -s$((footer+1)) -n4 "$1")" + dd "status=none" "if=$1" "iflag=skip_bytes" "skip=$rom" "bs=$size" "count=1" +} + +setFileName "$1" +shift + +tmppath="/tmp/rom" +rm -rf "$tmppath" +mkdir -p "$tmppath" +cd "$tmppath" + +if [ "$extension" = "7z" ]; then + tiny7zx x "$filename" + filename="$tmppath/$(ls | head -n1)" + filename_str="${filename// /_}" + mv "$filename" "$filename_str" + setFileName "$filename_str" +fi + +if [ "$extension" = "sfrom" ]; then + filename_str="$filebase.sfc" + getSfrom "$filename" > "$filename_str" + setFileName "$filename_str" +fi + +exec retroarch-clover snes9x2005 "$filename" "$@" diff --git a/hakchi/etc/preinit.d/pe9b0_retroarch_snes b/hakchi/etc/preinit.d/pe9b0_retroarch_snes new file mode 100644 index 0000000..82b9be4 --- /dev/null +++ b/hakchi/etc/preinit.d/pe9b0_retroarch_snes @@ -0,0 +1 @@ +[ -f "$mountpoint/usr/bin/clover-canoe-shvc" ] && overmount /usr/bin/clover-canoe-shvc diff --git a/hakchi/readme.md b/hakchi/readme.md new file mode 100644 index 0000000..18bc086 --- /dev/null +++ b/hakchi/readme.md @@ -0,0 +1,23 @@ +----------------------- +Name: SNES9x2005 +Creator: Libretro +Category: RetroArch Cores +----------------------- +=== SNES9x2005 Core for RetroArch === + +Module adds support for Super Famicom / Super Nintendo + +Available executables and arguments to run Core: +- /bin/snes <rom> <clover_args> +- /bin/snes05 <rom> <clover_args> + +Core by libretro + +Built and assembled by HakchiCloud - [Website](https://hakchiresources.com) + +Hakchi module system by madmonkey + +NES/SNES Mini shell integration by Cluster + +(c) 2016-2018 + |