S2DEX Text Engine integration

This commit is contained in:
farisawan-2000
2021-06-02 07:52:40 -04:00
parent 21d004ba42
commit cfefcd729e
5 changed files with 44 additions and 4 deletions

View File

@@ -132,13 +132,19 @@ else ifeq ($(GRUCODE),super3d) # Super3D
DEFINES += SUPER3D_GBI=1 F3D_NEW=1
endif
LIBRARIES := gcc nustd hvqm2 z goddard
# TEXT ENGINES
# s2dex_text_engine - Text Engine by someone2639
TEXT_ENGINE := none
ifeq ($(TEXT_ENGINE), s2dex_text_engine)
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
LIBRARIES += s2d_engine
DUMMY != make -C src/s2d_engine COPY_DIR=$(shell pwd)/lib/
endif
# add more text engines here
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
ifeq ($(COMPILER),gcc)
NON_MATCHING := 1
@@ -754,7 +760,7 @@ $(BUILD_DIR)/libz.a: $(LIBZ_O_FILES)
# Link SM64 ELF file
$(ELF): $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib -lgcc -lnustd -lhvqm2 -lz -lgoddard -u sprintf -u osMapTLB
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB
# Build ROM
$(ROM): $(ELF)

View File

@@ -25,3 +25,8 @@
#include "white_particle_small/model.inc.c"
#include "sparkle_animation/model.inc.c"
#ifdef S2DEX_TEXT_ENGINE
#include "src/s2d_engine/config.h"
#include FONT_C_FILE
#endif

12
sm64.ld
View File

@@ -130,6 +130,9 @@ SECTIONS
BUILD_DIR/src/gdb*.o(.text);
BUILD_DIR/src/usb*.o(.text);
BUILD_DIR/src/audio*.o(.text);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.text);
#endif
#if defined(ISVPRINT) || defined(UNF)
*/libultra_d.a:*.o(.text);
#else
@@ -147,6 +150,9 @@ SECTIONS
BUILD_DIR/src/gdb*.o(.*data*);
BUILD_DIR/src/usb*.o(.*data*);
BUILD_DIR/src/audio*.o(.*data*);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.*data*);
#endif
#if defined(ISVPRINT) || defined(UNF)
*/libultra_d.a:*.o(.*data*);
#else
@@ -163,6 +169,9 @@ SECTIONS
BUILD_DIR/src/gdb*.o(.*rodata*);
BUILD_DIR/src/usb*.o(.rodata*);
BUILD_DIR/src/audio*.o(.rodata*);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.rodata*);
#endif
#if defined(ISVPRINT) || defined(UNF)
*/libultra_d.a:*.o(.*rodata*);
#else
@@ -182,6 +191,9 @@ SECTIONS
BUILD_DIR/src/gdb*.o(.*bss*);
BUILD_DIR/src/usb*.o(.*bss*);
BUILD_DIR/src/audio*.o(.*bss*);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.*bss*);
#endif
#if defined(ISVPRINT) || defined(UNF)
*/libultra_d.a:*.o(COMMON);
*/libultra_d.a:*.o(.scommon);

View File

@@ -403,6 +403,13 @@ void render_game(void) {
gWarpTransDelay--;
}
}
if (gMarioObject &&gMarioState) {
#include "s2d_engine/init.h"
#include "s2d_engine/s2d_print.h"
s2d_init();
s2d_print_alloc(50, 50, ALIGN_LEFT, SCALE "25" "BRUH MOMentum i guess");
s2d_stop();
}
} else {
render_text_labels();
if (D_8032CE78 != NULL) {

View File

@@ -1,6 +1,8 @@
# Makefile for s2d_engine.a
TARGET = s2d_engine.a
TARGET = libs2d_engine.a
default: all
BUILD_DIR ?= build
DUMMY != mkdir -p $(BUILD_DIR)
@@ -18,14 +20,22 @@ FULL_I_DIRS = $(addprefix $(INCLUDE_BASE),$(I_DIRS))
I_FLAGS = $(foreach i,$(FULL_I_DIRS),-I$(i))
TARGET_CFLAGS = -nostdinc -I include/libc -DTARGET_N64 -DF3DEX_GBI_2 -DNON_MATCHING -DAVOID_UB
CFLAGS := -Wall $(TARGET_CFLAGS) $(I_FLAGS) -march=vr4300 -mtune=vr4300 -mfix4300 -mabi=32 -mno-shared -G 0 -fno-PIC -mno-abicalls -fno-zero-initialized-in-bss -fno-toplevel-reorder -Wno-missing-braces
CFLAGS := -Wall $(TARGET_CFLAGS) $(I_FLAGS) -fno-stack-protector -march=vr4300 -mtune=vr4300 -mfix4300 -mabi=32 -mno-shared -G 0 -fno-PIC -mno-abicalls -fno-zero-initialized-in-bss -fno-toplevel-reorder -Wno-missing-braces
default: all
all: $(BUILD_DIR)/$(TARGET)
clean:
rm -r build/
COPY_DIR := none
ifeq ($(COPY_DIR),none)
$(error S2DEX Text Engine: No COPY_DIR defined!)
endif
$(BUILD_DIR)/$(TARGET): $(O_FILES)
$(AR) rcs -o $@ $(O_FILES)
cp $@ $(COPY_DIR)
$(BUILD_DIR)/%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<