From a9382e54d817c94227c2db6e42aa201eb397c495 Mon Sep 17 00:00:00 2001 From: m45t3r <48780351+m45t3r@users.noreply.github.com> Date: Sat, 17 Oct 2020 00:05:32 -0300 Subject: [PATCH] Add initial port to GCW0 --- Makefile | 2 +- Makefile.gcw0 | 92 +++++++++++++++++++++++++++++++++++++++ opk/default.gcw0.desktop | 12 +++++ opk/make_opk.sh | 15 +++++++ opk/sfc.png | Bin 0 -> 3011 bytes 5 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 Makefile.gcw0 create mode 100644 opk/default.gcw0.desktop create mode 100755 opk/make_opk.sh create mode 100644 opk/sfc.png diff --git a/Makefile b/Makefile index f2f78c1..f2ba75b 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ OFLAGS = -Ofast -march=armv5te -mtune=arm926ej-s -marm \ -Wall ifeq ($(PGO), GENERATE) - OFLAGS += -fprofile-generate -fprofile-dir=./profile + OFLAGS += -fprofile-generate -fprofile-dir=/media/data/profile/snes9x4d LDFLAGS += -lgcov else ifeq ($(PGO), APPLY) OFLAGS += -fprofile-use -fprofile-dir=./profile -fbranch-probabilities diff --git a/Makefile.gcw0 b/Makefile.gcw0 new file mode 100644 index 0000000..f5ca71e --- /dev/null +++ b/Makefile.gcw0 @@ -0,0 +1,92 @@ +UNZIP = 1 +C4_OLD = 0 +SRTC = 0 +CHEATS = 0 +SDLMENU = 1 +SETA_DSP = 0 +SNAPSHOT_OLD = 0 +SPC7110 = 0 + +include Makefile.common + +PREFIX = mipsel-linux + +CXX = $(PREFIX)-g++ +CC = $(PREFIX)-gcc +STRIP = $(PREFIX)-strip +AS = $(PREFIX)-as + +SYSROOT := $(shell $(CC) --print-sysroot) +SDL_CFLAGS := $(shell $(SYSROOT)/usr/bin/sdl-config --cflags) +SDL_LIBS := $(shell $(SYSROOT)/usr/bin/sdl-config --libs) + +LDFLAGS = -lz -lm $(SDL_LIBS) -Wl,--as-needed -Wl,--gc-sections -s + +OFLAGS = -Ofast -fomit-frame-pointer -mips32r2 \ + -fdata-sections -ffunction-sections \ + -fno-stack-protector -fomit-frame-pointer \ + -fno-strict-aliasing \ + -Wall + +ifeq ($(PGO), GENERATE) + OFLAGS += -fprofile-generate -fprofile-dir=/media/data/profile/snes9x4d + LDFLAGS += -lgcov +else ifeq ($(PGO), APPLY) + OFLAGS += -fprofile-use -fprofile-dir=./profile -fbranch-probabilities +else ifeq ($(PGO), FORCE-APPLY) + OFLAGS += -fprofile-use -fprofile-dir=./profile -fbranch-probabilities -Wno-error=coverage-mismatch +else + OFLAGS += -falign-functions=1 -falign-jumps=1 -falign-loops=1 \ + -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \ + -fmerge-all-constants +endif + +CCFLAGS += $(OFLAGS) \ + -DBILINEAR_SCALE \ + -DFAST_LSB_WORD_ACCESS \ + -DFOREVER_16_BIT \ + -DFOREVER_16_BIT_SOUND \ + -DLAGFIX \ + -DDINGOO \ + -DVIDEO_MODE=1 \ + -DZLIB \ + +CXXFLAGS = --std=gnu++14 $(CCFLAGS) \ + -fno-exceptions -fno-rtti -fno-threadsafe-statics + +CFLAGS = --std=gnu11 $(CCFLAGS) + +.SUFFIXES: .o .cpp .c .cc .h .m .i .S .asm .obj +.PHONY: format + +all: snes9x4d + +format: + find . -regex '.*\.\(c\|h\|cpp\|hpp\|cc\|cxx\)' -exec clang-format -style=file -i {} \; + +snes9x4d: $(OBJECTS) + $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) + $(STRIP) $@ + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $*.cpp -o $@ + +.c.o: + $(CC) -c $(CFLAGS) $*.c -o $@ + +.cpp.S: + $(CXX) -S $(CXXFLAGS) $*.cpp -o $@ + +.cpp.i: + $(CXX) -E $(CXXFLAGS) $*.cpp -o $@ + +.S.o: + $(CXX) -c $(CXXFLAGS) $*.S -o $@ + +.S.i: + $(CXX) -c -E $(CXXFLAGS) $*.S -o $@ + +clean: + rm -f $(OBJECTS) + +release: clean all diff --git a/opk/default.gcw0.desktop b/opk/default.gcw0.desktop new file mode 100644 index 0000000..af1cce4 --- /dev/null +++ b/opk/default.gcw0.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=snes9x4d +Comment=Super Nintendo emulator +Comment[fr]=Émulateur de Super Nintendo +Comment[es]=Emulador de Super Nintendo +Exec=snes9x4d %f +Terminal=false +Type=Application +StartupNotify=true +Icon=sfc +Categories=emulators; +MimeType=application/x-snes-rom;application/zip; diff --git a/opk/make_opk.sh b/opk/make_opk.sh new file mode 100755 index 0000000..f76b1c2 --- /dev/null +++ b/opk/make_opk.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +cd $(dirname $0) + +OPK_NAME=snes9x4d.opk + +echo Building ${OPK_NAME}... + +# create opk +FLIST="../snes9x4d default.gcw0.desktop sfc.png" + +rm -f ${OPK_NAME} +mksquashfs ${FLIST} ${OPK_NAME} -all-root -no-xattrs -noappend -no-exports + +cat default.gcw0.desktop diff --git a/opk/sfc.png b/opk/sfc.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe6f7e9692e894278c7a548d62e978c4da97f9b GIT binary patch literal 3011 zcmV;!3q16RP)rA`Ai%>s!LK4w@AX=;@C;|TrVzMA*nP@S*5w}P=!3@oE?|NLI!(e6=|{u z5B-}oajIL?M7SkR+v!^J=hYoE=IG_gvEA~dX>O5(cgrfW^br7-v|cN6jem^5jk>)aYS*&|9-POZ~tt2 zOl%qB2*g=)4bIH0jVv(4E2&8LqW}?6Z!nHPercY;{?@AT;;`o!$Bc_|M-O%6s~6+ zfjy01@5@#0w)poRSAiXGDLmh5C40UHy2?%Uv@JmUz& zup!@cytU%DZle&}wSD&zF(}O04FZt${df z)Q!#~$7gmKgy}tknfL%)fuT=H6DHqbY7L}OW4{rf9pPdefqm@ct&V_*kcR;ww;4y! zG5?hc_sv^R*q6Tj4&#WoAAoU0=>xFI{+fEm5r`b=5d(tnKb$gWmUHyv@lxo}2TZMj z{KoPvJ@+5{?2$5bj{KEc3?1TOL7^V$h4FW!;Aj3WkBd3&TKI=y0Q_Vwcn#x-R~$Ud z>Eg3ql*UZzJt0lF^Lr4m`xCvaBCUNeH`&mrI`_-3jqpB226T*_xSc&6tgz4_54+!A zAN2@8=O5pg$>53Ok~BE-2IB}EgEaYG zQ5x`_1zWbIGLAqTJ+bcle<{cEmAl1fqdKIh(Yqv7SYmHvn(Ly9{DW}>j^qucQsi?z zeE^=m1oVn3($PKe=?D)OJfLIgvXf%iP=_;m+RBdUzb;@Lf$XpOLJ_6MzOx{W9`5yc zQ9=La-l*uG*y9$M8As6Z()`p10pYaoXulG<-lUVGr@tpnoGLPoKvWUgF^GKH`%O@@ zqz)VCm^AZoY2ws-EHFf|&z&F7qNg2V9Dx)NmajCYhC4gv%$qGfKc=2>1f6fMTJ}f|NFzpdF%sJ4d?sp6|AdnZ8!4(aGUEtD zZG^<04({%&Z$0CPB8{Hl=nf3^x5v#l_JWaSyFan@+0nz)TFLR|Te*xQ3R7zok%Tc8 zp!G10c-?DKMmz!_PmXoVGv|KQ`CK&VpXl@t4GViBkBFf|@A|5Ogn6C1n#JK`Yx?75w z-fbWD{1Nw!n@|3r8~)GRF@OPWZEfQV3JUh}l-}Seb!B8^xOtxM;VJFnDgBzKw2`N@ z;lHSnr}QgIY1ih>o88&j*>0ZFPM*>mg@uI$ZEbB60X+5yfTAdm*Vfj~g6fDTvb&y2fzTo_V)Hjp3?J1 zqtSEi+BGyaHKC!Q!KcQ?M%ZjNoH%g;=gyr&ettf7?b?Msd-fnVHy7KtZ%1x!F7os9 zaryEk=ycUc-awI%yaB1{8OZuzFZi6lAv1d`_{_~n-wqbbce! z`AnpwZ$x={g~C&M&5x(l)z;Pqo6QEZ*^G*c3Z$i_VZnk0h>MFudU`s_%gcQrmo8oM z*h4b>}GW8=mw>@O?= zPidzgPpPN1wH0Qw85WBLIXO9qjg7^tufB@-_;}2mITINf88Dm8u-R-lfBrmja&llW z7+|qjP*_-q($Z2`Ef)OcFFTN(y$!*IQQ!^^LH>yX*nAAXR9h6W?7w#zu3 zl!5~b7a<`f4SD{*{(M~)nU*=&Z{Y)09~DZS&zQ(Balm*;J4Y=psJfYE4#*=)w~gTa7{7cZi+vJ%IR z9m5x2e1YofYLu6kqo$??Mxzncy3di3wHfcONx-VLN!XH;ftG?{XgW9+2M_E;QYyuY zRcnx$orA3(Z1eJz7WwIPx~V*+*J^5N6sy$=ywi_{G~-dUZ9ch@FjZBh!hZu<})eN?LOl-}hjT?ya`KLCEBC+5m)^l62s)WcJHi>LH3PwAomqQg9;U-6WB3JxArii%5cu($*z zCB+I)skg7utrkTw@ZY=PlZOu