From 3227dbcfe8b4e4796730911165226f5e46dfbb37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Jos=C3=A9=20Garc=C3=ADa=20Garc=C3=ADa?= Date: Sun, 5 Jul 2020 12:11:36 +0200 Subject: [PATCH] [VITA] Fix VitaGL and add VitaShaRK --- Makefile.common | 8 ++++- Makefile.vita | 12 +++++-- deps/vitaGL/source/utils/mem_utils.c | 6 ++-- deps/vitaShaRK/SceShaccCg/Makefile | 47 ++++++++++++++++++++++++++ deps/vitaShaRK/{ => include}/shacccg.h | 0 deps/vitaShaRK/source/vitashark.c | 2 +- 6 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 deps/vitaShaRK/SceShaccCg/Makefile rename deps/vitaShaRK/{ => include}/shacccg.h (100%) diff --git a/Makefile.common b/Makefile.common index 1838aa4ab3..dd6cf61c17 100644 --- a/Makefile.common +++ b/Makefile.common @@ -2090,9 +2090,15 @@ ifeq ($(HAVE_MATH_NEON), 1) OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c))) endif +ifeq ($(HAVE_VITAGL), 1) + INCLUDE_DIRS += -I$(DEPS_DIR)/vitaShaRK/source + SOURCES := $(DEPS_DIR)/vitaShaRK/source + OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c))) +endif + ifeq ($(HAVE_VITAGL), 1) DEFINES += -DHAVE_VITAGL -DSTB_DXT_IMPLEMENTATION -DSKIP_ERROR_HANDLING -DHAVE_SHARK - INCLUDE_DIRS += -I$(DEPS_DIR)/vitaGL/source + INCLUDE_DIRS += -I$(DEPS_DIR)/vitaGL/source -I$(DEPS_DIR)/vitaShaRK/include SOURCES := $(DEPS_DIR)/vitaGL/source $(DEPS_DIR)/vitaGL/source/utils OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c))) endif diff --git a/Makefile.vita b/Makefile.vita index fbb85cd20c..cdb93c9620 100644 --- a/Makefile.vita +++ b/Makefile.vita @@ -123,7 +123,7 @@ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions VITA_LIBS := -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub -lSceAppUtil_stub \ -lSceSysmodule_stub -lSceCtrl_stub -lSceHid_stub -lSceTouch_stub -lSceAudio_stub \ -lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub -lSceMotion_stub \ - -lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lstdc++ -lpthread -lpng -lz + -lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lstdc++ -lpthread -lpng -lz -lSceShaccCg_stub LIBS := $(WHOLE_START) -lretro_vita $(WHOLE_END) $(VITA_LIBS) -lm -lc @@ -156,7 +156,13 @@ all: $(TARGETS) %.depend: ; -$(TARGET).elf: $(OBJ) libretro_vita.a +libSceShaccCg_stub.a: + mkdir -p deps/vitaShaRK/SceShaccCg + vita-libs-gen deps/vitaShaRK/SceShaccCg.yml deps/vitaShaRK/SceShaccCg + make -C deps/vitaShaRK/SceShaccCg ARCH=arm-vita-eabi + cp deps/vitaShaRK/SceShaccCg/libSceShaccCg_stub.a . + +$(TARGET).elf: $(OBJ) libretro_vita.a libSceShaccCg_stub.a $(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@ %.velf: %.elf @@ -172,7 +178,7 @@ $(TARGET).elf: $(OBJ) libretro_vita.a vita-pack-vpk -s param.sfo -b $< $@ clean: - rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk + rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk libSceShaccCg_stub.a deps/vitaShaRK/SceShaccCg rm -f $(OBJ:.o=.depend) # Useful for developers diff --git a/deps/vitaGL/source/utils/mem_utils.c b/deps/vitaGL/source/utils/mem_utils.c index 65e391ae60..3d23d96871 100644 --- a/deps/vitaGL/source/utils/mem_utils.c +++ b/deps/vitaGL/source/utils/mem_utils.c @@ -256,7 +256,7 @@ static void heap_free(void *addr) { heap_blk_free((uintptr_t)addr); } -void mem_term(void) { +void vgl_mem_term(void) { heap_destroy(); if (mempool_addr[0] != NULL) { sceKernelFreeMemBlock(mempool_id[0]); @@ -268,9 +268,9 @@ void mem_term(void) { } } -int mem_init(size_t size_ram, size_t size_cdram, size_t size_phycont) { +int vgl_mem_init(size_t size_ram, size_t size_cdram, size_t size_phycont) { if (mempool_addr[0] != NULL) - mem_term(); + vgl_mem_term(); mempool_size[VGL_MEM_VRAM - 1] = ALIGN(size_cdram, 256 * 1024); mempool_size[VGL_MEM_RAM - 1] = ALIGN(size_ram, 4 * 1024); diff --git a/deps/vitaShaRK/SceShaccCg/Makefile b/deps/vitaShaRK/SceShaccCg/Makefile new file mode 100644 index 0000000000..495b32a861 --- /dev/null +++ b/deps/vitaShaRK/SceShaccCg/Makefile @@ -0,0 +1,47 @@ +ifdef VITASDK +PREFIX = $(VITASDK)/bin/ +endif + +ARCH ?= $(PREFIX)arm-vita-eabi +AS = $(ARCH)-as +AR = $(ARCH)-ar +RANLIB = $(ARCH)-ranlib + +TARGETS = libSceShaccCg_stub.a +TARGETS_WEAK = libSceShaccCg_stub_weak.a + +SceShaccCg_OBJS = SceShaccCg_SceShaccCg_SceShaccCg_0205DE96.o SceShaccCg_SceShaccCg_SceShaccCg_07DDFC78.o SceShaccCg_SceShaccCg_SceShaccCg_0E1285A6.o SceShaccCg_SceShaccCg_SceShaccCg_152971B1.o SceShaccCg_SceShaccCg_SceShaccCg_17223BEB.o SceShaccCg_SceShaccCg_SceShaccCg_2654E73A.o SceShaccCg_SceShaccCg_SceShaccCg_268FAEE9.o SceShaccCg_SceShaccCg_sceShaccCgInitializeCompileOptions.o SceShaccCg_SceShaccCg_SceShaccCg_4595A388.o SceShaccCg_SceShaccCg_SceShaccCg_46FA0303.o SceShaccCg_SceShaccCg_SceShaccCg_56BFA825.o SceShaccCg_SceShaccCg_SceShaccCg_648739F3.o SceShaccCg_SceShaccCg_sceShaccCgCompileProgram.o SceShaccCg_SceShaccCg_SceShaccCg_6BB58825.o SceShaccCg_SceShaccCg_sceShaccCgSetDefaultAllocator.o SceShaccCg_SceShaccCg_SceShaccCg_6FB40CA9.o SceShaccCg_SceShaccCg_SceShaccCg_7B2CF324.o SceShaccCg_SceShaccCg_SceShaccCg_7BC25091.o SceShaccCg_SceShaccCg_SceShaccCg_7F430CCD.o SceShaccCg_SceShaccCg_SceShaccCg_95F57A23.o SceShaccCg_SceShaccCg_SceShaccCg_A067C481.o SceShaccCg_SceShaccCg_SceShaccCg_A13A8A1E.o SceShaccCg_SceShaccCg_SceShaccCg_A56B1A5B.o SceShaccCg_SceShaccCg_SceShaccCg_A7930FF6.o SceShaccCg_SceShaccCg_sceShaccCgInitializeCallbackList.o SceShaccCg_SceShaccCg_sceShaccCgDestroyCompileOutput.o SceShaccCg_SceShaccCg_SceShaccCg_B4AC9943.o SceShaccCg_SceShaccCg_SceShaccCg_BB703EE1.o SceShaccCg_SceShaccCg_SceShaccCg_D4378DB1.o SceShaccCg_SceShaccCg_SceShaccCg_DAD4AAE4.o SceShaccCg_SceShaccCg_SceShaccCg_DF3DDCFD.o SceShaccCg_SceShaccCg_SceShaccCg_EF8D59D6.o SceShaccCg_SceShaccCg_SceShaccCg_F4BAB902.o +SceShaccCg_weak_OBJS = SceShaccCg_SceShaccCg_SceShaccCg_0205DE96.wo SceShaccCg_SceShaccCg_SceShaccCg_07DDFC78.wo SceShaccCg_SceShaccCg_SceShaccCg_0E1285A6.wo SceShaccCg_SceShaccCg_SceShaccCg_152971B1.wo SceShaccCg_SceShaccCg_SceShaccCg_17223BEB.wo SceShaccCg_SceShaccCg_SceShaccCg_2654E73A.wo SceShaccCg_SceShaccCg_SceShaccCg_268FAEE9.wo SceShaccCg_SceShaccCg_sceShaccCgInitializeCompileOptions.wo SceShaccCg_SceShaccCg_SceShaccCg_4595A388.wo SceShaccCg_SceShaccCg_SceShaccCg_46FA0303.wo SceShaccCg_SceShaccCg_SceShaccCg_56BFA825.wo SceShaccCg_SceShaccCg_SceShaccCg_648739F3.wo SceShaccCg_SceShaccCg_sceShaccCgCompileProgram.wo SceShaccCg_SceShaccCg_SceShaccCg_6BB58825.wo SceShaccCg_SceShaccCg_sceShaccCgSetDefaultAllocator.wo SceShaccCg_SceShaccCg_SceShaccCg_6FB40CA9.wo SceShaccCg_SceShaccCg_SceShaccCg_7B2CF324.wo SceShaccCg_SceShaccCg_SceShaccCg_7BC25091.wo SceShaccCg_SceShaccCg_SceShaccCg_7F430CCD.wo SceShaccCg_SceShaccCg_SceShaccCg_95F57A23.wo SceShaccCg_SceShaccCg_SceShaccCg_A067C481.wo SceShaccCg_SceShaccCg_SceShaccCg_A13A8A1E.wo SceShaccCg_SceShaccCg_SceShaccCg_A56B1A5B.wo SceShaccCg_SceShaccCg_SceShaccCg_A7930FF6.wo SceShaccCg_SceShaccCg_sceShaccCgInitializeCallbackList.wo SceShaccCg_SceShaccCg_sceShaccCgDestroyCompileOutput.wo SceShaccCg_SceShaccCg_SceShaccCg_B4AC9943.wo SceShaccCg_SceShaccCg_SceShaccCg_BB703EE1.wo SceShaccCg_SceShaccCg_SceShaccCg_D4378DB1.wo SceShaccCg_SceShaccCg_SceShaccCg_DAD4AAE4.wo SceShaccCg_SceShaccCg_SceShaccCg_DF3DDCFD.wo SceShaccCg_SceShaccCg_SceShaccCg_EF8D59D6.wo SceShaccCg_SceShaccCg_SceShaccCg_F4BAB902.wo +SceKernel_OBJS = +ALL_OBJS= + +all: $(TARGETS) $(TARGETS_WEAK) + +define LIBRARY_template + $(1): $$($(1:lib%_stub.a=%)_OBJS) + ALL_OBJS += $$($(1:lib%_stub.a=%)_OBJS) +endef +define LIBRARY_WEAK_template + $(1): $$($(1:lib%_stub_weak.a=%)_weak_OBJS) + ALL_OBJS += $$($(1:lib%_stub_weak.a=%)_weak_OBJS) +endef + +$(foreach library,$(TARGETS),$(eval $(call LIBRARY_template,$(library)))) +$(foreach library,$(TARGETS_WEAK),$(eval $(call LIBRARY_WEAK_template,$(library)))) + +install: $(TARGETS) $(TARGETS_WEAK) + cp $(TARGETS) $(VITASDK)/arm-vita-eabi/lib + cp $(TARGETS_WEAK) $(VITASDK)/arm-vita-eabi/lib + +clean: + rm -f $(TARGETS) $(TARGETS_WEAK) $(ALL_OBJS) + +$(TARGETS) $(TARGETS_WEAK): + $(AR) cru $@ $? + $(RANLIB) $@ + +%.o: %.S + $(AS) --defsym GEN_WEAK_EXPORTS=0 $< -o $@ + +%.wo: %.S + $(AS) --defsym GEN_WEAK_EXPORTS=1 $< -o $@ diff --git a/deps/vitaShaRK/shacccg.h b/deps/vitaShaRK/include/shacccg.h similarity index 100% rename from deps/vitaShaRK/shacccg.h rename to deps/vitaShaRK/include/shacccg.h diff --git a/deps/vitaShaRK/source/vitashark.c b/deps/vitaShaRK/source/vitashark.c index ff473aa0b3..96a6c719aa 100644 --- a/deps/vitaShaRK/source/vitashark.c +++ b/deps/vitaShaRK/source/vitashark.c @@ -19,7 +19,7 @@ #include "vitashark.h" #include -#include +#include "shacccg.h" // Default path for SceShaccCg module location #define DEFAULT_SHACCCG_PATH "ur0:/data/libshacccg.suprx"