You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Merge pull request #7 from someone2639/master
s2dex text engine as a subtree and integrated into the build system
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -74,6 +74,7 @@ build/*
|
||||
# libultra
|
||||
|
||||
!/lib/*.a
|
||||
lib/libs2d_engine.a
|
||||
!/lib/n64/*.a
|
||||
!/lib/ique/*.a
|
||||
|
||||
|
||||
22
Makefile
22
Makefile
@@ -132,6 +132,21 @@ 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)
|
||||
S2D_FONT := comicsans
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1 FONTNAME=$(S2D_FONT)
|
||||
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
|
||||
MIPSISET := -mips3
|
||||
@@ -440,8 +455,8 @@ else
|
||||
RSPASM := $(TOOLS_DIR)/armips
|
||||
endif
|
||||
ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS = --noosd
|
||||
EMULATOR = ~/Downloads/mupen64plus/mupen64plus-gui
|
||||
EMU_FLAGS =
|
||||
LOADER = loader64
|
||||
LOADER_FLAGS = -vwf
|
||||
SHA1SUM = sha1sum
|
||||
@@ -478,6 +493,7 @@ endif
|
||||
|
||||
clean:
|
||||
$(RM) -r $(BUILD_DIR_BASE)
|
||||
make -C src/s2d_engine clean
|
||||
|
||||
distclean: clean
|
||||
$(PYTHON) extract_assets.py --clean
|
||||
@@ -746,7 +762,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)
|
||||
|
||||
@@ -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
12
sm64.ld
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
2
src/s2d_engine/.gitignore
vendored
Normal file
2
src/s2d_engine/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
build/*
|
||||
|
||||
45
src/s2d_engine/Makefile
Normal file
45
src/s2d_engine/Makefile
Normal file
@@ -0,0 +1,45 @@
|
||||
# Makefile for s2d_engine.a
|
||||
|
||||
TARGET = libs2d_engine.a
|
||||
|
||||
default: all
|
||||
|
||||
BUILD_DIR ?= build
|
||||
DUMMY != mkdir -p $(BUILD_DIR)
|
||||
|
||||
C_FILES = $(wildcard ./*.c)
|
||||
O_FILES = $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
CROSS := mips-linux-gnu-
|
||||
CC = $(CROSS)gcc
|
||||
AR = $(CROSS)ar
|
||||
|
||||
INCLUDE_BASE := ../../
|
||||
I_DIRS = src include/n64/PR include/n64 include/libc include .
|
||||
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) -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
|
||||
|
||||
|
||||
all: $(BUILD_DIR)/$(TARGET)
|
||||
|
||||
clean:
|
||||
rm -r build/
|
||||
|
||||
COPY_DIR := none
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifeq ($(COPY_DIR),none)
|
||||
$(error S2DEX Text Engine: No COPY_DIR defined!)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(BUILD_DIR)/$(TARGET): $(O_FILES)
|
||||
$(AR) rcs -o $@ $(O_FILES)
|
||||
cp $@ $(COPY_DIR)
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
$(CC) -c $(CFLAGS) -o $@ $<
|
||||
|
||||
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||
54
src/s2d_engine/README.md
Normal file
54
src/s2d_engine/README.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# S2DEX Text Engine
|
||||
|
||||
## How to "Install"
|
||||
- Clone this repo into a folder in your SM64 decomp or homebrew repo
|
||||
- Include that folder in your makefile's `SRC_DIRS`
|
||||
- Add that folder to the linker script (`sm64.ld`) or specfile
|
||||
- Wherever you're including your font (I use actors/group0.c for SM64), insert:
|
||||
```c
|
||||
#include "src/s2d_engine/config.h"
|
||||
#include FONT_C_FILE
|
||||
```
|
||||
- You're ready to use S2DEX Text Engine!
|
||||
|
||||
## Simple Usage (Sample Program)
|
||||
```c
|
||||
#include "s2d_engine/init.h"
|
||||
#include "s2d_engine/s2d_draw.h"
|
||||
#include "s2d_engine/s2d_print.h"
|
||||
|
||||
char myString[] = "This is a " SCALE "200" "test string!\n"
|
||||
"Supports a bunch of standard " ROTATE "-36" "escape characters!\n"
|
||||
"\tIncluding " COLOR "255 0 0 0" "Colorful text!\n"
|
||||
COLOR "255 255 255 0" DROPSHADOW "And look at these shadows!";
|
||||
|
||||
// ...
|
||||
void render_game(void) {
|
||||
// do game rendering and stuff
|
||||
// ...
|
||||
|
||||
// initialized S2DEX; only needed once before all prints
|
||||
s2d_init();
|
||||
|
||||
// Allows you to print from anywhere in the game
|
||||
// as long as this is run directly afterwards
|
||||
s2d_handle_deferred();
|
||||
|
||||
// reloads the original microcode; only needed once after all prints
|
||||
s2d_stop();
|
||||
}
|
||||
|
||||
void some_actor_function(void) {
|
||||
s2d_print_deferred(50, 50, myString); // It's that easy!
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
## Command Usage
|
||||
(All numbers must be in base 10)
|
||||
- `SCALE "N"` - Scales text by an percentage (`25` for 25%, `200` for 200%, `-50` for upside down at 50%, etc.)
|
||||
- `TRANSLATE "X Y"` - Moves the rest of the string to the specified X and Y position
|
||||
- `COLOR "R G B A"` - Sets the text color to the specified value
|
||||
- `DROPSHADOW` - Toggles a drop shadow that shares the color of the current text
|
||||
- `ROTATE "N"` - (Deprecated due to plugin incompatibility) Rotates each glyph by N degrees (Can be negative, useful for italics)
|
||||
98
src/s2d_engine/config.h
Normal file
98
src/s2d_engine/config.h
Normal file
@@ -0,0 +1,98 @@
|
||||
#include <ultra64.h>
|
||||
|
||||
#ifndef S2D_CONFIG_H
|
||||
#define S2D_CONFIG_H
|
||||
|
||||
/**
|
||||
* SET YOUR FONT NAME HERE
|
||||
*/
|
||||
#ifndef FONTNAME
|
||||
#define FONTNAME impact
|
||||
#endif
|
||||
|
||||
|
||||
/***********
|
||||
* Helpful defines to change
|
||||
***********/
|
||||
|
||||
#define BASE_SCALE 1.0f
|
||||
|
||||
/******************************
|
||||
*
|
||||
* ONLY CHANGE THE BELOW CONTENTS IF YOU'RE DEVELOPING
|
||||
* FOR A GAME THAT ISN'T SM64
|
||||
*
|
||||
*****************************/
|
||||
|
||||
// magic macros and font header inclusion
|
||||
#define GLUE(a, b) a##b
|
||||
#define GLUE2(a, b) GLUE(a, b)
|
||||
#define STR(x) #x
|
||||
#define STR2(x) STR(x)
|
||||
|
||||
#define __headername(hd) fonts/hd.h
|
||||
#define __fontinclude(f) src/s2d_engine/fonts/f.c
|
||||
|
||||
#define _FONT_HEADER STR2(__headername(FONTNAME))
|
||||
#define FONT_C_FILE STR2(__fontinclude(FONTNAME))
|
||||
|
||||
#include _FONT_HEADER
|
||||
|
||||
// get your font symbols defined here
|
||||
#define s2d_font GLUE2(FONTNAME, _obj)
|
||||
#define s2d_dropshadow GLUE2(FONTNAME, _obj_dropshadow)
|
||||
#define s2d_tex GLUE2(FONTNAME, _tex)
|
||||
#define s2d_kerning_table GLUE2(FONTNAME, _kerning_table)
|
||||
|
||||
extern char s2d_kerning_table[];
|
||||
|
||||
// Debug: bypass custom matrix setup
|
||||
#define s2d_mat GLUE2(FONTNAME, _mtx)
|
||||
|
||||
// Homebrew users: use this to rename your gdl head
|
||||
#define gdl_head gDisplayListHead
|
||||
extern Gfx *gdl_head;
|
||||
|
||||
#include "src/game/game_init.h"
|
||||
#define CONTROLLER_INPUT gPlayer1Controller->buttonPressed
|
||||
#define CONTROLLER_HELD_INPUT gPlayer1Controller->buttonDown
|
||||
|
||||
// Other games/Homebrew users: change these values
|
||||
|
||||
// an allocator function of the format void *alloc(size_t bytes)
|
||||
#define alloc alloc_display_list
|
||||
extern void *alloc(size_t);
|
||||
|
||||
// your init functions for the RDP/RSP
|
||||
#define my_rdp_init my_rdp_init
|
||||
#define my_rsp_init my_rsp_init
|
||||
extern void my_rsp_init(void);
|
||||
extern void my_rdp_init(void);
|
||||
|
||||
// The frame timer that is used to time s2d_type_print
|
||||
#define s2d_timer gGlobalTimer
|
||||
extern u32 s2d_timer;
|
||||
|
||||
// The equivalent vsprintf in your game (defaults to libultra _Printf)
|
||||
#define vsprintf(dst, str, fmt, args) _Printf(proutSprintf, dst, fmt, args)
|
||||
extern char *proutSprintf(char *dst, const char *src, size_t count);
|
||||
|
||||
|
||||
// tab glyph width and height
|
||||
#define TAB_WIDTH_H TEX_WIDTH * 2
|
||||
#define TAB_WIDTH_V TEX_WIDTH / 2
|
||||
|
||||
// Set these to optimize s2d texture "cache"
|
||||
#define TEX_WIDTH 16
|
||||
#define TEX_HEIGHT 16
|
||||
#define TEX_BITDEPTH 8
|
||||
|
||||
#define seg2virt segmented_to_virtual
|
||||
#define IS_RUNNING_ON_EMULATOR (IO_READ(DPC_PIPEBUSY_REG) == 0)
|
||||
|
||||
// Texture resolution (pixels on the texture per pixel on the framebuffer)
|
||||
#define TEX_RES 1
|
||||
|
||||
#define _NUM_CACHE (4096 / (TEX_WIDTH * TEX_HEIGHT * (TEX_BITDEPTH / 8)))
|
||||
|
||||
#endif
|
||||
15
src/s2d_engine/debug.h
Normal file
15
src/s2d_engine/debug.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef DEBUG_H
|
||||
#define DEBUG_H
|
||||
|
||||
// #define init_cond (CONTROLLER_HELD_INPUT & R_CBUTTONS)
|
||||
// #define tex_cond (CONTROLLER_HELD_INPUT & D_CBUTTONS)
|
||||
// #define mtx_cond (CONTROLLER_HELD_INPUT & L_TRIG)
|
||||
// #define spr_cond (CONTROLLER_HELD_INPUT & U_JPAD)
|
||||
// #define deinit_cond (CONTROLLER_HELD_INPUT & U_CBUTTONS)
|
||||
#define tex_cond (1)
|
||||
#define mtx_cond (1)
|
||||
#define spr_cond (1)
|
||||
#define init_cond (1)
|
||||
#define deinit_cond (1)
|
||||
|
||||
#endif
|
||||
92
src/s2d_engine/f3d_draw.c
Normal file
92
src/s2d_engine/f3d_draw.c
Normal file
@@ -0,0 +1,92 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <ultra64.h>
|
||||
#include "mtx.h"
|
||||
#include "debug.h"
|
||||
|
||||
#include "s2d_draw.h"
|
||||
|
||||
#define s(sprite) ((uObjSprite *)seg2virt(&sprite))
|
||||
#define t(texture) ((uObjTxtr *)seg2virt(&texture))
|
||||
|
||||
void f3d_rdp_init(void) {
|
||||
gDPPipeSync(gdl_head++);
|
||||
gDPSetCycleType(gdl_head++, G_CYC_1CYCLE);
|
||||
gDPSetRenderMode(gdl_head++, G_RM_XLU_SPRITE, G_RM_XLU_SPRITE2);
|
||||
gDPSetTextureLUT(gdl_head++, G_TT_NONE);
|
||||
gDPSetTexturePersp(gdl_head++, G_TP_NONE);
|
||||
gDPSetCombineLERP(gdl_head++,
|
||||
0, 0, 0, ENVIRONMENT,
|
||||
0, 0, 0, TEXEL0,
|
||||
0, 0, 0, ENVIRONMENT,
|
||||
0, 0, 0, TEXEL0
|
||||
);
|
||||
}
|
||||
|
||||
void setup_f3d_texture(int idx) {
|
||||
gDPPipeSync(gdl_head++);
|
||||
|
||||
|
||||
gDPSetEnvColor(gdl_head++, s2d_red, s2d_green, s2d_blue, s2d_alpha);
|
||||
|
||||
gDPLoadTextureBlock(
|
||||
gdl_head++,
|
||||
t(s2d_tex[idx])->block.image,
|
||||
s(s2d_font)->s.imageFmt,
|
||||
G_IM_SIZ_8b,
|
||||
s(s2d_font)->s.imageW >> 5,
|
||||
s(s2d_font)->s.imageH >> 5,
|
||||
s(s2d_font)->s.imagePal,
|
||||
G_TX_WRAP,
|
||||
G_TX_WRAP,
|
||||
G_TX_NOMASK,
|
||||
G_TX_NOMASK,
|
||||
G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gDPLoadSync(gdl_head++);
|
||||
}
|
||||
|
||||
#define CLAMP_0(x) ((x < 0) ? 0 : x)
|
||||
|
||||
void texrect(int x, int y, float scale) {
|
||||
#define qs510(n) ((s16)((n)*0x0400))
|
||||
gSPScisTextureRectangle (
|
||||
gdl_head++,
|
||||
x << 2,
|
||||
y << 2,
|
||||
(u32)(x + ((f32) ((s(s2d_font)->s.imageW >> 5) - 1) * scale)) << 2,
|
||||
(u32)(y + ((f32) ((s(s2d_font)->s.imageH >> 5) - 1) * scale)) << 2,
|
||||
G_TX_RENDERTILE,
|
||||
0,
|
||||
0,
|
||||
qs510(1.0f / myScale), qs510(1.0f / myScale));
|
||||
}
|
||||
|
||||
void draw_f3d_dropshadow(char c, int x, int y, uObjMtx *ds) {
|
||||
setup_f3d_texture(c);
|
||||
|
||||
if (s2d_red != 0
|
||||
&& s2d_green != 0
|
||||
&& s2d_blue != 0
|
||||
) {
|
||||
gDPPipeSync(gdl_head++);
|
||||
gDPSetEnvColor(gdl_head++,
|
||||
CLAMP_0(s2d_red - 100),
|
||||
CLAMP_0(s2d_green - 100),
|
||||
CLAMP_0(s2d_blue - 100),
|
||||
s2d_alpha);
|
||||
texrect(x, y, myScale);
|
||||
gDPPipeSync(gdl_head++);
|
||||
gDPSetEnvColor(gdl_head++, s2d_red, s2d_green, s2d_blue, s2d_alpha);
|
||||
}
|
||||
}
|
||||
|
||||
void draw_f3d_glyph(char c, int x, int y, uObjMtx *mt) {
|
||||
setup_f3d_texture(c);
|
||||
|
||||
texrect(x, y, myScale);
|
||||
gDPPipeSync(gdl_head++);
|
||||
}
|
||||
|
||||
#undef s
|
||||
#undef t
|
||||
32
src/s2d_engine/fixed_point_math.c
Normal file
32
src/s2d_engine/fixed_point_math.c
Normal file
@@ -0,0 +1,32 @@
|
||||
#include <ultra64.h>
|
||||
// jk i dont think this file is needed lol
|
||||
// update: it was needed :(
|
||||
// update 2: gu.h already has macros for this :(
|
||||
|
||||
// hopefully I'll only need s15.16
|
||||
// ^ clueless
|
||||
|
||||
// Q to float
|
||||
|
||||
// To convert a number from Qm.n format to floating point:
|
||||
|
||||
// Convert the number to floating point as if it were an integer, in other words remove the binary point
|
||||
// Multiply by 2^−n
|
||||
|
||||
f32 qtof(int q, int decimal_n) {
|
||||
f32 mul = (1.0f / (float) (1 << decimal_n));
|
||||
return ((float)q) * mul;
|
||||
}
|
||||
|
||||
// Float to Q
|
||||
|
||||
// To convert a number from floating point to Qm.n format:
|
||||
|
||||
// Multiply the floating point number by 2^n
|
||||
// Round to the nearest integer
|
||||
int ftoq(f32 f, int decimal_n) {
|
||||
f *= (float) (1 << decimal_n);
|
||||
return (int)f;
|
||||
}
|
||||
|
||||
|
||||
5
src/s2d_engine/fixedpoint.h
Normal file
5
src/s2d_engine/fixedpoint.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#include <ultra64.h>
|
||||
|
||||
extern f32 qtof(int q);
|
||||
|
||||
extern int ftoq(f32 f);
|
||||
1796
src/s2d_engine/fonts/comicsans.c
Normal file
1796
src/s2d_engine/fonts/comicsans.c
Normal file
File diff suppressed because one or more lines are too long
136
src/s2d_engine/fonts/comicsans.h
Normal file
136
src/s2d_engine/fonts/comicsans.h
Normal file
@@ -0,0 +1,136 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gs2dex.h>
|
||||
extern uObjTxtr comicsans_tex[];
|
||||
extern uObjMtx comicsans_mtx;
|
||||
extern uObjSprite comicsans_obj;
|
||||
extern void call_comicsans_sprite_dl(int idx, int x, int y, uObjMtx *buffer, int buf_idx);
|
||||
extern u8 comicsans_tex_0[];
|
||||
extern u8 comicsans_tex_1[];
|
||||
extern u8 comicsans_tex_2[];
|
||||
extern u8 comicsans_tex_3[];
|
||||
extern u8 comicsans_tex_4[];
|
||||
extern u8 comicsans_tex_5[];
|
||||
extern u8 comicsans_tex_6[];
|
||||
extern u8 comicsans_tex_7[];
|
||||
extern u8 comicsans_tex_8[];
|
||||
extern u8 comicsans_tex_9[];
|
||||
extern u8 comicsans_tex_10[];
|
||||
extern u8 comicsans_tex_11[];
|
||||
extern u8 comicsans_tex_12[];
|
||||
extern u8 comicsans_tex_13[];
|
||||
extern u8 comicsans_tex_14[];
|
||||
extern u8 comicsans_tex_15[];
|
||||
extern u8 comicsans_tex_16[];
|
||||
extern u8 comicsans_tex_17[];
|
||||
extern u8 comicsans_tex_18[];
|
||||
extern u8 comicsans_tex_19[];
|
||||
extern u8 comicsans_tex_20[];
|
||||
extern u8 comicsans_tex_21[];
|
||||
extern u8 comicsans_tex_22[];
|
||||
extern u8 comicsans_tex_23[];
|
||||
extern u8 comicsans_tex_24[];
|
||||
extern u8 comicsans_tex_25[];
|
||||
extern u8 comicsans_tex_26[];
|
||||
extern u8 comicsans_tex_27[];
|
||||
extern u8 comicsans_tex_28[];
|
||||
extern u8 comicsans_tex_29[];
|
||||
extern u8 comicsans_tex_30[];
|
||||
extern u8 comicsans_tex_31[];
|
||||
extern u8 comicsans_tex_32[];
|
||||
extern u8 comicsans_tex_33[];
|
||||
extern u8 comicsans_tex_34[];
|
||||
extern u8 comicsans_tex_35[];
|
||||
extern u8 comicsans_tex_36[];
|
||||
extern u8 comicsans_tex_37[];
|
||||
extern u8 comicsans_tex_38[];
|
||||
extern u8 comicsans_tex_39[];
|
||||
extern u8 comicsans_tex_40[];
|
||||
extern u8 comicsans_tex_41[];
|
||||
extern u8 comicsans_tex_42[];
|
||||
extern u8 comicsans_tex_43[];
|
||||
extern u8 comicsans_tex_44[];
|
||||
extern u8 comicsans_tex_45[];
|
||||
extern u8 comicsans_tex_46[];
|
||||
extern u8 comicsans_tex_47[];
|
||||
extern u8 comicsans_tex_48[];
|
||||
extern u8 comicsans_tex_49[];
|
||||
extern u8 comicsans_tex_50[];
|
||||
extern u8 comicsans_tex_51[];
|
||||
extern u8 comicsans_tex_52[];
|
||||
extern u8 comicsans_tex_53[];
|
||||
extern u8 comicsans_tex_54[];
|
||||
extern u8 comicsans_tex_55[];
|
||||
extern u8 comicsans_tex_56[];
|
||||
extern u8 comicsans_tex_57[];
|
||||
extern u8 comicsans_tex_58[];
|
||||
extern u8 comicsans_tex_59[];
|
||||
extern u8 comicsans_tex_60[];
|
||||
extern u8 comicsans_tex_61[];
|
||||
extern u8 comicsans_tex_62[];
|
||||
extern u8 comicsans_tex_63[];
|
||||
extern u8 comicsans_tex_64[];
|
||||
extern u8 comicsans_tex_65[];
|
||||
extern u8 comicsans_tex_66[];
|
||||
extern u8 comicsans_tex_67[];
|
||||
extern u8 comicsans_tex_68[];
|
||||
extern u8 comicsans_tex_69[];
|
||||
extern u8 comicsans_tex_70[];
|
||||
extern u8 comicsans_tex_71[];
|
||||
extern u8 comicsans_tex_72[];
|
||||
extern u8 comicsans_tex_73[];
|
||||
extern u8 comicsans_tex_74[];
|
||||
extern u8 comicsans_tex_75[];
|
||||
extern u8 comicsans_tex_76[];
|
||||
extern u8 comicsans_tex_77[];
|
||||
extern u8 comicsans_tex_78[];
|
||||
extern u8 comicsans_tex_79[];
|
||||
extern u8 comicsans_tex_80[];
|
||||
extern u8 comicsans_tex_81[];
|
||||
extern u8 comicsans_tex_82[];
|
||||
extern u8 comicsans_tex_83[];
|
||||
extern u8 comicsans_tex_84[];
|
||||
extern u8 comicsans_tex_85[];
|
||||
extern u8 comicsans_tex_86[];
|
||||
extern u8 comicsans_tex_87[];
|
||||
extern u8 comicsans_tex_88[];
|
||||
extern u8 comicsans_tex_89[];
|
||||
extern u8 comicsans_tex_90[];
|
||||
extern u8 comicsans_tex_91[];
|
||||
extern u8 comicsans_tex_92[];
|
||||
extern u8 comicsans_tex_93[];
|
||||
extern u8 comicsans_tex_94[];
|
||||
extern u8 comicsans_tex_95[];
|
||||
extern u8 comicsans_tex_96[];
|
||||
extern u8 comicsans_tex_97[];
|
||||
extern u8 comicsans_tex_98[];
|
||||
extern u8 comicsans_tex_99[];
|
||||
extern u8 comicsans_tex_100[];
|
||||
extern u8 comicsans_tex_101[];
|
||||
extern u8 comicsans_tex_102[];
|
||||
extern u8 comicsans_tex_103[];
|
||||
extern u8 comicsans_tex_104[];
|
||||
extern u8 comicsans_tex_105[];
|
||||
extern u8 comicsans_tex_106[];
|
||||
extern u8 comicsans_tex_107[];
|
||||
extern u8 comicsans_tex_108[];
|
||||
extern u8 comicsans_tex_109[];
|
||||
extern u8 comicsans_tex_110[];
|
||||
extern u8 comicsans_tex_111[];
|
||||
extern u8 comicsans_tex_112[];
|
||||
extern u8 comicsans_tex_113[];
|
||||
extern u8 comicsans_tex_114[];
|
||||
extern u8 comicsans_tex_115[];
|
||||
extern u8 comicsans_tex_116[];
|
||||
extern u8 comicsans_tex_117[];
|
||||
extern u8 comicsans_tex_118[];
|
||||
extern u8 comicsans_tex_119[];
|
||||
extern u8 comicsans_tex_120[];
|
||||
extern u8 comicsans_tex_121[];
|
||||
extern u8 comicsans_tex_122[];
|
||||
extern u8 comicsans_tex_123[];
|
||||
extern u8 comicsans_tex_124[];
|
||||
extern u8 comicsans_tex_125[];
|
||||
extern u8 comicsans_tex_126[];
|
||||
extern u8 comicsans_tex_127[];
|
||||
|
||||
extern uObjSprite comicsans_obj_dropshadow;
|
||||
1796
src/s2d_engine/fonts/delfino.c
Normal file
1796
src/s2d_engine/fonts/delfino.c
Normal file
File diff suppressed because one or more lines are too long
136
src/s2d_engine/fonts/delfino.h
Normal file
136
src/s2d_engine/fonts/delfino.h
Normal file
@@ -0,0 +1,136 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gs2dex.h>
|
||||
extern uObjTxtr delfino_tex[];
|
||||
extern uObjMtx delfino_mtx;
|
||||
extern uObjSprite delfino_obj;
|
||||
extern void call_delfino_sprite_dl(int idx, int x, int y, uObjMtx *buffer, int buf_idx);
|
||||
extern u8 delfino_tex_0[];
|
||||
extern u8 delfino_tex_1[];
|
||||
extern u8 delfino_tex_2[];
|
||||
extern u8 delfino_tex_3[];
|
||||
extern u8 delfino_tex_4[];
|
||||
extern u8 delfino_tex_5[];
|
||||
extern u8 delfino_tex_6[];
|
||||
extern u8 delfino_tex_7[];
|
||||
extern u8 delfino_tex_8[];
|
||||
extern u8 delfino_tex_9[];
|
||||
extern u8 delfino_tex_10[];
|
||||
extern u8 delfino_tex_11[];
|
||||
extern u8 delfino_tex_12[];
|
||||
extern u8 delfino_tex_13[];
|
||||
extern u8 delfino_tex_14[];
|
||||
extern u8 delfino_tex_15[];
|
||||
extern u8 delfino_tex_16[];
|
||||
extern u8 delfino_tex_17[];
|
||||
extern u8 delfino_tex_18[];
|
||||
extern u8 delfino_tex_19[];
|
||||
extern u8 delfino_tex_20[];
|
||||
extern u8 delfino_tex_21[];
|
||||
extern u8 delfino_tex_22[];
|
||||
extern u8 delfino_tex_23[];
|
||||
extern u8 delfino_tex_24[];
|
||||
extern u8 delfino_tex_25[];
|
||||
extern u8 delfino_tex_26[];
|
||||
extern u8 delfino_tex_27[];
|
||||
extern u8 delfino_tex_28[];
|
||||
extern u8 delfino_tex_29[];
|
||||
extern u8 delfino_tex_30[];
|
||||
extern u8 delfino_tex_31[];
|
||||
extern u8 delfino_tex_32[];
|
||||
extern u8 delfino_tex_33[];
|
||||
extern u8 delfino_tex_34[];
|
||||
extern u8 delfino_tex_35[];
|
||||
extern u8 delfino_tex_36[];
|
||||
extern u8 delfino_tex_37[];
|
||||
extern u8 delfino_tex_38[];
|
||||
extern u8 delfino_tex_39[];
|
||||
extern u8 delfino_tex_40[];
|
||||
extern u8 delfino_tex_41[];
|
||||
extern u8 delfino_tex_42[];
|
||||
extern u8 delfino_tex_43[];
|
||||
extern u8 delfino_tex_44[];
|
||||
extern u8 delfino_tex_45[];
|
||||
extern u8 delfino_tex_46[];
|
||||
extern u8 delfino_tex_47[];
|
||||
extern u8 delfino_tex_48[];
|
||||
extern u8 delfino_tex_49[];
|
||||
extern u8 delfino_tex_50[];
|
||||
extern u8 delfino_tex_51[];
|
||||
extern u8 delfino_tex_52[];
|
||||
extern u8 delfino_tex_53[];
|
||||
extern u8 delfino_tex_54[];
|
||||
extern u8 delfino_tex_55[];
|
||||
extern u8 delfino_tex_56[];
|
||||
extern u8 delfino_tex_57[];
|
||||
extern u8 delfino_tex_58[];
|
||||
extern u8 delfino_tex_59[];
|
||||
extern u8 delfino_tex_60[];
|
||||
extern u8 delfino_tex_61[];
|
||||
extern u8 delfino_tex_62[];
|
||||
extern u8 delfino_tex_63[];
|
||||
extern u8 delfino_tex_64[];
|
||||
extern u8 delfino_tex_65[];
|
||||
extern u8 delfino_tex_66[];
|
||||
extern u8 delfino_tex_67[];
|
||||
extern u8 delfino_tex_68[];
|
||||
extern u8 delfino_tex_69[];
|
||||
extern u8 delfino_tex_70[];
|
||||
extern u8 delfino_tex_71[];
|
||||
extern u8 delfino_tex_72[];
|
||||
extern u8 delfino_tex_73[];
|
||||
extern u8 delfino_tex_74[];
|
||||
extern u8 delfino_tex_75[];
|
||||
extern u8 delfino_tex_76[];
|
||||
extern u8 delfino_tex_77[];
|
||||
extern u8 delfino_tex_78[];
|
||||
extern u8 delfino_tex_79[];
|
||||
extern u8 delfino_tex_80[];
|
||||
extern u8 delfino_tex_81[];
|
||||
extern u8 delfino_tex_82[];
|
||||
extern u8 delfino_tex_83[];
|
||||
extern u8 delfino_tex_84[];
|
||||
extern u8 delfino_tex_85[];
|
||||
extern u8 delfino_tex_86[];
|
||||
extern u8 delfino_tex_87[];
|
||||
extern u8 delfino_tex_88[];
|
||||
extern u8 delfino_tex_89[];
|
||||
extern u8 delfino_tex_90[];
|
||||
extern u8 delfino_tex_91[];
|
||||
extern u8 delfino_tex_92[];
|
||||
extern u8 delfino_tex_93[];
|
||||
extern u8 delfino_tex_94[];
|
||||
extern u8 delfino_tex_95[];
|
||||
extern u8 delfino_tex_96[];
|
||||
extern u8 delfino_tex_97[];
|
||||
extern u8 delfino_tex_98[];
|
||||
extern u8 delfino_tex_99[];
|
||||
extern u8 delfino_tex_100[];
|
||||
extern u8 delfino_tex_101[];
|
||||
extern u8 delfino_tex_102[];
|
||||
extern u8 delfino_tex_103[];
|
||||
extern u8 delfino_tex_104[];
|
||||
extern u8 delfino_tex_105[];
|
||||
extern u8 delfino_tex_106[];
|
||||
extern u8 delfino_tex_107[];
|
||||
extern u8 delfino_tex_108[];
|
||||
extern u8 delfino_tex_109[];
|
||||
extern u8 delfino_tex_110[];
|
||||
extern u8 delfino_tex_111[];
|
||||
extern u8 delfino_tex_112[];
|
||||
extern u8 delfino_tex_113[];
|
||||
extern u8 delfino_tex_114[];
|
||||
extern u8 delfino_tex_115[];
|
||||
extern u8 delfino_tex_116[];
|
||||
extern u8 delfino_tex_117[];
|
||||
extern u8 delfino_tex_118[];
|
||||
extern u8 delfino_tex_119[];
|
||||
extern u8 delfino_tex_120[];
|
||||
extern u8 delfino_tex_121[];
|
||||
extern u8 delfino_tex_122[];
|
||||
extern u8 delfino_tex_123[];
|
||||
extern u8 delfino_tex_124[];
|
||||
extern u8 delfino_tex_125[];
|
||||
extern u8 delfino_tex_126[];
|
||||
extern u8 delfino_tex_127[];
|
||||
|
||||
extern uObjSprite delfino_obj_dropshadow;
|
||||
1796
src/s2d_engine/fonts/impact.c
Normal file
1796
src/s2d_engine/fonts/impact.c
Normal file
File diff suppressed because one or more lines are too long
136
src/s2d_engine/fonts/impact.h
Normal file
136
src/s2d_engine/fonts/impact.h
Normal file
@@ -0,0 +1,136 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gs2dex.h>
|
||||
extern uObjTxtr impact_tex[];
|
||||
extern uObjMtx impact_mtx;
|
||||
extern uObjSprite impact_obj;
|
||||
extern void call_impact_sprite_dl(int idx, int x, int y, uObjMtx *buffer, int buf_idx);
|
||||
extern u8 impact_tex_0[];
|
||||
extern u8 impact_tex_1[];
|
||||
extern u8 impact_tex_2[];
|
||||
extern u8 impact_tex_3[];
|
||||
extern u8 impact_tex_4[];
|
||||
extern u8 impact_tex_5[];
|
||||
extern u8 impact_tex_6[];
|
||||
extern u8 impact_tex_7[];
|
||||
extern u8 impact_tex_8[];
|
||||
extern u8 impact_tex_9[];
|
||||
extern u8 impact_tex_10[];
|
||||
extern u8 impact_tex_11[];
|
||||
extern u8 impact_tex_12[];
|
||||
extern u8 impact_tex_13[];
|
||||
extern u8 impact_tex_14[];
|
||||
extern u8 impact_tex_15[];
|
||||
extern u8 impact_tex_16[];
|
||||
extern u8 impact_tex_17[];
|
||||
extern u8 impact_tex_18[];
|
||||
extern u8 impact_tex_19[];
|
||||
extern u8 impact_tex_20[];
|
||||
extern u8 impact_tex_21[];
|
||||
extern u8 impact_tex_22[];
|
||||
extern u8 impact_tex_23[];
|
||||
extern u8 impact_tex_24[];
|
||||
extern u8 impact_tex_25[];
|
||||
extern u8 impact_tex_26[];
|
||||
extern u8 impact_tex_27[];
|
||||
extern u8 impact_tex_28[];
|
||||
extern u8 impact_tex_29[];
|
||||
extern u8 impact_tex_30[];
|
||||
extern u8 impact_tex_31[];
|
||||
extern u8 impact_tex_32[];
|
||||
extern u8 impact_tex_33[];
|
||||
extern u8 impact_tex_34[];
|
||||
extern u8 impact_tex_35[];
|
||||
extern u8 impact_tex_36[];
|
||||
extern u8 impact_tex_37[];
|
||||
extern u8 impact_tex_38[];
|
||||
extern u8 impact_tex_39[];
|
||||
extern u8 impact_tex_40[];
|
||||
extern u8 impact_tex_41[];
|
||||
extern u8 impact_tex_42[];
|
||||
extern u8 impact_tex_43[];
|
||||
extern u8 impact_tex_44[];
|
||||
extern u8 impact_tex_45[];
|
||||
extern u8 impact_tex_46[];
|
||||
extern u8 impact_tex_47[];
|
||||
extern u8 impact_tex_48[];
|
||||
extern u8 impact_tex_49[];
|
||||
extern u8 impact_tex_50[];
|
||||
extern u8 impact_tex_51[];
|
||||
extern u8 impact_tex_52[];
|
||||
extern u8 impact_tex_53[];
|
||||
extern u8 impact_tex_54[];
|
||||
extern u8 impact_tex_55[];
|
||||
extern u8 impact_tex_56[];
|
||||
extern u8 impact_tex_57[];
|
||||
extern u8 impact_tex_58[];
|
||||
extern u8 impact_tex_59[];
|
||||
extern u8 impact_tex_60[];
|
||||
extern u8 impact_tex_61[];
|
||||
extern u8 impact_tex_62[];
|
||||
extern u8 impact_tex_63[];
|
||||
extern u8 impact_tex_64[];
|
||||
extern u8 impact_tex_65[];
|
||||
extern u8 impact_tex_66[];
|
||||
extern u8 impact_tex_67[];
|
||||
extern u8 impact_tex_68[];
|
||||
extern u8 impact_tex_69[];
|
||||
extern u8 impact_tex_70[];
|
||||
extern u8 impact_tex_71[];
|
||||
extern u8 impact_tex_72[];
|
||||
extern u8 impact_tex_73[];
|
||||
extern u8 impact_tex_74[];
|
||||
extern u8 impact_tex_75[];
|
||||
extern u8 impact_tex_76[];
|
||||
extern u8 impact_tex_77[];
|
||||
extern u8 impact_tex_78[];
|
||||
extern u8 impact_tex_79[];
|
||||
extern u8 impact_tex_80[];
|
||||
extern u8 impact_tex_81[];
|
||||
extern u8 impact_tex_82[];
|
||||
extern u8 impact_tex_83[];
|
||||
extern u8 impact_tex_84[];
|
||||
extern u8 impact_tex_85[];
|
||||
extern u8 impact_tex_86[];
|
||||
extern u8 impact_tex_87[];
|
||||
extern u8 impact_tex_88[];
|
||||
extern u8 impact_tex_89[];
|
||||
extern u8 impact_tex_90[];
|
||||
extern u8 impact_tex_91[];
|
||||
extern u8 impact_tex_92[];
|
||||
extern u8 impact_tex_93[];
|
||||
extern u8 impact_tex_94[];
|
||||
extern u8 impact_tex_95[];
|
||||
extern u8 impact_tex_96[];
|
||||
extern u8 impact_tex_97[];
|
||||
extern u8 impact_tex_98[];
|
||||
extern u8 impact_tex_99[];
|
||||
extern u8 impact_tex_100[];
|
||||
extern u8 impact_tex_101[];
|
||||
extern u8 impact_tex_102[];
|
||||
extern u8 impact_tex_103[];
|
||||
extern u8 impact_tex_104[];
|
||||
extern u8 impact_tex_105[];
|
||||
extern u8 impact_tex_106[];
|
||||
extern u8 impact_tex_107[];
|
||||
extern u8 impact_tex_108[];
|
||||
extern u8 impact_tex_109[];
|
||||
extern u8 impact_tex_110[];
|
||||
extern u8 impact_tex_111[];
|
||||
extern u8 impact_tex_112[];
|
||||
extern u8 impact_tex_113[];
|
||||
extern u8 impact_tex_114[];
|
||||
extern u8 impact_tex_115[];
|
||||
extern u8 impact_tex_116[];
|
||||
extern u8 impact_tex_117[];
|
||||
extern u8 impact_tex_118[];
|
||||
extern u8 impact_tex_119[];
|
||||
extern u8 impact_tex_120[];
|
||||
extern u8 impact_tex_121[];
|
||||
extern u8 impact_tex_122[];
|
||||
extern u8 impact_tex_123[];
|
||||
extern u8 impact_tex_124[];
|
||||
extern u8 impact_tex_125[];
|
||||
extern u8 impact_tex_126[];
|
||||
extern u8 impact_tex_127[];
|
||||
|
||||
extern uObjSprite impact_obj_dropshadow;
|
||||
1796
src/s2d_engine/fonts/papyrus.c
Normal file
1796
src/s2d_engine/fonts/papyrus.c
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user