From 3c61500cf1b970b500db1633cb00cbf6f1f47e16 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 28 Oct 2021 17:35:29 +1000 Subject: [PATCH] Decompile dhudPrintStringAt --- src/game/debug1.c | 12 +- src/game/debug2.c | 4 +- src/game/game_19aa80.c | 12 +- src/include/lib/lib_13790.h | 13 +- src/lib/base.c | 192 -------------------- src/lib/lib_126b0.c | 48 ++--- src/lib/lib_13790.c | 338 +++++++++++++++++++++++++++--------- src/lib/main.c | 20 +-- 8 files changed, 309 insertions(+), 330 deletions(-) diff --git a/src/game/debug1.c b/src/game/debug1.c index 1499b8834..92158cdc8 100644 --- a/src/game/debug1.c +++ b/src/game/debug1.c @@ -53,9 +53,9 @@ Gfx *dmenuRender(Gfx *gdl) dmenu0f118c80nb(); if (i != g_DMenuSelectedOption) { - func000137bc(0xc0, 0xc0, 0xc0, 0xc0); - func000137b0((g_DMenuCurPositions[i][0] * xscale - 20) / 4, (g_DMenuCurPositions[i][1] * yscale - 8) / 7); - func000137fc(g_DMenuCurLabels[i]); + dhudSetFgColour(0xc0, 0xc0, 0xc0, 0xc0); + dhudSetPos((g_DMenuCurPositions[i][0] * xscale - 20) / 4, (g_DMenuCurPositions[i][1] * yscale - 8) / 7); + dhudPrintString(g_DMenuCurLabels[i]); } } @@ -64,9 +64,9 @@ Gfx *dmenuRender(Gfx *gdl) dmenu0f118c80nb(); if (i == g_DMenuSelectedOption) { - func000137bc(0xc0, 0, 0, 0xc0); - func000137b0((g_DMenuCurPositions[i][0] * xscale - 20) / 4, (g_DMenuCurPositions[i][1] * yscale - 8) / 7); - func000137fc(g_DMenuCurLabels[i]); + dhudSetFgColour(0xc0, 0, 0, 0xc0); + dhudSetPos((g_DMenuCurPositions[i][0] * xscale - 20) / 4, (g_DMenuCurPositions[i][1] * yscale - 8) / 7); + dhudPrintString(g_DMenuCurLabels[i]); } } diff --git a/src/game/debug2.c b/src/game/debug2.c index 041828bab..44dde1473 100644 --- a/src/game/debug2.c +++ b/src/game/debug2.c @@ -528,7 +528,7 @@ bool debugProcessInput(s8 stickx, s8 sticky, u16 buttons, u16 buttonsthisframe) if (dmenuGetSelectedOption() == 0) { // Selected "main" from cutscene menu g_DebugCurMenu = DEBUGMENU_MAIN; - func000142d4nb(); + dhudClear(); debugUpdateMenu(); } else { cutsceneStart(0xc00 + dmenuGetSelectedOption() - 1); @@ -601,7 +601,7 @@ bool debugProcessInput(s8 stickx, s8 sticky, u16 buttons, u16 buttonsthisframe) if (buttonsthisframe & START_BUTTON) { if (g_DebugIsMenuOpen == true) { - func000142d4nb(); + dhudClear(); } g_DebugIsMenuOpen = false; diff --git a/src/game/game_19aa80.c b/src/game/game_19aa80.c index 169c3f454..aa45e73dd 100644 --- a/src/game/game_19aa80.c +++ b/src/game/game_19aa80.c @@ -125,12 +125,12 @@ glabel func0f19ab40 /* f194b40: 240500ff */ addiu $a1,$zero,0xff /* f194b44: 11e00020 */ beqz $t7,.NB0f194bc8 /* f194b48: 240600ff */ addiu $a2,$zero,0xff -/* f194b4c: 0c005106 */ jal func000137bc +/* f194b4c: 0c005106 */ jal dhudSetFgColour /* f194b50: 240700ff */ addiu $a3,$zero,0xff /* f194b54: 00002025 */ or $a0,$zero,$zero /* f194b58: 00002825 */ or $a1,$zero,$zero /* f194b5c: 00003025 */ or $a2,$zero,$zero -/* f194b60: 0c005115 */ jal func000137d0 +/* f194b60: 0c005115 */ jal dhudSetBgColour /* f194b64: 240700ff */ addiu $a3,$zero,0xff /* f194b68: 3c057f1b */ lui $a1,0x7f1b /* f194b6c: 3c068009 */ lui $a2,0x8009 @@ -141,9 +141,9 @@ glabel func0f19ab40 /* f194b80: 0c004fc1 */ jal sprintf /* f194b84: 27a40018 */ addiu $a0,$sp,0x18 /* f194b88: 24040002 */ addiu $a0,$zero,0x2 -/* f194b8c: 0c0050df */ jal func000137b0 +/* f194b8c: 0c0050df */ jal dhudSetPos /* f194b90: 24050001 */ addiu $a1,$zero,0x1 -/* f194b94: 0c005175 */ jal func000137fc +/* f194b94: 0c005175 */ jal dhudPrintString /* f194b98: 27a40018 */ addiu $a0,$sp,0x18 /* f194b9c: 3c057f1b */ lui $a1,0x7f1b /* f194ba0: 3c068009 */ lui $a2,0x8009 @@ -152,9 +152,9 @@ glabel func0f19ab40 /* f194bac: 0c004fc1 */ jal sprintf /* f194bb0: 27a40018 */ addiu $a0,$sp,0x18 /* f194bb4: 24040002 */ addiu $a0,$zero,0x2 -/* f194bb8: 0c0050df */ jal func000137b0 +/* f194bb8: 0c0050df */ jal dhudSetPos /* f194bbc: 24050002 */ addiu $a1,$zero,0x2 -/* f194bc0: 0c005175 */ jal func000137fc +/* f194bc0: 0c005175 */ jal dhudPrintString /* f194bc4: 27a40018 */ addiu $a0,$sp,0x18 .NB0f194bc8: /* f194bc8: 3c018009 */ lui $at,0x8009 diff --git a/src/include/lib/lib_13790.h b/src/include/lib/lib_13790.h index b5ac52eaa..a72cc601a 100644 --- a/src/include/lib/lib_13790.h +++ b/src/include/lib/lib_13790.h @@ -4,11 +4,12 @@ #include "data.h" #include "types.h" -void func00013790(void); -void func00013798(void); -void func000142d4nb(void); -void func000137b0(s32 x, s32 y); -void func000137fc(char *text); -Gfx *func00013814(Gfx *gdl); +void dhudInit(void); +void dhudTryClear(void); +void dhudClear(void); +void dhudSetPos(s32 x, s32 y); +void dhudPrintChar(u8 c); +void dhudPrintString(char *text); +Gfx *dhudRender(Gfx *gdl); #endif diff --git a/src/lib/base.c b/src/lib/base.c index 3a1d9b93c..5842c0c71 100644 --- a/src/lib/base.c +++ b/src/lib/base.c @@ -4,198 +4,6 @@ #include "data.h" #include "types.h" -#if VERSION < VERSION_NTSC_1_0 -// This data doesn't belong here, but I don't know what the data is or where -// exactly it should go yet. -u8 var8009c9e0nb[0x17e0]; - -u32 var800606e0nb[] = { - 0xb8000000, 0x00000000, 0x00000000, 0x00227a00, - 0x007a348b, 0x00223434, 0x00115811, 0x00696900, - 0x00000000, 0x00009c00, 0x00004600, 0x00460000, - 0x00004600, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000046, 0x00229c11, 0x00346900, - 0x00229c11, 0x00699c11, 0x00005834, 0x00adad34, - 0x00118b34, 0x009cad7a, 0x00229c11, 0x00229c11, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00113411, 0x00000000, 0x0046ce00, - 0x00ad58de, 0x00466969, 0x009c9c69, 0x008b8b00, - 0x00469c00, 0x0022ce00, 0x00583400, 0x00345800, - 0x007ace69, 0x00005800, 0x00000000, 0x00000000, - 0x00000000, 0x00003446, 0x008b007a, 0x00588b00, - 0x008b008b, 0x0022007a, 0x00119c69, 0x008b0000, - 0x009c1100, 0x0022008b, 0x008b007a, 0x008b007a, - 0x00000000, 0x00000000, 0x00225869, 0x00000000, - 0x69582200, 0x009c698b, 0x00000000, 0x0046ce00, - 0x00222258, 0x00deef7a, 0x00ad1111, 0x0069ef9c, - 0x008b0000, 0x00460000, 0x008b0000, 0x00008b00, - 0x0058ce34, 0x00008b00, 0x00000000, 0x00000000, - 0x00000000, 0x00008b00, 0x008b008b, 0x00008b00, - 0x0011007a, 0x00118b46, 0x0058467a, 0x00cead22, - 0x009c8b00, 0x0000117a, 0x00698b46, 0x008b00ad, - 0x0034ad00, 0x0034ad00, 0x228b4600, 0x8b8b8b8b, - 0x00468b22, 0x0011008b, 0x00000000, 0x00007a00, - 0x00000000, 0x009c9c00, 0x00118b34, 0x22adbd46, - 0x008b8b34, 0x00000000, 0x008b0000, 0x00008b00, - 0x007a2269, 0x22adef9c, 0x00000000, 0x22adadad, - 0x00000000, 0x00226900, 0x008b008b, 0x00008b00, - 0x00007a00, 0x0000117a, 0x009c347a, 0x0000008b, - 0x00ce117a, 0x00002269, 0x008b227a, 0x00229c8b, - 0x00001100, 0x00001100, 0xad580000, 0x34343434, - 0x000058ad, 0x0000bd34, 0x00000000, 0x00112200, - 0x00000000, 0x22dede22, 0x00ce5858, 0x0046468b, - 0x008bad00, 0x00000000, 0x008b0000, 0x00008b00, - 0x00000000, 0x00008b00, 0x00003400, 0x00000000, - 0x00002200, 0x00691100, 0x008b008b, 0x00008b00, - 0x00691158, 0x0011008b, 0x007a9cad, 0x1122008b, - 0x008b008b, 0x00008b00, 0x008b008b, 0x0000227a, - 0x00002200, 0x00002200, 0x228b4600, 0x8b8b8b8b, - 0x00468b22, 0x00006900, 0x00000000, 0x00228b00, - 0x00000000, 0x008b8b00, 0x0034bd00, 0x00119c46, - 0x007a6969, 0x00000000, 0x00583400, 0x00345800, - 0x00000000, 0x00005800, 0x0011ff00, 0x00000000, - 0x00228b00, 0x008b0000, 0x00349c22, 0x008bce69, - 0x22bdad8b, 0x007a9c11, 0x00008b8b, 0x118b9c11, - 0x00349c22, 0x00005800, 0x00349c11, 0x00588b11, - 0x00228b00, 0x0069ad00, 0x00225869, 0x00000000, - 0x69582200, 0x0000bd00, 0x00000000, 0x00000000, - 0x00000000, 0x00464600, 0x00004600, 0x00000000, - 0x00000000, 0x00000000, 0x00004600, 0x00460000, - 0x00000000, 0x00000000, 0x00583400, 0x00000000, - 0x00000000, 0x58340000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x008b0000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00229c11, 0x00221100, - 0x11223400, 0x00003411, 0x11342200, 0x00343422, - 0x00343422, 0x00002222, 0x00220022, 0x00342222, - 0x00003434, 0x00341122, 0x22341100, 0x11110022, - 0x22221134, 0x00002200, 0x00343411, 0x00003400, - 0x00343411, 0x00113411, 0x00343434, 0x11341134, - 0x11220034, 0x34220034, 0x11340022, 0x11220034, - 0x00223422, 0x00008b34, 0x00460000, 0x00587a00, - 0x00005800, 0x00000000, 0x348b008b, 0x0069bd00, - 0x11de7a58, 0x00ad69de, 0x22ce7a9c, 0x11ce7aad, - 0x11ce7aad, 0x00ad7ade, 0x22ce00ce, 0x0069ce58, - 0x00008bce, 0x22ce22ce, 0x46ce4600, 0x7abd00ff, - 0x58ff46ce, 0x00ad7a9c, 0x11ce7a7a, 0x00ad7a8b, - 0x22ce7a7a, 0x118b7abd, 0x469ccece, 0x8b8b34ce, - 0x8b8b00bd, 0xbd8b22bd, 0x58ce00ce, 0x22bd00ce, - 0x00bd7aad, 0x00008b00, 0x007a1100, 0x00008b00, - 0x00694658, 0x00000000, 0x468b7abd, 0x00588b22, - 0x008b008b, 0x46460011, 0x008b007a, 0x118b3458, - 0x008b3458, 0x46460011, 0x008b008b, 0x00008b00, - 0x0000117a, 0x008b7a11, 0x008b0000, 0x589c58bd, - 0x11ad698b, 0x4646007a, 0x118b007a, 0x5846007a, - 0x118b007a, 0x46580011, 0x34228b46, 0x6934008b, - 0x007a008b, 0x58348b7a, 0x11696946, 0x00695846, - 0x00113458, 0x00008b00, 0x00116900, 0x00008b00, - 0x00110011, 0x00000000, 0x468b8b9c, 0x009c228b, - 0x00dead7a, 0x58340000, 0x008b007a, 0x11dead00, - 0x00dead00, 0x583400ad, 0x46deadbd, 0x00008b00, - 0x3411117a, 0x00dead00, 0x008b0000, 0x5846ad7a, - 0x118b8b8b, 0x5834007a, 0x11dead34, 0x5834007a, - 0x11dede46, 0x0058ad34, 0x00008b00, 0x5834008b, - 0x008b117a, 0x00bdde8b, 0x0022ad00, 0x0011bd00, - 0x00226900, 0x00008b00, 0x00008b00, 0x00008b00, - 0x00000000, 0x00000000, 0x348b348b, 0x469c8bad, - 0x008b007a, 0x347a0058, 0x008b009c, 0x008b008b, - 0x008b0000, 0x228b007a, 0x008b008b, 0x00008b00, - 0x46462269, 0x008b117a, 0x008b007a, 0x6934347a, - 0x118b34de, 0x118b009c, 0x008b0000, 0x228b009c, - 0x008b117a, 0x3434008b, 0x00008b00, 0x4646008b, - 0x0022ce00, 0x00adbd8b, 0x008b007a, 0x00008b00, - 0x008b0058, 0x00008b00, 0x00003446, 0x00008b00, - 0x00000000, 0x00000000, 0x00697a9c, 0x7a9c00bd, - 0x69cead58, 0x0058ad58, 0x22bdad34, 0x22cead8b, - 0x22bd2200, 0x0058ad58, 0x22ad00ce, 0x008bbd7a, - 0x007a7a00, 0x22bd228b, 0x69bdadbd, 0x8b9c00bd, - 0x69ce227a, 0x0058ad34, 0x22ce6900, 0x009cef69, - 0x22bd2258, 0x7a9c9c22, 0x0046ce34, 0x007aad11, - 0x00005800, 0x00580058, 0x22ad00ce, 0x0058bd34, - 0x00ad9c9c, 0x00008b00, 0x0000008b, 0x00008b00, - 0x00000000, 0x22222222, 0x00002211, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x0058588b, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x0000ce34, 0x0000007a, 0x1158ad00, - 0x00000000, 0x7a7a7a7a, 0x00693400, 0x00000000, - 0x22690000, 0x00000000, 0x0000008b, 0x00000000, - 0x0000589c, 0x11000000, 0x22690000, 0x00001100, - 0x00001100, 0x22690000, 0x008b7a00, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00004646, 0x00004600, 0x00464600, - 0x00000000, 0x00000000, 0x0046ad00, 0x00000000, - 0x008b0000, 0x00000000, 0x0000008b, 0x00000000, - 0x00116900, 0x00000000, 0x008b0000, 0x00006900, - 0x00006900, 0x008b0000, 0x00008b00, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00226900, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00008b00, 0x00008b00, 0x00008b00, - 0x00000000, 0x00000000, 0x00005800, 0x008b9c34, - 0x00cead69, 0x007aad9c, 0x008badbd, 0x007aad34, - 0x009cde7a, 0x008b9cce, 0x11cead69, 0x00589c00, - 0x008bad69, 0x008bad69, 0x00008b00, 0x7aad9c9c, - 0x22cead69, 0x007aad34, 0x22cead69, 0x008b9cde, - 0x22de9c69, 0x007aad9c, 0x009cde7a, 0x118b00ad, - 0x11ce00de, 0x34ce00de, 0x22ce34ad, 0x22ce00de, - 0x00bd9cad, 0x00008b00, 0x00008b00, 0x00008b00, - 0x229c347a, 0x00000000, 0x00000000, 0x009cad7a, - 0x008b007a, 0x69340034, 0x4634009c, 0x46ce9cbd, - 0x00226900, 0x4646008b, 0x008b008b, 0x00008b00, - 0x0000007a, 0x00de7a00, 0x00008b00, 0x46468b69, - 0x119c008b, 0x4646008b, 0x008b0069, 0x5846008b, - 0x008b0000, 0x008b7a58, 0x00226900, 0x008b008b, - 0x007a117a, 0x008b8b8b, 0x0058bd00, 0x008b008b, - 0x00464646, 0x00467a00, 0x00008b00, 0x00008b46, - 0x7a349c22, 0x00000000, 0x00000000, 0x4634227a, - 0x009c007a, 0x58460022, 0x4646009c, 0x34460034, - 0x00226900, 0x3446009c, 0x008b008b, 0x00008b00, - 0x0000007a, 0x008b6911, 0x00008b00, 0x46468b69, - 0x118b008b, 0x3458008b, 0x00ad0069, 0x584600ad, - 0x008b0000, 0x0069348b, 0x00226911, 0x008b009c, - 0x0011de00, 0x00adbd8b, 0x00699c11, 0x00469c34, - 0x00225858, 0x00008b00, 0x00008b00, 0x00008b00, - 0x00000000, 0x00000000, 0x00000000, 0x119c8bce, - 0x22adad58, 0x007a9c46, 0x0069adad, 0x1169ad46, - 0x008bbd7a, 0x0069adad, 0x22ad00bd, 0x118bce69, - 0x0000007a, 0x227a34ce, 0x008bbd7a, 0x7a699c46, - 0x69bd00ce, 0x007a9c22, 0x00bd9c58, 0x0069adad, - 0x22ce9c34, 0x008bad58, 0x00009c8b, 0x00699cad, - 0x11005800, 0x00580069, 0x11bd349c, 0x00009c00, - 0x00adad9c, 0x00008b00, 0x00008b00, 0x00008b00, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x0000008b, 0x00000000, 0x00000000, - 0x00004646, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x008b0000, 0x0000008b, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00226900, - 0x00000000, 0x00008b46, 0x00008b00, 0x00467a00, - 0x00000000, 0x00000000, 0x00000005, 0x00000001, - 0x00000018, 0x00000010, 0x00000001, 0x00000000, - 0xe7000000, 0x00000000, 0xba001402, 0x00000000, - 0xba000602, 0x000000c0, 0xb900031d, 0x500a4240, - 0xfc30b261, 0x5566db6d, 0xba001301, 0x00000000, - 0xba000e02, 0x00000000, 0xb9000002, 0x00000000, - 0xfd700000, 0x800606e8, 0xf5700000, 0x07000000, - 0xe6000000, 0x00000000, 0xf3000000, 0x0753f080, - 0xe7000000, 0x00000000, 0xf5682000, 0x00000000, - 0xf2000000, 0x001fc050, 0xe6000000, 0x00000000, - 0xb8000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0xb8000000, 0x00000000, - 0xc0000000, 0x00000000, 0xfa000000, 0xffffff00, - 0xfb000000, 0x00000000, 0x00000000, 0x00000000, - 0x000000ff, 0x00000000, 0x00000000, 0x00000000, -}; -#endif - const char lower[] = "0123456789abcdefghijklmnopqrstuvwxyz"; const char upper[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; diff --git a/src/lib/lib_126b0.c b/src/lib/lib_126b0.c index 2f9803eb5..e0377c493 100644 --- a/src/lib/lib_126b0.c +++ b/src/lib/lib_126b0.c @@ -398,29 +398,29 @@ void memPrintInfoIfEnabled(void) #if VERSION < VERSION_NTSC_1_0 if (debugIsMemInfoEnabled()) { - func000137bc(0xff, 0xff, 0xff, 0xff); - func000137d0(0, 0, 0, 0xff); + dhudSetFgColour(0xff, 0xff, 0xff, 0xff); + dhudSetBgColour(0, 0, 0, 0xff); - func000137b0(30, line); - func000137fc("Mem Info"); + dhudSetPos(30, line); + dhudPrintString("Mem Info"); line++; - func000137b0(30, line); - func000137fc("memp: MP_LF_LEV"); + dhudSetPos(30, line); + dhudPrintString("memp: MP_LF_LEV"); line++; onboard = memGetFree(MEMPOOL_STAGE, MEMBANK_ONBOARD); expansion = memGetFree(MEMPOOL_STAGE, MEMBANK_EXPANSION); sprintf(buffer, "F: %d %d", onboard, expansion); - func000137b0(31, line); - func000137fc(buffer); + dhudSetPos(31, line); + dhudPrintString(buffer); line++; onboard = func00012a44nb(MEMPOOL_STAGE, MEMBANK_ONBOARD); expansion = func00012a44nb(MEMPOOL_STAGE, MEMBANK_EXPANSION); sprintf(buffer, "S: %d %d", onboard, expansion); - func000137b0(31, line); - func000137fc(buffer); + dhudSetPos(31, line); + dhudPrintString(buffer); line++; over = func00012a44nb(MEMPOOL_STAGE, MEMBANK_EXPANSION) @@ -433,40 +433,40 @@ void memPrintInfoIfEnabled(void) sprintf(buffer, "Free: %d", -over); } - func000137b0(31, line); - func000137fc(buffer); + dhudSetPos(31, line); + dhudPrintString(buffer); line++; - func000137b0(30, line); - func000137fc("memp: MP_LF_ETER"); + dhudSetPos(30, line); + dhudPrintString("memp: MP_LF_ETER"); line++; onboard = memGetFree(MEMPOOL_PERMANENT, MEMBANK_ONBOARD); expansion = memGetFree(MEMPOOL_PERMANENT, MEMBANK_EXPANSION); sprintf(buffer, "F: %d %d", onboard, expansion); - func000137b0(31, line); - func000137fc(buffer); + dhudSetPos(31, line); + dhudPrintString(buffer); line++; onboard = func00012a44nb(MEMPOOL_PERMANENT, MEMBANK_ONBOARD); expansion = func00012a44nb(MEMPOOL_PERMANENT, MEMBANK_EXPANSION); sprintf(buffer, "S: %d %d", onboard, expansion); - func000137b0(31, line); - func000137fc(buffer); + dhudSetPos(31, line); + dhudPrintString(buffer); line++; - func000137b0(30, line); - func000137fc("mema:"); + dhudSetPos(30, line); + dhudPrintString("mema:"); line++; sprintf(buffer, "LF: %d", func00012cdc()); - func000137b0(31, line); - func000137fc(buffer); + dhudSetPos(31, line); + dhudPrintString(buffer); line++; sprintf(buffer, "Audio Free: %d", g_SndHeap.base + (g_SndHeap.len - (u32)g_SndHeap.cur)); - func000137b0(30, line); - func000137fc(buffer); + dhudSetPos(30, line); + dhudPrintString(buffer); line++; } #endif diff --git a/src/lib/lib_13790.c b/src/lib/lib_13790.c index d9645ffac..7fb273b2b 100644 --- a/src/lib/lib_13790.c +++ b/src/lib/lib_13790.c @@ -5,33 +5,204 @@ #include "data.h" #include "types.h" -#if VERSION >= VERSION_NTSC_1_0 -// These are likely some of the same functions as ntsc-beta below, -// but it's not easy to tell which are which so leaving them separate for now. -void func00013790(void) -{ - // empty -} +#if VERSION < VERSION_NTSC_1_0 +u8 var8009c9e0nb[0x17e0]; -void func00013798(void) -{ - // empty -} +u32 var800606e0nb[] = { + 0xb8000000, 0x00000000, 0x00000000, 0x00227a00, + 0x007a348b, 0x00223434, 0x00115811, 0x00696900, + 0x00000000, 0x00009c00, 0x00004600, 0x00460000, + 0x00004600, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000046, 0x00229c11, 0x00346900, + 0x00229c11, 0x00699c11, 0x00005834, 0x00adad34, + 0x00118b34, 0x009cad7a, 0x00229c11, 0x00229c11, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00113411, 0x00000000, 0x0046ce00, + 0x00ad58de, 0x00466969, 0x009c9c69, 0x008b8b00, + 0x00469c00, 0x0022ce00, 0x00583400, 0x00345800, + 0x007ace69, 0x00005800, 0x00000000, 0x00000000, + 0x00000000, 0x00003446, 0x008b007a, 0x00588b00, + 0x008b008b, 0x0022007a, 0x00119c69, 0x008b0000, + 0x009c1100, 0x0022008b, 0x008b007a, 0x008b007a, + 0x00000000, 0x00000000, 0x00225869, 0x00000000, + 0x69582200, 0x009c698b, 0x00000000, 0x0046ce00, + 0x00222258, 0x00deef7a, 0x00ad1111, 0x0069ef9c, + 0x008b0000, 0x00460000, 0x008b0000, 0x00008b00, + 0x0058ce34, 0x00008b00, 0x00000000, 0x00000000, + 0x00000000, 0x00008b00, 0x008b008b, 0x00008b00, + 0x0011007a, 0x00118b46, 0x0058467a, 0x00cead22, + 0x009c8b00, 0x0000117a, 0x00698b46, 0x008b00ad, + 0x0034ad00, 0x0034ad00, 0x228b4600, 0x8b8b8b8b, + 0x00468b22, 0x0011008b, 0x00000000, 0x00007a00, + 0x00000000, 0x009c9c00, 0x00118b34, 0x22adbd46, + 0x008b8b34, 0x00000000, 0x008b0000, 0x00008b00, + 0x007a2269, 0x22adef9c, 0x00000000, 0x22adadad, + 0x00000000, 0x00226900, 0x008b008b, 0x00008b00, + 0x00007a00, 0x0000117a, 0x009c347a, 0x0000008b, + 0x00ce117a, 0x00002269, 0x008b227a, 0x00229c8b, + 0x00001100, 0x00001100, 0xad580000, 0x34343434, + 0x000058ad, 0x0000bd34, 0x00000000, 0x00112200, + 0x00000000, 0x22dede22, 0x00ce5858, 0x0046468b, + 0x008bad00, 0x00000000, 0x008b0000, 0x00008b00, + 0x00000000, 0x00008b00, 0x00003400, 0x00000000, + 0x00002200, 0x00691100, 0x008b008b, 0x00008b00, + 0x00691158, 0x0011008b, 0x007a9cad, 0x1122008b, + 0x008b008b, 0x00008b00, 0x008b008b, 0x0000227a, + 0x00002200, 0x00002200, 0x228b4600, 0x8b8b8b8b, + 0x00468b22, 0x00006900, 0x00000000, 0x00228b00, + 0x00000000, 0x008b8b00, 0x0034bd00, 0x00119c46, + 0x007a6969, 0x00000000, 0x00583400, 0x00345800, + 0x00000000, 0x00005800, 0x0011ff00, 0x00000000, + 0x00228b00, 0x008b0000, 0x00349c22, 0x008bce69, + 0x22bdad8b, 0x007a9c11, 0x00008b8b, 0x118b9c11, + 0x00349c22, 0x00005800, 0x00349c11, 0x00588b11, + 0x00228b00, 0x0069ad00, 0x00225869, 0x00000000, + 0x69582200, 0x0000bd00, 0x00000000, 0x00000000, + 0x00000000, 0x00464600, 0x00004600, 0x00000000, + 0x00000000, 0x00000000, 0x00004600, 0x00460000, + 0x00000000, 0x00000000, 0x00583400, 0x00000000, + 0x00000000, 0x58340000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x008b0000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00229c11, 0x00221100, + 0x11223400, 0x00003411, 0x11342200, 0x00343422, + 0x00343422, 0x00002222, 0x00220022, 0x00342222, + 0x00003434, 0x00341122, 0x22341100, 0x11110022, + 0x22221134, 0x00002200, 0x00343411, 0x00003400, + 0x00343411, 0x00113411, 0x00343434, 0x11341134, + 0x11220034, 0x34220034, 0x11340022, 0x11220034, + 0x00223422, 0x00008b34, 0x00460000, 0x00587a00, + 0x00005800, 0x00000000, 0x348b008b, 0x0069bd00, + 0x11de7a58, 0x00ad69de, 0x22ce7a9c, 0x11ce7aad, + 0x11ce7aad, 0x00ad7ade, 0x22ce00ce, 0x0069ce58, + 0x00008bce, 0x22ce22ce, 0x46ce4600, 0x7abd00ff, + 0x58ff46ce, 0x00ad7a9c, 0x11ce7a7a, 0x00ad7a8b, + 0x22ce7a7a, 0x118b7abd, 0x469ccece, 0x8b8b34ce, + 0x8b8b00bd, 0xbd8b22bd, 0x58ce00ce, 0x22bd00ce, + 0x00bd7aad, 0x00008b00, 0x007a1100, 0x00008b00, + 0x00694658, 0x00000000, 0x468b7abd, 0x00588b22, + 0x008b008b, 0x46460011, 0x008b007a, 0x118b3458, + 0x008b3458, 0x46460011, 0x008b008b, 0x00008b00, + 0x0000117a, 0x008b7a11, 0x008b0000, 0x589c58bd, + 0x11ad698b, 0x4646007a, 0x118b007a, 0x5846007a, + 0x118b007a, 0x46580011, 0x34228b46, 0x6934008b, + 0x007a008b, 0x58348b7a, 0x11696946, 0x00695846, + 0x00113458, 0x00008b00, 0x00116900, 0x00008b00, + 0x00110011, 0x00000000, 0x468b8b9c, 0x009c228b, + 0x00dead7a, 0x58340000, 0x008b007a, 0x11dead00, + 0x00dead00, 0x583400ad, 0x46deadbd, 0x00008b00, + 0x3411117a, 0x00dead00, 0x008b0000, 0x5846ad7a, + 0x118b8b8b, 0x5834007a, 0x11dead34, 0x5834007a, + 0x11dede46, 0x0058ad34, 0x00008b00, 0x5834008b, + 0x008b117a, 0x00bdde8b, 0x0022ad00, 0x0011bd00, + 0x00226900, 0x00008b00, 0x00008b00, 0x00008b00, + 0x00000000, 0x00000000, 0x348b348b, 0x469c8bad, + 0x008b007a, 0x347a0058, 0x008b009c, 0x008b008b, + 0x008b0000, 0x228b007a, 0x008b008b, 0x00008b00, + 0x46462269, 0x008b117a, 0x008b007a, 0x6934347a, + 0x118b34de, 0x118b009c, 0x008b0000, 0x228b009c, + 0x008b117a, 0x3434008b, 0x00008b00, 0x4646008b, + 0x0022ce00, 0x00adbd8b, 0x008b007a, 0x00008b00, + 0x008b0058, 0x00008b00, 0x00003446, 0x00008b00, + 0x00000000, 0x00000000, 0x00697a9c, 0x7a9c00bd, + 0x69cead58, 0x0058ad58, 0x22bdad34, 0x22cead8b, + 0x22bd2200, 0x0058ad58, 0x22ad00ce, 0x008bbd7a, + 0x007a7a00, 0x22bd228b, 0x69bdadbd, 0x8b9c00bd, + 0x69ce227a, 0x0058ad34, 0x22ce6900, 0x009cef69, + 0x22bd2258, 0x7a9c9c22, 0x0046ce34, 0x007aad11, + 0x00005800, 0x00580058, 0x22ad00ce, 0x0058bd34, + 0x00ad9c9c, 0x00008b00, 0x0000008b, 0x00008b00, + 0x00000000, 0x22222222, 0x00002211, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x0058588b, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x0000ce34, 0x0000007a, 0x1158ad00, + 0x00000000, 0x7a7a7a7a, 0x00693400, 0x00000000, + 0x22690000, 0x00000000, 0x0000008b, 0x00000000, + 0x0000589c, 0x11000000, 0x22690000, 0x00001100, + 0x00001100, 0x22690000, 0x008b7a00, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00004646, 0x00004600, 0x00464600, + 0x00000000, 0x00000000, 0x0046ad00, 0x00000000, + 0x008b0000, 0x00000000, 0x0000008b, 0x00000000, + 0x00116900, 0x00000000, 0x008b0000, 0x00006900, + 0x00006900, 0x008b0000, 0x00008b00, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00226900, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00008b00, 0x00008b00, 0x00008b00, + 0x00000000, 0x00000000, 0x00005800, 0x008b9c34, + 0x00cead69, 0x007aad9c, 0x008badbd, 0x007aad34, + 0x009cde7a, 0x008b9cce, 0x11cead69, 0x00589c00, + 0x008bad69, 0x008bad69, 0x00008b00, 0x7aad9c9c, + 0x22cead69, 0x007aad34, 0x22cead69, 0x008b9cde, + 0x22de9c69, 0x007aad9c, 0x009cde7a, 0x118b00ad, + 0x11ce00de, 0x34ce00de, 0x22ce34ad, 0x22ce00de, + 0x00bd9cad, 0x00008b00, 0x00008b00, 0x00008b00, + 0x229c347a, 0x00000000, 0x00000000, 0x009cad7a, + 0x008b007a, 0x69340034, 0x4634009c, 0x46ce9cbd, + 0x00226900, 0x4646008b, 0x008b008b, 0x00008b00, + 0x0000007a, 0x00de7a00, 0x00008b00, 0x46468b69, + 0x119c008b, 0x4646008b, 0x008b0069, 0x5846008b, + 0x008b0000, 0x008b7a58, 0x00226900, 0x008b008b, + 0x007a117a, 0x008b8b8b, 0x0058bd00, 0x008b008b, + 0x00464646, 0x00467a00, 0x00008b00, 0x00008b46, + 0x7a349c22, 0x00000000, 0x00000000, 0x4634227a, + 0x009c007a, 0x58460022, 0x4646009c, 0x34460034, + 0x00226900, 0x3446009c, 0x008b008b, 0x00008b00, + 0x0000007a, 0x008b6911, 0x00008b00, 0x46468b69, + 0x118b008b, 0x3458008b, 0x00ad0069, 0x584600ad, + 0x008b0000, 0x0069348b, 0x00226911, 0x008b009c, + 0x0011de00, 0x00adbd8b, 0x00699c11, 0x00469c34, + 0x00225858, 0x00008b00, 0x00008b00, 0x00008b00, + 0x00000000, 0x00000000, 0x00000000, 0x119c8bce, + 0x22adad58, 0x007a9c46, 0x0069adad, 0x1169ad46, + 0x008bbd7a, 0x0069adad, 0x22ad00bd, 0x118bce69, + 0x0000007a, 0x227a34ce, 0x008bbd7a, 0x7a699c46, + 0x69bd00ce, 0x007a9c22, 0x00bd9c58, 0x0069adad, + 0x22ce9c34, 0x008bad58, 0x00009c8b, 0x00699cad, + 0x11005800, 0x00580069, 0x11bd349c, 0x00009c00, + 0x00adad9c, 0x00008b00, 0x00008b00, 0x00008b00, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x0000008b, 0x00000000, 0x00000000, + 0x00004646, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x008b0000, 0x0000008b, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00226900, + 0x00000000, 0x00008b46, 0x00008b00, 0x00467a00, + 0x00000000, 0x00000000, 0x00000005, 0x00000001, + 0x00000018, 0x00000010, 0x00000001, +}; -void func000137a0(void) -{ - // empty -} +bool g_DHudInitialised = false; -void func000137a8(void) -{ - // empty -} +u32 var80061180nb[] = { + 0xe7000000, 0x00000000, 0xba001402, 0x00000000, + 0xba000602, 0x000000c0, 0xb900031d, 0x500a4240, + 0xfc30b261, 0x5566db6d, 0xba001301, 0x00000000, + 0xba000e02, 0x00000000, 0xb9000002, 0x00000000, + 0xfd700000, 0x800606e8, 0xf5700000, 0x07000000, + 0xe6000000, 0x00000000, 0xf3000000, 0x0753f080, + 0xe7000000, 0x00000000, 0xf5682000, 0x00000000, + 0xf2000000, 0x001fc050, 0xe6000000, 0x00000000, + 0xb8000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0xb8000000, 0x00000000, + 0xc0000000, 0x00000000, 0xfa000000, 0xffffff00, + 0xfb000000, 0x00000000, 0x00000000, 0x00000000, + 0x000000ff, 0x00000000, 0x00000000, 0x00000000, +}; #endif #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func00013fe0nb +glabel dhud00013fe0nb /* 13fe0: afa40000 */ sw $a0,0x0($sp) /* 13fe4: afa50004 */ sw $a1,0x4($sp) /* 13fe8: 03e00008 */ jr $ra @@ -41,7 +212,7 @@ glabel func00013fe0nb #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func00013ff0nb +glabel dhud00013ff0nb /* 13ff0: afa40000 */ sw $a0,0x0($sp) /* 13ff4: afa50004 */ sw $a1,0x4($sp) /* 13ff8: 03e00008 */ jr $ra @@ -51,15 +222,20 @@ glabel func00013ff0nb #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func00014000nb +glabel dhud00014000nb /* 14000: 03e00008 */ jr $ra /* 14004: 00000000 */ sll $zero,$zero,0x0 ); #endif -#if VERSION < VERSION_NTSC_1_0 +#if VERSION >= VERSION_NTSC_1_0 +void dhudInit(void) +{ + // empty +} +#else GLOBAL_ASM( -glabel func00014008nb +glabel dhudInit /* 14008: 3c0e8006 */ lui $t6,0x8006 /* 1400c: 25ce1238 */ addiu $t6,$t6,0x1238 /* 14010: 8dc10000 */ lw $at,0x0($t6) @@ -136,16 +312,21 @@ glabel func00014008nb ); #endif -#if VERSION < VERSION_NTSC_1_0 +#if VERSION >= VERSION_NTSC_1_0 +void dhudTryClear(void) +{ + // empty +} +#else GLOBAL_ASM( -glabel func00014124nb +glabel dhudTryClear /* 14124: 3c0e8006 */ lui $t6,0x8006 /* 14128: 8dce117c */ lw $t6,0x117c($t6) /* 1412c: 27bdffe8 */ addiu $sp,$sp,-24 /* 14130: afbf0014 */ sw $ra,0x14($sp) /* 14134: 51c00004 */ beqzl $t6,.NB00014148 /* 14138: 8fbf0014 */ lw $ra,0x14($sp) -/* 1413c: 0c0050b5 */ jal func000142d4nb +/* 1413c: 0c0050b5 */ jal dhudClear /* 14140: 00000000 */ sll $zero,$zero,0x0 /* 14144: 8fbf0014 */ lw $ra,0x14($sp) .NB00014148: @@ -155,9 +336,21 @@ glabel func00014124nb ); #endif +#if VERSION >= VERSION_NTSC_1_0 +void func000137a0(void) +{ + // empty +} + +void func000137a8(void) +{ + // empty +} +#endif + #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func00014154nb +glabel dhud00014154nb /* 14154: 3c078006 */ lui $a3,0x8006 /* 14158: 8ce7120c */ lw $a3,0x120c($a3) /* 1415c: afa60008 */ sw $a2,0x8($sp) @@ -250,7 +443,7 @@ glabel func00014154nb #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func0001429cnb +glabel dhud0001429cnb /* 1429c: 3c0e8006 */ lui $t6,0x8006 /* 142a0: 8dce117c */ lw $t6,0x117c($t6) /* 142a4: 3c0f8006 */ lui $t7,0x8006 @@ -271,7 +464,7 @@ glabel func0001429cnb #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel func000142d4nb +glabel dhudClear /* 142d4: 27bdffd8 */ addiu $sp,$sp,-40 /* 142d8: 3c0e8006 */ lui $t6,0x8006 /* 142dc: 8dce117c */ lw $t6,0x117c($t6) @@ -293,7 +486,7 @@ glabel func000142d4nb /* 14318: 02002025 */ or $a0,$s0,$zero .NB0001431c: /* 1431c: 02402825 */ or $a1,$s2,$zero -/* 14320: 0c005055 */ jal func00014154nb +/* 14320: 0c005055 */ jal dhud00014154nb /* 14324: 00003025 */ or $a2,$zero,$zero /* 14328: 26100001 */ addiu $s0,$s0,0x1 /* 1432c: 5611fffb */ bnel $s0,$s1,.NB0001431c @@ -303,9 +496,9 @@ glabel func000142d4nb /* 1433c: 00008025 */ or $s0,$zero,$zero /* 14340: 24180001 */ addiu $t8,$zero,0x1 /* 14344: 3c018006 */ lui $at,0x8006 -/* 14348: 0c0050a7 */ jal func0001429cnb +/* 14348: 0c0050a7 */ jal dhud0001429cnb /* 1434c: ac381178 */ sw $t8,0x1178($at) -/* 14350: 0c005000 */ jal func00014000nb +/* 14350: 0c005000 */ jal dhud00014000nb /* 14354: 00000000 */ sll $zero,$zero,0x0 /* 14358: 3c018006 */ lui $at,0x8006 /* 1435c: ac201214 */ sw $zero,0x1214($at) @@ -321,13 +514,13 @@ glabel func000142d4nb #endif #if VERSION >= VERSION_NTSC_1_0 -void func000137b0(s32 arg0, s32 arg1) +void dhudSetPos(s32 arg0, s32 arg1) { // empty } #else GLOBAL_ASM( -glabel func000137b0 +glabel dhudSetPos /* 1437c: 3c0e8006 */ lui $t6,0x8006 /* 14380: 8dce117c */ lw $t6,0x117c($t6) /* 14384: 27bdffe8 */ addiu $sp,$sp,-24 @@ -373,13 +566,13 @@ glabel func000137b0 #endif #if VERSION >= VERSION_NTSC_1_0 -void func000137bc(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +void dhudSetFgColour(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { // empty } #else GLOBAL_ASM( -glabel func000137bc +glabel dhudSetFgColour /* 14418: 3c0e8006 */ lui $t6,0x8006 /* 1441c: 8dce117c */ lw $t6,0x117c($t6) /* 14420: 00047e00 */ sll $t7,$a0,0x18 @@ -400,13 +593,13 @@ glabel func000137bc #endif #if VERSION >= VERSION_NTSC_1_0 -void func000137d0(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +void dhudSetBgColour(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { // empty } #else GLOBAL_ASM( -glabel func000137d0 +glabel dhudSetBgColour /* 14454: 3c0e8006 */ lui $t6,0x8006 /* 14458: 8dce117c */ lw $t6,0x117c($t6) /* 1445c: 00047e00 */ sll $t7,$a0,0x18 @@ -427,13 +620,13 @@ glabel func000137d0 #endif #if VERSION >= VERSION_NTSC_1_0 -void func000137e4(s32 arg0) +void dhudPrintChar(u8 c) { // empty } #else GLOBAL_ASM( -glabel func000137e4 +glabel dhudPrintChar /* 14490: 27bdffd8 */ addiu $sp,$sp,-40 /* 14494: afbf0014 */ sw $ra,0x14($sp) /* 14498: 0c002f77 */ jal viGetWidth @@ -469,7 +662,7 @@ glabel func000137e4 /* 14508: 8c640000 */ lw $a0,0x0($v1) /* 1450c: 8ce50000 */ lw $a1,0x0($a3) /* 14510: afa2001c */ sw $v0,0x1c($sp) -/* 14514: 0c005055 */ jal func00014154nb +/* 14514: 0c005055 */ jal dhud00014154nb /* 14518: afa80020 */ sw $t0,0x20($sp) /* 1451c: 8fa2001c */ lw $v0,0x1c($sp) /* 14520: 8fa80020 */ lw $t0,0x20($sp) @@ -511,22 +704,22 @@ glabel func000137e4 #endif #if VERSION >= VERSION_NTSC_1_0 -void func000137ec(s32 arg0, s32 arg1, s32 arg2) +void dhudPrintCharAt(s32 arg0, s32 arg1, s32 arg2) { // empty } #else GLOBAL_ASM( -glabel func000137ec +glabel dhudPrintCharAt /* 1459c: 3c0e8006 */ lui $t6,0x8006 /* 145a0: 8dce117c */ lw $t6,0x117c($t6) /* 145a4: 27bdffe8 */ addiu $sp,$sp,-24 /* 145a8: afbf0014 */ sw $ra,0x14($sp) /* 145ac: 11c00005 */ beqz $t6,.NB000145c4 /* 145b0: afa60020 */ sw $a2,0x20($sp) -/* 145b4: 0c0050df */ jal func000137b0 +/* 145b4: 0c0050df */ jal dhudSetPos /* 145b8: 00000000 */ sll $zero,$zero,0x0 -/* 145bc: 0c005124 */ jal func000137e4 +/* 145bc: 0c005124 */ jal dhudPrintChar /* 145c0: 93a40023 */ lbu $a0,0x23($sp) .NB000145c4: /* 145c4: 8fbf0014 */ lw $ra,0x14($sp) @@ -537,13 +730,13 @@ glabel func000137ec #endif #if VERSION >= VERSION_NTSC_1_0 -void func000137fc(char *text) +void dhudPrintString(char *text) { // empty } #else GLOBAL_ASM( -glabel func000137fc +glabel dhudPrintString /* 145d4: 3c0e8006 */ lui $t6,0x8006 /* 145d8: 8dce117c */ lw $t6,0x117c($t6) /* 145dc: 27bdffe0 */ addiu $sp,$sp,-32 @@ -556,7 +749,7 @@ glabel func000137fc /* 145f8: 12000006 */ beqz $s0,.NB00014614 /* 145fc: 320400ff */ andi $a0,$s0,0xff .NB00014600: -/* 14600: 0c005124 */ jal func000137e4 +/* 14600: 0c005124 */ jal dhudPrintChar /* 14604: 26310001 */ addiu $s1,$s1,0x1 /* 14608: 92300000 */ lbu $s0,0x0($s1) /* 1460c: 5600fffc */ bnezl $s0,.NB00014600 @@ -570,50 +763,27 @@ glabel func000137fc ); #endif -#if VERSION >= VERSION_NTSC_1_0 -void func00013804(s32 arg0, s32 arg1, s32 arg2) +void dhudPrintStringAt(s32 x, s32 y, char *str) { - // empty -} -#else -GLOBAL_ASM( -glabel func00013804 -/* 14628: 3c0e8006 */ lui $t6,0x8006 -/* 1462c: 8dce117c */ lw $t6,0x117c($t6) -/* 14630: 27bdffe0 */ addiu $sp,$sp,-32 -/* 14634: afb10018 */ sw $s1,0x18($sp) -/* 14638: 00c08825 */ or $s1,$a2,$zero -/* 1463c: afbf001c */ sw $ra,0x1c($sp) -/* 14640: 11c0000b */ beqz $t6,.NB00014670 -/* 14644: afb00014 */ sw $s0,0x14($sp) -/* 14648: 0c0050df */ jal func000137b0 -/* 1464c: 00000000 */ sll $zero,$zero,0x0 -/* 14650: 92300000 */ lbu $s0,0x0($s1) -/* 14654: 12000006 */ beqz $s0,.NB00014670 -/* 14658: 320400ff */ andi $a0,$s0,0xff -.NB0001465c: -/* 1465c: 0c005124 */ jal func000137e4 -/* 14660: 26310001 */ addiu $s1,$s1,0x1 -/* 14664: 92300000 */ lbu $s0,0x0($s1) -/* 14668: 5600fffc */ bnezl $s0,.NB0001465c -/* 1466c: 320400ff */ andi $a0,$s0,0xff -.NB00014670: -/* 14670: 8fbf001c */ lw $ra,0x1c($sp) -/* 14674: 8fb00014 */ lw $s0,0x14($sp) -/* 14678: 8fb10018 */ lw $s1,0x18($sp) -/* 1467c: 03e00008 */ jr $ra -/* 14680: 27bd0020 */ addiu $sp,$sp,0x20 -); +#if VERSION < VERSION_NTSC_1_0 + if (g_DHudInitialised) { + dhudSetPos(x, y); + + while (*str != '\0') { + dhudPrintChar(*str++); + } + } #endif +} #if VERSION >= VERSION_NTSC_1_0 -Gfx *func00013814(Gfx *gdl) +Gfx *dhudRender(Gfx *gdl) { return gdl; } #else GLOBAL_ASM( -glabel func00013814 +glabel dhudRender /* 14684: 27bdff78 */ addiu $sp,$sp,-136 /* 14688: 3c0e8006 */ lui $t6,0x8006 /* 1468c: 8dce117c */ lw $t6,0x117c($t6) diff --git a/src/lib/main.c b/src/lib/main.c index 488ddff88..d83726b59 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -630,7 +630,7 @@ glabel mainInit /* d738: 00000000 */ nop /* d73c: 0fc54f94 */ jal func0f1531a0 /* d740: 00000000 */ nop -/* d744: 0c004d48 */ jal func00013790 +/* d744: 0c004d48 */ jal dhudInit /* d748: 00000000 */ nop /* d74c: 0fc4a0f8 */ jal func0f127910 /* d750: 00000000 */ nop @@ -1033,7 +1033,7 @@ glabel mainInit /* d9fc: 00000000 */ nop /* da00: 0fc54c68 */ jal func0f1531a0 /* da04: 00000000 */ nop -/* da08: 0c004de4 */ jal func00013790 +/* da08: 0c004de4 */ jal dhudInit /* da0c: 00000000 */ nop /* da10: 0fc49e44 */ jal func0f127910 /* da14: 00000000 */ nop @@ -1406,7 +1406,7 @@ glabel mainInit /* df0c: 00000000 */ sll $zero,$zero,0x0 /* df10: 0fc53628 */ jal func0f1531a0 /* df14: 00000000 */ sll $zero,$zero,0x0 -/* df18: 0c005002 */ jal func00014008nb +/* df18: 0c005002 */ jal dhudInit /* df1c: 00000000 */ sll $zero,$zero,0x0 /* df20: 0fc48954 */ jal func0f127910 /* df24: 00000000 */ sll $zero,$zero,0x0 @@ -1650,7 +1650,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // cheatsDisableAll(); // func0000e9c0(); // func0f1531a0(); -// func00013790(); +// dhudInit(); // func0f127910(); // frametimeInit(); // stub0f00b200(); @@ -1939,7 +1939,7 @@ void mainLoop(void) gfxInitMemory(); joy00013dfc(); - func00013798(); + dhudTryClear(); func0f17608c(g_StageNum); lvInit(g_StageNum); viAllocateFbs(g_StageNum); @@ -2476,7 +2476,7 @@ glabel mainLoop /* e70c: 00000000 */ sll $zero,$zero,0x0 /* e710: 0c005310 */ jal joy00013dfc /* e714: 00000000 */ sll $zero,$zero,0x0 -/* e718: 0c005049 */ jal func00014124nb +/* e718: 0c005049 */ jal dhudTryClear /* e71c: 00000000 */ sll $zero,$zero,0x0 /* e720: 3c048006 */ lui $a0,0x8006 /* e724: 0fc5c34b */ jal func0f17608c @@ -2988,9 +2988,9 @@ glabel mainTick /* ed8c: ae0a0000 */ sw $t2,0x0($s0) /* ed90: ae000004 */ sw $zero,0x4($s0) .NB0000ed94: -/* ed94: 0c0051a1 */ jal func00013814 +/* ed94: 0c0051a1 */ jal dhudRender /* ed98: 8fa40094 */ lw $a0,0x94($sp) -/* ed9c: 0c0050b5 */ jal func000142d4nb +/* ed9c: 0c0050b5 */ jal dhudClear /* eda0: afa20094 */ sw $v0,0x94($sp) /* eda4: 0fc4663a */ jal debug0f11ed70 /* eda8: 00000000 */ sll $zero,$zero,0x0 @@ -3139,8 +3139,8 @@ u32 var8005f690nb[] = { // gDPFillRectangle(gdl++, 0, 0, viGetWidth() - 1, viGetHeight() - 1); // } // -// gdl = func00013814(gdl); -// func000142d4nb(); +// gdl = dhudRender(gdl); +// dhudClear(); // // if (debug0f11ed70() >= 2) { // gdl = profileRender(gdl);