buffer vars

This commit is contained in:
MegaMech 2024-09-22 21:45:20 -06:00 committed by GitHub
parent 43b7e412e9
commit a87c8984d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 242 additions and 242 deletions

View File

@ -89,11 +89,11 @@ glabel add_ui_element
/* 09F254 8009E654 AFBF001C */ sw $ra, 0x1c($sp)
/* 09F258 8009E658 AFA7008C */ sw $a3, 0x8c($sp)
/* 09F25C 8009E65C 00077600 */ sll $t6, $a3, 0x18
/* 09F260 8009E660 3C1F8019 */ lui $ra, %hi(D_8018D9E0) # $ra, 0x8019
/* 09F260 8009E660 3C1F8019 */ lui $ra, %hi(gMenuItems) # $ra, 0x8019
/* 09F264 8009E664 000E3E03 */ sra $a3, $t6, 0x18
/* 09F268 8009E668 AFA40080 */ sw $a0, 0x80($sp)
/* 09F26C 8009E66C 00001025 */ move $v0, $zero
/* 09F270 8009E670 27FFD9E0 */ addiu $ra, %lo(D_8018D9E0) # addiu $ra, $ra, -0x2620
/* 09F270 8009E670 27FFD9E0 */ addiu $ra, %lo(gMenuItems) # addiu $ra, $ra, -0x2620
.L8009E674:
/* 09F274 8009E674 8FF80000 */ lw $t8, ($ra)
/* 09F278 8009E678 24420001 */ addiu $v0, $v0, 1
@ -246,16 +246,16 @@ glabel L8009E888
/* 09F4A0 8009E8A0 0C026E55 */ jal func_8009B954
/* 09F4A4 8009E8A4 248414C8 */ addiu $a0, %lo(D_020014C8) # addiu $a0, $a0, 0x14c8
/* 09F4A8 8009E8A8 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F4AC 8009E8AC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F4B0 8009E8B0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F4AC 8009E8AC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F4B0 8009E8B0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F4B4 8009E8B4 3C050200 */ lui $a1, %hi(D_020014C8) # $a1, 0x200
/* 09F4B8 8009E8B8 8FE6000C */ lw $a2, 0xc($ra)
/* 09F4BC 8009E8BC 8FE70010 */ lw $a3, 0x10($ra)
/* 09F4C0 8009E8C0 24A514C8 */ addiu $a1, %lo(D_020014C8) # addiu $a1, $a1, 0x14c8
/* 09F4C4 8009E8C4 0C026E9D */ jal func_8009BA74
/* 09F4C8 8009E8C8 8D040000 */ lw $a0, ($t0)
/* 09F4CC 8009E8CC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F4D0 8009E8D0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F4CC 8009E8CC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F4D0 8009E8D0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F4D4 8009E8D4 0C026E66 */ jal func_8009B998
/* 09F4D8 8009E8D8 AD020000 */ sw $v0, ($t0)
/* 09F4DC 8009E8DC 1000033D */ b .L8009F5D4
@ -270,16 +270,16 @@ glabel L8009E8E4
/* 09F4FC 8009E8FC 0C026E55 */ jal func_8009B954
/* 09F500 8009E900 24841540 */ addiu $a0, %lo(D_02001540) # addiu $a0, $a0, 0x1540
/* 09F504 8009E904 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F508 8009E908 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F50C 8009E90C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F508 8009E908 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F50C 8009E90C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F510 8009E910 3C050200 */ lui $a1, %hi(D_02001540) # $a1, 0x200
/* 09F514 8009E914 8FE6000C */ lw $a2, 0xc($ra)
/* 09F518 8009E918 8FE70010 */ lw $a3, 0x10($ra)
/* 09F51C 8009E91C 24A51540 */ addiu $a1, %lo(D_02001540) # addiu $a1, $a1, 0x1540
/* 09F520 8009E920 0C026E9D */ jal func_8009BA74
/* 09F524 8009E924 8D040000 */ lw $a0, ($t0)
/* 09F528 8009E928 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F52C 8009E92C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F528 8009E928 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F52C 8009E92C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F530 8009E930 0C026E66 */ jal func_8009B998
/* 09F534 8009E934 AD020000 */ sw $v0, ($t0)
/* 09F538 8009E938 10000326 */ b .L8009F5D4
@ -322,16 +322,16 @@ glabel L8009E9AC
/* 09F5C0 8009E9C0 0C026E55 */ jal func_8009B954
/* 09F5C4 8009E9C4 248415A4 */ addiu $a0, %lo(D_020015A4) # addiu $a0, $a0, 0x15a4
/* 09F5C8 8009E9C8 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F5CC 8009E9CC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F5D0 8009E9D0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F5CC 8009E9CC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F5D0 8009E9D0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F5D4 8009E9D4 3C050200 */ lui $a1, %hi(D_020015A4) # $a1, 0x200
/* 09F5D8 8009E9D8 8FE6000C */ lw $a2, 0xc($ra)
/* 09F5DC 8009E9DC 8FE70010 */ lw $a3, 0x10($ra)
/* 09F5E0 8009E9E0 24A515A4 */ addiu $a1, %lo(D_020015A4) # addiu $a1, $a1, 0x15a4
/* 09F5E4 8009E9E4 0C026E9D */ jal func_8009BA74
/* 09F5E8 8009E9E8 8D040000 */ lw $a0, ($t0)
/* 09F5EC 8009E9EC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F5F0 8009E9F0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F5EC 8009E9EC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F5F0 8009E9F0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F5F4 8009E9F4 AD020000 */ sw $v0, ($t0)
/* 09F5F8 8009E9F8 244F0008 */ addiu $t7, $v0, 8
/* 09F5FC 8009E9FC AD0F0000 */ sw $t7, ($t0)
@ -343,8 +343,8 @@ glabel L8009E9AC
/* 09F614 8009EA14 AFA2006C */ sw $v0, 0x6c($sp)
/* 09F618 8009EA18 8FB9006C */ lw $t9, 0x6c($sp)
/* 09F61C 8009EA1C 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F620 8009EA20 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F624 8009EA24 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F620 8009EA20 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F624 8009EA24 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F628 8009EA28 AF220004 */ sw $v0, 4($t9)
/* 09F62C 8009EA2C 8D030000 */ lw $v1, ($t0)
/* 09F630 8009EA30 3C180708 */ lui $t8, (0x07080200 >> 16) # lui $t8, 0x708
@ -425,16 +425,16 @@ glabel L8009E9AC
/* 09F75C 8009EB5C 0C026E55 */ jal func_8009B954
/* 09F760 8009EB60 248415CC */ addiu $a0, %lo(D_020015CC) # addiu $a0, $a0, 0x15cc
/* 09F764 8009EB64 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F768 8009EB68 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F76C 8009EB6C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F768 8009EB68 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F76C 8009EB6C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F770 8009EB70 3C050200 */ lui $a1, %hi(D_020015CC) # $a1, 0x200
/* 09F774 8009EB74 8FE6000C */ lw $a2, 0xc($ra)
/* 09F778 8009EB78 8FE70010 */ lw $a3, 0x10($ra)
/* 09F77C 8009EB7C 24A515CC */ addiu $a1, %lo(D_020015CC) # addiu $a1, $a1, 0x15cc
/* 09F780 8009EB80 0C026E9D */ jal func_8009BA74
/* 09F784 8009EB84 8D040000 */ lw $a0, ($t0)
/* 09F788 8009EB88 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F78C 8009EB8C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F788 8009EB88 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F78C 8009EB8C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F790 8009EB90 0C026E66 */ jal func_8009B998
/* 09F794 8009EB94 AD020000 */ sw $v0, ($t0)
/* 09F798 8009EB98 3C040200 */ lui $a0, %hi(D_02001630) # $a0, 0x200
@ -444,16 +444,16 @@ glabel L8009E9AC
/* 09F7A8 8009EBA8 0C026E55 */ jal func_8009B954
/* 09F7AC 8009EBAC 24841630 */ addiu $a0, %lo(D_02001630) # addiu $a0, $a0, 0x1630
/* 09F7B0 8009EBB0 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F7B4 8009EBB4 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F7B8 8009EBB8 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F7B4 8009EBB4 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F7B8 8009EBB8 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F7BC 8009EBBC 3C050200 */ lui $a1, %hi(D_02001630) # $a1, 0x200
/* 09F7C0 8009EBC0 8FE6000C */ lw $a2, 0xc($ra)
/* 09F7C4 8009EBC4 8FE70010 */ lw $a3, 0x10($ra)
/* 09F7C8 8009EBC8 24A51630 */ addiu $a1, %lo(D_02001630) # addiu $a1, $a1, 0x1630
/* 09F7CC 8009EBCC 0C026E9D */ jal func_8009BA74
/* 09F7D0 8009EBD0 8D040000 */ lw $a0, ($t0)
/* 09F7D4 8009EBD4 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F7D8 8009EBD8 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F7D4 8009EBD4 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F7D8 8009EBD8 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F7DC 8009EBDC 0C026E66 */ jal func_8009B998
/* 09F7E0 8009EBE0 AD020000 */ sw $v0, ($t0)
/* 09F7E4 8009EBE4 3C040200 */ lui $a0, %hi(D_02001658) # $a0, 0x200
@ -463,16 +463,16 @@ glabel L8009E9AC
/* 09F7F4 8009EBF4 0C026E55 */ jal func_8009B954
/* 09F7F8 8009EBF8 24841658 */ addiu $a0, %lo(D_02001658) # addiu $a0, $a0, 0x1658
/* 09F7FC 8009EBFC 8FBF007C */ lw $ra, 0x7c($sp)
/* 09F800 8009EC00 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F804 8009EC04 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F800 8009EC00 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F804 8009EC04 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F808 8009EC08 3C050200 */ lui $a1, %hi(D_02001658) # $a1, 0x200
/* 09F80C 8009EC0C 8FE6000C */ lw $a2, 0xc($ra)
/* 09F810 8009EC10 8FE70010 */ lw $a3, 0x10($ra)
/* 09F814 8009EC14 24A51658 */ addiu $a1, %lo(D_02001658) # addiu $a1, $a1, 0x1658
/* 09F818 8009EC18 0C026E9D */ jal func_8009BA74
/* 09F81C 8009EC1C 8D040000 */ lw $a0, ($t0)
/* 09F820 8009EC20 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019
/* 09F824 8009EC24 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4
/* 09F820 8009EC20 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019
/* 09F824 8009EC24 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4
/* 09F828 8009EC28 0C026E66 */ jal func_8009B998
/* 09F82C 8009EC2C AD020000 */ sw $v0, ($t0)
/* 09F830 8009EC30 10000268 */ b .L8009F5D4

View File

@ -13,16 +13,16 @@ glabel load_menu_img
/* 099DB0 800991B0 00408825 */ move $s1, $v0
/* 099DB4 800991B4 24160003 */ li $s6, 3
/* 099DB8 800991B8 11C0006C */ beqz $t6, .L8009936C
/* 099DBC 800991BC 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019
/* 099DC0 800991C0 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019
/* 099DBC 800991BC 3C158019 */ lui $s5, %hi(gMenuTextureBuffer) # $s5, 0x8019
/* 099DC0 800991C0 3C148019 */ lui $s4, %hi(gMenuCompressedBuffer) # $s4, 0x8019
/* 099DC4 800991C4 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019
/* 099DC8 800991C8 3C128019 */ lui $s2, %hi(gMenuTextureBufferIndex) # $s2, 0x8019
/* 099DCC 800991CC 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019
/* 099DD0 800991D0 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8
/* 099DCC 800991CC 3C108019 */ lui $s0, %hi(sMenuTextureMap) # $s0, 0x8019
/* 099DD0 800991D0 2610E118 */ addiu $s0, %lo(sMenuTextureMap) # addiu $s0, $s0, -0x1ee8
/* 099DD4 800991D4 2652E110 */ addiu $s2, %lo(gMenuTextureBufferIndex) # addiu $s2, $s2, -0x1ef0
/* 099DD8 800991D8 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8
/* 099DDC 800991DC 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c
/* 099DE0 800991E0 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650
/* 099DDC 800991DC 2694D9B4 */ addiu $s4, %lo(gMenuCompressedBuffer) # addiu $s4, $s4, -0x264c
/* 099DE0 800991E0 26B5D9B0 */ addiu $s5, %lo(gMenuTextureBuffer) # addiu $s5, $s5, -0x2650
/* 099DE4 800991E4 8E630000 */ lw $v1, ($s3)
.L800991E8:
/* 099DE8 800991E8 00002825 */ move $a1, $zero

View File

@ -10,14 +10,14 @@ glabel func_80099394
/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual_dupe
/* 099FB8 800993B8 AFB00018 */ sw $s0, 0x18($sp)
/* 099FBC 800993BC 8C4E0004 */ lw $t6, 4($v0)
/* 099FC0 800993C0 3C168019 */ lui $s6, %hi(D_8018D9B0) # $s6, 0x8019
/* 099FC0 800993C0 3C168019 */ lui $s6, %hi(gMenuTextureBuffer) # $s6, 0x8019
/* 099FC4 800993C4 00409025 */ move $s2, $v0
/* 099FC8 800993C8 11C0004E */ beqz $t6, .L80099504
/* 099FCC 800993CC 26D6D9B0 */ addiu $s6, %lo(D_8018D9B0) # addiu $s6, $s6, -0x2650
/* 099FCC 800993CC 26D6D9B0 */ addiu $s6, %lo(gMenuTextureBuffer) # addiu $s6, $s6, -0x2650
/* 099FD0 800993D0 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019
/* 099FD4 800993D4 3C138019 */ lui $s3, %hi(gMenuTextureBufferIndex) # $s3, 0x8019
/* 099FD8 800993D8 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019
/* 099FDC 800993DC 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8
/* 099FD8 800993D8 3C118019 */ lui $s1, %hi(sMenuTextureMap) # $s1, 0x8019
/* 099FDC 800993DC 2631E118 */ addiu $s1, %lo(sMenuTextureMap) # addiu $s1, $s1, -0x1ee8
/* 099FE0 800993E0 2673E110 */ addiu $s3, %lo(gMenuTextureBufferIndex) # addiu $s3, $s3, -0x1ef0
/* 099FE4 800993E4 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8
/* 099FE8 800993E8 24150005 */ li $s5, 5

View File

@ -9,18 +9,18 @@ glabel func_8009952C
/* 09A148 80099548 0C026449 */ jal segmented_to_virtual_dupe
/* 09A14C 8009954C AFB00014 */ sw $s0, 0x14($sp)
/* 09A150 80099550 8C4E0004 */ lw $t6, 4($v0)
/* 09A154 80099554 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019
/* 09A154 80099554 3C158019 */ lui $s5, %hi(gMenuTextureBuffer) # $s5, 0x8019
/* 09A158 80099558 00408825 */ move $s1, $v0
/* 09A15C 8009955C 11C00046 */ beqz $t6, .L80099678
/* 09A160 80099560 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650
/* 09A164 80099564 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019
/* 09A160 80099560 26B5D9B0 */ addiu $s5, %lo(gMenuTextureBuffer) # addiu $s5, $s5, -0x2650
/* 09A164 80099564 3C148019 */ lui $s4, %hi(gMenuCompressedBuffer) # $s4, 0x8019
/* 09A168 80099568 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019
/* 09A16C 8009956C 3C128019 */ lui $s2, %hi(gMenuTextureBufferIndex) # $s2, 0x8019
/* 09A170 80099570 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019
/* 09A174 80099574 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8
/* 09A170 80099570 3C108019 */ lui $s0, %hi(sMenuTextureMap) # $s0, 0x8019
/* 09A174 80099574 2610E118 */ addiu $s0, %lo(sMenuTextureMap) # addiu $s0, $s0, -0x1ee8
/* 09A178 80099578 2652E110 */ addiu $s2, %lo(gMenuTextureBufferIndex) # addiu $s2, $s2, -0x1ef0
/* 09A17C 8009957C 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8
/* 09A180 80099580 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c
/* 09A180 80099580 2694D9B4 */ addiu $s4, %lo(gMenuCompressedBuffer) # addiu $s4, $s4, -0x264c
/* 09A184 80099584 8E630000 */ lw $v1, ($s3)
.L80099588:
/* 09A188 80099588 00002825 */ move $a1, $zero

View File

@ -17,14 +17,14 @@ glabel load_menu_img2
/* 09A2F8 800996F8 241E0002 */ li $fp, 2
/* 09A2FC 800996FC 11C0008A */ beqz $t6, .L80099928
/* 09A300 80099700 2417FFFF */ li $s7, -1
/* 09A304 80099704 3C158019 */ lui $s5, %hi(D_8018D9B4) # $s5, 0x8019
/* 09A304 80099704 3C158019 */ lui $s5, %hi(gMenuCompressedBuffer) # $s5, 0x8019
/* 09A308 80099708 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019
/* 09A30C 8009970C 3C138019 */ lui $s3, %hi(gMenuTextureBufferIndex) # $s3, 0x8019
/* 09A310 80099710 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019
/* 09A314 80099714 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8
/* 09A310 80099710 3C118019 */ lui $s1, %hi(sMenuTextureMap) # $s1, 0x8019
/* 09A314 80099714 2631E118 */ addiu $s1, %lo(sMenuTextureMap) # addiu $s1, $s1, -0x1ee8
/* 09A318 80099718 2673E110 */ addiu $s3, %lo(gMenuTextureBufferIndex) # addiu $s3, $s3, -0x1ef0
/* 09A31C 8009971C 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8
/* 09A320 80099720 26B5D9B4 */ addiu $s5, %lo(D_8018D9B4) # addiu $s5, $s5, -0x264c
/* 09A320 80099720 26B5D9B4 */ addiu $s5, %lo(gMenuCompressedBuffer) # addiu $s5, $s5, -0x264c
/* 09A324 80099724 24160001 */ li $s6, 1
/* 09A328 80099728 8E830000 */ lw $v1, ($s4)
.L8009972C:
@ -100,9 +100,9 @@ glabel load_menu_img2
/* 09A418 80099818 8EA60000 */ lw $a2, ($s5)
.L8009981C:
/* 09A41C 8009981C 1257000A */ beq $s2, $s7, .L80099848
/* 09A420 80099820 3C0D8019 */ lui $t5, %hi(D_8018D9B0) # $t5, 0x8019
/* 09A420 80099820 3C0D8019 */ lui $t5, %hi(gMenuTextureBuffer) # $t5, 0x8019
/* 09A424 80099824 12400011 */ beqz $s2, .L8009986C
/* 09A428 80099828 3C058019 */ lui $a1, %hi(D_8018D9B8) # 0x8019
/* 09A428 80099828 3C058019 */ lui $a1, %hi(sTKMK00_LowResBuffer) # 0x8019
/* 09A42C 8009982C 52560007 */ beql $s2, $s6, .L8009984C
/* 09A430 80099830 8E6B0000 */ lw $t3, ($s3)
/* 09A434 80099834 525E000E */ beql $s2, $fp, .L80099870
@ -113,7 +113,7 @@ glabel load_menu_img2
.L80099848:
/* 09A448 80099848 8E6B0000 */ lw $t3, ($s3)
.L8009984C:
/* 09A44C 8009984C 8DADD9B0 */ lw $t5, %lo(D_8018D9B0)($t5)
/* 09A44C 8009984C 8DADD9B0 */ lw $t5, %lo(gMenuTextureBuffer)($t5)
/* 09A450 80099850 8EA40000 */ lw $a0, ($s5)
/* 09A454 80099854 000B6040 */ sll $t4, $t3, 1
/* 09A458 80099858 0C010034 */ jal mio0decode
@ -125,17 +125,17 @@ glabel load_menu_img2
/* 09A46C 8009986C 860E0000 */ lh $t6, ($s0)
.L80099870:
/* 09A470 80099870 24020001 */ li $v0, 1
/* 09A474 80099874 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019
/* 09A474 80099874 3C198019 */ lui $t9, %hi(gMenuTextureBuffer) # $t9, 0x8019
/* 09A478 80099878 16CE0003 */ bne $s6, $t6, .L80099888
/* 09A47C 8009987C 00000000 */ nop
/* 09A480 80099880 10000001 */ b .L80099888
/* 09A484 80099884 240200BE */ li $v0, 190
.L80099888:
/* 09A488 80099888 8E6F0000 */ lw $t7, ($s3)
/* 09A48C 8009988C 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9)
/* 09A48C 8009988C 8F39D9B0 */ lw $t9, %lo(gMenuTextureBuffer)($t9)
/* 09A490 80099890 8EA40000 */ lw $a0, ($s5)
/* 09A494 80099894 000FC040 */ sll $t8, $t7, 1
/* 09A498 80099898 8CA5D9B8 */ lw $a1, %lo(D_8018D9B8)($a1) # -0x2648($a1)
/* 09A498 80099898 8CA5D9B8 */ lw $a1, %lo(sTKMK00_LowResBuffer)($a1) # -0x2648($a1)
/* 09A49C 8009989C 00403825 */ move $a3, $v0
/* 09A4A0 800998A0 0C010174 */ jal tkmk00decode
/* 09A4A4 800998A4 03193021 */ addu $a2, $t8, $t9

View File

@ -24,10 +24,10 @@ glabel func_80099AEC
/* 09A73C 80099B3C 3C028019 */ lui $v0, %hi(D_8018E060) # 0x8019
/* 09A740 80099B40 2451E060 */ addiu $s1, $v0, %lo(D_8018E060) # -0x1fa0
/* 09A744 80099B44 8E320000 */ lw $s2, ($s1)
/* 09A748 80099B48 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019
/* 09A748 80099B48 3C148019 */ lui $s4, %hi(gMenuCompressedBuffer) # $s4, 0x8019
/* 09A74C 80099B4C 0000A825 */ move $s5, $zero
/* 09A750 80099B50 124000B4 */ beqz $s2, .L80099E24
/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c
/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(gMenuCompressedBuffer) # addiu $s4, $s4, -0x264c
/* 09A758 80099B58 96430010 */ lhu $v1, 0x10($s2)
/* 09A75C 80099B5C 24101400 */ li $s0, 5120
/* 09A760 80099B60 10600003 */ beqz $v1, .L80099B70
@ -77,8 +77,8 @@ glabel func_80099AEC
/* 09A800 80099C00 02C02025 */ move $a0, $s6
/* 09A804 80099C04 0C0335D4 */ jal osRecvMesg
/* 09A808 80099C08 24060001 */ li $a2, 1
/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(D_8018E118) # $fp, 0x8019
/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(D_8018E118) # addiu $fp, $fp, -0x1ee8
/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(sMenuTextureMap) # $fp, 0x8019
/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(sMenuTextureMap) # addiu $fp, $fp, -0x1ee8
/* 09A814 80099C14 8E220008 */ lw $v0, 8($s1)
.L80099C18:
/* 09A818 80099C18 8FB30060 */ lw $s3, 0x60($sp)
@ -136,8 +136,8 @@ glabel func_80099AEC
/* 09A8D0 80099CD0 014C3821 */ addu $a3, $t2, $t4
.L80099CD4:
/* 09A8D4 80099CD4 8E2F0004 */ lw $t7, 4($s1)
/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(D_8018D9B0) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(D_8018D9B0)($t1)
/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(gMenuTextureBuffer) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(gMenuTextureBuffer)($t1)
/* 09A8E0 80099CE0 000FC0C0 */ sll $t8, $t7, 3
/* 09A8E4 80099CE4 031EC821 */ addu $t9, $t8, $fp
/* 09A8E8 80099CE8 8F220004 */ lw $v0, 4($t9)
@ -206,8 +206,8 @@ glabel func_80099AEC
/* 09A9D0 80099DD0 AFA90010 */ sw $t1, 0x10($sp)
.L80099DD4:
/* 09A9D4 80099DD4 8E2B0004 */ lw $t3, 4($s1)
/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(D_8018D9B0) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(D_8018D9B0)($t7)
/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(gMenuTextureBuffer) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(gMenuTextureBuffer)($t7)
/* 09A9E0 80099DE0 000B50C0 */ sll $t2, $t3, 3
/* 09A9E4 80099DE4 015E6021 */ addu $t4, $t2, $fp
/* 09A9E8 80099DE8 8D820004 */ lw $v0, 4($t4)

View File

@ -13,10 +13,10 @@ glabel func_80099EC4
/* 09AAF0 80099EF0 AFB20030 */ sw $s2, 0x30($sp)
/* 09AAF4 80099EF4 AFB00028 */ sw $s0, 0x28($sp)
/* 09AAF8 80099EF8 8E320000 */ lw $s2, ($s1)
/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(D_8018D9B4) # $s3, 0x8019
/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(gMenuCompressedBuffer) # $s3, 0x8019
/* 09AB00 80099F00 0000A025 */ move $s4, $zero
/* 09AB04 80099F04 124000C0 */ beqz $s2, .L8009A208
/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(D_8018D9B4) # addiu $s3, $s3, -0x264c
/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(gMenuCompressedBuffer) # addiu $s3, $s3, -0x264c
/* 09AB0C 80099F0C 96430010 */ lhu $v1, 0x10($s2)
/* 09AB10 80099F10 24101400 */ li $s0, 5120
/* 09AB14 80099F14 10600003 */ beqz $v1, .L80099F24

View File

@ -195,7 +195,7 @@ glabel L8009F6CC
glabel L8009F6E4
/* 0A02E4 8009F6E4 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 0A02E8 8009F6E8 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 0A02EC 8009F6EC 0C0251ED */ jal func_800947B4
/* 0A02EC 8009F6EC 0C0251ED */ jal render_checkered_flag
/* 0A02F0 8009F6F0 8E25001C */ lw $a1, 0x1c($s1)
/* 0A02F4 8009F6F4 10000474 */ b .L800A08C8
/* 0A02F8 8009F6F8 8FBF0034 */ lw $ra, 0x34($sp)

View File

@ -460,14 +460,14 @@ glabel L800A23DC
/* 0A319C 800A259C E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A31A0 800A25A0 2401002A */ li $at, 42
/* 0A31A4 800A25A4 16610006 */ bne $s3, $at, .L800A25C0
/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(D_8018D9C0) # $t7, 0x8019
/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(gSomeDLBuffer) # $t7, 0x8019
/* 0A31AC 800A25AC 3C0E8019 */ lui $t6, %hi(D_8018EE10) # $t6, 0x8019
/* 0A31B0 800A25B0 25CEEE10 */ addiu $t6, %lo(D_8018EE10) # addiu $t6, $t6, -0x11f0
/* 0A31B4 800A25B4 001069C0 */ sll $t5, $s0, 7
/* 0A31B8 800A25B8 10000004 */ b .L800A25CC
/* 0A31BC 800A25BC 01AE1821 */ addu $v1, $t5, $t6
.L800A25C0:
/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(D_8018D9C0)($t7)
/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(gSomeDLBuffer)($t7)
/* 0A31C4 800A25C4 0010C1C0 */ sll $t8, $s0, 7
/* 0A31C8 800A25C8 01F81821 */ addu $v1, $t7, $t8
.L800A25CC:
@ -653,14 +653,14 @@ glabel L800A26A8
/* 0A3458 800A2858 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A345C 800A285C 2401002A */ li $at, 42
/* 0A3460 800A2860 16610006 */ bne $s3, $at, .L800A287C
/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(D_8018D9C0) # $t1, 0x8019
/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(gSomeDLBuffer) # $t1, 0x8019
/* 0A3468 800A2868 3C0A8019 */ lui $t2, %hi(D_8018EE10) # $t2, 0x8019
/* 0A346C 800A286C 254AEE10 */ addiu $t2, %lo(D_8018EE10) # addiu $t2, $t2, -0x11f0
/* 0A3470 800A2870 001041C0 */ sll $t0, $s0, 7
/* 0A3474 800A2874 10000004 */ b .L800A2888
/* 0A3478 800A2878 010A1821 */ addu $v1, $t0, $t2
.L800A287C:
/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(D_8018D9C0)($t1)
/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(gSomeDLBuffer)($t1)
/* 0A3480 800A2880 001059C0 */ sll $t3, $s0, 7
/* 0A3484 800A2884 012B1821 */ addu $v1, $t1, $t3
.L800A2888:
@ -871,14 +871,14 @@ glabel L800A29D0
/* 0A3774 800A2B74 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3778 800A2B78 2401002A */ li $at, 42
/* 0A377C 800A2B7C 16610006 */ bne $s3, $at, .L800A2B98
/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(D_8018D9C0) # $t2, 0x8019
/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(gSomeDLBuffer) # $t2, 0x8019
/* 0A3784 800A2B84 3C088019 */ lui $t0, %hi(D_8018EE10) # $t0, 0x8019
/* 0A3788 800A2B88 2508EE10 */ addiu $t0, %lo(D_8018EE10) # addiu $t0, $t0, -0x11f0
/* 0A378C 800A2B8C 0010C9C0 */ sll $t9, $s0, 7
/* 0A3790 800A2B90 10000004 */ b .L800A2BA4
/* 0A3794 800A2B94 03281821 */ addu $v1, $t9, $t0
.L800A2B98:
/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(D_8018D9C0)($t2)
/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(gSomeDLBuffer)($t2)
/* 0A379C 800A2B9C 001049C0 */ sll $t1, $s0, 7
/* 0A37A0 800A2BA0 01491821 */ addu $v1, $t2, $t1
.L800A2BA4:

View File

@ -26,8 +26,8 @@ glabel L800AC488
/* 0AD08C 800AC48C 24180001 */ li $t8, 1
/* 0AD090 800AC490 ACEF000C */ sw $t7, 0xc($a3)
/* 0AD094 800AC494 ACF80004 */ sw $t8, 4($a3)
/* 0AD098 800AC498 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019
/* 0AD09C 800AC49C 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644
/* 0AD098 800AC498 3C028019 */ lui $v0, %hi(sGPPointsCopy) # $v0, 0x8019
/* 0AD09C 800AC49C 2442D9BC */ addiu $v0, %lo(sGPPointsCopy) # addiu $v0, $v0, -0x2644
/* 0AD0A0 800AC4A0 3C19800F */ lui $t9, %hi(gGPPointRewards) # $t9, 0x800f
/* 0AD0A4 800AC4A4 83390B18 */ lb $t9, %lo(gGPPointRewards)($t9)
/* 0AD0A8 800AC4A8 8C4A0000 */ lw $t2, ($v0)
@ -123,8 +123,8 @@ glabel L800AC5D0
/* 0AD1F8 800AC5F8 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6)
/* 0AD1FC 800AC5FC 11C00032 */ beqz $t6, .L800AC6C8
.L800AC600:
/* 0AD200 800AC600 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019
/* 0AD204 800AC604 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644
/* 0AD200 800AC600 3C028019 */ lui $v0, %hi(sGPPointsCopy) # $v0, 0x8019
/* 0AD204 800AC604 2442D9BC */ addiu $v0, %lo(sGPPointsCopy) # addiu $v0, $v0, -0x2644
/* 0AD208 800AC608 8C4F0000 */ lw $t7, ($v0)
/* 0AD20C 800AC60C 0005C840 */ sll $t9, $a1, 1
/* 0AD210 800AC610 3C0A8016 */ lui $t2, %hi(gGPCurrentRacePlayerIdByRank) # 0x8016
@ -157,8 +157,8 @@ glabel L800AC5D0
/* 0AD27C 800AC67C A06F0000 */ sb $t7, ($v1)
/* 0AD280 800AC680 0C032384 */ jal play_sound2
/* 0AD284 800AC684 AFA5001C */ sw $a1, 0x1c($sp)
/* 0AD288 800AC688 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019
/* 0AD28C 800AC68C 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644
/* 0AD288 800AC688 3C028019 */ lui $v0, %hi(sGPPointsCopy) # $v0, 0x8019
/* 0AD28C 800AC68C 2442D9BC */ addiu $v0, %lo(sGPPointsCopy) # addiu $v0, $v0, -0x2644
/* 0AD290 800AC690 8FA5001C */ lw $a1, 0x1c($sp)
/* 0AD294 800AC694 8C580000 */ lw $t8, ($v0)
/* 0AD298 800AC698 8FA70020 */ lw $a3, 0x20($sp)

View File

@ -1,6 +1,6 @@
glabel func_800B68F4
/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(D_8018D9C0) # $v0, 0x8019
/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(D_8018D9C0)($v0)
/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(gSomeDLBuffer) # $v0, 0x8019
/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(gSomeDLBuffer)($v0)
/* 0B74FC 800B68FC 000471C0 */ sll $t6, $a0, 7
/* 0B7500 800B6900 24870001 */ addiu $a3, $a0, 1
/* 0B7504 800B6904 01C21821 */ addu $v1, $t6, $v0

View File

@ -127,7 +127,7 @@ u8* func_8006ED94(u8* devAddr, u8* baseAddress, u32 size, u32 offset) {
}
void load_mario_kart_64_logo(void) {
D_8018D1E0 = func_8006ED94((u8*) &gTextureLogoMarioKart64, (u8*) D_8018D9B0, 0x79E1, 0x20000);
D_8018D1E0 = func_8006ED94((u8*) &gTextureLogoMarioKart64, (u8*) gMenuTextureBuffer, 0x79E1, 0x20000);
}
// Some kind of initalization for the Item Window part of the HUD
@ -161,7 +161,7 @@ void func_8006EF60(void) {
s16 huh;
u8* wut;
wut = D_8018D9B4 + 0xFFFF0000;
wut = gMenuCompressedBuffer + 0xFFFF0000;
// clang-format off
// God forgive me for my sins...
huh = 0x14; if (0) {} for (i = 0; i < huh; i++) { D_8018D248[i] = func_8006ED94(gCourseOutlineTextures[i], wut, D_800E5520[i], D_800E5520[i]); wut += D_800E5520[i]; }

View File

@ -37,11 +37,11 @@
// Unfortunately that's not a small effort due to weird import structure in this project
#include "main.h"
u16* D_8018D9B0;
u8* D_8018D9B4;
u8* D_8018D9B8;
u8* D_8018D9BC;
void* D_8018D9C0;
u16* gMenuTextureBuffer;
u8* gMenuCompressedBuffer;
u8* sTKMK00_LowResBuffer;
u8* sGPPointsCopy;
void* gSomeDLBuffer;
/**
* List of bytes indexed by character ID
* Indicates number of Grand Prix points that character
@ -51,15 +51,15 @@ s8 gGPPointsByCharacterId[8];
s8 gCharacterIdByGPOverallRank[8];
s8 D_8018D9D8;
s8 D_8018D9D9;
MenuItem D_8018D9E0[D_8018D9E0_SIZE];
MenuItem gMenuItems[MENU_ITEMS_MAX];
struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE];
struct_8018E060_entry D_8018E060[D_8018E060_SIZE];
UNUSED u8 code_80091750_bss_padding0[8];
struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
s32 gMenuTextureBufferIndex;
struct_8018E118_entry D_8018E118[D_8018E118_SIZE];
static TextureMap sMenuTextureMap[TEXTURE_MAP_MAX];
s32 gNumD_8018E118Entries;
Gfx* D_8018E75C;
Gfx* sGfxPtr;
s32 gNumD_8018E768Entries;
struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
s32 gCycleFlashMenu;
@ -1183,10 +1183,10 @@ void func_80091B78(void) {
}
gNextFreeMemoryAddress = gFreeMemoryResetAnchor;
// Hypothetically, this should be a ptr... But only hypothetically.
D_8018D9B0 = get_next_available_memory_addr(0x000900B0);
D_8018D9B4 = (u8*) get_next_available_memory_addr(0x0000CE00);
D_8018D9B8 = (u8*) get_next_available_memory_addr(0x00012C00);
D_8018D9C0 = (struct_8018EE10_entry*) get_next_available_memory_addr(0x00001000);
gMenuTextureBuffer = get_next_available_memory_addr(0x000900B0);
gMenuCompressedBuffer = (u8*) get_next_available_memory_addr(0x0000CE00);
sTKMK00_LowResBuffer = (u8*) get_next_available_memory_addr(SCREEN_WIDTH * SCREEN_HEIGHT);
gSomeDLBuffer = (struct_8018EE10_entry*) get_next_available_memory_addr(0x00001000);
func_800AF9B0();
D_8018EE0C = 0;
@ -1281,10 +1281,10 @@ void func_80091FA4(void) {
s32 i;
//! @todo These sizes need to be sizeof() for shiftability if possible
D_8018D9B4 = (u8*) get_next_available_memory_addr(0x00002800);
D_8018D9B0 = (u16*) get_next_available_memory_addr(0x000124F8);
D_8018D9B8 = (u8*) get_next_available_memory_addr(0x00001000);
D_8018D9BC = get_next_available_memory_addr(4);
gMenuCompressedBuffer = (u8*) get_next_available_memory_addr(0x00002800);
gMenuTextureBuffer = (u16*) get_next_available_memory_addr(0x000124F8);
sTKMK00_LowResBuffer = (u8*) get_next_available_memory_addr(0x00001000);
sGPPointsCopy = get_next_available_memory_addr(4);
for (i = 0; i < 5; i++) {
D_8018E7AC[i] = 0;
@ -2091,10 +2091,10 @@ void func_80093E40(void) {
void func_80093E60(void) {
s32 i;
D_8018D9B4 = get_next_available_memory_addr(0x00002800);
D_8018D9B0 = (u16*) get_next_available_memory_addr(0x000124F8);
D_8018D9B8 = get_next_available_memory_addr(0x00001000);
D_8018D9BC = get_next_available_memory_addr(4U);
gMenuCompressedBuffer = get_next_available_memory_addr(0x00002800);
gMenuTextureBuffer = (u16*) get_next_available_memory_addr(0x000124F8);
sTKMK00_LowResBuffer = get_next_available_memory_addr(0x00001000);
sGPPointsCopy = get_next_available_memory_addr(4U);
for (i = 0; i < 5; i++) {
D_8018E7AC[i] = 0;
@ -2202,7 +2202,7 @@ void func_80094660(struct GfxPool* arg0, UNUSED s32 arg1) {
gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP);
}
void func_800947B4(struct GfxPool* arg0, UNUSED s32 arg1) {
void render_checkered_flag(struct GfxPool* arg0, UNUSED s32 arg1) {
u16 perspNorm;
move_segment_table_to_dmem();
guPerspective(&arg0->mtxPersp[0], &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
@ -3177,7 +3177,7 @@ Gfx* func_80098558(Gfx* displayListHead, u32 arg1, u32 arg2, u32 arg3, u32 arg4,
arg5Copy = arg5;
for (var_v0 = arg2; var_v0 < arg4; var_v0 += 0x20) {
for (var_a3 = arg1; var_a3 < arg3; var_a3 += 0x20) {
gDPLoadTextureTile(displayListHead++, D_8018D9B0, G_IM_FMT_RGBA, G_IM_SIZ_16b, arg8, 0, var_a3, var_v0,
gDPLoadTextureTile(displayListHead++, gMenuTextureBuffer, G_IM_FMT_RGBA, G_IM_SIZ_16b, arg8, 0, var_a3, var_v0,
var_a3 + 0x20, var_v0 + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5,
5, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(displayListHead++, arg5 << 2, arg6 << 2, (arg5 + 0x20) << 2, (arg6 + 0x20) << 2, 0, 0,
@ -3211,7 +3211,7 @@ Gfx* func_800987D0(Gfx* displayListHead, u32 arg1, u32 arg2, u32 width, u32 heig
columnCopy = column;
for (var_v0_2 = arg2; (u32) var_v0_2 < height; var_v0_2 += 0x20) {
for (var_a2 = arg1; (u32) var_a2 < width; var_a2 += 0x20) {
gDPLoadTextureTile(displayListHead++, D_8018D9B0, G_IM_FMT_RGBA, G_IM_SIZ_16b, textureWidth, 0, var_a2,
gDPLoadTextureTile(displayListHead++, gMenuTextureBuffer, G_IM_FMT_RGBA, G_IM_SIZ_16b, textureWidth, 0, var_a2,
var_v0_2, var_a2 + 0x20, var_v0_2 + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
temp_f6 = (temp_f18 * ((temp_f0 * (column - 0xA0)) + (temp_f24 * (row - 0x78)))) + 160.0f;
@ -3359,14 +3359,14 @@ void load_menu_img(MkTexture* arg0) {
s32 var_a1;
UNUSED s32 temp_s3;
MkTexture* var_s1;
UNUSED struct_8018E118_entry* thing;
UNUSED TextureMap* thing;
var_s1 = segmented_to_virtual_dupe(arg0);
while (var_s1->textureData != NULL) {
var_a1 = 0;
for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) {
// wtf is going on here?
if (D_8018E118[var_v0 ^ 0].textureData == (*var_s1).textureData) {
if (sMenuTextureMap[var_v0 ^ 0].textureData == (*var_s1).textureData) {
var_a1 = 1;
break;
}
@ -3381,16 +3381,16 @@ void load_menu_img(MkTexture* arg0) {
if (var_a1_2 % 8) {
var_a1_2 = ((var_a1_2 / 8) * 8) + 8;
}
dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4);
mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[gMenuTextureBufferIndex]);
dma_copy_base_729a30(var_s1->textureData, var_a1_2, gMenuCompressedBuffer);
mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[gMenuTextureBufferIndex]);
} else {
dma_copy_base_729a30(var_s1->textureData, var_s1->height * var_s1->width * 2,
&D_8018D9B0[gMenuTextureBufferIndex]);
&gMenuTextureBuffer[gMenuTextureBufferIndex]);
}
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->textureData = var_s1->textureData;
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->offset = gMenuTextureBufferIndex;
gMenuTextureBufferIndex += (var_s1->height * var_s1->width);
@ -3413,14 +3413,14 @@ void func_80099394(MkTexture* arg0) {
s32 var_a1;
UNUSED s32 temp_s3;
MkTexture* var_s1;
struct_8018E118_entry* thing;
TextureMap* thing;
var_s1 = segmented_to_virtual_dupe(arg0);
while (var_s1->textureData != NULL) {
var_a1 = 0;
for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) {
// wtf is going on here?
if (D_8018E118[var_v0 ^ 0].textureData == (*var_s1).textureData) {
if (sMenuTextureMap[var_v0 ^ 0].textureData == (*var_s1).textureData) {
var_a1 = 1;
break;
}
@ -3428,12 +3428,12 @@ void func_80099394(MkTexture* arg0) {
if (var_a1 == 0) {
if (var_s1->type == 5) {
dma_copy_base_729a30(var_s1->textureData, (u32) ((s32) (var_s1->height * var_s1->width) / 2),
&D_8018D9B0[gMenuTextureBufferIndex]);
&gMenuTextureBuffer[gMenuTextureBufferIndex]);
}
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->textureData = var_s1->textureData;
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->offset = gMenuTextureBufferIndex;
gMenuTextureBufferIndex += (var_s1->height * var_s1->width);
@ -3456,25 +3456,25 @@ void func_8009952C(MkTexture* arg0) {
s32 var_a1;
UNUSED s32 temp_s3;
MkTexture* var_s1;
struct_8018E118_entry* thing;
TextureMap* thing;
var_s1 = segmented_to_virtual_dupe(arg0);
while (var_s1->textureData != NULL) {
var_a1 = 0;
for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) {
// wtf is going on here?
if (D_8018E118[var_v0 ^ 0].textureData == (*var_s1).textureData) {
if (sMenuTextureMap[var_v0 ^ 0].textureData == (*var_s1).textureData) {
var_a1 = 1;
break;
}
}
if (var_a1 == 0) {
dma_copy_base_729a30(var_s1->textureData, 0x00008000U, D_8018D9B4);
mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[gMenuTextureBufferIndex]);
dma_copy_base_729a30(var_s1->textureData, 0x00008000U, gMenuCompressedBuffer);
mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[gMenuTextureBufferIndex]);
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->textureData = var_s1->textureData;
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->offset = gMenuTextureBufferIndex;
gMenuTextureBufferIndex += (var_s1->height * var_s1->width);
@ -3501,14 +3501,14 @@ void load_menu_img2(MkTexture* arg0, s32 arg1) {
s32 var_a1;
u8 var_v0_2;
MkTexture* var_s1;
struct_8018E118_entry* thing;
TextureMap* thing;
var_s1 = segmented_to_virtual_dupe(arg0);
while (var_s1->textureData != NULL) {
var_a1 = 0;
for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) {
// wtf is going on here?
if (D_8018E118[var_v0 ^ 0].textureData == (*var_s1).textureData) {
if (sMenuTextureMap[var_v0 ^ 0].textureData == (*var_s1).textureData) {
var_a1 = 1;
break;
}
@ -3525,17 +3525,17 @@ void load_menu_img2(MkTexture* arg0, s32 arg1) {
switch (arg1) { /* irregular */
case -1:
case 1:
dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4);
dma_copy_base_729a30(var_s1->textureData, var_a1_2, gMenuCompressedBuffer);
break;
case 0:
case 2:
dma_copy_base_7fa3c0(var_s1->textureData, var_a1_2, D_8018D9B4);
dma_copy_base_7fa3c0(var_s1->textureData, var_a1_2, gMenuCompressedBuffer);
break;
}
switch (arg1) { /* switch 1; irregular */
case -1: /* switch 1 */
case 1: /* switch 1 */
mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[gMenuTextureBufferIndex]);
mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[gMenuTextureBufferIndex]);
break;
case 0: /* switch 1 */
case 2: /* switch 1 */
@ -3545,12 +3545,12 @@ void load_menu_img2(MkTexture* arg0, s32 arg1) {
var_v0_2 = 1;
}
if (1) {}
tkmk00decode(D_8018D9B4, D_8018D9B8, (u8*) &D_8018D9B0[gMenuTextureBufferIndex], var_v0_2);
tkmk00decode(gMenuCompressedBuffer, sTKMK00_LowResBuffer, (u8*) &gMenuTextureBuffer[gMenuTextureBufferIndex], var_v0_2);
break;
}
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->textureData = var_s1->textureData;
thing = &D_8018E118[gNumD_8018E118Entries];
thing = &sMenuTextureMap[gNumD_8018E118Entries];
thing->offset = gMenuTextureBufferIndex;
gMenuTextureBufferIndex += var_s1->height * var_s1->width;
gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8;
@ -3579,8 +3579,8 @@ void func_80099958(MkTexture* arg0, s32 arg1, s32 arg2) {
// Round up to the next multiple of eight
var_a1 = ((var_a1 / 8) * 8) + 8;
}
dma_copy_base_729a30(temp_v0->textureData, var_a1, D_8018D9B4);
mio0decode(D_8018D9B4, D_802BFB80.arraySize4[arg2][arg1 / 2][(arg1 % 2) + 2].pixel_index_array);
dma_copy_base_729a30(temp_v0->textureData, var_a1, gMenuCompressedBuffer);
mio0decode(gMenuCompressedBuffer, D_802BFB80.arraySize4[arg2][arg1 / 2][(arg1 % 2) + 2].pixel_index_array);
temp_v0++;
}
}
@ -3641,9 +3641,9 @@ void func_80099AEC(void) {
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osInvalDCache(gMenuCompressedBuffer, var_s0);
osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)],
D_8018D9B4, var_s0, &gDmaMesgQueue);
gMenuCompressedBuffer, var_s0, &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
while (1) {
if ((var_s1 + 1)->texture == NULL) {
@ -3659,11 +3659,11 @@ void func_80099AEC(void) {
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4 + sp60 * 4, var_s0);
osInvalDCache(gMenuCompressedBuffer + sp60 * 4, var_s0);
osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)],
D_8018D9B4 + sp60 * 4, var_s0, &gDmaMesgQueue);
gMenuCompressedBuffer + sp60 * 4, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[sMenuTextureMap[var_s1->unk_4].offset]);
var_s1->texture = NULL;
var_s1++;
if (var_s4 != 0)
@ -3682,11 +3682,11 @@ void func_80099AEC(void) {
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osInvalDCache(gMenuCompressedBuffer, var_s0);
osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)],
D_8018D9B4, var_s0, &gDmaMesgQueue);
gMenuCompressedBuffer, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4 + sp60 * 4, (u8*) &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
mio0decode(gMenuCompressedBuffer + sp60 * 4, (u8*) &gMenuTextureBuffer[sMenuTextureMap[var_s1->unk_4].offset]);
var_s1->texture = NULL;
var_s1++;
if (var_s4 != 0)
@ -3746,11 +3746,11 @@ void func_80099EC4(void) {
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osInvalDCache(gMenuCompressedBuffer, var_s0);
test = &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)];
osPiStartDma(&sp68, 0, 0, (uintptr_t) test, D_8018D9B4, var_s0, &gDmaMesgQueue);
osPiStartDma(&sp68, 0, 0, (uintptr_t) test, gMenuCompressedBuffer, var_s0, &gDmaMesgQueue);
if ((var_s0 && var_s0) && var_s0) {}
// osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0,
// osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], gMenuCompressedBuffer, var_s0,
// &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
while (1) {
@ -3767,11 +3767,11 @@ void func_80099EC4(void) {
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4 + 0x1400, var_s0);
osInvalDCache(gMenuCompressedBuffer + 0x1400, var_s0);
osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)],
D_8018D9B4 + 0x1400, var_s0, &gDmaMesgQueue);
gMenuCompressedBuffer + 0x1400, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4,
mio0decode(gMenuCompressedBuffer,
D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
var_s1->mk64Texture = NULL;
var_s1++;
@ -3791,11 +3791,11 @@ void func_80099EC4(void) {
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osInvalDCache(gMenuCompressedBuffer, var_s0);
osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)],
D_8018D9B4, var_s0, &gDmaMesgQueue);
gMenuCompressedBuffer, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4 + 0x1400,
mio0decode(gMenuCompressedBuffer + 0x1400,
D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
var_s1->mk64Texture = NULL;
var_s1++;
@ -3812,17 +3812,17 @@ void func_8009A238(MkTexture* arg0, s32 arg1) {
s32 var_a3;
s32 temp_v1;
u64* sp24;
UNUSED struct_8018E118_entry* temp_v0;
UNUSED TextureMap* temp_v0;
temp_v1 = D_8018E118[arg1].offset;
temp_v1 = sMenuTextureMap[arg1].offset;
sp24 = arg0->textureData;
var_a3 = arg0->size;
if (var_a3 % 8) {
var_a3 = ((var_a3 / 8) * 8) + 8;
}
dma_copy_base_7fa3c0(sp24, var_a3, D_8018D9B4);
tkmk00decode(D_8018D9B4, D_8018D9B8, (u8*) &D_8018D9B0[temp_v1], 1);
D_8018E118[arg1].textureData = sp24;
dma_copy_base_7fa3c0(sp24, var_a3, gMenuCompressedBuffer);
tkmk00decode(gMenuCompressedBuffer, sTKMK00_LowResBuffer, (u8*) &gMenuTextureBuffer[temp_v1], 1);
sMenuTextureMap[arg1].textureData = sp24;
}
void func_8009A2F0(struct_8018E0E8_entry* arg0) {
@ -4053,8 +4053,8 @@ void func_8009A9FC(s32 arg0, s32 arg1, u32 arg2, s32 arg3) {
u16* color0;
u16* color1;
color0 = &D_8018D9B0[D_8018E118[arg0].offset];
color1 = &D_8018D9B0[D_8018E118[arg1].offset];
color0 = &gMenuTextureBuffer[sMenuTextureMap[arg0].offset];
color1 = &gMenuTextureBuffer[sMenuTextureMap[arg1].offset];
for (var_t1 = 0; (u32) var_t1 < arg2; var_t1++) {
temp_a0 = *color0++;
red = (temp_a0 & 0xF800) >> 0xB;
@ -4082,7 +4082,7 @@ void func_8009AB7C(s32 arg0) {
s32 var_v1;
u16* color;
color = &D_8018D9B0[D_8018E118[arg0].offset];
color = &gMenuTextureBuffer[sMenuTextureMap[arg0].offset];
for (var_v1 = 0; var_v1 < 0x4B000; var_v1++) {
red = ((*color & 0xF800) >> 0xB) * 0x4D;
green = ((*color & 0x7C0) >> 6) * 0x96;
@ -4111,8 +4111,8 @@ void func_8009AD78(s32 arg0, s32 arg1) {
UNUSED u16 temp_a0;
u16* color;
color = &D_8018D9B0[D_8018E118[arg0].offset];
size = D_8018E118[arg0 + 1].offset - D_8018E118[arg0].offset;
color = &gMenuTextureBuffer[sMenuTextureMap[arg0].offset];
size = sMenuTextureMap[arg0 + 1].offset - sMenuTextureMap[arg0].offset;
for (var_v1 = 0; var_v1 != size; var_v1++) {
red = ((*color & 0xF800) >> 0xB) * 0x4D;
green = ((*color & 0x7C0) >> 6) * 0x96;
@ -4139,8 +4139,8 @@ void convert_img_to_greyscale(s32 arg0, u32 arg1) {
for (var_s0 = 0; var_s0 < 0x20; var_s0++) {
sp48[var_s0] = func_800917B0(var_s0 * 0.03125, (arg1 * 1.5 * 0.00390625) + 0.25);
}
color = &D_8018D9B0[D_8018E118[arg0].offset];
size = D_8018E118[arg0 + 1].offset - D_8018E118[arg0].offset;
color = &gMenuTextureBuffer[sMenuTextureMap[arg0].offset];
size = sMenuTextureMap[arg0 + 1].offset - sMenuTextureMap[arg0].offset;
for (var_s0 = 0; var_s0 < (u32) size; var_s0++) {
red = ((*color & 0xF800) >> 0xB) * 0x55;
green = ((*color & 0x7C0) >> 6) * 0x4B;
@ -4168,7 +4168,7 @@ void adjust_img_colour(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
s32 var_v1;
u16* color;
color = &D_8018D9B0[D_8018E118[arg0].offset];
color = &gMenuTextureBuffer[sMenuTextureMap[arg0].offset];
for (var_v1 = 0; var_v1 != arg1; var_v1++) {
red = ((*color & 0xF800) >> 0xB) * 0x4D;
green = ((*color & 0x7C0) >> 6) * 0x96;
@ -4191,34 +4191,34 @@ u16* func_8009B8C4(u64* arg0) {
found = 0;
for (someIndex = 0; someIndex < gNumD_8018E118Entries; someIndex++) {
if (arg0 == D_8018E118[someIndex].textureData) {
if (arg0 == sMenuTextureMap[someIndex].textureData) {
found = 1;
offset = D_8018E118[someIndex].offset;
offset = sMenuTextureMap[someIndex].offset;
break;
}
}
if (found != 0) {
return &D_8018D9B0[offset];
return &gMenuTextureBuffer[offset];
}
return NULL;
}
// D_8018D9C0 is a little weird. In code_800AF9B0 its treated as a
// gSomeDLBuffer is a little weird. In code_800AF9B0 its treated as a
// struct_8018EE10_entry pointer. But here its being treated as a
// Gfx pointer. It seems to be multi use.
void func_8009B938(void) {
D_8018E75C = (Gfx*) D_8018D9C0;
sGfxPtr = (Gfx*) gSomeDLBuffer;
gNumD_8018E768Entries = 0;
}
void func_8009B954(MkTexture* arg0) {
D_8018E768[gNumD_8018E768Entries].textures = segmented_to_virtual_dupe(arg0);
D_8018E768[gNumD_8018E768Entries].displayList = D_8018E75C;
D_8018E768[gNumD_8018E768Entries].displayList = sGfxPtr;
}
void func_8009B998(void) {
gSPEndDisplayList(D_8018E75C++);
gSPEndDisplayList(sGfxPtr++);
gNumD_8018E768Entries += 1;
}
@ -4451,9 +4451,9 @@ Gfx* func_8009C434(Gfx* arg0, struct_8018DEE0_entry* arg1, s32 arg2, s32 arg3, s
break;
}
if (arg1->unk14 != 0) {
var_t0 = D_8018E118[arg1->D_8018E118_index + 1].offset;
var_t0 = sMenuTextureMap[arg1->D_8018E118_index + 1].offset;
} else {
var_t0 = D_8018E118[arg1->D_8018E118_index].offset;
var_t0 = sMenuTextureMap[arg1->D_8018E118_index].offset;
if (1) {}
if (1) {}
if (1) {}
@ -4461,18 +4461,18 @@ Gfx* func_8009C434(Gfx* arg0, struct_8018DEE0_entry* arg1, s32 arg2, s32 arg3, s
if (arg4 >= 0) {
arg0 =
func_80097E58(arg0, var_t1, 0, 0U, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3,
(u8*) &D_8018D9B0[var_t0], var_s0->width, var_s0->height, (u32) arg4);
(u8*) &gMenuTextureBuffer[var_t0], var_s0->width, var_s0->height, (u32) arg4);
} else {
switch (arg4) {
case -1:
arg0 = func_80095E10(arg0, var_t1, 0x00000400, 0x00000400, 0, 0, var_s0->width, var_s0->height,
var_s0->dX + arg2, var_s0->dY + arg3, (u8*) &D_8018D9B0[var_t0], var_s0->width,
var_s0->dX + arg2, var_s0->dY + arg3, (u8*) &gMenuTextureBuffer[var_t0], var_s0->width,
var_s0->height);
break;
case -2:
arg0 = func_800963F0(arg0, var_t1, 0x00000400, 0x00000400, 0.5f, 0.5f, 0, 0, var_s0->width,
var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3,
(u8*) &D_8018D9B0[var_t0], var_s0->width, var_s0->height);
(u8*) &gMenuTextureBuffer[var_t0], var_s0->width, var_s0->height);
break;
}
}
@ -5090,7 +5090,7 @@ void func_8009DB8C(void) {
if ((u32) var_v1 >= D_8018E7B8[4]) {
if ((u32) var_v1 == D_8018E7B8[4]) {
for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) {
D_8018D9B8[var_s0] = 1;
sTKMK00_LowResBuffer[var_s0] = 1;
}
} else {
func_8009CE64(4);
@ -5099,9 +5099,9 @@ void func_8009DB8C(void) {
var_s0 = 0;
var_s3 = 0;
while (var_s3 < (0x4B0U / D_8018E7B8[4])) {
if ((D_8018D9B8[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7B8[4]) == 0)) {
if ((sTKMK00_LowResBuffer[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7B8[4]) == 0)) {
var_s3 += 1;
D_8018D9B8[var_s0] = 1;
sTKMK00_LowResBuffer[var_s0] = 1;
}
var_s0 += 1;
if (var_s0 >= 0x4B0) {
@ -5114,7 +5114,7 @@ void func_8009DB8C(void) {
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0xFF);
gDPSetCombineMode(gDisplayListHead++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) {
if (D_8018D9B8[var_s0] != 0) {
if (sTKMK00_LowResBuffer[var_s0] != 0) {
temp_t4 = (var_s0 % 40) * 8;
temp_t5 = (var_s0 / 40) * 8;
gDPFillRectangle(gDisplayListHead++, temp_t4, temp_t5, temp_t4 + 8, temp_t5 + 8);
@ -5219,7 +5219,7 @@ void func_8009E0F0(s32 arg0) {
}
D_8018E7E0 = 0;
for (var_v0 = 0; var_v0 < 0x4B0; var_v0++) {
D_8018D9B8[var_v0] = 0;
sTKMK00_LowResBuffer[var_v0] = 0;
}
}
}
@ -5326,8 +5326,8 @@ void func_8009E5FC(s32 arg0) {
void func_8009E620(void) {
s32 index;
for (index = 0; index < D_8018D9E0_SIZE; index++) {
D_8018D9E0[index].type = 0;
for (index = 0; index < MENU_ITEMS_MAX; index++) {
gMenuItems[index].type = 0;
}
}
@ -5348,7 +5348,7 @@ void add_ui_element(s32 type, s32 column, s32 row, s8 priority) {
s32 one = 1;
var_v0 = 0;
var_ra = D_8018D9E0;
var_ra = gMenuItems;
// ????????
// Credit to Vetri for the idea to mess around with this loop
// to fix the issue near the 0xD4 case
@ -5357,7 +5357,7 @@ void add_ui_element(s32 type, s32 column, s32 row, s8 priority) {
if (var_ra->type == 0)
break;
if (var_v0 > D_8018D9E0_SIZE) {
if (var_v0 > MENU_ITEMS_MAX) {
while (true) {}
}
var_ra++;
@ -5402,13 +5402,13 @@ void add_ui_element(s32 type, s32 column, s32 row, s8 priority) {
case 0xD2:
load_menu_img2(D_020014C8, 0);
func_8009B954(D_020014C8);
D_8018E75C = func_8009BA74(D_8018E75C, D_020014C8, var_ra->column, var_ra->row);
sGfxPtr = func_8009BA74(sGfxPtr, D_020014C8, var_ra->column, var_ra->row);
func_8009B998();
break;
case 0xD3:
load_menu_img2(D_02001540, 0);
func_8009B954(D_02001540);
D_8018E75C = func_8009BA74(D_8018E75C, D_02001540, var_ra->column, var_ra->row);
sGfxPtr = func_8009BA74(sGfxPtr, D_02001540, var_ra->column, var_ra->row);
func_8009B998();
break;
case 0xD4:
@ -5422,23 +5422,23 @@ void add_ui_element(s32 type, s32 column, s32 row, s8 priority) {
case 0xD5:
load_menu_img(D_020015A4);
func_8009B954(D_020015A4);
D_8018E75C = func_8009BA74(D_8018E75C, D_020015A4, var_ra->column, var_ra->row);
gDPLoadTextureBlock(D_8018E75C++, func_8009B8C4(gTexture7ED50C), G_IM_FMT_IA, G_IM_SIZ_16b, 256, 5, 0,
sGfxPtr = func_8009BA74(sGfxPtr, D_020015A4, var_ra->column, var_ra->row);
gDPLoadTextureBlock(sGfxPtr++, func_8009B8C4(gTexture7ED50C), G_IM_FMT_IA, G_IM_SIZ_16b, 256, 5, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(D_8018E75C++, 0x80, 0x2C0, 0x480, 0x2D4, G_TX_RENDERTILE, 0, 0x80, 0x0400, 0xFC00);
gSPTextureRectangle(sGfxPtr++, 0x80, 0x2C0, 0x480, 0x2D4, G_TX_RENDERTILE, 0, 0x80, 0x0400, 0xFC00);
func_8009B998();
load_menu_img(D_020015CC);
func_8009B954(D_020015CC);
D_8018E75C = func_8009BA74(D_8018E75C, D_020015CC, var_ra->column, var_ra->row);
sGfxPtr = func_8009BA74(sGfxPtr, D_020015CC, var_ra->column, var_ra->row);
func_8009B998();
load_menu_img(D_02001630);
func_8009B954(D_02001630);
D_8018E75C = func_8009BA74(D_8018E75C, D_02001630, var_ra->column, var_ra->row);
sGfxPtr = func_8009BA74(sGfxPtr, D_02001630, var_ra->column, var_ra->row);
func_8009B998();
load_menu_img(D_02001658);
func_8009B954(D_02001658);
D_8018E75C = func_8009BA74(D_8018E75C, D_02001658, var_ra->column, var_ra->row);
sGfxPtr = func_8009BA74(sGfxPtr, D_02001658, var_ra->column, var_ra->row);
func_8009B998();
break;
case 0xD6:
@ -5799,7 +5799,7 @@ void func_8009F5E0(MenuItem* arg0) {
func_80094660(gGfxPool, arg0->unk1C);
break;
case START_MENU_FLAG: /* switch 6 */
func_800947B4(gGfxPool, arg0->unk1C);
render_checkered_flag(gGfxPool, arg0->unk1C);
break;
case D_8018D9E0_TYPE_0D2: /* switch 6 */
gDisplayListHead = func_8009B9D0(gDisplayListHead, D_020014C8);
@ -6907,7 +6907,7 @@ void func_800A1FB0(MenuItem* arg0) {
if (var_s1 == 0) {
var_v1 = &D_8018EE10[var_s2];
} else {
var_v1 = &((struct_8018EE10_entry*) D_8018D9C0)[var_s2];
var_v1 = &((struct_8018EE10_entry*) gSomeDLBuffer)[var_s2];
}
if (var_v1->ghostDataSaved == 0) {
print_text_mode_1(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
@ -6946,7 +6946,7 @@ void func_800A1FB0(MenuItem* arg0) {
if (var_s1 == 0) {
var_v1 = &D_8018EE10[var_s2];
} else {
var_v1 = &((struct_8018EE10_entry*) D_8018D9C0)[var_s2];
var_v1 = &((struct_8018EE10_entry*) gSomeDLBuffer)[var_s2];
}
if (var_v1->ghostDataSaved == 0) {
print_text_mode_1(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
@ -6998,7 +6998,7 @@ void func_800A1FB0(MenuItem* arg0) {
if (var_s1 == 0) {
var_v1 = &D_8018EE10[var_s2];
} else {
var_v1 = &((struct_8018EE10_entry*) D_8018D9C0)[var_s2];
var_v1 = &((struct_8018EE10_entry*) gSomeDLBuffer)[var_s2];
}
if (var_v1->ghostDataSaved == 0) {
print_text_mode_1(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
@ -7149,7 +7149,7 @@ void func_800A34A8(MenuItem* arg0) {
if (arg0->state != 0) {
if (arg0->state < 9) {
for (rank = 0; rank < 8; rank++) {
for (rank = 0; rank < NUM_PLAYERS; rank++) {
sp80[rank] = gPlayers[gGPCurrentRacePlayerIdByRank[rank]].characterId;
}
} else {
@ -7283,8 +7283,8 @@ void func_800A3ADC(MenuItem* arg0, s32 arg1, s32 arg2, s32 characterId, s32 arg4
print_text_mode_1(arg1 + 0xA, arg2, D_800E76A8[characterId], 0, 0.7f, 0.7f);
convert_number_to_ascii(gGPPointsByCharacterId[characterId], sp34);
func_800939C8(arg1 + 0x47, arg2, sp34, 0, 0.7f, 0.7f);
if ((arg4 < 4) && (arg0->state < 9)) {
convert_number_to_ascii(D_8018D9BC[arg4], sp34);
if ((arg4 < ARRAY_COUNT(gGPPointRewards)) && (arg0->state < 9)) {
convert_number_to_ascii(sGPPointsCopy[arg4], sp34);
sp34[0] = '+';
print_text_mode_1(arg1 + 0x5A, arg2, sp34, 0, 0.7f, 0.7f);
}
@ -8450,9 +8450,9 @@ void func_800A7A4C(s32 arg0) {
MenuItem* var_s1;
s32 one = 1;
for (var_v1_2 = 0; var_v1_2 < D_8018D9E0_SIZE; var_v1_2++) {
for (var_v1_2 = 0; var_v1_2 < MENU_ITEMS_MAX; var_v1_2++) {
var_v1 = 0;
var_s1 = &D_8018D9E0[var_v1_2];
var_s1 = &gMenuItems[var_v1_2];
type = var_s1->type;
if ((type == UNUSED_TYPE_004) || (type == START_MENU_TEXT_BOX) || (type == D_8018D9E0_TYPE_0C7)) {
if (arg0 != 0) {
@ -8835,9 +8835,9 @@ void func_800A7A4C(s32 arg0) {
}
for (var_s0 = 0; var_s0 < 0x10; var_s0++) {
for (var_v1_2 = 0; var_v1_2 < D_8018D9E0_SIZE; var_v1_2++) {
for (var_v1_2 = 0; var_v1_2 < MENU_ITEMS_MAX; var_v1_2++) {
var_v1 = 0;
var_s1 = &D_8018D9E0[var_v1_2];
var_s1 = &gMenuItems[var_v1_2];
if (var_s1 && var_s1) {} // ?
type = var_s1->type;
if ((type == UNUSED_TYPE_004) || (type == START_MENU_TEXT_BOX) || (type == D_8018D9E0_TYPE_0C7)) {
@ -10023,14 +10023,14 @@ void func_800AAE18(MenuItem* arg0) {
/**
* Similar to find_8018D9E0_entry_dupe, there is potential for a
* hard lock in the function if no appropriate D_8018D9E0 entry
* hard lock in the function if no appropriate gMenuItems entry
* is found.
**/
MenuItem* func_800AAE68(void) {
MenuItem* entry = D_8018D9E0;
MenuItem* entry = gMenuItems;
s32 thing = gPlayerCount - 1;
for (; !(entry > &D_8018D9E0[D_8018D9E0_SIZE]); entry++) {
for (; !(entry > &gMenuItems[MENU_ITEMS_MAX]); entry++) {
if ((thing + 0xB) == entry->type) {
goto escape;
}
@ -10046,13 +10046,13 @@ escape:
/**
* Similar to find_8018D9E0_entry_dupe, there is potential for a
* hard lock in the function if no appropriate D_8018D9E0 entry
* hard lock in the function if no appropriate gMenuItems entry
* is found.
**/
MenuItem* func_800AAEB4(s32 arg0) {
MenuItem* entry = D_8018D9E0;
MenuItem* entry = gMenuItems;
for (; !(entry > &D_8018D9E0[D_8018D9E0_SIZE]); entry++) {
for (; !(entry > &gMenuItems[MENU_ITEMS_MAX]); entry++) {
if ((arg0 + 0x2B) == entry->type) {
goto escape;
}
@ -10077,8 +10077,8 @@ escape:
* reasoning on the original author(s) part.
**/
MenuItem* find_8018D9E0_entry_dupe(s32 type) {
MenuItem* entry = D_8018D9E0;
for (; !(entry > (&D_8018D9E0[D_8018D9E0_SIZE])); entry++) {
MenuItem* entry = gMenuItems;
for (; !(entry > (&gMenuItems[MENU_ITEMS_MAX])); entry++) {
if (entry->type == type) {
goto escape;
}
@ -10093,8 +10093,8 @@ escape:
}
MenuItem* find_8018D9E0_entry(s32 arg0) {
MenuItem* entry = D_8018D9E0;
for (; !(entry > (&D_8018D9E0[D_8018D9E0_SIZE])); entry++) {
MenuItem* entry = gMenuItems;
for (; !(entry > (&gMenuItems[MENU_ITEMS_MAX])); entry++) {
if (entry->type == arg0) {
goto escape;
}
@ -10681,8 +10681,8 @@ void func_800AC458(struct_8018D9E0_entry* arg0) {
case 0:
arg0->column = -0x000000A0;
arg0->state = 1;
for (var_a1 = 0; var_a1 < 4; var_a1++) {
D_8018D9BC[var_a1] = gGPPointRewards[var_a1];
for (var_a1 = 0; var_a1 < ARRAY_COUNT(gGPPointRewards); var_a1++) {
sGPPointsCopy[var_a1] = gGPPointRewards[var_a1];
}
arg0->unk20 = arg0->column;
break;
@ -10723,12 +10723,12 @@ void func_800AC458(struct_8018D9E0_entry* arg0) {
var_a1 = arg0->state - 3;
arg0->unk1C++;
if (((arg0->unk1C % 3) == 0) || (D_8018D9D8 != 0)) {
if (D_8018D9BC[var_a1] > 0) {
D_8018D9BC[var_a1]--;
if (sGPPointsCopy[var_a1] > 0) {
sGPPointsCopy[var_a1]--;
gGPPointsByCharacterId[gPlayers[gGPCurrentRacePlayerIdByRank[var_a1]].characterId] += 1;
play_sound2(SOUND_ACTION_COUNT_SCORE);
var_t1 = 0;
if ((D_8018D9BC[var_a1] == 0) && (arg0->unk20 == 0)) {
if ((sGPPointsCopy[var_a1] == 0) && (arg0->unk20 == 0)) {
arg0->unk20 = 1;
arg0->unk1C = 0;
}
@ -11091,8 +11091,8 @@ void func_800AD2E8(MenuItem* arg0) {
case 0: /* switch 3 */
arg0->column = -0x000000A0;
arg0->state = 1;
for (index = 0; index < 4; index++) {
D_8018D9BC[index] = gGPPointRewards[index];
for (index = 0; index < ARRAY_COUNT(gGPPointRewards); index++) {
sGPPointsCopy[index] = gGPPointRewards[index];
}
arg0->unk20 = arg0->column;
break;

View File

@ -28,7 +28,7 @@ typedef struct {
/* 0x0C */ s32 column;
/* 0x10 */ s32 row;
/* 0x14 */ u8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values
// If equal, later entries in D_8018D9E0 are on top
// If equal, later entries in gMenuItems are on top
/* 0x15 */ u8 visible; // active? If 1 its displayed, if 0 its not
// These seem to be generic space available for use by the struct, no 1 purpose for any given member
/* 0x16 */ s16 unk16; // Potentially unused
@ -44,7 +44,7 @@ typedef struct {
/* 0x04 */ s32 sequenceIndex; // Index in textureSequence that the animation is currently on
/* 0x08 */ s32 frameCountDown; // Frames left for the given animation part
/* 0x0C */ u32 visible; // visbile if 0x80000000, otherwise invisbile AND paused
/* 0x10 */ s32 D_8018E118_index; // Don't know what D_8018E118 tracks
/* 0x10 */ s32 D_8018E118_index; // Don't know what sMenuTextureMap tracks
/* 0x14 */ s32 unk14; // Flip flops between 0 and 1, use unknown
} struct_8018DEE0_entry; // size = 0x18
@ -63,12 +63,12 @@ typedef struct {
/* 0x00 */ u64* textureData; // This should be interpreted as a segmented address
/**
* Its hard to tell what exactly what this is meant to be,
* but it appears to be used as some sort of offset/index from the address stored in D_8018D9B0.
* but it appears to be used as some sort of offset/index from the address stored in gMenuTextureBuffer.
* This value is (roughly) the sum of (width * height) of the
* textures in all the previous entries in D_8018E118
* textures in all the previous entries in sMenuTextureMap
*/
/* 0x04 */ s32 offset;
} struct_8018E118_entry; // size = 0x08
} TextureMap; // size = 0x08
typedef struct {
/* 0x00 */ MkTexture* textures;
@ -374,7 +374,7 @@ void func_80093F10(void);
void func_800940EC(s32);
void func_800942D0(void);
void func_80094660(struct GfxPool*, s32);
void func_800947B4(struct GfxPool*, s32);
void render_checkered_flag(struct GfxPool*, s32);
void func_80094A64(struct GfxPool*);
void render_menus(void);
void func_80095574(void);
@ -630,11 +630,11 @@ void tkmk00decode(u8*, u8*, u8*, s32);
/* File specific defines */
#define D_8018D9E0_SIZE 0x20
#define MENU_ITEMS_MAX 0x20
#define D_8018DEE0_SIZE 0x10
#define D_8018E060_SIZE 0x10
#define D_8018E0E8_SIZE 0x05
#define D_8018E118_SIZE 0xC8
#define TEXTURE_MAP_MAX 0xC8
#define D_8018E768_SIZE 0x08
#define D_8018E7E8_SIZE 0x05
#define D_8018E810_SIZE 0x05
@ -644,23 +644,23 @@ void tkmk00decode(u8*, u8*, u8*, s32);
extern s32 D_800DDB24;
extern s16 D_80164478[];
extern u16* D_8018D9B0;
extern u8* D_8018D9B4;
extern u8* D_8018D9B8;
extern u8* D_8018D9BC;
extern void* D_8018D9C0;
extern u16* gMenuTextureBuffer;
extern u8* gMenuCompressedBuffer;
extern u8* sTKMK00_LowResBuffer;
extern u8* sGPPointsCopy;
extern void* gSomeDLBuffer;
extern s8 gGPPointsByCharacterId[8];
extern s8 gCharacterIdByGPOverallRank[];
extern s8 D_8018D9D8;
extern s8 D_8018D9D9;
extern MenuItem D_8018D9E0[D_8018D9E0_SIZE];
extern MenuItem gMenuItems[MENU_ITEMS_MAX];
extern struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE];
extern struct_8018E060_entry D_8018E060[D_8018E060_SIZE];
extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
extern s32 gMenuTextureBufferIndex;
extern struct_8018E118_entry D_8018E118[D_8018E118_SIZE];
extern TextureMap sMenuTextureMap[TEXTURE_MAP_MAX];
extern s32 gNumD_8018E118Entries;
extern Gfx* D_8018E75C;
extern Gfx* sGfxPtr;
extern s32 gNumD_8018E768Entries;
extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
extern s32 gCycleFlashMenu;

View File

@ -227,7 +227,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) {
if (!func_800B4520()) {
sp38 = find_8018D9E0_entry_dupe(0xF0);
sp30 = (struct_8018EE10_entry*) D_8018D9C0;
sp30 = (struct_8018EE10_entry*) gSomeDLBuffer;
switch (D_8018EDEC) {
case 0x15:
case 0x16:
@ -1988,7 +1988,7 @@ bool func_800B4520(void) {
UNUSED void func_800B4560(s32 arg0, s32 arg1) {
struct_8018EE10_entry* pak1 = D_8018EE10;
struct_8018EE10_entry* pak2 = (struct_8018EE10_entry*) D_8018D9C0;
struct_8018EE10_entry* pak2 = (struct_8018EE10_entry*) gSomeDLBuffer;
rmonPrintf("ghost_kart=%d,", D_80162DE0);
rmonPrintf("pak1_ghost_kart=%d,", (pak1 + arg0)->characterId);

View File

@ -909,7 +909,7 @@ s32 func_800B65F4(s32 arg0, s32 arg1) {
writeStatus = osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, 0U, (arg0 * 0x3C00) + 0x100,
0x00003C00, (u8*) D_800DC714);
if (writeStatus == 0) {
temp_s3 = &((struct_8018EE10_entry*) D_8018D9C0)[arg0];
temp_s3 = &((struct_8018EE10_entry*) gSomeDLBuffer)[arg0];
for (i = 0; i < 0x3C; i++) {
if (temp_s3->unk_07[i] != func_800B60E8(i)) {
temp_s3->ghostDataSaved = 0;
@ -940,14 +940,14 @@ void func_800B6798(void) {
s32 temp_s0;
u8* tmp;
tmp = (u8*) D_8018D9C0;
tmp = (u8*) gSomeDLBuffer;
osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, PFS_READ, 0,
0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, tmp);
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
// if (D_8018D9C0[temp_s0]->checksum != func_800B68F4(temp_s0)) {
// D_8018D9C0[temp_s0]->ghostDataSaved = 0;
// if (gSomeDLBuffer[temp_s0]->checksum != func_800B68F4(temp_s0)) {
// gSomeDLBuffer[temp_s0]->ghostDataSaved = 0;
// }
if (((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->checksum != func_800B68F4(temp_s0)) {
((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->ghostDataSaved = 0;
@ -972,7 +972,7 @@ u8 func_800B68F4(s32 arg0) {
s32 i;
checksum = 0;
for (i = 0; i < 0x43; i++) {
u8* addr = &((u8*) D_8018D9C0)[arg0];
u8* addr = &((u8*) gSomeDLBuffer)[arg0];
checksum += addr[i] * multiplier + i;
}
return checksum;