1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-02 09:34:27 +00:00

Decompile remaining z_vis... files (#131)

* Decompile z_vismono.c / code_800AD920.c

- z_vismono.c: OK
- code_800AD920.c: OK

* Minor fixes in PR #131
This commit is contained in:
Random 2020-05-15 11:02:39 +02:00 committed by GitHub
parent 461525b40c
commit d556999b2b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 1682 additions and 911 deletions

View file

@ -1,181 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800AD920
/* B24AC0 800AD920 240200FF */ li $v0, 255
/* B24AC4 800AD924 AC800000 */ sw $zero, ($a0)
/* B24AC8 800AD928 AC800004 */ sw $zero, 4($a0)
/* B24ACC 800AD92C A0820008 */ sb $v0, 8($a0)
/* B24AD0 800AD930 A0820009 */ sb $v0, 9($a0)
/* B24AD4 800AD934 A082000A */ sb $v0, 0xa($a0)
/* B24AD8 800AD938 A082000B */ sb $v0, 0xb($a0)
/* B24ADC 800AD93C A082000F */ sb $v0, 0xf($a0)
/* B24AE0 800AD940 A080000C */ sb $zero, 0xc($a0)
/* B24AE4 800AD944 A080000D */ sb $zero, 0xd($a0)
/* B24AE8 800AD948 03E00008 */ jr $ra
/* B24AEC 800AD94C A080000E */ sb $zero, 0xe($a0)
glabel func_800AD950
/* B24AF0 800AD950 03E00008 */ jr $ra
/* B24AF4 800AD954 AFA40000 */ sw $a0, ($sp)
glabel func_800AD958
/* B24AF8 800AD958 27BDFFF8 */ addiu $sp, $sp, -8
/* B24AFC 800AD95C AFB00004 */ sw $s0, 4($sp)
/* B24B00 800AD960 AFA5000C */ sw $a1, 0xc($sp)
/* B24B04 800AD964 8C8F0000 */ lw $t7, ($a0)
/* B24B08 800AD968 3C060E00 */ lui $a2, 0xe00
/* B24B0C 800AD96C 8CA20000 */ lw $v0, ($a1)
/* B24B10 800AD970 15E00003 */ bnez $t7, .L800AD980
/* B24B14 800AD974 24C60000 */ addiu $a2, $a2, 0
/* B24B18 800AD978 10000002 */ b .L800AD984
/* B24B1C 800AD97C 24030003 */ li $v1, 3
.L800AD980:
/* B24B20 800AD980 00001825 */ move $v1, $zero
.L800AD984:
/* B24B24 800AD984 00402825 */ move $a1, $v0
/* B24B28 800AD988 3C18E700 */ lui $t8, 0xe700
/* B24B2C 800AD98C ACB80000 */ sw $t8, ($a1)
/* B24B30 800AD990 ACA00004 */ sw $zero, 4($a1)
/* B24B34 800AD994 8C990004 */ lw $t9, 4($a0)
/* B24B38 800AD998 24010001 */ li $at, 1
/* B24B3C 800AD99C 24420008 */ addiu $v0, $v0, 8
/* B24B40 800AD9A0 17210008 */ bne $t9, $at, .L800AD9C4
/* B24B44 800AD9A4 3C18EF00 */ lui $t8, (0xEF000C30 >> 16) # lui $t8, 0xef00
/* B24B48 800AD9A8 00402825 */ move $a1, $v0
/* B24B4C 800AD9AC 3C0F0050 */ lui $t7, (0x005003C0 >> 16) # lui $t7, 0x50
/* B24B50 800AD9B0 35EF03C0 */ ori $t7, (0x005003C0 & 0xFFFF) # ori $t7, $t7, 0x3c0
/* B24B54 800AD9B4 3C0EED00 */ lui $t6, 0xed00
/* B24B58 800AD9B8 ACAE0000 */ sw $t6, ($a1)
/* B24B5C 800AD9BC ACAF0004 */ sw $t7, 4($a1)
/* B24B60 800AD9C0 24420008 */ addiu $v0, $v0, 8
.L800AD9C4:
/* B24B64 800AD9C4 00402825 */ move $a1, $v0
/* B24B68 800AD9C8 3C190F0A */ lui $t9, (0x0F0A4004 >> 16) # lui $t9, 0xf0a
/* B24B6C 800AD9CC 37394004 */ ori $t9, (0x0F0A4004 & 0xFFFF) # ori $t9, $t9, 0x4004
/* B24B70 800AD9D0 37180C30 */ ori $t8, (0xEF000C30 & 0xFFFF) # ori $t8, $t8, 0xc30
/* B24B74 800AD9D4 ACB80000 */ sw $t8, ($a1)
/* B24B78 800AD9D8 ACB90004 */ sw $t9, 4($a1)
/* B24B7C 800AD9DC 24420008 */ addiu $v0, $v0, 8
/* B24B80 800AD9E0 00402825 */ move $a1, $v0
/* B24B84 800AD9E4 3C0EFC30 */ lui $t6, (0xFC30B261 >> 16) # lui $t6, 0xfc30
/* B24B88 800AD9E8 3C0F5566 */ lui $t7, (0x5566DB6D >> 16) # lui $t7, 0x5566
/* B24B8C 800AD9EC 35EFDB6D */ ori $t7, (0x5566DB6D & 0xFFFF) # ori $t7, $t7, 0xdb6d
/* B24B90 800AD9F0 35CEB261 */ ori $t6, (0xFC30B261 & 0xFFFF) # ori $t6, $t6, 0xb261
/* B24B94 800AD9F4 ACAE0000 */ sw $t6, ($a1)
/* B24B98 800AD9F8 ACAF0004 */ sw $t7, 4($a1)
/* B24B9C 800AD9FC 24420008 */ addiu $v0, $v0, 8
/* B24BA0 800ADA00 00402825 */ move $a1, $v0
/* B24BA4 800ADA04 3C18FA00 */ lui $t8, 0xfa00
/* B24BA8 800ADA08 ACB80000 */ sw $t8, ($a1)
/* B24BAC 800ADA0C 8C990008 */ lw $t9, 8($a0)
/* B24BB0 800ADA10 24420008 */ addiu $v0, $v0, 8
/* B24BB4 800ADA14 3C0EFB00 */ lui $t6, 0xfb00
/* B24BB8 800ADA18 ACB90004 */ sw $t9, 4($a1)
/* B24BBC 800ADA1C 00402825 */ move $a1, $v0
/* B24BC0 800ADA20 30690007 */ andi $t1, $v1, 7
/* B24BC4 800ADA24 ACAE0000 */ sw $t6, ($a1)
/* B24BC8 800ADA28 00094D40 */ sll $t1, $t1, 0x15
/* B24BCC 800ADA2C 3C01FD00 */ lui $at, 0xfd00
/* B24BD0 800ADA30 8C8F000C */ lw $t7, 0xc($a0)
/* B24BD4 800ADA34 01213825 */ or $a3, $t1, $at
/* B24BD8 800ADA38 3C010010 */ lui $at, 0x10
/* B24BDC 800ADA3C 00E13825 */ or $a3, $a3, $at
/* B24BE0 800ADA40 3C01F500 */ lui $at, 0xf500
/* B24BE4 800ADA44 ACAF0004 */ sw $t7, 4($a1)
/* B24BE8 800ADA48 01212825 */ or $a1, $t1, $at
/* B24BEC 800ADA4C 3C010010 */ lui $at, 0x10
/* B24BF0 800ADA50 00A12825 */ or $a1, $a1, $at
/* B24BF4 800ADA54 3C090708 */ lui $t1, (0x07080200 >> 16) # lui $t1, 0x708
/* B24BF8 800ADA58 3C0D0008 */ lui $t5, (0x00080200 >> 16) # lui $t5, 8
/* B24BFC 800ADA5C 24420008 */ addiu $v0, $v0, 8
/* B24C00 800ADA60 35AD0200 */ ori $t5, (0x00080200 & 0xFFFF) # ori $t5, $t5, 0x200
/* B24C04 800ADA64 35290200 */ ori $t1, (0x07080200 & 0xFFFF) # ori $t1, $t1, 0x200
/* B24C08 800ADA68 34A8A000 */ ori $t0, $a1, 0xa000
/* B24C0C 800ADA6C 00002025 */ move $a0, $zero
/* B24C10 800ADA70 3C0C0700 */ lui $t4, 0x700
/* B24C14 800ADA74 3C0BF300 */ lui $t3, 0xf300
/* B24C18 800ADA78 3C0AE600 */ lui $t2, 0xe600
.L800ADA7C:
/* B24C1C 800ADA7C 00401825 */ move $v1, $v0
/* B24C20 800ADA80 AC670000 */ sw $a3, ($v1)
/* B24C24 800ADA84 AC660004 */ sw $a2, 4($v1)
/* B24C28 800ADA88 24420008 */ addiu $v0, $v0, 8
/* B24C2C 800ADA8C 00401825 */ move $v1, $v0
/* B24C30 800ADA90 AC650000 */ sw $a1, ($v1)
/* B24C34 800ADA94 AC690004 */ sw $t1, 4($v1)
/* B24C38 800ADA98 24420008 */ addiu $v0, $v0, 8
/* B24C3C 800ADA9C 00401825 */ move $v1, $v0
/* B24C40 800ADAA0 2410077F */ li $s0, 1919
/* B24C44 800ADAA4 32180FFF */ andi $t8, $s0, 0xfff
/* B24C48 800ADAA8 AC6A0000 */ sw $t2, ($v1)
/* B24C4C 800ADAAC AC600004 */ sw $zero, 4($v1)
/* B24C50 800ADAB0 24420008 */ addiu $v0, $v0, 8
/* B24C54 800ADAB4 00401825 */ move $v1, $v0
/* B24C58 800ADAB8 0018CB00 */ sll $t9, $t8, 0xc
/* B24C5C 800ADABC 032C7025 */ or $t6, $t9, $t4
/* B24C60 800ADAC0 35CF001A */ ori $t7, $t6, 0x1a
/* B24C64 800ADAC4 AC6F0004 */ sw $t7, 4($v1)
/* B24C68 800ADAC8 AC6B0000 */ sw $t3, ($v1)
/* B24C6C 800ADACC 24420008 */ addiu $v0, $v0, 8
/* B24C70 800ADAD0 00401825 */ move $v1, $v0
/* B24C74 800ADAD4 3C18E700 */ lui $t8, 0xe700
/* B24C78 800ADAD8 AC780000 */ sw $t8, ($v1)
/* B24C7C 800ADADC AC600004 */ sw $zero, 4($v1)
/* B24C80 800ADAE0 24420008 */ addiu $v0, $v0, 8
/* B24C84 800ADAE4 00401825 */ move $v1, $v0
/* B24C88 800ADAE8 AC680000 */ sw $t0, ($v1)
/* B24C8C 800ADAEC AC6D0004 */ sw $t5, 4($v1)
/* B24C90 800ADAF0 24420008 */ addiu $v0, $v0, 8
/* B24C94 800ADAF4 00401825 */ move $v1, $v0
/* B24C98 800ADAF8 3C0E004F */ lui $t6, (0x004FC014 >> 16) # lui $t6, 0x4f
/* B24C9C 800ADAFC 35CEC014 */ ori $t6, (0x004FC014 & 0xFFFF) # ori $t6, $t6, 0xc014
/* B24CA0 800ADB00 3C19F200 */ lui $t9, 0xf200
/* B24CA4 800ADB04 AC790000 */ sw $t9, ($v1)
/* B24CA8 800ADB08 AC6E0004 */ sw $t6, 4($v1)
/* B24CAC 800ADB0C 24830006 */ addiu $v1, $a0, 6
/* B24CB0 800ADB10 24420008 */ addiu $v0, $v0, 8
/* B24CB4 800ADB14 00037880 */ sll $t7, $v1, 2
/* B24CB8 800ADB18 31F80FFF */ andi $t8, $t7, 0xfff
/* B24CBC 800ADB1C 00408025 */ move $s0, $v0
/* B24CC0 800ADB20 00047080 */ sll $t6, $a0, 2
/* B24CC4 800ADB24 24420008 */ addiu $v0, $v0, 8
/* B24CC8 800ADB28 3C01E450 */ lui $at, 0xe450
/* B24CCC 800ADB2C 0301C825 */ or $t9, $t8, $at
/* B24CD0 800ADB30 00402025 */ move $a0, $v0
/* B24CD4 800ADB34 31CF0FFF */ andi $t7, $t6, 0xfff
/* B24CD8 800ADB38 AE0F0004 */ sw $t7, 4($s0)
/* B24CDC 800ADB3C AE190000 */ sw $t9, ($s0)
/* B24CE0 800ADB40 3C18E100 */ lui $t8, 0xe100
/* B24CE4 800ADB44 AC980000 */ sw $t8, ($a0)
/* B24CE8 800ADB48 AC800004 */ sw $zero, 4($a0)
/* B24CEC 800ADB4C 24420008 */ addiu $v0, $v0, 8
/* B24CF0 800ADB50 00402025 */ move $a0, $v0
/* B24CF4 800ADB54 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400
/* B24CF8 800ADB58 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400
/* B24CFC 800ADB5C 3C19F100 */ lui $t9, 0xf100
/* B24D00 800ADB60 286100EB */ slti $at, $v1, 0xeb
/* B24D04 800ADB64 AC990000 */ sw $t9, ($a0)
/* B24D08 800ADB68 AC8E0004 */ sw $t6, 4($a0)
/* B24D0C 800ADB6C 00602025 */ move $a0, $v1
/* B24D10 800ADB70 24420008 */ addiu $v0, $v0, 8
/* B24D14 800ADB74 1420FFC1 */ bnez $at, .L800ADA7C
/* B24D18 800ADB78 24C60F00 */ addiu $a2, $a2, 0xf00
/* B24D1C 800ADB7C 00401825 */ move $v1, $v0
/* B24D20 800ADB80 3C0FE700 */ lui $t7, 0xe700
/* B24D24 800ADB84 AC6F0000 */ sw $t7, ($v1)
/* B24D28 800ADB88 AC600004 */ sw $zero, 4($v1)
/* B24D2C 800ADB8C 8FB8000C */ lw $t8, 0xc($sp)
/* B24D30 800ADB90 24420008 */ addiu $v0, $v0, 8
/* B24D34 800ADB94 AF020000 */ sw $v0, ($t8)
/* B24D38 800ADB98 8FB00004 */ lw $s0, 4($sp)
/* B24D3C 800ADB9C 03E00008 */ jr $ra
/* B24D40 800ADBA0 27BD0008 */ addiu $sp, $sp, 8

1423
asm/game.s Normal file

File diff suppressed because it is too large Load diff

View file

@ -321,7 +321,7 @@ glabel Gameplay_Draw
/* B3642C 800BF28C 8FAC01D0 */ lw $t4, 0x1d0($sp) /* B3642C 800BF28C 8FAC01D0 */ lw $t4, 0x1d0($sp)
/* B36430 800BF290 8C4B0000 */ lw $t3, ($v0) /* B36430 800BF290 8C4B0000 */ lw $t3, ($v0)
/* B36434 800BF294 27A501D0 */ addiu $a1, $sp, 0x1d0 /* B36434 800BF294 27A501D0 */ addiu $a1, $sp, 0x1d0
/* B36438 800BF298 0C02B570 */ jal func_800AD5C0 /* B36438 800BF298 0C02B570 */ jal VisMono_Draw
/* B3643C 800BF29C AC8B0008 */ sw $t3, 8($a0) /* B3643C 800BF29C AC8B0008 */ sw $t3, 8($a0)
/* B36440 800BF2A0 8FAC01D0 */ lw $t4, 0x1d0($sp) /* B36440 800BF2A0 8FAC01D0 */ lw $t4, 0x1d0($sp)
.L800BF2A4: .L800BF2A4:

View file

@ -475,7 +475,7 @@ glabel Gameplay_Init
/* B34264 800BD0C4 0C02CD38 */ jal TransitionFade_Start /* B34264 800BD0C4 0C02CD38 */ jal TransitionFade_Start
/* B34268 800BD0C8 02002025 */ move $a0, $s0 /* B34268 800BD0C8 02002025 */ move $a0, $s0
/* B3426C 800BD0CC 3C048016 */ lui $a0, %hi(D_80161498) # $a0, 0x8016 /* B3426C 800BD0CC 3C048016 */ lui $a0, %hi(D_80161498) # $a0, 0x8016
/* B34270 800BD0D0 0C02B400 */ jal func_800AD000 /* B34270 800BD0D0 0C02B400 */ jal VisMono_Init
/* B34274 800BD0D4 24841498 */ addiu $a0, %lo(D_80161498) # addiu $a0, $a0, 0x1498 /* B34274 800BD0D4 24841498 */ addiu $a0, %lo(D_80161498) # addiu $a0, $a0, 0x1498
/* B34278 800BD0D8 3C018016 */ lui $at, %hi(D_801614B0+3) # $at, 0x8016 /* B34278 800BD0D8 3C018016 */ lui $at, %hi(D_801614B0+3) # $at, 0x8016
/* B3427C 800BD0DC A02014B3 */ sb $zero, %lo(D_801614B0+3)($at) /* B3427C 800BD0DC A02014B3 */ sb $zero, %lo(D_801614B0+3)($at)

View file

@ -1,23 +0,0 @@
glabel func_800AD000
/* B241A0 800AD000 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B241A4 800AD004 AFBF0014 */ sw $ra, 0x14($sp)
/* B241A8 800AD008 AFA40018 */ sw $a0, 0x18($sp)
/* B241AC 800AD00C 0C001114 */ jal bzero
/* B241B0 800AD010 24050018 */ li $a1, 24
/* B241B4 800AD014 8FA40018 */ lw $a0, 0x18($sp)
/* B241B8 800AD018 240200FF */ li $v0, 255
/* B241BC 800AD01C AC800000 */ sw $zero, ($a0)
/* B241C0 800AD020 AC800004 */ sw $zero, 4($a0)
/* B241C4 800AD024 A0820008 */ sb $v0, 8($a0)
/* B241C8 800AD028 A0820009 */ sb $v0, 9($a0)
/* B241CC 800AD02C A082000A */ sb $v0, 0xa($a0)
/* B241D0 800AD030 A082000B */ sb $v0, 0xb($a0)
/* B241D4 800AD034 A080000C */ sb $zero, 0xc($a0)
/* B241D8 800AD038 A080000D */ sb $zero, 0xd($a0)
/* B241DC 800AD03C A080000E */ sb $zero, 0xe($a0)
/* B241E0 800AD040 A080000F */ sb $zero, 0xf($a0)
/* B241E4 800AD044 8FBF0014 */ lw $ra, 0x14($sp)
/* B241E8 800AD048 27BD0018 */ addiu $sp, $sp, 0x18
/* B241EC 800AD04C 03E00008 */ jr $ra
/* B241F0 800AD050 00000000 */ nop

View file

@ -1,19 +0,0 @@
.rdata
glabel D_801417C0
.asciz "../z_vismono.c"
.balign 4
.text
glabel func_800AD054
/* B241F4 800AD054 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B241F8 800AD058 AFBF0014 */ sw $ra, 0x14($sp)
/* B241FC 800AD05C 3C058014 */ lui $a1, %hi(D_801417C0) # $a1, 0x8014
/* B24200 800AD060 24A517C0 */ addiu $a1, %lo(D_801417C0) # addiu $a1, $a1, 0x17c0
/* B24204 800AD064 8C840014 */ lw $a0, 0x14($a0)
/* B24208 800AD068 0C03F5ED */ jal SystemArena_FreeDebug
/* B2420C 800AD06C 24060089 */ li $a2, 137
/* B24210 800AD070 8FBF0014 */ lw $ra, 0x14($sp)
/* B24214 800AD074 27BD0018 */ addiu $sp, $sp, 0x18
/* B24218 800AD078 03E00008 */ jr $ra
/* B2421C 800AD07C 00000000 */ nop

View file

@ -1,216 +0,0 @@
glabel func_800AD080
/* B24220 800AD080 AFA40000 */ sw $a0, ($sp)
/* B24224 800AD084 00001025 */ move $v0, $zero
/* B24228 800AD088 00A01825 */ move $v1, $a1
/* B2422C 800AD08C 24090100 */ li $t1, 256
/* B24230 800AD090 240800D9 */ li $t0, 217
/* B24234 800AD094 240700FF */ li $a3, 255
/* B24238 800AD098 000270C3 */ sra $t6, $v0, 3
.L800AD09C:
/* B2423C 800AD09C 0002C880 */ sll $t9, $v0, 2
/* B24240 800AD0A0 332A001F */ andi $t2, $t9, 0x1f
/* B24244 800AD0A4 31CF001F */ andi $t7, $t6, 0x1f
/* B24248 800AD0A8 000FC040 */ sll $t8, $t7, 1
/* B2424C 800AD0AC 000A5880 */ sll $t3, $t2, 2
/* B24250 800AD0B0 030B6021 */ addu $t4, $t8, $t3
/* B24254 800AD0B4 01870019 */ multu $t4, $a3
/* B24258 800AD0B8 0002C983 */ sra $t9, $v0, 6
/* B2425C 800AD0BC 332A001F */ andi $t2, $t9, 0x1f
/* B24260 800AD0C0 00025843 */ sra $t3, $v0, 1
/* B24264 800AD0C4 316C001F */ andi $t4, $t3, 0x1f
/* B24268 800AD0C8 000AC080 */ sll $t8, $t2, 2
/* B2426C 800AD0CC 24440001 */ addiu $a0, $v0, 1
/* B24270 800AD0D0 000458C3 */ sra $t3, $a0, 3
/* B24274 800AD0D4 24450002 */ addiu $a1, $v0, 2
/* B24278 800AD0D8 24460003 */ addiu $a2, $v0, 3
/* B2427C 800AD0DC 00006812 */ mflo $t5
/* B24280 800AD0E0 24420004 */ addiu $v0, $v0, 4
/* B24284 800AD0E4 24630008 */ addiu $v1, $v1, 8
/* B24288 800AD0E8 01A8001A */ div $zero, $t5, $t0
/* B2428C 800AD0EC 00007012 */ mflo $t6
/* B24290 800AD0F0 000E7A00 */ sll $t7, $t6, 8
/* B24294 800AD0F4 15000002 */ bnez $t0, .L800AD100
/* B24298 800AD0F8 00000000 */ nop
/* B2429C 800AD0FC 0007000D */ break 7
.L800AD100:
/* B242A0 800AD100 2401FFFF */ li $at, -1
/* B242A4 800AD104 15010004 */ bne $t0, $at, .L800AD118
/* B242A8 800AD108 3C018000 */ lui $at, 0x8000
/* B242AC 800AD10C 15A10002 */ bne $t5, $at, .L800AD118
/* B242B0 800AD110 00000000 */ nop
/* B242B4 800AD114 0006000D */ break 6
.L800AD118:
/* B242B8 800AD118 030C6821 */ addu $t5, $t8, $t4
/* B242BC 800AD11C 01A70019 */ multu $t5, $a3
/* B242C0 800AD120 00046880 */ sll $t5, $a0, 2
/* B242C4 800AD124 3178001F */ andi $t8, $t3, 0x1f
/* B242C8 800AD128 00186040 */ sll $t4, $t8, 1
/* B242CC 800AD12C 00007012 */ mflo $t6
/* B242D0 800AD130 00000000 */ nop
/* B242D4 800AD134 00000000 */ nop
/* B242D8 800AD138 01C8001A */ div $zero, $t6, $t0
/* B242DC 800AD13C 15000002 */ bnez $t0, .L800AD148
/* B242E0 800AD140 00000000 */ nop
/* B242E4 800AD144 0007000D */ break 7
.L800AD148:
/* B242E8 800AD148 2401FFFF */ li $at, -1
/* B242EC 800AD14C 15010004 */ bne $t0, $at, .L800AD160
/* B242F0 800AD150 3C018000 */ lui $at, 0x8000
/* B242F4 800AD154 15C10002 */ bne $t6, $at, .L800AD160
/* B242F8 800AD158 00000000 */ nop
/* B242FC 800AD15C 0006000D */ break 6
.L800AD160:
/* B24300 800AD160 0000C812 */ mflo $t9
/* B24304 800AD164 31AE001F */ andi $t6, $t5, 0x1f
/* B24308 800AD168 01F95025 */ or $t2, $t7, $t9
/* B2430C 800AD16C 000E7880 */ sll $t7, $t6, 2
/* B24310 800AD170 018FC821 */ addu $t9, $t4, $t7
/* B24314 800AD174 03270019 */ multu $t9, $a3
/* B24318 800AD178 A46AFFF8 */ sh $t2, -8($v1)
/* B2431C 800AD17C 00046983 */ sra $t5, $a0, 6
/* B24320 800AD180 31AE001F */ andi $t6, $t5, 0x1f
/* B24324 800AD184 00047843 */ sra $t7, $a0, 1
/* B24328 800AD188 31F9001F */ andi $t9, $t7, 0x1f
/* B2432C 800AD18C 000E6080 */ sll $t4, $t6, 2
/* B24330 800AD190 000578C3 */ sra $t7, $a1, 3
/* B24334 800AD194 00005012 */ mflo $t2
/* B24338 800AD198 00000000 */ nop
/* B2433C 800AD19C 00000000 */ nop
/* B24340 800AD1A0 0148001A */ div $zero, $t2, $t0
/* B24344 800AD1A4 00005812 */ mflo $t3
/* B24348 800AD1A8 000BC200 */ sll $t8, $t3, 8
/* B2434C 800AD1AC 15000002 */ bnez $t0, .L800AD1B8
/* B24350 800AD1B0 00000000 */ nop
/* B24354 800AD1B4 0007000D */ break 7
.L800AD1B8:
/* B24358 800AD1B8 2401FFFF */ li $at, -1
/* B2435C 800AD1BC 15010004 */ bne $t0, $at, .L800AD1D0
/* B24360 800AD1C0 3C018000 */ lui $at, 0x8000
/* B24364 800AD1C4 15410002 */ bne $t2, $at, .L800AD1D0
/* B24368 800AD1C8 00000000 */ nop
/* B2436C 800AD1CC 0006000D */ break 6
.L800AD1D0:
/* B24370 800AD1D0 01995021 */ addu $t2, $t4, $t9
/* B24374 800AD1D4 01470019 */ multu $t2, $a3
/* B24378 800AD1D8 00055080 */ sll $t2, $a1, 2
/* B2437C 800AD1DC 31EC001F */ andi $t4, $t7, 0x1f
/* B24380 800AD1E0 000CC840 */ sll $t9, $t4, 1
/* B24384 800AD1E4 00005812 */ mflo $t3
/* B24388 800AD1E8 00000000 */ nop
/* B2438C 800AD1EC 00000000 */ nop
/* B24390 800AD1F0 0168001A */ div $zero, $t3, $t0
/* B24394 800AD1F4 15000002 */ bnez $t0, .L800AD200
/* B24398 800AD1F8 00000000 */ nop
/* B2439C 800AD1FC 0007000D */ break 7
.L800AD200:
/* B243A0 800AD200 2401FFFF */ li $at, -1
/* B243A4 800AD204 15010004 */ bne $t0, $at, .L800AD218
/* B243A8 800AD208 3C018000 */ lui $at, 0x8000
/* B243AC 800AD20C 15610002 */ bne $t3, $at, .L800AD218
/* B243B0 800AD210 00000000 */ nop
/* B243B4 800AD214 0006000D */ break 6
.L800AD218:
/* B243B8 800AD218 00006812 */ mflo $t5
/* B243BC 800AD21C 030D7025 */ or $t6, $t8, $t5
/* B243C0 800AD220 314B001F */ andi $t3, $t2, 0x1f
/* B243C4 800AD224 000BC080 */ sll $t8, $t3, 2
/* B243C8 800AD228 03386821 */ addu $t5, $t9, $t8
/* B243CC 800AD22C 01A70019 */ multu $t5, $a3
/* B243D0 800AD230 A46EFFFA */ sh $t6, -6($v1)
/* B243D4 800AD234 00055183 */ sra $t2, $a1, 6
/* B243D8 800AD238 314B001F */ andi $t3, $t2, 0x1f
/* B243DC 800AD23C 0005C043 */ sra $t8, $a1, 1
/* B243E0 800AD240 330D001F */ andi $t5, $t8, 0x1f
/* B243E4 800AD244 000BC880 */ sll $t9, $t3, 2
/* B243E8 800AD248 0006C0C3 */ sra $t8, $a2, 3
/* B243EC 800AD24C 00007012 */ mflo $t6
/* B243F0 800AD250 00000000 */ nop
/* B243F4 800AD254 00000000 */ nop
/* B243F8 800AD258 01C8001A */ div $zero, $t6, $t0
/* B243FC 800AD25C 00007812 */ mflo $t7
/* B24400 800AD260 000F6200 */ sll $t4, $t7, 8
/* B24404 800AD264 15000002 */ bnez $t0, .L800AD270
/* B24408 800AD268 00000000 */ nop
/* B2440C 800AD26C 0007000D */ break 7
.L800AD270:
/* B24410 800AD270 2401FFFF */ li $at, -1
/* B24414 800AD274 15010004 */ bne $t0, $at, .L800AD288
/* B24418 800AD278 3C018000 */ lui $at, 0x8000
/* B2441C 800AD27C 15C10002 */ bne $t6, $at, .L800AD288
/* B24420 800AD280 00000000 */ nop
/* B24424 800AD284 0006000D */ break 6
.L800AD288:
/* B24428 800AD288 032D7021 */ addu $t6, $t9, $t5
/* B2442C 800AD28C 01C70019 */ multu $t6, $a3
/* B24430 800AD290 00067080 */ sll $t6, $a2, 2
/* B24434 800AD294 3319001F */ andi $t9, $t8, 0x1f
/* B24438 800AD298 00196840 */ sll $t5, $t9, 1
/* B2443C 800AD29C 00007812 */ mflo $t7
/* B24440 800AD2A0 00000000 */ nop
/* B24444 800AD2A4 00000000 */ nop
/* B24448 800AD2A8 01E8001A */ div $zero, $t7, $t0
/* B2444C 800AD2AC 15000002 */ bnez $t0, .L800AD2B8
/* B24450 800AD2B0 00000000 */ nop
/* B24454 800AD2B4 0007000D */ break 7
.L800AD2B8:
/* B24458 800AD2B8 2401FFFF */ li $at, -1
/* B2445C 800AD2BC 15010004 */ bne $t0, $at, .L800AD2D0
/* B24460 800AD2C0 3C018000 */ lui $at, 0x8000
/* B24464 800AD2C4 15E10002 */ bne $t7, $at, .L800AD2D0
/* B24468 800AD2C8 00000000 */ nop
/* B2446C 800AD2CC 0006000D */ break 6
.L800AD2D0:
/* B24470 800AD2D0 00005012 */ mflo $t2
/* B24474 800AD2D4 018A5825 */ or $t3, $t4, $t2
/* B24478 800AD2D8 31CF001F */ andi $t7, $t6, 0x1f
/* B2447C 800AD2DC 000F6080 */ sll $t4, $t7, 2
/* B24480 800AD2E0 01AC5021 */ addu $t2, $t5, $t4
/* B24484 800AD2E4 01470019 */ multu $t2, $a3
/* B24488 800AD2E8 A46BFFFC */ sh $t3, -4($v1)
/* B2448C 800AD2EC 00067183 */ sra $t6, $a2, 6
/* B24490 800AD2F0 31CF001F */ andi $t7, $t6, 0x1f
/* B24494 800AD2F4 00066043 */ sra $t4, $a2, 1
/* B24498 800AD2F8 318A001F */ andi $t2, $t4, 0x1f
/* B2449C 800AD2FC 000F6880 */ sll $t5, $t7, 2
/* B244A0 800AD300 00005812 */ mflo $t3
/* B244A4 800AD304 00000000 */ nop
/* B244A8 800AD308 00000000 */ nop
/* B244AC 800AD30C 0168001A */ div $zero, $t3, $t0
/* B244B0 800AD310 0000C012 */ mflo $t8
/* B244B4 800AD314 0018CA00 */ sll $t9, $t8, 8
/* B244B8 800AD318 15000002 */ bnez $t0, .L800AD324
/* B244BC 800AD31C 00000000 */ nop
/* B244C0 800AD320 0007000D */ break 7
.L800AD324:
/* B244C4 800AD324 2401FFFF */ li $at, -1
/* B244C8 800AD328 15010004 */ bne $t0, $at, .L800AD33C
/* B244CC 800AD32C 3C018000 */ lui $at, 0x8000
/* B244D0 800AD330 15610002 */ bne $t3, $at, .L800AD33C
/* B244D4 800AD334 00000000 */ nop
/* B244D8 800AD338 0006000D */ break 6
.L800AD33C:
/* B244DC 800AD33C 01AA5821 */ addu $t3, $t5, $t2
/* B244E0 800AD340 01670019 */ multu $t3, $a3
/* B244E4 800AD344 0000C012 */ mflo $t8
/* B244E8 800AD348 00000000 */ nop
/* B244EC 800AD34C 00000000 */ nop
/* B244F0 800AD350 0308001A */ div $zero, $t8, $t0
/* B244F4 800AD354 00007012 */ mflo $t6
/* B244F8 800AD358 032E7825 */ or $t7, $t9, $t6
/* B244FC 800AD35C 15000002 */ bnez $t0, .L800AD368
/* B24500 800AD360 00000000 */ nop
/* B24504 800AD364 0007000D */ break 7
.L800AD368:
/* B24508 800AD368 2401FFFF */ li $at, -1
/* B2450C 800AD36C 15010004 */ bne $t0, $at, .L800AD380
/* B24510 800AD370 3C018000 */ lui $at, 0x8000
/* B24514 800AD374 17010002 */ bne $t8, $at, .L800AD380
/* B24518 800AD378 00000000 */ nop
/* B2451C 800AD37C 0006000D */ break 6
.L800AD380:
/* B24520 800AD380 A46FFFFE */ sh $t7, -2($v1)
/* B24524 800AD384 5449FF45 */ bnel $v0, $t1, .L800AD09C
/* B24528 800AD388 000270C3 */ sra $t6, $v0, 3
/* B2452C 800AD38C 03E00008 */ jr $ra
/* B24530 800AD390 00000000 */ nop

View file

@ -1,142 +0,0 @@
glabel func_800AD394
/* B24534 800AD394 00A01025 */ move $v0, $a1
/* B24538 800AD398 AFA40000 */ sw $a0, ($sp)
/* B2453C 800AD39C 3C0EE700 */ lui $t6, 0xe700
/* B24540 800AD3A0 AC4E0000 */ sw $t6, ($v0)
/* B24544 800AD3A4 AC400004 */ sw $zero, 4($v0)
/* B24548 800AD3A8 24A50008 */ addiu $a1, $a1, 8
/* B2454C 800AD3AC 00A01025 */ move $v0, $a1
/* B24550 800AD3B0 3C0FEF90 */ lui $t7, (0xEF90CCF0 >> 16) # lui $t7, 0xef90
/* B24554 800AD3B4 3C180C18 */ lui $t8, (0x0C184344 >> 16) # lui $t8, 0xc18
/* B24558 800AD3B8 37184344 */ ori $t8, (0x0C184344 & 0xFFFF) # ori $t8, $t8, 0x4344
/* B2455C 800AD3BC 35EFCCF0 */ ori $t7, (0xEF90CCF0 & 0xFFFF) # ori $t7, $t7, 0xccf0
/* B24560 800AD3C0 AC4F0000 */ sw $t7, ($v0)
/* B24564 800AD3C4 AC580004 */ sw $t8, 4($v0)
/* B24568 800AD3C8 24A50008 */ addiu $a1, $a1, 8
/* B2456C 800AD3CC 00A01025 */ move $v0, $a1
/* B24570 800AD3D0 3C0EF5FC */ lui $t6, (0xF5FCFD7B >> 16) # lui $t6, 0xf5fc
/* B24574 800AD3D4 3C19FC64 */ lui $t9, (0xFC64FE60 >> 16) # lui $t9, 0xfc64
/* B24578 800AD3D8 3C070F00 */ lui $a3, 0xf00
/* B2457C 800AD3DC 3739FE60 */ ori $t9, (0xFC64FE60 & 0xFFFF) # ori $t9, $t9, 0xfe60
/* B24580 800AD3E0 35CEFD7B */ ori $t6, (0xF5FCFD7B & 0xFFFF) # ori $t6, $t6, 0xfd7b
/* B24584 800AD3E4 3C0B0708 */ lui $t3, (0x07080200 >> 16) # lui $t3, 0x708
/* B24588 800AD3E8 3C080008 */ lui $t0, (0x00080200 >> 16) # lui $t0, 8
/* B2458C 800AD3EC 3C06F548 */ lui $a2, (0xF548A000 >> 16) # lui $a2, 0xf548
/* B24590 800AD3F0 24E70000 */ addiu $a3, $a3, 0
/* B24594 800AD3F4 AC4E0004 */ sw $t6, 4($v0)
/* B24598 800AD3F8 AC590000 */ sw $t9, ($v0)
/* B2459C 800AD3FC 24A50008 */ addiu $a1, $a1, 8
/* B245A0 800AD400 34C6A000 */ ori $a2, (0xF548A000 & 0xFFFF) # ori $a2, $a2, 0xa000
/* B245A4 800AD404 35080200 */ ori $t0, (0x00080200 & 0xFFFF) # ori $t0, $t0, 0x200
/* B245A8 800AD408 356B0200 */ ori $t3, (0x07080200 & 0xFFFF) # ori $t3, $t3, 0x200
/* B245AC 800AD40C 00002025 */ move $a0, $zero
/* B245B0 800AD410 3C0DF300 */ lui $t5, 0xf300
/* B245B4 800AD414 3C0CE600 */ lui $t4, 0xe600
/* B245B8 800AD418 3C0AF550 */ lui $t2, 0xf550
/* B245BC 800AD41C 3C09FD50 */ lui $t1, 0xfd50
.L800AD420:
/* B245C0 800AD420 00A01025 */ move $v0, $a1
/* B245C4 800AD424 AC490000 */ sw $t1, ($v0)
/* B245C8 800AD428 AC470004 */ sw $a3, 4($v0)
/* B245CC 800AD42C 24A50008 */ addiu $a1, $a1, 8
/* B245D0 800AD430 00A01025 */ move $v0, $a1
/* B245D4 800AD434 AC4A0000 */ sw $t2, ($v0)
/* B245D8 800AD438 AC4B0004 */ sw $t3, 4($v0)
/* B245DC 800AD43C 24A50008 */ addiu $a1, $a1, 8
/* B245E0 800AD440 00A01025 */ move $v0, $a1
/* B245E4 800AD444 240303BF */ li $v1, 959
/* B245E8 800AD448 306F0FFF */ andi $t7, $v1, 0xfff
/* B245EC 800AD44C AC4C0000 */ sw $t4, ($v0)
/* B245F0 800AD450 AC400004 */ sw $zero, 4($v0)
/* B245F4 800AD454 24A50008 */ addiu $a1, $a1, 8
/* B245F8 800AD458 00A01025 */ move $v0, $a1
/* B245FC 800AD45C 000FC300 */ sll $t8, $t7, 0xc
/* B24600 800AD460 3C010700 */ lui $at, 0x700
/* B24604 800AD464 0301C825 */ or $t9, $t8, $at
/* B24608 800AD468 372E001A */ ori $t6, $t9, 0x1a
/* B2460C 800AD46C AC4E0004 */ sw $t6, 4($v0)
/* B24610 800AD470 AC4D0000 */ sw $t5, ($v0)
/* B24614 800AD474 24A50008 */ addiu $a1, $a1, 8
/* B24618 800AD478 00A01025 */ move $v0, $a1
/* B2461C 800AD47C 3C0FE700 */ lui $t7, 0xe700
/* B24620 800AD480 AC4F0000 */ sw $t7, ($v0)
/* B24624 800AD484 AC400004 */ sw $zero, 4($v0)
/* B24628 800AD488 24A50008 */ addiu $a1, $a1, 8
/* B2462C 800AD48C 00A01025 */ move $v0, $a1
/* B24630 800AD490 AC460000 */ sw $a2, ($v0)
/* B24634 800AD494 AC480004 */ sw $t0, 4($v0)
/* B24638 800AD498 24A50008 */ addiu $a1, $a1, 8
/* B2463C 800AD49C 00A01025 */ move $v0, $a1
/* B24640 800AD4A0 3C19009F */ lui $t9, (0x009FC008 >> 16) # lui $t9, 0x9f
/* B24644 800AD4A4 3739C008 */ ori $t9, (0x009FC008 & 0xFFFF) # ori $t9, $t9, 0xc008
/* B24648 800AD4A8 3C18F200 */ lui $t8, 0xf200
/* B2464C 800AD4AC AC580000 */ sw $t8, ($v0)
/* B24650 800AD4B0 AC590004 */ sw $t9, 4($v0)
/* B24654 800AD4B4 24A50008 */ addiu $a1, $a1, 8
/* B24658 800AD4B8 00A01025 */ move $v0, $a1
/* B2465C 800AD4BC AC460000 */ sw $a2, ($v0)
/* B24660 800AD4C0 AC480004 */ sw $t0, 4($v0)
/* B24664 800AD4C4 24A50008 */ addiu $a1, $a1, 8
/* B24668 800AD4C8 00A01025 */ move $v0, $a1
/* B2466C 800AD4CC 3C0F00A0 */ lui $t7, (0x00A04008 >> 16) # lui $t7, 0xa0
/* B24670 800AD4D0 3C0EF200 */ lui $t6, (0xF2008000 >> 16) # lui $t6, 0xf200
/* B24674 800AD4D4 35CE8000 */ ori $t6, (0xF2008000 & 0xFFFF) # ori $t6, $t6, 0x8000
/* B24678 800AD4D8 35EF4008 */ ori $t7, (0x00A04008 & 0xFFFF) # ori $t7, $t7, 0x4008
/* B2467C 800AD4DC AC4F0004 */ sw $t7, 4($v0)
/* B24680 800AD4E0 AC4E0000 */ sw $t6, ($v0)
/* B24684 800AD4E4 24A50008 */ addiu $a1, $a1, 8
/* B24688 800AD4E8 00A01025 */ move $v0, $a1
/* B2468C 800AD4EC 3C180118 */ lui $t8, (0x01180200 >> 16) # lui $t8, 0x118
/* B24690 800AD4F0 37180200 */ ori $t8, (0x01180200 & 0xFFFF) # ori $t8, $t8, 0x200
/* B24694 800AD4F4 AC580004 */ sw $t8, 4($v0)
/* B24698 800AD4F8 AC460000 */ sw $a2, ($v0)
/* B2469C 800AD4FC 24A50008 */ addiu $a1, $a1, 8
/* B246A0 800AD500 00A01025 */ move $v0, $a1
/* B246A4 800AD504 3C0E01A0 */ lui $t6, (0x01A00008 >> 16) # lui $t6, 0x1a0
/* B246A8 800AD508 3C19F200 */ lui $t9, (0xF2004000 >> 16) # lui $t9, 0xf200
/* B246AC 800AD50C 37394000 */ ori $t9, (0xF2004000 & 0xFFFF) # ori $t9, $t9, 0x4000
/* B246B0 800AD510 35CE0008 */ ori $t6, (0x01A00008 & 0xFFFF) # ori $t6, $t6, 8
/* B246B4 800AD514 24830003 */ addiu $v1, $a0, 3
/* B246B8 800AD518 AC4E0004 */ sw $t6, 4($v0)
/* B246BC 800AD51C AC590000 */ sw $t9, ($v0)
/* B246C0 800AD520 24A50008 */ addiu $a1, $a1, 8
/* B246C4 800AD524 00037880 */ sll $t7, $v1, 2
/* B246C8 800AD528 31F80FFF */ andi $t8, $t7, 0xfff
/* B246CC 800AD52C 00A01025 */ move $v0, $a1
/* B246D0 800AD530 00047080 */ sll $t6, $a0, 2
/* B246D4 800AD534 3C01E450 */ lui $at, 0xe450
/* B246D8 800AD538 0301C825 */ or $t9, $t8, $at
/* B246DC 800AD53C 31CF0FFF */ andi $t7, $t6, 0xfff
/* B246E0 800AD540 AC4F0004 */ sw $t7, 4($v0)
/* B246E4 800AD544 AC590000 */ sw $t9, ($v0)
/* B246E8 800AD548 24A50008 */ addiu $a1, $a1, 8
/* B246EC 800AD54C 00A01025 */ move $v0, $a1
/* B246F0 800AD550 3C190040 */ lui $t9, 0x40
/* B246F4 800AD554 3C18E100 */ lui $t8, 0xe100
/* B246F8 800AD558 AC580000 */ sw $t8, ($v0)
/* B246FC 800AD55C AC590004 */ sw $t9, 4($v0)
/* B24700 800AD560 24A50008 */ addiu $a1, $a1, 8
/* B24704 800AD564 00A01025 */ move $v0, $a1
/* B24708 800AD568 3C0F0800 */ lui $t7, (0x08000400 >> 16) # lui $t7, 0x800
/* B2470C 800AD56C 286100EE */ slti $at, $v1, 0xee
/* B24710 800AD570 35EF0400 */ ori $t7, (0x08000400 & 0xFFFF) # ori $t7, $t7, 0x400
/* B24714 800AD574 3C0EF100 */ lui $t6, 0xf100
/* B24718 800AD578 00602025 */ move $a0, $v1
/* B2471C 800AD57C AC4E0000 */ sw $t6, ($v0)
/* B24720 800AD580 AC4F0004 */ sw $t7, 4($v0)
/* B24724 800AD584 24A50008 */ addiu $a1, $a1, 8
/* B24728 800AD588 1420FFA5 */ bnez $at, .L800AD420
/* B2472C 800AD58C 24E70780 */ addiu $a3, $a3, 0x780
/* B24730 800AD590 00A01025 */ move $v0, $a1
/* B24734 800AD594 3C18E700 */ lui $t8, 0xe700
/* B24738 800AD598 AC580000 */ sw $t8, ($v0)
/* B2473C 800AD59C AC400004 */ sw $zero, 4($v0)
/* B24740 800AD5A0 24A50008 */ addiu $a1, $a1, 8
/* B24744 800AD5A4 00A01025 */ move $v0, $a1
/* B24748 800AD5A8 3C19DF00 */ lui $t9, 0xdf00
/* B2474C 800AD5AC AC590000 */ sw $t9, ($v0)
/* B24750 800AD5B0 AC400004 */ sw $zero, 4($v0)
/* B24754 800AD5B4 24A50008 */ addiu $a1, $a1, 8
/* B24758 800AD5B8 03E00008 */ jr $ra
/* B2475C 800AD5BC 00A01025 */ move $v0, $a1

View file

@ -1,222 +0,0 @@
.rdata
glabel D_801417D0
.asciz "../z_vismono.c"
.balign 4
glabel D_801417E0
.asciz "glistp_end = %08x\n"
.balign 4
glabel D_801417F4
.asciz "../z_vismono.c"
.balign 4
glabel D_80141804
.asciz "mono_dl = %08x\n"
.balign 4
glabel D_80141814
.asciz "../z_vismono.c"
.balign 4
glabel D_80141824
.asciz "mono_dl + (1+3+1+1+80*(7+2+2+3)+1) = %08x\n"
.balign 4
glabel D_80141850
.asciz "../z_vismono.c"
.balign 4
glabel D_80141860
.asciz "(1+3+1+1+80*(7+2+2+3)+1) = %08x\n"
.balign 4
glabel D_80141884
.asciz "glistp_end <= mono_dl + DLSIZE"
.balign 4
glabel D_801418A4
.asciz "../z_vismono.c"
.balign 4
.text
glabel func_800AD5C0
/* B24760 800AD5C0 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B24764 800AD5C4 AFBF0014 */ sw $ra, 0x14($sp)
/* B24768 800AD5C8 AFA40060 */ sw $a0, 0x60($sp)
/* B2476C 800AD5CC AFA50064 */ sw $a1, 0x64($sp)
/* B24770 800AD5D0 8CAF0000 */ lw $t7, ($a1)
/* B24774 800AD5D4 AFAF005C */ sw $t7, 0x5c($sp)
/* B24778 800AD5D8 8C820010 */ lw $v0, 0x10($a0)
/* B2477C 800AD5DC 27A4005C */ addiu $a0, $sp, 0x5c
/* B24780 800AD5E0 10400003 */ beqz $v0, .L800AD5F0
/* B24784 800AD5E4 00000000 */ nop
/* B24788 800AD5E8 10000007 */ b .L800AD608
/* B2478C 800AD5EC AFA20058 */ sw $v0, 0x58($sp)
.L800AD5F0:
/* B24790 800AD5F0 0C031B0F */ jal Graph_DlistAlloc
/* B24794 800AD5F4 24050200 */ li $a1, 512
/* B24798 800AD5F8 AFA20058 */ sw $v0, 0x58($sp)
/* B2479C 800AD5FC 8FA40060 */ lw $a0, 0x60($sp)
/* B247A0 800AD600 0C02B420 */ jal func_800AD080
/* B247A4 800AD604 00402825 */ move $a1, $v0
.L800AD608:
/* B247A8 800AD608 8FB90060 */ lw $t9, 0x60($sp)
/* B247AC 800AD60C 27A4005C */ addiu $a0, $sp, 0x5c
/* B247B0 800AD610 8F220014 */ lw $v0, 0x14($t9)
/* B247B4 800AD614 10400003 */ beqz $v0, .L800AD624
/* B247B8 800AD618 00000000 */ nop
/* B247BC 800AD61C 10000037 */ b .L800AD6FC
/* B247C0 800AD620 AFA20054 */ sw $v0, 0x54($sp)
.L800AD624:
/* B247C4 800AD624 0C031B0F */ jal Graph_DlistAlloc
/* B247C8 800AD628 24052338 */ li $a1, 9016
/* B247CC 800AD62C AFA20054 */ sw $v0, 0x54($sp)
/* B247D0 800AD630 8FA40060 */ lw $a0, 0x60($sp)
/* B247D4 800AD634 0C02B4E5 */ jal func_800AD394
/* B247D8 800AD638 00402825 */ move $a1, $v0
/* B247DC 800AD63C 8FA80054 */ lw $t0, 0x54($sp)
/* B247E0 800AD640 AFA20050 */ sw $v0, 0x50($sp)
/* B247E4 800AD644 3C048014 */ lui $a0, %hi(D_801417D0) # $a0, 0x8014
/* B247E8 800AD648 25092338 */ addiu $t1, $t0, 0x2338
/* B247EC 800AD64C 0122082B */ sltu $at, $t1, $v0
/* B247F0 800AD650 10200020 */ beqz $at, .L800AD6D4
/* B247F4 800AD654 AFA9001C */ sw $t1, 0x1c($sp)
/* B247F8 800AD658 248417D0 */ addiu $a0, %lo(D_801417D0) # addiu $a0, $a0, 0x17d0
/* B247FC 800AD65C 0C000B84 */ jal LogUtils_LogThreadId
/* B24800 800AD660 24050101 */ li $a1, 257
/* B24804 800AD664 3C048014 */ lui $a0, %hi(D_801417E0) # $a0, 0x8014
/* B24808 800AD668 248417E0 */ addiu $a0, %lo(D_801417E0) # addiu $a0, $a0, 0x17e0
/* B2480C 800AD66C 0C00084C */ jal osSyncPrintf
/* B24810 800AD670 8FA50050 */ lw $a1, 0x50($sp)
/* B24814 800AD674 3C048014 */ lui $a0, %hi(D_801417F4) # $a0, 0x8014
/* B24818 800AD678 248417F4 */ addiu $a0, %lo(D_801417F4) # addiu $a0, $a0, 0x17f4
/* B2481C 800AD67C 0C000B84 */ jal LogUtils_LogThreadId
/* B24820 800AD680 24050102 */ li $a1, 258
/* B24824 800AD684 3C048014 */ lui $a0, %hi(D_80141804) # $a0, 0x8014
/* B24828 800AD688 24841804 */ addiu $a0, %lo(D_80141804) # addiu $a0, $a0, 0x1804
/* B2482C 800AD68C 0C00084C */ jal osSyncPrintf
/* B24830 800AD690 8FA50054 */ lw $a1, 0x54($sp)
/* B24834 800AD694 3C048014 */ lui $a0, %hi(D_80141814) # $a0, 0x8014
/* B24838 800AD698 24841814 */ addiu $a0, %lo(D_80141814) # addiu $a0, $a0, 0x1814
/* B2483C 800AD69C 0C000B84 */ jal LogUtils_LogThreadId
/* B24840 800AD6A0 24050103 */ li $a1, 259
/* B24844 800AD6A4 3C048014 */ lui $a0, %hi(D_80141824) # $a0, 0x8014
/* B24848 800AD6A8 24841824 */ addiu $a0, %lo(D_80141824) # addiu $a0, $a0, 0x1824
/* B2484C 800AD6AC 0C00084C */ jal osSyncPrintf
/* B24850 800AD6B0 8FA5001C */ lw $a1, 0x1c($sp)
/* B24854 800AD6B4 3C048014 */ lui $a0, %hi(D_80141850) # $a0, 0x8014
/* B24858 800AD6B8 24841850 */ addiu $a0, %lo(D_80141850) # addiu $a0, $a0, 0x1850
/* B2485C 800AD6BC 0C000B84 */ jal LogUtils_LogThreadId
/* B24860 800AD6C0 24050104 */ li $a1, 260
/* B24864 800AD6C4 3C048014 */ lui $a0, %hi(D_80141860) # $a0, 0x8014
/* B24868 800AD6C8 24841860 */ addiu $a0, %lo(D_80141860) # addiu $a0, $a0, 0x1860
/* B2486C 800AD6CC 0C00084C */ jal osSyncPrintf
/* B24870 800AD6D0 24050467 */ li $a1, 1127
.L800AD6D4:
/* B24874 800AD6D4 8FAA001C */ lw $t2, 0x1c($sp)
/* B24878 800AD6D8 8FAB0050 */ lw $t3, 0x50($sp)
/* B2487C 800AD6DC 3C048014 */ lui $a0, %hi(D_80141884) # $a0, 0x8014
/* B24880 800AD6E0 24841884 */ addiu $a0, %lo(D_80141884) # addiu $a0, $a0, 0x1884
/* B24884 800AD6E4 014B082B */ sltu $at, $t2, $t3
/* B24888 800AD6E8 10200004 */ beqz $at, .L800AD6FC
/* B2488C 800AD6EC 3C058014 */ lui $a1, %hi(D_801418A4) # $a1, 0x8014
/* B24890 800AD6F0 24A518A4 */ addiu $a1, %lo(D_801418A4) # addiu $a1, $a1, 0x18a4
/* B24894 800AD6F4 0C0007FC */ jal __assert
/* B24898 800AD6F8 24060106 */ li $a2, 262
.L800AD6FC:
/* B2489C 800AD6FC 8FAC005C */ lw $t4, 0x5c($sp)
/* B248A0 800AD700 3C03E700 */ lui $v1, 0xe700
/* B248A4 800AD704 24010001 */ li $at, 1
/* B248A8 800AD708 258D0008 */ addiu $t5, $t4, 8
/* B248AC 800AD70C AFAD005C */ sw $t5, 0x5c($sp)
/* B248B0 800AD710 AD800004 */ sw $zero, 4($t4)
/* B248B4 800AD714 AD830000 */ sw $v1, ($t4)
/* B248B8 800AD718 8FAE0060 */ lw $t6, 0x60($sp)
/* B248BC 800AD71C 8FB8005C */ lw $t8, 0x5c($sp)
/* B248C0 800AD720 3C090050 */ lui $t1, (0x005003C0 >> 16) # lui $t1, 0x50
/* B248C4 800AD724 8DCF0004 */ lw $t7, 4($t6)
/* B248C8 800AD728 352903C0 */ ori $t1, (0x005003C0 & 0xFFFF) # ori $t1, $t1, 0x3c0
/* B248CC 800AD72C 3C08ED00 */ lui $t0, 0xed00
/* B248D0 800AD730 15E10004 */ bne $t7, $at, .L800AD744
/* B248D4 800AD734 27190008 */ addiu $t9, $t8, 8
/* B248D8 800AD738 AFB9005C */ sw $t9, 0x5c($sp)
/* B248DC 800AD73C AF090004 */ sw $t1, 4($t8)
/* B248E0 800AD740 AF080000 */ sw $t0, ($t8)
.L800AD744:
/* B248E4 800AD744 8FAA005C */ lw $t2, 0x5c($sp)
/* B248E8 800AD748 3C0CFA00 */ lui $t4, 0xfa00
/* B248EC 800AD74C 3C19FB00 */ lui $t9, 0xfb00
/* B248F0 800AD750 254B0008 */ addiu $t3, $t2, 8
/* B248F4 800AD754 AFAB005C */ sw $t3, 0x5c($sp)
/* B248F8 800AD758 AD4C0000 */ sw $t4, ($t2)
/* B248FC 800AD75C 8FAD0060 */ lw $t5, 0x60($sp)
/* B24900 800AD760 3C0CFD10 */ lui $t4, 0xfd10
/* B24904 800AD764 8DAE0008 */ lw $t6, 8($t5)
/* B24908 800AD768 AD4E0004 */ sw $t6, 4($t2)
/* B2490C 800AD76C 8FAF005C */ lw $t7, 0x5c($sp)
/* B24910 800AD770 25F80008 */ addiu $t8, $t7, 8
/* B24914 800AD774 AFB8005C */ sw $t8, 0x5c($sp)
/* B24918 800AD778 ADF90000 */ sw $t9, ($t7)
/* B2491C 800AD77C 8FA80060 */ lw $t0, 0x60($sp)
/* B24920 800AD780 3C18E800 */ lui $t8, 0xe800
/* B24924 800AD784 8D09000C */ lw $t1, 0xc($t0)
/* B24928 800AD788 ADE90004 */ sw $t1, 4($t7)
/* B2492C 800AD78C 8FAA005C */ lw $t2, 0x5c($sp)
/* B24930 800AD790 3C09F500 */ lui $t1, (0xF5000100 >> 16) # lui $t1, 0xf500
/* B24934 800AD794 35290100 */ ori $t1, (0xF5000100 & 0xFFFF) # ori $t1, $t1, 0x100
/* B24938 800AD798 254B0008 */ addiu $t3, $t2, 8
/* B2493C 800AD79C AFAB005C */ sw $t3, 0x5c($sp)
/* B24940 800AD7A0 AD4C0000 */ sw $t4, ($t2)
/* B24944 800AD7A4 8FAD0058 */ lw $t5, 0x58($sp)
/* B24948 800AD7A8 AD4D0004 */ sw $t5, 4($t2)
/* B2494C 800AD7AC 8FAE005C */ lw $t6, 0x5c($sp)
/* B24950 800AD7B0 3C0A0700 */ lui $t2, 0x700
/* B24954 800AD7B4 3C0DE600 */ lui $t5, 0xe600
/* B24958 800AD7B8 25CF0008 */ addiu $t7, $t6, 8
/* B2495C 800AD7BC AFAF005C */ sw $t7, 0x5c($sp)
/* B24960 800AD7C0 ADC00004 */ sw $zero, 4($t6)
/* B24964 800AD7C4 ADD80000 */ sw $t8, ($t6)
/* B24968 800AD7C8 8FB9005C */ lw $t9, 0x5c($sp)
/* B2496C 800AD7CC 3C18F000 */ lui $t8, 0xf000
/* B24970 800AD7D0 27280008 */ addiu $t0, $t9, 8
/* B24974 800AD7D4 AFA8005C */ sw $t0, 0x5c($sp)
/* B24978 800AD7D8 AF290000 */ sw $t1, ($t9)
/* B2497C 800AD7DC AF2A0004 */ sw $t2, 4($t9)
/* B24980 800AD7E0 8FAB005C */ lw $t3, 0x5c($sp)
/* B24984 800AD7E4 3C19073F */ lui $t9, (0x073FC000 >> 16) # lui $t9, 0x73f
/* B24988 800AD7E8 3739C000 */ ori $t9, (0x073FC000 & 0xFFFF) # ori $t9, $t9, 0xc000
/* B2498C 800AD7EC 256C0008 */ addiu $t4, $t3, 8
/* B24990 800AD7F0 AFAC005C */ sw $t4, 0x5c($sp)
/* B24994 800AD7F4 AD600004 */ sw $zero, 4($t3)
/* B24998 800AD7F8 AD6D0000 */ sw $t5, ($t3)
/* B2499C 800AD7FC 8FAE005C */ lw $t6, 0x5c($sp)
/* B249A0 800AD800 3C0CDE00 */ lui $t4, 0xde00
/* B249A4 800AD804 25CF0008 */ addiu $t7, $t6, 8
/* B249A8 800AD808 AFAF005C */ sw $t7, 0x5c($sp)
/* B249AC 800AD80C ADD90004 */ sw $t9, 4($t6)
/* B249B0 800AD810 ADD80000 */ sw $t8, ($t6)
/* B249B4 800AD814 8FA8005C */ lw $t0, 0x5c($sp)
/* B249B8 800AD818 25090008 */ addiu $t1, $t0, 8
/* B249BC 800AD81C AFA9005C */ sw $t1, 0x5c($sp)
/* B249C0 800AD820 AD000004 */ sw $zero, 4($t0)
/* B249C4 800AD824 AD030000 */ sw $v1, ($t0)
/* B249C8 800AD828 8FAA005C */ lw $t2, 0x5c($sp)
/* B249CC 800AD82C 254B0008 */ addiu $t3, $t2, 8
/* B249D0 800AD830 AFAB005C */ sw $t3, 0x5c($sp)
/* B249D4 800AD834 AD4C0000 */ sw $t4, ($t2)
/* B249D8 800AD838 8FAD0054 */ lw $t5, 0x54($sp)
/* B249DC 800AD83C AD4D0004 */ sw $t5, 4($t2)
/* B249E0 800AD840 8FAE005C */ lw $t6, 0x5c($sp)
/* B249E4 800AD844 25CF0008 */ addiu $t7, $t6, 8
/* B249E8 800AD848 AFAF005C */ sw $t7, 0x5c($sp)
/* B249EC 800AD84C ADC00004 */ sw $zero, 4($t6)
/* B249F0 800AD850 ADC30000 */ sw $v1, ($t6)
/* B249F4 800AD854 8FB90064 */ lw $t9, 0x64($sp)
/* B249F8 800AD858 8FB8005C */ lw $t8, 0x5c($sp)
/* B249FC 800AD85C AF380000 */ sw $t8, ($t9)
/* B24A00 800AD860 8FBF0014 */ lw $ra, 0x14($sp)
/* B24A04 800AD864 27BD0060 */ addiu $sp, $sp, 0x60
/* B24A08 800AD868 03E00008 */ jr $ra
/* B24A0C 800AD86C 00000000 */ nop

View file

@ -1,62 +0,0 @@
.rdata
glabel D_801418B4
.asciz "../z_vismono.c"
.balign 4
glabel D_801418C4
.asciz "../z_vismono.c"
.balign 4
glabel D_801418D4
.asciz "glistp_end <= this->mono_dl + DLSIZE"
.balign 4
glabel D_801418FC
.asciz "../z_vismono.c"
.balign 4
.text
glabel func_800AD870
/* B24A10 800AD870 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B24A14 800AD874 AFBF001C */ sw $ra, 0x1c($sp)
/* B24A18 800AD878 AFB00018 */ sw $s0, 0x18($sp)
/* B24A1C 800AD87C 8C8E0010 */ lw $t6, 0x10($a0)
/* B24A20 800AD880 00808025 */ move $s0, $a0
/* B24A24 800AD884 24040200 */ li $a0, 512
/* B24A28 800AD888 15C00008 */ bnez $t6, .L800AD8AC
/* B24A2C 800AD88C 3C058014 */ lui $a1, %hi(D_801418B4) # $a1, 0x8014
/* B24A30 800AD890 24A518B4 */ addiu $a1, %lo(D_801418B4) # addiu $a1, $a1, 0x18b4
/* B24A34 800AD894 0C03F570 */ jal SystemArena_MallocDebug
/* B24A38 800AD898 2406011B */ li $a2, 283
/* B24A3C 800AD89C AE020010 */ sw $v0, 0x10($s0)
/* B24A40 800AD8A0 02002025 */ move $a0, $s0
/* B24A44 800AD8A4 0C02B420 */ jal func_800AD080
/* B24A48 800AD8A8 00402825 */ move $a1, $v0
.L800AD8AC:
/* B24A4C 800AD8AC 8E0F0014 */ lw $t7, 0x14($s0)
/* B24A50 800AD8B0 3C058014 */ lui $a1, %hi(D_801418C4) # $a1, 0x8014
/* B24A54 800AD8B4 24A518C4 */ addiu $a1, %lo(D_801418C4) # addiu $a1, $a1, 0x18c4
/* B24A58 800AD8B8 15E00011 */ bnez $t7, .L800AD900
/* B24A5C 800AD8BC 24042338 */ li $a0, 9016
/* B24A60 800AD8C0 0C03F570 */ jal SystemArena_MallocDebug
/* B24A64 800AD8C4 24060121 */ li $a2, 289
/* B24A68 800AD8C8 AE020014 */ sw $v0, 0x14($s0)
/* B24A6C 800AD8CC 02002025 */ move $a0, $s0
/* B24A70 800AD8D0 0C02B4E5 */ jal func_800AD394
/* B24A74 800AD8D4 00402825 */ move $a1, $v0
/* B24A78 800AD8D8 8E180014 */ lw $t8, 0x14($s0)
/* B24A7C 800AD8DC 3C048014 */ lui $a0, %hi(D_801418D4) # $a0, 0x8014
/* B24A80 800AD8E0 248418D4 */ addiu $a0, %lo(D_801418D4) # addiu $a0, $a0, 0x18d4
/* B24A84 800AD8E4 27192338 */ addiu $t9, $t8, 0x2338
/* B24A88 800AD8E8 0322082B */ sltu $at, $t9, $v0
/* B24A8C 800AD8EC 10200004 */ beqz $at, .L800AD900
/* B24A90 800AD8F0 3C058014 */ lui $a1, %hi(D_801418FC) # $a1, 0x8014
/* B24A94 800AD8F4 24A518FC */ addiu $a1, %lo(D_801418FC) # addiu $a1, $a1, 0x18fc
/* B24A98 800AD8F8 0C0007FC */ jal __assert
/* B24A9C 800AD8FC 24060124 */ li $a2, 292
.L800AD900:
/* B24AA0 800AD900 8FBF001C */ lw $ra, 0x1c($sp)
/* B24AA4 800AD904 8FB00018 */ lw $s0, 0x18($sp)
/* B24AA8 800AD908 27BD0020 */ addiu $sp, $sp, 0x20
/* B24AAC 800AD90C 03E00008 */ jr $ra
/* B24AB0 800AD910 00000000 */ nop

View file

@ -1304,17 +1304,18 @@ s32 func_800ABE74(f32 eyeX, f32 eyeY, f32 eyeZ);
// ? func_800ACA90(?); // ? func_800ACA90(?);
// ? func_800ACA98(?); // ? func_800ACA98(?);
// ? func_800ACAF8(?); // ? func_800ACAF8(?);
// ? func_800ACE70(?); void func_800ACE70(struct_801664F0* this);
// ? func_800ACE90(?); void func_800ACE90(struct_801664F0* this);
void func_800ACE98(struct_801664F0*, Gfx**); void func_800ACE98(struct_801664F0* this, Gfx** gfxp);
// ? func_800AD000(?); void VisMono_Init(VisMono* this);
// ? func_800AD054(?); void VisMono_Destroy(VisMono* this);
// ? func_800AD080(?); void VisMono_UpdateTexture(VisMono* this, u16* tex);
// ? func_800AD394(?); Gfx* VisMono_DrawTexture(VisMono* this, Gfx* gfx);
void func_800AD5C0(VisMonoStruct*, Gfx**); void VisMono_Draw(VisMono* this, Gfx** gfxp);
// ? func_800AD920(?); void VisMono_DrawOld(VisMono* this);
// ? func_800AD950(?); void func_800AD920(struct_80166500* this);
void func_800AD958(struct_801664F0*, Gfx**); void func_800AD950(struct_80166500* this);
void func_800AD958(struct_80166500* this, Gfx** gfxp);
// ? func_800ADBB0(?); // ? func_800ADBB0(?);
// ? func_800AE2C0(?); // ? func_800AE2C0(?);
// ? func_800AEFC8(?); // ? func_800AEFC8(?);

View file

@ -1696,15 +1696,8 @@ typedef struct {
/* 0xB4 */ JpegWork* workBuf; /* 0xB4 */ JpegWork* workBuf;
} JpegContext; // size = 0xB8 } JpegContext; // size = 0xB8
typedef struct {
/* 0x00 */ s32 colorFormat;
/* 0x04 */ s32 setScissor;
/* 0x08 */ Color_RGBA8 primColor;
/* 0x0C */ Color_RGBA8 envColor;
/* 0x10 */ u16* texture;
/* 0x14 */ Gfx* monoDList;
} VisMonoStruct; // size = 0x18
// Vis...
typedef struct { typedef struct {
/* 0x00 */ u32 type; /* 0x00 */ u32 type;
/* 0x04 */ u32 setScissor; /* 0x04 */ u32 setScissor;
@ -1712,6 +1705,23 @@ typedef struct {
/* 0x0C */ Color_RGBA8 envColor; /* 0x0C */ Color_RGBA8 envColor;
} struct_801664F0; // size = 0x10 } struct_801664F0; // size = 0x10
typedef struct {
/* 0x00 */ u32 unk_00;
/* 0x04 */ u32 setScissor;
/* 0x08 */ Color_RGBA8 primColor;
/* 0x0C */ Color_RGBA8 envColor;
/* 0x10 */ u16* tlut;
/* 0x14 */ Gfx* monoDl;
} VisMono; // size = 0x18
// Vis...
typedef struct {
/* 0x00 */ u32 useRgba;
/* 0x04 */ u32 setScissor;
/* 0x08 */ Color_RGBA8 primColor;
/* 0x08 */ Color_RGBA8 envColor;
} struct_80166500; // size = 0x10
typedef struct { typedef struct {
/* 0x000 */ u8 rumbleEnable[4]; /* 0x000 */ u8 rumbleEnable[4];
/* 0x004 */ u8 unk_04[0x40]; /* 0x004 */ u8 unk_04[0x40];

2
spec
View file

@ -373,7 +373,7 @@ beginseg
include "build/src/code/z_vimode.o" include "build/src/code/z_vimode.o"
include "build/src/code/code_800ACE70.o" include "build/src/code/code_800ACE70.o"
include "build/src/code/z_vismono.o" include "build/src/code/z_vismono.o"
include "build/asm/code_800AD920.o" include "build/src/code/code_800AD920.o"
include "build/src/code/z_vr_box.o" include "build/src/code/z_vr_box.o"
include "build/data/z_vr_box.data.o" include "build/data/z_vr_box.data.o"
include "build/src/code/z_vr_box_draw.o" include "build/src/code/z_vr_box_draw.o"

View file

@ -1,5 +1,8 @@
#include <global.h> #include <global.h>
// Note : This file is related to z_vismono, the original name was probably z_vis<something before "mono"
// alphabetically>
Gfx D_8012AC00[] = { Gfx D_8012AC00[] = {
gsDPSetOtherMode(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_CONV | G_TF_POINT | G_TT_NONE | G_TL_TILE | gsDPSetOtherMode(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_CONV | G_TF_POINT | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
@ -46,7 +49,7 @@ Gfx D_8012AC58[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
// Init func // Init
void func_800ACE70(struct_801664F0* this) { void func_800ACE70(struct_801664F0* this) {
this->type = 0; this->type = 0;
this->setScissor = false; this->setScissor = false;
@ -56,11 +59,11 @@ void func_800ACE70(struct_801664F0* this) {
this->color.a = 0xFF; this->color.a = 0xFF;
} }
// Destroy func // Destroy
void func_800ACE90(struct_801664F0* this) { void func_800ACE90(struct_801664F0* this) {
} }
// Update func // Draw
void func_800ACE98(struct_801664F0* this, Gfx** gfxp) { void func_800ACE98(struct_801664F0* this, Gfx** gfxp) {
Gfx* gfx; Gfx* gfx;

65
src/code/code_800AD920.c Normal file
View file

@ -0,0 +1,65 @@
#include <global.h>
// Note : This file is related to z_vismono, the original name was probably z_vis<something after "mono" alphabetically>
// z-buffer
extern u16 D_0E000000[];
// Init
void func_800AD920(struct_80166500* this) {
this->useRgba = false;
this->setScissor = false;
this->primColor.r = 0xFF;
this->primColor.g = 0xFF;
this->primColor.b = 0xFF;
this->primColor.a = 0xFF;
this->envColor.a = 0xFF;
this->envColor.r = 0x00;
this->envColor.g = 0x00;
this->envColor.b = 0x00;
}
// Destroy
void func_800AD950(struct_80166500* this) {
}
// Draw
void func_800AD958(struct_80166500* this, Gfx** gfxp) {
Gfx* gfx;
u16* tex;
s32 fmt;
s32 y;
s32 height = 6;
gfx = *gfxp;
tex = D_0E000000;
fmt = this->useRgba == false ? G_IM_FMT_IA : G_IM_FMT_RGBA;
gDPPipeSync(gfx++);
if (this->setScissor == true) {
gDPSetScissor(gfx++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
}
gDPSetOtherMode(gfx++,
G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
G_AC_NONE | G_ZS_PRIM | G_RM_OPA_SURF | G_RM_OPA_SURF2);
gDPSetCombineLERP(gfx++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT,
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT);
gDPSetColor(gfx++, G_SETPRIMCOLOR, this->primColor.rgba);
gDPSetColor(gfx++, G_SETENVCOLOR, this->envColor.rgba);
for (y = 0; y <= SCREEN_HEIGHT - height; y += height) {
gDPLoadTextureBlock(gfx++, tex, fmt, G_IM_SIZ_16b, SCREEN_WIDTH, height, 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(gfx++, 0, (y) << 2, (SCREEN_WIDTH << 2), (y + height) << 2, G_TX_RENDERTILE, 0, 0,
(1 << 10), (1 << 10));
tex += SCREEN_WIDTH * height;
}
gDPPipeSync(gfx++);
*gfxp = gfx;
}

View file

@ -10,8 +10,8 @@ typedef struct {
SpeedMeter D_801664D0; SpeedMeter D_801664D0;
struct_801664F0 D_801664F0; struct_801664F0 D_801664F0;
struct_801664F0 D_80166500; struct_80166500 D_80166500;
VisMonoStruct sMonoColors; VisMono sMonoColors;
unk_80166528 D_80166528; unk_80166528 D_80166528;
FaultClient sGameFaultClient; FaultClient sGameFaultClient;
u16 sLastButtonPressed; u16 sLastButtonPressed;
@ -42,18 +42,18 @@ void GameState_SetFBFilter(Gfx** gfx) {
D_801664F0.color.a = R_FB_FILTER_A; D_801664F0.color.a = R_FB_FILTER_A;
func_800ACE98(&D_801664F0, &gfxP); func_800ACE98(&D_801664F0, &gfxP);
} else if ((R_FB_FILTER_TYPE == 5) || (R_FB_FILTER_TYPE == 6)) { } else if ((R_FB_FILTER_TYPE == 5) || (R_FB_FILTER_TYPE == 6)) {
D_80166500.type = (R_FB_FILTER_TYPE == 6); D_80166500.useRgba = (R_FB_FILTER_TYPE == 6);
D_80166500.color.r = R_FB_FILTER_PRIM_COLOR(0); D_80166500.primColor.r = R_FB_FILTER_PRIM_COLOR(0);
D_80166500.color.g = R_FB_FILTER_PRIM_COLOR(1); D_80166500.primColor.g = R_FB_FILTER_PRIM_COLOR(1);
D_80166500.color.b = R_FB_FILTER_PRIM_COLOR(2); D_80166500.primColor.b = R_FB_FILTER_PRIM_COLOR(2);
D_80166500.color.a = R_FB_FILTER_A; D_80166500.primColor.a = R_FB_FILTER_A;
D_80166500.envColor.r = R_FB_FILTER_ENV_COLOR(0); D_80166500.envColor.r = R_FB_FILTER_ENV_COLOR(0);
D_80166500.envColor.g = R_FB_FILTER_ENV_COLOR(1); D_80166500.envColor.g = R_FB_FILTER_ENV_COLOR(1);
D_80166500.envColor.b = R_FB_FILTER_ENV_COLOR(2); D_80166500.envColor.b = R_FB_FILTER_ENV_COLOR(2);
D_80166500.envColor.a = R_FB_FILTER_A; D_80166500.envColor.a = R_FB_FILTER_A;
func_800AD958(&D_80166500, &gfxP); func_800AD958(&D_80166500, &gfxP);
} else if (R_FB_FILTER_TYPE == 7) { } else if (R_FB_FILTER_TYPE == 7) {
sMonoColors.colorFormat = 0; sMonoColors.unk_00 = 0;
sMonoColors.primColor.r = R_FB_FILTER_PRIM_COLOR(0); sMonoColors.primColor.r = R_FB_FILTER_PRIM_COLOR(0);
sMonoColors.primColor.g = R_FB_FILTER_PRIM_COLOR(1); sMonoColors.primColor.g = R_FB_FILTER_PRIM_COLOR(1);
sMonoColors.primColor.b = R_FB_FILTER_PRIM_COLOR(2); sMonoColors.primColor.b = R_FB_FILTER_PRIM_COLOR(2);
@ -62,7 +62,7 @@ void GameState_SetFBFilter(Gfx** gfx) {
sMonoColors.envColor.g = R_FB_FILTER_ENV_COLOR(1); sMonoColors.envColor.g = R_FB_FILTER_ENV_COLOR(1);
sMonoColors.envColor.b = R_FB_FILTER_ENV_COLOR(2); sMonoColors.envColor.b = R_FB_FILTER_ENV_COLOR(2);
sMonoColors.envColor.a = R_FB_FILTER_A; sMonoColors.envColor.a = R_FB_FILTER_A;
func_800AD5C0(&sMonoColors, &gfxP); VisMono_Draw(&sMonoColors, &gfxP);
} }
*gfx = gfxP; *gfx = gfxP;
} }
@ -433,7 +433,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g
LogUtils_CheckNullPointer("this->cleanup", gameState->destroy, "../game.c", 1088); LogUtils_CheckNullPointer("this->cleanup", gameState->destroy, "../game.c", 1088);
func_800ACE70(&D_801664F0); func_800ACE70(&D_801664F0);
func_800AD920(&D_80166500); func_800AD920(&D_80166500);
func_800AD000(&sMonoColors); VisMono_Init(&sMonoColors);
if (SREG(48) == 0) { if (SREG(48) == 0) {
func_800ACA28(&D_80166528); func_800ACA28(&D_80166528);
} }
@ -465,7 +465,7 @@ void GameState_Destroy(GameState* gameState) {
SpeedMeter_Destroy(&D_801664D0); SpeedMeter_Destroy(&D_801664D0);
func_800ACE90(&D_801664F0); func_800ACE90(&D_801664F0);
func_800AD950(&D_80166500); func_800AD950(&D_80166500);
func_800AD054(&sMonoColors); VisMono_Destroy(&sMonoColors);
if (SREG(48) == 0) { if (SREG(48) == 0) {
func_800ACA90(&D_80166528); func_800ACA90(&D_80166528);
} }

View file

@ -8,7 +8,7 @@ Input* D_8012D1F8 = NULL;
TransitionUnk sTrnsnUnk; TransitionUnk sTrnsnUnk;
s32 gTrnsnUnkState; s32 gTrnsnUnkState;
VisMonoStruct D_80161498; VisMono D_80161498;
Color_RGBA8 D_801614B0; Color_RGBA8 D_801614B0;
FaultClient D_801614B8; FaultClient D_801614B8;
s16 D_801614C8; s16 D_801614C8;
@ -174,7 +174,7 @@ void Gameplay_Destroy(GlobalContext* globalCtx) {
func_800B3968(); func_800B3968();
TransitionFade_Destroy(&globalCtx->transitionFade); TransitionFade_Destroy(&globalCtx->transitionFade);
func_800AD054(&D_80161498); VisMono_Destroy(&D_80161498);
if (gSaveContext.linkAge != globalCtx->linkAgeOnLoad) { if (gSaveContext.linkAge != globalCtx->linkAgeOnLoad) {
Inventory_SwapAgeEquipment(); Inventory_SwapAgeEquipment();
@ -365,7 +365,7 @@ void Gameplay_Init(GlobalContext* globalCtx) {
TransitionFade_SetType(&globalCtx->transitionFade, 3); TransitionFade_SetType(&globalCtx->transitionFade, 3);
TransitionFade_SetColor(&globalCtx->transitionFade, RGBA8(0xA0, 0xA0, 0xA0, 0xFF)); TransitionFade_SetColor(&globalCtx->transitionFade, RGBA8(0xA0, 0xA0, 0xA0, 0xFF));
TransitionFade_Start(&globalCtx->transitionFade); TransitionFade_Start(&globalCtx->transitionFade);
func_800AD000(&D_80161498); VisMono_Init(&D_80161498);
D_801614B0.a = 0x00; D_801614B0.a = 0x00;
Flags_UnsetAllEnv(globalCtx); Flags_UnsetAllEnv(globalCtx);
@ -1151,7 +1151,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
if (D_801614B0.a > 0x00) { if (D_801614B0.a > 0x00) {
D_80161498.primColor.rgba = D_801614B0.rgba; D_80161498.primColor.rgba = D_801614B0.rgba;
func_800AD5C0(&D_80161498, &gfxP); VisMono_Draw(&D_80161498, &gfxP);
} }
gSPEndDisplayList(gfxP++); gSPEndDisplayList(gfxP++);

View file

@ -1,14 +1,142 @@
#include <ultra64.h> #include <ultra64.h>
#include <global.h> #include <global.h>
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD000.s") // Note : This file is related to z_vismono, the original name was probably z_vis<something before "mono"
// alphabetically>
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD054.s") // (Note: 80 = SCREEN_HEIGHT/3, see VisMono_DrawTexture)
// Did the devs forget to update this? 1+1+1+80*(7+2+2+3)+1+1 makes more sense
#define DLSIZE (1 + 3 + 1 + 1 + 80 * (7 + 2 + 2 + 3) + 1)
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD080.s") // framebuffer
extern u16 D_0F000000[];
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD394.s") void VisMono_Init(VisMono* this) {
bzero(this, sizeof(VisMono));
this->unk_00 = 0;
this->setScissor = false;
this->primColor.r = 0xFF;
this->primColor.g = 0xFF;
this->primColor.b = 0xFF;
this->primColor.a = 0xFF;
this->envColor.r = 0x00;
this->envColor.g = 0x00;
this->envColor.b = 0x00;
this->envColor.a = 0x00;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD5C0.s") void VisMono_Destroy(VisMono* this) {
SystemArena_FreeDebug(this->monoDl, "../z_vismono.c", 137);
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD870.s") void VisMono_UpdateTexture(VisMono* this, u16* tex) {
s32 i;
for (i = 0; i < 256; i++) {
tex[i] = ((((i >> 3 & 0x1F) * 2 + (i << 2 & 0x1F) * 4) * 0xFF / 0xD9) << 8) |
(((i >> 6 & 0x1F) * 4 + (i >> 1 & 0x1F)) * 0xFF / 0xD9);
}
}
Gfx* VisMono_DrawTexture(VisMono* this, Gfx* gfx) {
s32 y;
s32 height = 3;
u16* tex;
tex = D_0F000000;
gDPPipeSync(gfx++);
gDPSetOtherMode(gfx++,
G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_IA16 | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_2CYCLE | G_PM_1PRIMITIVE,
G_AC_NONE | G_ZS_PRIM | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_CLD_SURF2);
gDPSetCombineLERP(gfx++, 1, 0, TEXEL1_ALPHA, TEXEL0, 0, 0, 0, 1, PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, 0,
0, 0, PRIMITIVE);
for (y = 0; y <= SCREEN_HEIGHT - height; y += height) {
gDPLoadTextureBlock(gfx++, tex, G_IM_FMT_CI, G_IM_SIZ_8b, SCREEN_WIDTH * 2, height, 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);
gDPSetTile(gfx++, G_IM_FMT_CI, G_IM_SIZ_8b, 80, 0x0, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 0, 0,
G_TX_NOMIRROR | G_TX_CLAMP, 0, 0);
gDPSetTileSize(gfx++, G_TX_RENDERTILE, (2 << 2), 0, (SCREEN_WIDTH * 2 + 1 << 2), (2 << 2));
gDPSetTile(gfx++, G_IM_FMT_CI, G_IM_SIZ_8b, 80, 0x0, 1, 1, G_TX_NOMIRROR | G_TX_CLAMP, 0, 0,
G_TX_NOMIRROR | G_TX_CLAMP, 0, 0);
gDPSetTileSize(gfx++, 1, (1 << 2), 0, (SCREEN_WIDTH * 2 << 2), (2 << 2));
gSPTextureRectangle(gfx++, 0, (y) << 2, (SCREEN_WIDTH << 2), (y + height) << 2, G_TX_RENDERTILE, 2 << 5, 0,
(2 << 10), (1 << 10));
tex += SCREEN_WIDTH * height;
}
gDPPipeSync(gfx++);
gSPEndDisplayList(gfx++);
return gfx;
}
void VisMono_Draw(VisMono* this, Gfx** gfxp) {
Gfx* gfx;
u16* tlut;
Gfx* monoDL;
Gfx* glistpEnd;
gfx = *gfxp;
if (this->tlut) {
tlut = this->tlut;
} else {
tlut = Graph_DlistAlloc(&gfx, 256 * sizeof(u16));
VisMono_UpdateTexture(this, tlut);
}
if (this->monoDl) {
monoDL = this->monoDl;
} else {
monoDL = Graph_DlistAlloc(&gfx, DLSIZE * sizeof(Gfx));
glistpEnd = VisMono_DrawTexture(this, monoDL);
if (!(glistpEnd <= monoDL + DLSIZE)) {
LOG_ADDRESS("glistp_end", glistpEnd, "../z_vismono.c", 257);
LOG_ADDRESS("mono_dl", monoDL, "../z_vismono.c", 258);
LOG_ADDRESS("mono_dl + (1+3+1+1+80*(7+2+2+3)+1)", monoDL + DLSIZE, "../z_vismono.c", 259);
LOG_ADDRESS("(1+3+1+1+80*(7+2+2+3)+1)", DLSIZE, "../z_vismono.c", 260);
}
if (!(glistpEnd <= monoDL + DLSIZE)) {
__assert("glistp_end <= mono_dl + DLSIZE", "../z_vismono.c", 262);
}
}
gDPPipeSync(gfx++);
if (this->setScissor == true) {
gDPSetScissor(gfx++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
}
gDPSetColor(gfx++, G_SETPRIMCOLOR, this->primColor.rgba);
gDPSetColor(gfx++, G_SETENVCOLOR, this->envColor.rgba);
gDPLoadTLUT_pal256(gfx++, tlut);
gSPDisplayList(gfx++, monoDL);
gDPPipeSync(gfx++);
*gfxp = gfx;
}
void VisMono_DrawOld(VisMono* this) {
Gfx* glistpEnd;
if (!this->tlut) {
this->tlut = SystemArena_MallocDebug(256 * sizeof(u16), "../z_vismono.c", 283);
VisMono_UpdateTexture(this, this->tlut);
}
if (!this->monoDl) {
this->monoDl = SystemArena_MallocDebug(DLSIZE * sizeof(Gfx), "../z_vismono.c", 289);
glistpEnd = VisMono_DrawTexture(this, this->monoDl);
if (!(glistpEnd <= this->monoDl + DLSIZE)) {
__assert("glistp_end <= this->mono_dl + DLSIZE", "../z_vismono.c", 292);
}
}
}

View file

@ -570,3 +570,9 @@ D_04032C90 = 0x04032C90;
// z_oceff_storm // z_oceff_storm
D_04032490 = 0x04032490; D_04032490 = 0x04032490;
D_04032890 = 0x04032890; D_04032890 = 0x04032890;
// code_800AD920
D_0E000000 = 0x0E000000;
// z_vismono
D_0F000000 = 0x0F000000;