Skip to content

Commit

Permalink
Merge pull request #59 from HakchiCloud/master
Browse files Browse the repository at this point in the history
Added Hakchi platform
  • Loading branch information
inactive123 committed Jun 26, 2018
2 parents b83a86f + b650caa commit 4423de5
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 1 deletion.
18 changes: 17 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
38 changes: 38 additions & 0 deletions hakchi/bin/snes
Original file line number Diff line number Diff line change
@@ -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" "$@"
38 changes: 38 additions & 0 deletions hakchi/bin/snes05
Original file line number Diff line number Diff line change
@@ -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" "$@"
1 change: 1 addition & 0 deletions hakchi/etc/preinit.d/pe9b0_retroarch_snes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[ -f "$mountpoint/usr/bin/clover-canoe-shvc" ] && overmount /usr/bin/clover-canoe-shvc
23 changes: 23 additions & 0 deletions hakchi/readme.md
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 4423de5

Please sign in to comment.