Turned title font into a sprite sheet

This commit is contained in:
MysterD 2023-04-02 13:34:51 -07:00
parent 68346eecf1
commit 193f2cc447
110 changed files with 108 additions and 565 deletions

View file

@ -237,7 +237,7 @@ SKY_TEXTURES := $(wildcard $(TEXTURE_DIR)/sky/*.png)
MACHINE_TEXTURES := $(wildcard $(TEXTURE_DIR)/machine/*.png)
MOUNTAIN_TEXTURES := $(wildcard $(TEXTURE_DIR)/mountain/*.png)
GRASS_TEXTURES := $(wildcard $(TEXTURE_DIR)/grass/*.png)
CUSTOM_FONT_TITLE_TEXTURES := $(wildcard $(TEXTURE_DIR)/custom_font_title/*.png)
CUSTOM_FONT_TEXTURES := $(wildcard $(TEXTURE_DIR)/custom_font/*.png)
# Texture Files
$(BUILD_DIR)/bin/segment2.o: $(SEGMENT2_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
@ -255,7 +255,7 @@ $(BUILD_DIR)/bin/sky.o: $(SKY_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/machine.o: $(MACHINE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/mountain.o: $(MOUNTAIN_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/grass.o: $(GRASS_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/custom_font_title.o: $(CUSTOM_FONT_TITLE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/custom_font.o: $(CUSTOM_FONT_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
# Others
$(BUILD_DIR)/bin/segment2.elf: SEGMENT_ADDRESS := 0x02000000
@ -274,7 +274,7 @@ $(BUILD_DIR)/bin/sky.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/custom_font_title.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/custom_font.elf: SEGMENT_ADDRESS := 0x09000000
# EU segment 19 translations
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000

55
bin/custom_font.c Normal file
View file

@ -0,0 +1,55 @@
#include <ultra64.h>
#include "sm64.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
ALIGNED8 const u8 texture_font_normal[] = {
#include "textures/custom_font_title/custom_font_normal.rgba32.inc.c"
};
const f32 font_normal_widths[] = {
/* ! " # $ % & ' ( ) * + , - . / */
0.2200f, 0.3750f, 0.4375f, 0.3750f, 0.4375f, 0.5000f, 0.2500f, 0.3125f, 0.3125f, 0.3750f, 0.4375f, 0.2500f, 0.3750f, 0.2500f, 0.3125f,
/* 0 1 2 3 4 5 6 7 8 9 */
0.4375f, 0.3800f, 0.4200f, 0.4375f, 0.4300f, 0.4375f, 0.4375f, 0.4000f, 0.4375f, 0.4375f,
/* : ; < = > ? @ */
0.2000f, 0.2500f, 0.3125f, 0.3750f, 0.3125f, 0.3125f, 0.5750f,
/* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */
0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.5000f, 0.5000f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.5000f, 0.4375f, 0.3750f, 0.3750f,
/* [ \ ] ^ _ ` */
0.3125f, 0.3125f, 0.3125f, 0.3750f, 0.3750f, 0.2500f,
/* a b c d e f g h i j k l m n o p q r s t u v w x y z */
0.3000f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.3000f, 0.3750f, 0.3125f, 0.2200f, 0.3125f, 0.3125f, 0.1700f, 0.4350f, 0.3125f, 0.3000f, 0.3000f, 0.3125f, 0.2700f, 0.3125f, 0.3125f, 0.3125f, 0.2750f, 0.4375f, 0.3750f, 0.3125f, 0.3125f,
/* { | } ~ DEL */
0.3125f, 0.2500f, 0.3125f, 0.5000f, 0.2000f,
};
//////////////////////////////////////////////////////////
ALIGNED8 const u8 texture_font_title[] = {
#include "textures/custom_font_title/custom_font_title.rgba32.inc.c"
};
const f32 font_title_widths[] = {
/* ! " # $ % & ' ( ) * + , - . / */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
/* 0 1 2 3 4 5 6 7 8 9 */
0.45f, 0.35f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f,
/* : ; < = > ? @ */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
/* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */
0.55f, 0.50f, 0.50f, 0.50f, 0.45f, 0.45f, 0.50f, 0.55f, 0.28f, 0.60f, 0.50f, 0.45f, 0.55f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.55f, 0.50f, 0.50f, 0.50f, 0.60f, 0.52f, 0.60f, 0.45f,
/* [ \ ] ^ _ ` */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
/* a b c d e f g h i j k l m n o p q r s t u v w x y z */
0.45f, 0.45f, 0.40f, 0.40f, 0.45f, 0.37f, 0.40f, 0.40f, 0.20f, 0.45f, 0.40f, 0.30f, 0.50f, 0.40f, 0.40f, 0.40f, 0.45f, 0.40f, 0.50f, 0.45f, 0.50f, 0.40f, 0.50f, 0.50f, 0.45f, 0.45f,
/* { | } ~ DEL */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
};
//////////////////////////////////////////////////////////
ALIGNED8 u8 texture_selectionbox_icon[] = {
#include "textures/segment2/custom_selectionbox_icon.rgba16.inc.c"
};

View file

@ -1,499 +0,0 @@
#include <ultra64.h>
#include "sm64.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
ALIGNED8 static const u8 texture_font_title_char_01[] = {
#include "textures/custom_font_title/custom_font_title_01.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_02[] = {
#include "textures/custom_font_title/custom_font_title_02.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_03[] = {
#include "textures/custom_font_title/custom_font_title_03.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_04[] = {
#include "textures/custom_font_title/custom_font_title_04.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_05[] = {
#include "textures/custom_font_title/custom_font_title_05.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_06[] = {
#include "textures/custom_font_title/custom_font_title_06.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_07[] = {
#include "textures/custom_font_title/custom_font_title_07.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_08[] = {
#include "textures/custom_font_title/custom_font_title_08.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_09[] = {
#include "textures/custom_font_title/custom_font_title_09.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_10[] = {
#include "textures/custom_font_title/custom_font_title_10.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_11[] = {
#include "textures/custom_font_title/custom_font_title_11.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_12[] = {
#include "textures/custom_font_title/custom_font_title_12.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_13[] = {
#include "textures/custom_font_title/custom_font_title_13.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_14[] = {
#include "textures/custom_font_title/custom_font_title_14.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_15[] = {
#include "textures/custom_font_title/custom_font_title_15.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_16[] = {
#include "textures/custom_font_title/custom_font_title_16.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_17[] = {
#include "textures/custom_font_title/custom_font_title_17.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_18[] = {
#include "textures/custom_font_title/custom_font_title_18.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_19[] = {
#include "textures/custom_font_title/custom_font_title_19.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_20[] = {
#include "textures/custom_font_title/custom_font_title_20.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_21[] = {
#include "textures/custom_font_title/custom_font_title_21.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_22[] = {
#include "textures/custom_font_title/custom_font_title_22.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_23[] = {
#include "textures/custom_font_title/custom_font_title_23.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_24[] = {
#include "textures/custom_font_title/custom_font_title_24.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_25[] = {
#include "textures/custom_font_title/custom_font_title_25.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_26[] = {
#include "textures/custom_font_title/custom_font_title_26.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_27[] = {
#include "textures/custom_font_title/custom_font_title_27.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_28[] = {
#include "textures/custom_font_title/custom_font_title_28.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_29[] = {
#include "textures/custom_font_title/custom_font_title_29.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_30[] = {
#include "textures/custom_font_title/custom_font_title_30.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_31[] = {
#include "textures/custom_font_title/custom_font_title_31.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_32[] = {
#include "textures/custom_font_title/custom_font_title_32.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_33[] = {
#include "textures/custom_font_title/custom_font_title_33.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_34[] = {
#include "textures/custom_font_title/custom_font_title_34.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_35[] = {
#include "textures/custom_font_title/custom_font_title_35.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_36[] = {
#include "textures/custom_font_title/custom_font_title_36.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_37[] = {
#include "textures/custom_font_title/custom_font_title_37.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_38[] = {
#include "textures/custom_font_title/custom_font_title_38.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_39[] = {
#include "textures/custom_font_title/custom_font_title_39.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_40[] = {
#include "textures/custom_font_title/custom_font_title_40.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_41[] = {
#include "textures/custom_font_title/custom_font_title_41.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_42[] = {
#include "textures/custom_font_title/custom_font_title_42.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_43[] = {
#include "textures/custom_font_title/custom_font_title_43.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_44[] = {
#include "textures/custom_font_title/custom_font_title_44.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_45[] = {
#include "textures/custom_font_title/custom_font_title_45.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_46[] = {
#include "textures/custom_font_title/custom_font_title_46.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_47[] = {
#include "textures/custom_font_title/custom_font_title_47.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_48[] = {
#include "textures/custom_font_title/custom_font_title_48.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_49[] = {
#include "textures/custom_font_title/custom_font_title_49.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_50[] = {
#include "textures/custom_font_title/custom_font_title_50.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_51[] = {
#include "textures/custom_font_title/custom_font_title_51.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_52[] = {
#include "textures/custom_font_title/custom_font_title_52.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_53[] = {
#include "textures/custom_font_title/custom_font_title_53.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_54[] = {
#include "textures/custom_font_title/custom_font_title_54.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_55[] = {
#include "textures/custom_font_title/custom_font_title_55.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_56[] = {
#include "textures/custom_font_title/custom_font_title_56.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_57[] = {
#include "textures/custom_font_title/custom_font_title_57.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_58[] = {
#include "textures/custom_font_title/custom_font_title_58.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_59[] = {
#include "textures/custom_font_title/custom_font_title_59.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_60[] = {
#include "textures/custom_font_title/custom_font_title_60.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_61[] = {
#include "textures/custom_font_title/custom_font_title_61.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_62[] = {
#include "textures/custom_font_title/custom_font_title_62.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_63[] = {
#include "textures/custom_font_title/custom_font_title_63.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_64[] = {
#include "textures/custom_font_title/custom_font_title_64.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_65[] = {
#include "textures/custom_font_title/custom_font_title_65.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_66[] = {
#include "textures/custom_font_title/custom_font_title_66.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_67[] = {
#include "textures/custom_font_title/custom_font_title_67.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_68[] = {
#include "textures/custom_font_title/custom_font_title_68.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_69[] = {
#include "textures/custom_font_title/custom_font_title_69.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_70[] = {
#include "textures/custom_font_title/custom_font_title_70.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_71[] = {
#include "textures/custom_font_title/custom_font_title_71.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_72[] = {
#include "textures/custom_font_title/custom_font_title_72.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_73[] = {
#include "textures/custom_font_title/custom_font_title_73.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_74[] = {
#include "textures/custom_font_title/custom_font_title_74.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_75[] = {
#include "textures/custom_font_title/custom_font_title_75.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_76[] = {
#include "textures/custom_font_title/custom_font_title_76.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_77[] = {
#include "textures/custom_font_title/custom_font_title_77.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_78[] = {
#include "textures/custom_font_title/custom_font_title_78.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_79[] = {
#include "textures/custom_font_title/custom_font_title_79.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_80[] = {
#include "textures/custom_font_title/custom_font_title_80.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_81[] = {
#include "textures/custom_font_title/custom_font_title_81.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_82[] = {
#include "textures/custom_font_title/custom_font_title_82.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_83[] = {
#include "textures/custom_font_title/custom_font_title_83.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_84[] = {
#include "textures/custom_font_title/custom_font_title_84.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_85[] = {
#include "textures/custom_font_title/custom_font_title_85.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_86[] = {
#include "textures/custom_font_title/custom_font_title_86.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_87[] = {
#include "textures/custom_font_title/custom_font_title_87.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_88[] = {
#include "textures/custom_font_title/custom_font_title_88.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_89[] = {
#include "textures/custom_font_title/custom_font_title_89.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_90[] = {
#include "textures/custom_font_title/custom_font_title_90.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_91[] = {
#include "textures/custom_font_title/custom_font_title_91.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_92[] = {
#include "textures/custom_font_title/custom_font_title_92.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_93[] = {
#include "textures/custom_font_title/custom_font_title_93.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_94[] = {
#include "textures/custom_font_title/custom_font_title_94.rgba32.inc.c"
};
ALIGNED8 static const u8 texture_font_title_char_95[] = {
#include "textures/custom_font_title/custom_font_title_95.rgba32.inc.c"
};
const u8* const font_title_chars[] = {
texture_font_title_char_01, // !
texture_font_title_char_02, // "
texture_font_title_char_03, // #
texture_font_title_char_04, // $
texture_font_title_char_05, // %
texture_font_title_char_06, // &
texture_font_title_char_07, // '
texture_font_title_char_08, // (
texture_font_title_char_09, // )
texture_font_title_char_10, // *
texture_font_title_char_11, // +
texture_font_title_char_12, // ,
texture_font_title_char_13, // -
texture_font_title_char_14, // .
texture_font_title_char_15, // /
texture_font_title_char_16, // 0
texture_font_title_char_17, // 1
texture_font_title_char_18, // 2
texture_font_title_char_19, // 3
texture_font_title_char_20, // 4
texture_font_title_char_21, // 5
texture_font_title_char_22, // 6
texture_font_title_char_23, // 7
texture_font_title_char_24, // 8
texture_font_title_char_25, // 9
texture_font_title_char_26, // :
texture_font_title_char_27, // ;
texture_font_title_char_28, // <
texture_font_title_char_29, // =
texture_font_title_char_30, // >
texture_font_title_char_31, // ?
texture_font_title_char_32, // @
texture_font_title_char_33, // A
texture_font_title_char_34, // B
texture_font_title_char_35, // C
texture_font_title_char_36, // D
texture_font_title_char_37, // E
texture_font_title_char_38, // F
texture_font_title_char_39, // G
texture_font_title_char_40, // H
texture_font_title_char_41, // I
texture_font_title_char_42, // J
texture_font_title_char_43, // K
texture_font_title_char_44, // L
texture_font_title_char_45, // M
texture_font_title_char_46, // N
texture_font_title_char_47, // O
texture_font_title_char_48, // P
texture_font_title_char_49, // Q
texture_font_title_char_50, // R
texture_font_title_char_51, // S
texture_font_title_char_52, // T
texture_font_title_char_53, // U
texture_font_title_char_54, // V
texture_font_title_char_55, // W
texture_font_title_char_56, // X
texture_font_title_char_57, // Y
texture_font_title_char_58, // Z
texture_font_title_char_59, // [
texture_font_title_char_60, // \ //
texture_font_title_char_61, // ]
texture_font_title_char_62, // ^
texture_font_title_char_63, // _
texture_font_title_char_64, // `
texture_font_title_char_65, // a
texture_font_title_char_66, // b
texture_font_title_char_67, // c
texture_font_title_char_68, // d
texture_font_title_char_69, // e
texture_font_title_char_70, // f
texture_font_title_char_71, // g
texture_font_title_char_72, // h
texture_font_title_char_73, // i
texture_font_title_char_74, // j
texture_font_title_char_75, // k
texture_font_title_char_76, // l
texture_font_title_char_77, // m
texture_font_title_char_78, // n
texture_font_title_char_79, // o
texture_font_title_char_80, // p
texture_font_title_char_81, // q
texture_font_title_char_82, // r
texture_font_title_char_83, // s
texture_font_title_char_84, // t
texture_font_title_char_85, // u
texture_font_title_char_86, // v
texture_font_title_char_87, // w
texture_font_title_char_88, // x
texture_font_title_char_89, // y
texture_font_title_char_90, // z
texture_font_title_char_91, // {
texture_font_title_char_92, // |
texture_font_title_char_93, // }
texture_font_title_char_94, // ~
texture_font_title_char_95, // DEL
};
const f32 font_title_widths[] = {
/* ! " # $ % & ' ( ) * + , - . / */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
/* 0 1 2 3 4 5 6 7 8 9 */
0.45f, 0.35f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f, 0.45f,
/* : ; < = > ? @ */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
/* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */
0.55f, 0.50f, 0.50f, 0.50f, 0.45f, 0.45f, 0.50f, 0.55f, 0.28f, 0.60f, 0.50f, 0.45f, 0.55f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.55f, 0.50f, 0.50f, 0.50f, 0.60f, 0.52f, 0.60f, 0.45f,
/* [ \ ] ^ _ ` */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
/* a b c d e f g h i j k l m n o p q r s t u v w x y z */
0.45f, 0.45f, 0.40f, 0.40f, 0.45f, 0.37f, 0.40f, 0.40f, 0.20f, 0.45f, 0.40f, 0.30f, 0.50f, 0.40f, 0.40f, 0.40f, 0.45f, 0.40f, 0.50f, 0.45f, 0.50f, 0.40f, 0.50f, 0.50f, 0.45f, 0.45f,
/* { | } ~ DEL */
0.50f, 0.50f, 0.50f, 0.50f, 0.50f,
};

24
bin/custom_textures.c Normal file
View file

@ -0,0 +1,24 @@
#include <ultra64.h>
#include "sm64.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
ALIGNED8 const Texture texture_hud_char_luigi_head[] = {
#include "textures/segment2/custom_luigi_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_toad_head[] = {
#include "textures/segment2/custom_toad_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_waluigi_head[] = {
#include "textures/segment2/custom_waluigi_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_wario_head[] = {
#include "textures/segment2/custom_wario_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_shadow_spike_ext[] = {
#include "textures/segment2/shadow_spike_custom.ia8.inc.c"
};

View file

@ -90,7 +90,6 @@ ALIGNED8 static const u8 texture_hud_char_J[] = {
#include "textures/segment2/custom_hud_j.rgba16.inc.c"
};
#if defined(VERSION_JP) || defined(VERSION_SH)
ALIGNED8 const Texture texture_hud_char_J[] = {
#include "textures/segment2/segment2.02600.rgba16.inc.c"
@ -221,22 +220,6 @@ ALIGNED8 const Texture texture_hud_char_mario_head[] = {
#include "textures/segment2/segment2.05A00.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_luigi_head[] = {
#include "textures/segment2/custom_luigi_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_toad_head[] = {
#include "textures/segment2/custom_toad_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_waluigi_head[] = {
#include "textures/segment2/custom_waluigi_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_wario_head[] = {
#include "textures/segment2/custom_wario_head.rgba16.inc.c"
};
ALIGNED8 const Texture texture_hud_char_star[] = {
#include "textures/segment2/segment2.05C00.rgba16.inc.c"
};
@ -1829,6 +1812,12 @@ ALIGNED8 const Texture texture_hud_char_arrow_down[] = {
#include "textures/segment2/segment2.081D0.rgba16.inc.c"
};
// TODO: move these out of the font
extern ALIGNED8 const Texture texture_hud_char_luigi_head[];
extern ALIGNED8 const Texture texture_hud_char_toad_head[];
extern ALIGNED8 const Texture texture_hud_char_waluigi_head[];
extern ALIGNED8 const Texture texture_hud_char_wario_head[];
// Main HUD print table 0x02008250-0x02008337
const Texture *const main_hud_lut[] = {
#ifdef VERSION_EU
@ -2590,10 +2579,6 @@ ALIGNED8 const Texture texture_shadow_quarter_square[] = {
#include "textures/segment2/shadow_quarter_square.ia8.inc.c"
};
ALIGNED8 const Texture texture_shadow_spike_ext[] = {
#include "textures/segment2/shadow_spike_custom.ia8.inc.c"
};
const Texture texture_transition_star_half[] = {
#include "textures/segment2/segment2.0F458.ia8.inc.c"
};
@ -2686,6 +2671,7 @@ const Gfx dl_shadow_square[] = {
gsSPEndDisplayList(),
};
extern ALIGNED8 const Texture texture_shadow_spike_ext[];
const Gfx dl_shadow_spike_ext[] = {
gsSPDisplayList(dl_shadow_begin),
gsDPLoadTextureBlock(texture_shadow_spike_ext, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 16, 0, G_TX_WRAP | G_TX_MIRROR, G_TX_WRAP | G_TX_MIRROR, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
@ -3508,31 +3494,3 @@ const s16 seg2_painting_mesh_neighbor_tris[] = {
3, 240, 242, 244,
1, 243,
};
//////////////////////////////////////////////////////////
ALIGNED8 const u8 texture_font_normal[] = {
#include "textures/custom_font_title/custom_font_normal.rgba32.inc.c"
};
const f32 font_normal_widths[] = {
/* ! " # $ % & ' ( ) * + , - . / */
0.2200f, 0.3750f, 0.4375f, 0.3750f, 0.4375f, 0.5000f, 0.2500f, 0.3125f, 0.3125f, 0.3750f, 0.4375f, 0.2500f, 0.3750f, 0.2500f, 0.3125f,
/* 0 1 2 3 4 5 6 7 8 9 */
0.4375f, 0.3800f, 0.4200f, 0.4375f, 0.4300f, 0.4375f, 0.4375f, 0.4000f, 0.4375f, 0.4375f,
/* : ; < = > ? @ */
0.2000f, 0.2500f, 0.3125f, 0.3750f, 0.3125f, 0.3125f, 0.5750f,
/* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */
0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.5000f, 0.5000f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.5000f, 0.4375f, 0.3750f, 0.3750f,
/* [ \ ] ^ _ ` */
0.3125f, 0.3125f, 0.3125f, 0.3750f, 0.3750f, 0.2500f,
/* a b c d e f g h i j k l m n o p q r s t u v w x y z */
0.3000f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.3000f, 0.3750f, 0.3125f, 0.2200f, 0.3125f, 0.3125f, 0.1700f, 0.4350f, 0.3125f, 0.3000f, 0.3000f, 0.3125f, 0.2700f, 0.3125f, 0.3125f, 0.3125f, 0.2750f, 0.4375f, 0.3750f, 0.3125f, 0.3125f,
/* { | } ~ DEL */
0.3125f, 0.2500f, 0.3125f, 0.5000f, 0.2000f,
};
ALIGNED8 u8 texture_selectionbox_icon[] = {
#include "textures/segment2/custom_selectionbox_icon.rgba16.inc.c"
};

View file

@ -64,7 +64,7 @@ struct DjuiBind* djui_bind_create(struct DjuiBase* parent, const char* message,
djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE);
djui_base_set_size(&text->base, 0.3f, 1.0f);
djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM);
djui_text_set_drop_shadow(text, 255, 255, 255, 128);
djui_text_set_drop_shadow(text, 64, 64, 64, 100);
djui_base_set_color(&text->base, 200, 200, 200, 255);
bind->text = text;

View file

@ -55,7 +55,7 @@ struct DjuiButton* djui_button_create(struct DjuiBase* parent, const char* messa
djui_base_set_size(&text->base, 1.0f, 1.0f);
djui_base_set_color(&text->base, 11, 11, 11, 255);
djui_text_set_alignment(text, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER);
djui_text_set_drop_shadow(text, 0, 0, 0, 64);
djui_text_set_drop_shadow(text, 64, 64, 64, 100);
button->text = text;
djui_base_set_size_type(base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);

View file

@ -63,7 +63,7 @@ struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* m
djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE);
djui_base_set_size(&text->base, 1.0f, 1.0f);
djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM);
djui_text_set_drop_shadow(text, 255, 255, 255, 128);
djui_text_set_drop_shadow(text, 64, 64, 64, 100);
checkbox->text = text;
struct DjuiRect* rect = djui_rect_create(&checkbox->base);

View file

@ -38,13 +38,18 @@ static const struct DjuiFont sDjuiFontNormal = {
// font 1 (custom title font) //
////////////////////////////////
static void djui_font_title_render_char(char* text) {
char c = *text;
extern const u8* const font_title_chars[];
static void djui_font_title_render_char(char* c) {
// replace undisplayable characters
if (c == ' ') { return; }
c = djui_unicode_get_base_char(text);
djui_gfx_render_texture(font_title_chars[c - '!'], 64, 64, 32);
if (*c == ' ') { return; }
u32 index = djui_unicode_get_sprite_index(c);
if ((u8)*c < '!' || (u8)*c > '~' + 1) { index = djui_unicode_get_sprite_index("?"); }
u32 tx = index % 16;
u32 ty = index / 16;
extern ALIGNED8 const u8 texture_font_title[];
djui_gfx_render_texture_tile(texture_font_title, 1024, 512, 32, tx * 64 + 1, ty * 64, 64, 64);
}
static f32 djui_font_title_char_width(char* text) {

View file

@ -84,7 +84,7 @@ void djui_gfx_render_texture(const u8* texture, u32 w, u32 h, u32 bitSize) {
void djui_gfx_render_texture_tile(const u8* texture, u32 w, u32 h, u32 bitSize, u32 tileX, u32 tileY, u32 tileW, u32 tileH) {
Vtx *vtx = alloc_display_list(sizeof(Vtx) * 4);
f32 aspect = w ? ((f32)h / (f32)w) : 1;
f32 aspect = tileH ? ((f32)tileW / (f32)tileH) : 1;
vtx[0] = (Vtx) {{{ 0, -1, 0 }, 0, { ( tileX * 512) / w, ((tileY + tileH) * 512) / h }, { 0xff, 0xff, 0xff, 0xff }}};
vtx[1] = (Vtx) {{{ 1 * aspect, -1, 0 }, 0, { ((tileX + tileW) * 512) / w, ((tileY + tileH) * 512) / h }, { 0xff, 0xff, 0xff, 0xff }}};
vtx[2] = (Vtx) {{{ 1 * aspect, 0, 0 }, 0, { ((tileX + tileW) * 512) / w, ( tileY * 512) / h }, { 0xff, 0xff, 0xff, 0xff }}};

View file

@ -94,7 +94,7 @@ struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const
djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE);
djui_base_set_size(&text->base, 0.6f, 1.0f);
djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM);
djui_text_set_drop_shadow(text, 255, 255, 255, 128);
djui_text_set_drop_shadow(text, 64, 64, 64, 100);
selectionbox->text = text;
struct DjuiRect* rect = djui_rect_create(&selectionbox->base);
@ -111,7 +111,7 @@ struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const
djui_base_set_size_type(&rectText->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE);
djui_base_set_size(&rectText->base, 1.0f, 1.0f);
djui_text_set_alignment(rectText, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM);
djui_text_set_drop_shadow(rectText, 255, 255, 255, 128);
djui_text_set_drop_shadow(rectText, 64, 64, 64, 100);
selectionbox->rectText = rectText;
struct DjuiImage* rectImage = djui_image_create(&rect->base, texture_selectionbox_icon, 16, 16, 16);

View file

@ -116,7 +116,7 @@ struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* messa
djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE);
djui_base_set_size(&text->base, 0.6f, 1.0f);
djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM);
djui_text_set_drop_shadow(text, 255, 255, 255, 128);
djui_text_set_drop_shadow(text, 64, 64, 64, 100);
slider->text = text;
struct DjuiRect* rect = djui_rect_create(&slider->base);

View file

@ -202,7 +202,7 @@ void produce_interpolation_frames_and_delay(void) {
sFrameTargetTime += sFrameTime * gGameSpeed;
gRenderingInterpolated = false;
printf(">>> fpt: %llu, fps: %f :: %f\n", frames, sAvgFps, fps);
//printf(">>> fpt: %llu, fps: %f :: %f\n", frames, sAvgFps, fps);
}
void produce_one_frame(void) {

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 898 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 943 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,017 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 854 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 928 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

Some files were not shown because too many files have changed in this diff Show more