From fdb8b709879bdcf3041c219f18fa654d7db9d1ed Mon Sep 17 00:00:00 2001 From: VDavid003 Date: Sat, 29 Aug 2020 15:27:51 +0200 Subject: [PATCH] Update Render96 patch --- enhancements/render96_android.patch | 179 +++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 6 deletions(-) diff --git a/enhancements/render96_android.patch b/enhancements/render96_android.patch index fe172b5..3109f32 100644 --- a/enhancements/render96_android.patch +++ b/enhancements/render96_android.patch @@ -37,28 +37,195 @@ index 5e5da57..3f37941 100644 LOCAL_SHORT_COMMANDS := true diff --git a/Makefile b/Makefile -index a6dbdf0..5d8c3e5 100644 +index c1bd1ae..0de610e 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,7 @@ OSX_BUILD ?= 0 TARGET_ARCH ?= native TARGET_BITS ?= 0 -+TOUCHCONTROLS ?= 1 ++TOUCH_CONTROLS ?= 1 # Disable better camera by default BETTERCAMERA ?= 0 # Disable no drawing distance by default -@@ -541,6 +542,10 @@ else +@@ -89,6 +90,13 @@ endif + ifeq ($(TARGET_WEB),0) + ifeq ($(HOST_OS),Windows) + WINDOWS_BUILD := 1 ++ else ++ ifneq ($(shell which termux-setup-storage),) ++ TARGET_ANDROID := 1 ++ ifeq ($(shell dpkg -s apksigner | grep Version | sed "s/Version: //"),0.7-2) ++ OLD_APKSIGNER := 1 ++ endif ++ endif + endif + endif + +@@ -193,6 +201,10 @@ ifeq ($(TARGET_RPI),1) # Define RPi to change SDL2 title & GLES2 hints + VERSION_CFLAGS += -DUSE_GLES + endif + ++ifeq ($(TARGET_ANDROID),1) ++ VERSION_CFLAGS += -DUSE_GLES ++endif ++ + ifeq ($(OSX_BUILD),1) # Modify GFX & SDL2 for OSX GL + VERSION_CFLAGS += -DOSX_BUILD + endif +@@ -265,12 +277,17 @@ EXE := $(BUILD_DIR)/$(TARGET).html + else + ifeq ($(WINDOWS_BUILD),1) + EXE := $(BUILD_DIR)/$(TARGET).exe +- +- else # Linux builds/binary namer +- ifeq ($(TARGET_RPI),1) +- EXE := $(BUILD_DIR)/$(TARGET).arm + else +- EXE := $(BUILD_DIR)/$(TARGET) ++ ifeq ($(TARGET_ANDROID),1) ++ EXE := $(BUILD_DIR)/libmain.so ++ APK := $(BUILD_DIR)/$(TARGET).unsigned.apk ++ APK_SIGNED := $(BUILD_DIR)/$(TARGET).apk ++ else # Linux builds/binary namer ++ ifeq ($(TARGET_RPI),1) ++ EXE := $(BUILD_DIR)/$(TARGET).arm ++ else ++ EXE := $(BUILD_DIR)/$(TARGET) ++ endif + endif + endif + endif +@@ -429,6 +446,9 @@ SEG_FILES := $(SEGMENT_ELF_FILES) $(ACTOR_ELF_FILES) $(LEVEL_ELF_FILES) + + ##################### Compiler Options ####################### + INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I src -I . ++ifeq ($(TARGET_ANDROID),1) ++INCLUDE_CFLAGS += -I SDL/include ++endif + ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth + + # Huge deleted N64 section was here +@@ -497,6 +517,8 @@ ifeq ($(WINDOW_API),DXGI) + else ifeq ($(WINDOW_API),SDL2) + ifeq ($(WINDOWS_BUILD),1) + BACKEND_LDFLAGS += -lglew32 -lglu32 -lopengl32 ++ else ifeq ($(TARGET_ANDROID),1) ++ BACKEND_LDFLAGS += -lGLESv2 + else ifeq ($(TARGET_RPI),1) + BACKEND_LDFLAGS += -lGLESv2 + else ifeq ($(OSX_BUILD),1) +@@ -517,11 +539,16 @@ endif + + # SDL can be used by different systems, so we consolidate all of that shit into this + ifeq ($(SDL_USED),2) +- BACKEND_CFLAGS += -DHAVE_SDL2=1 `$(SDLCONFIG) --cflags` +- ifeq ($(WINDOWS_BUILD),1) +- BACKEND_LDFLAGS += `$(SDLCONFIG) --static-libs` -lsetupapi -luser32 -limm32 -lole32 -loleaut32 -lshell32 -lwinmm -lversion ++ ifeq ($(TARGET_ANDROID),1) ++ BACKEND_CFLAGS += -DHAVE_SDL2=1 ++ BACKEND_LDFLAGS += -lhidapi -lSDL2 + else +- BACKEND_LDFLAGS += `$(SDLCONFIG) --libs` ++ BACKEND_CFLAGS += -DHAVE_SDL2=1 `$(SDLCONFIG) --cflags` ++ ifeq ($(WINDOWS_BUILD),1) ++ BACKEND_LDFLAGS += `$(SDLCONFIG) --static-libs` -lsetupapi -luser32 -limm32 -lole32 -loleaut32 -lshell32 -lwinmm -lversion ++ else ++ BACKEND_LDFLAGS += `$(SDLCONFIG) --libs` ++ endif + endif + endif + +@@ -541,6 +568,10 @@ else endif # Check for enhancement options -+ifeq ($(TOUCHCONTROLS),1) -+ CC_CHECK += -DTOUCHCONTROLS -+ CFLAGS += -DTOUCHCONTROLS ++ifeq ($(TOUCH_CONTROLS),1) ++ CC_CHECK += -DTOUCH_CONTROLS ++ CFLAGS += -DTOUCH_CONTROLS +endif # Check for Puppycam option ifeq ($(BETTERCAMERA),1) +@@ -622,6 +653,19 @@ else ifeq ($(WINDOWS_BUILD),1) + else ifeq ($(TARGET_RPI),1) + LDFLAGS := $(OPT_FLAGS) -lm $(BACKEND_LDFLAGS) -no-pie + ++else ifeq ($(TARGET_ANDROID),1) ++ ifneq ($(shell uname -m | grep "i.86"),) ++ ARCH_APK := x86 ++ else ifeq ($(shell uname -m),x86_64) ++ ARCH_APK := x86_64 ++ else ifeq ($(shell getconf LONG_BIT),64) ++ ARCH_APK := arm64-v8a ++ else ++ ARCH_APK := armeabi-v7a ++ endif ++ CFLAGS += -fPIC ++ LDFLAGS := -L./android/lib/$(ARCH_APK)/ -lm $(BACKEND_LDFLAGS) -shared ++ + else ifeq ($(OSX_BUILD),1) + LDFLAGS := -lm $(BACKEND_LDFLAGS) -no-pie -lpthread + +@@ -662,7 +706,13 @@ ZEROTERM = $(PYTHON) $(TOOLS_DIR)/zeroterm.py + + ######################## Targets ############################# + ++ifeq ($(TARGET_ANDROID),1) ++all: $(APK_SIGNED) ++EXE_DEPEND := $(APK_SIGNED) ++else + all: $(EXE) ++EXE_DEPEND := $(EXE) ++endif + + # thank you apple very cool + ifeq ($(HOST_OS),Darwin) +@@ -673,7 +723,7 @@ endif + + ifeq ($(EXTERNAL_DATA),1) + +-BASEPACK_PATH := $(BUILD_DIR)/$(BASEDIR)/ ++BASEPACK_PATH := $(BUILD_DIR)/$(BASEDIR)/base.zip + BASEPACK_LST := $(BUILD_DIR)/basepack.lst + + # depend on resources as well +@@ -683,7 +733,7 @@ all: $(BASEPACK_PATH) + res: $(BASEPACK_PATH) + + # prepares the basepack.lst +-$(BASEPACK_LST): $(EXE) ++$(BASEPACK_LST): $(EXE_DEPEND) + @mkdir -p $(BUILD_DIR)/$(BASEDIR) + @echo -n > $(BASEPACK_LST) + @echo "$(BUILD_DIR)/sound/bank_sets sound/bank_sets" >> $(BASEPACK_LST) +@@ -976,6 +1026,26 @@ $(BUILD_DIR)/%.o: %.s + $(AS) $(ASFLAGS) -MD $(BUILD_DIR)/$*.d -o $@ $< + + ++ifeq ($(TARGET_ANDROID),1) ++APK_FILES := $(shell find android/ -type f) ++ ++$(APK): $(EXE) $(APK_FILES) ++ cp -r android $(BUILD_DIR) && \ ++ cp $(EXE) $(BUILD_DIR)/android/lib/$(ARCH_APK)/ && \ ++ cd $(BUILD_DIR)/android && \ ++ zip -r ../../../$@ ./* && \ ++ cd ../../.. && \ ++ rm -rf $(BUILD_DIR)/android ++ ++ifeq ($(OLD_APKSIGNER),1) ++$(APK_SIGNED): $(APK) ++ apksigner $(BUILD_DIR)/keystore $< $@ ++else ++$(APK_SIGNED): $(APK) ++ cp $< $@ ++ apksigner sign --cert certificate.pem --key key.pk8 $@ ++endif ++endif + + $(EXE): $(O_FILES) $(MIO0_FILES:.mio0=.o) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(BUILD_DIR)/$(RPC_LIBS) + $(LD) -L $(BUILD_DIR) -o $@ $(O_FILES) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(LDFLAGS) diff --git a/Makefile.split b/Makefile.split index 7657f4f..7e7168e 100644 --- a/Makefile.split