From 14492d1dbaa25d173da4898f39f952eef001b38f Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Mon, 13 Sep 2021 14:48:05 -0400 Subject: [PATCH] Create and fill out printf.h, and link other files to it as needed. --- src/memory.c | 1 + src/menu.c | 1 + src/printf.c | 28 +--------------------------- src/printf.h | 42 ++++++++++++++++++++++++++++++++++++++++++ src/thread0_epc.c | 1 + src/unknown_06B2B0.c | 1 + 6 files changed, 47 insertions(+), 27 deletions(-) create mode 100644 src/printf.h diff --git a/src/memory.c b/src/memory.c index 797d8045..32536f4f 100644 --- a/src/memory.c +++ b/src/memory.c @@ -2,6 +2,7 @@ /* RAM_POS: 0x80070B30 */ #include "memory.h" +#include "printf.h" /************ .rodata ************/ diff --git a/src/menu.c b/src/menu.c index 586d0924..aef78527 100644 --- a/src/menu.c +++ b/src/menu.c @@ -17,6 +17,7 @@ #include "font.h" #include "game_text.h" #include "object_models.h" +#include "printf.h" /** * @file Contains all the code used for every menu in the game. diff --git a/src/printf.c b/src/printf.c index 0fa9b2c3..f70b2b95 100644 --- a/src/printf.c +++ b/src/printf.c @@ -1,37 +1,11 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x800B3140 */ +#include "printf.h" #include "types.h" #include "macros.h" #include "f3ddkr.h" -#define RENDER_PRINTF_CMD_ARG_BYTE(val) *D_801285D8 = val; D_801285D8++; -#define RENDER_PRINTF_CMD_ARG_SHORT(val) RENDER_PRINTF_CMD_ARG_BYTE(val) RENDER_PRINTF_CMD_ARG_BYTE(val >> 8) - -#define RENDER_PRINTF_CMD_END RENDER_PRINTF_CMD_ARG_BYTE(0) - -#define RENDER_PRINTF_CMD_SET_COLOR(red, green, blue, alpha) \ - RENDER_PRINTF_CMD_ARG_BYTE(0x81) \ - RENDER_PRINTF_CMD_ARG_BYTE(red) \ - RENDER_PRINTF_CMD_ARG_BYTE(green) \ - RENDER_PRINTF_CMD_ARG_BYTE(blue) \ - RENDER_PRINTF_CMD_ARG_BYTE(alpha) \ - RENDER_PRINTF_CMD_END - -#define RENDER_PRINTF_CMD_SET_POSITION(x, y) \ - RENDER_PRINTF_CMD_ARG_BYTE(0x82) \ - RENDER_PRINTF_CMD_ARG_SHORT(x) \ - RENDER_PRINTF_CMD_ARG_SHORT(y) \ - RENDER_PRINTF_CMD_END - -#define RENDER_PRINTF_CMD_SET_BACKGROUND_COLOR(red, green, blue, alpha) \ - RENDER_PRINTF_CMD_ARG_BYTE(0x85) \ - RENDER_PRINTF_CMD_ARG_BYTE(red) \ - RENDER_PRINTF_CMD_ARG_BYTE(green) \ - RENDER_PRINTF_CMD_ARG_BYTE(blue) \ - RENDER_PRINTF_CMD_ARG_BYTE(alpha) \ - RENDER_PRINTF_CMD_END - /************ .data ************/ s32 D_800E2EF0 = 0; diff --git a/src/printf.h b/src/printf.h new file mode 100644 index 00000000..be90e947 --- /dev/null +++ b/src/printf.h @@ -0,0 +1,42 @@ +#ifndef _PRINTF_H_ +#define _PRINTF_H_ + +#include "types.h" + + +#define RENDER_PRINTF_CMD_ARG_BYTE(val) *D_801285D8 = val; D_801285D8++; +#define RENDER_PRINTF_CMD_ARG_SHORT(val) RENDER_PRINTF_CMD_ARG_BYTE(val) RENDER_PRINTF_CMD_ARG_BYTE(val >> 8) + +#define RENDER_PRINTF_CMD_END RENDER_PRINTF_CMD_ARG_BYTE(0) + +#define RENDER_PRINTF_CMD_SET_COLOR(red, green, blue, alpha) \ + RENDER_PRINTF_CMD_ARG_BYTE(0x81) \ + RENDER_PRINTF_CMD_ARG_BYTE(red) \ + RENDER_PRINTF_CMD_ARG_BYTE(green) \ + RENDER_PRINTF_CMD_ARG_BYTE(blue) \ + RENDER_PRINTF_CMD_ARG_BYTE(alpha) \ + RENDER_PRINTF_CMD_END + +#define RENDER_PRINTF_CMD_SET_POSITION(x, y) \ + RENDER_PRINTF_CMD_ARG_BYTE(0x82) \ + RENDER_PRINTF_CMD_ARG_SHORT(x) \ + RENDER_PRINTF_CMD_ARG_SHORT(y) \ + RENDER_PRINTF_CMD_END + +#define RENDER_PRINTF_CMD_SET_BACKGROUND_COLOR(red, green, blue, alpha) \ + RENDER_PRINTF_CMD_ARG_BYTE(0x85) \ + RENDER_PRINTF_CMD_ARG_BYTE(red) \ + RENDER_PRINTF_CMD_ARG_BYTE(green) \ + RENDER_PRINTF_CMD_ARG_BYTE(blue) \ + RENDER_PRINTF_CMD_ARG_BYTE(alpha) \ + RENDER_PRINTF_CMD_END + + +void func_800B4A08(s32 arg0); +void func_800B5E88(void); +void set_render_printf_color(u8 red, u8 green, u8 blue, u8 alpha); +void set_render_printf_background_color(u8 red, u8 green, u8 blue, u8 alpha); + +void set_render_printf_position(u16 xpos, u16 ypos); // Non Matching + +#endif diff --git a/src/thread0_epc.c b/src/thread0_epc.c index 038e9776..f0b9f09f 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -6,6 +6,7 @@ #include "libultra_internal.h" #include "menu.h" #include "controller_pak.h" +#include "printf.h" /************ .rodata ************/ diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index aa13e716..b5f03090 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -15,6 +15,7 @@ #include "video.h" #include "lib/src/mips1/sc/sched.h" #include "gzip.h" +#include "printf.h" /************ .rodata ************/