TAKE OFF THE BLINDFOLDS

This commit is contained in:
username
2025-02-17 23:32:41 -05:00
parent d22a8f3f54
commit 063ce1c09f
4 changed files with 52 additions and 47 deletions

View File

@@ -19,7 +19,11 @@
.equ INITIAL_DMA_LEN, (0x00100000 - 1)
.equ INITIAL_DMA_ROMPOS, 0x1000
#ifdef VERSION_CN
#if defined(VERSION_CN) && !defined(AVOID_UB)
#define BB_BOOT
#endif
#ifdef BB_BOOT
.macro cn_li a b
li \a, \b
.endm
@@ -181,7 +185,7 @@ glabel ipl3_entry // 0xA4000040
bnez $t0, .LA4000168
nop
.LA400025C:
#ifdef VERSION_CN
#ifdef BB_BOOT
li $t0, 0xc0000000
#else
li $t0, 0xc4000000
@@ -317,7 +321,7 @@ glabel ipl3_entry // 0xA4000040
bnez $at, .LA4000448
addiu $t0, $t0, 0x10
.LA4000458:
#ifdef VERSION_CN
#ifdef BB_BOOT
la $t0, SP_DMEM_CN_UNK0
lui $t1, 0xf
ori $t1, $t1, 0xffff
@@ -437,7 +441,7 @@ glabel ipl3_entry // 0xA4000040
andi $t3, $t3, 0x1
bnez $t3, .LA4000514
nop
#ifdef VERSION_CN
#ifdef BB_BOOT
nop
nop
nop
@@ -503,7 +507,7 @@ glabel ipl3_entry // 0xA4000040
nop
nop
#endif
#ifdef VERSION_CN
#ifdef BB_BOOT
lui $t1, %hi(PHYS_TO_K1(SP_PC_REG))
lw $t1, %lo(PHYS_TO_K1(SP_PC_REG))($t1)
beqz $t1, .LA4000698
@@ -638,7 +642,7 @@ func_A4000690:
sw $s7, 0x14($t0)
#endif
sw $s5, 0xc($t0)
#ifdef VERSION_CN
#ifdef BB_BOOT
beqz $s3, .LA4000728
sw $s7, 0x14($t0)
b .LA4000730
@@ -657,7 +661,7 @@ func_A4000690:
sw $t1, 0x8($t0)
cn_li $t0, PHYS_TO_K1(SP_DMEM_START)
addi $t1, $t0, 0x1000
#ifdef VERSION_CN
#ifdef BB_BOOT
.LA4000710:
sw $zero, ($t0)
addiu $t0, $t0, 4
@@ -671,7 +675,7 @@ func_A4000690:
#endif
cn_li $t0, PHYS_TO_K1(SP_IMEM_START)
addi $t1, $t0, 0x1000
#ifdef VERSION_CN
#ifdef BB_BOOT
.LA400072C:
sw $zero, ($t0)
addiu $t0, $t0, 4
@@ -691,7 +695,7 @@ func_A4000690:
func_A4000778:
addiu $sp, $sp, -0xa0
#ifndef VERSION_CN
#ifndef BB_BOOT
sw $s0, 0x40($sp)
sw $s1, 0x44($sp)
move $s1, $zero
@@ -713,7 +717,7 @@ func_A4000778:
sw $t7, 0x34($sp)
sw $t8, 0x38($sp)
sw $t9, 0x3c($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
sw $s0, 0x40($sp)
sw $s1, 0x44($sp)
#endif
@@ -725,7 +729,7 @@ func_A4000778:
sw $s7, 0x5c($sp)
sw $fp, 0x60($sp)
sw $ra, 0x64($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
move $s0, $zero
move $s1, $zero
#endif
@@ -733,12 +737,12 @@ func_A4000778:
jal func_A4000880
nop
addiu $s0, $s0, 1
#ifdef VERSION_CN
#ifdef BB_BOOT
addu $s1, $s1, $v0
#endif
slti $t1, $s0, 4
bnez $t1, .LA40007EC
#ifdef VERSION_CN
#ifdef BB_BOOT
nop
#else
addu $s1, $s1, $v0
@@ -746,7 +750,7 @@ func_A4000778:
srl $a0, $s1, 2
jal func_A4000A40
li $a1, 1
#ifdef VERSION_CN
#ifdef BB_BOOT
srl $v0, $s1, 2
#else
lw $ra, 0x64($sp)
@@ -769,7 +773,7 @@ func_A4000778:
lw $t8, 0x38($sp)
lw $t9, 0x3c($sp)
lw $s0, 0x40($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
lw $s1, 0x44($sp)
#endif
lw $s2, 0x48($sp)
@@ -779,7 +783,7 @@ func_A4000778:
lw $s6, 0x58($sp)
lw $s7, 0x5c($sp)
lw $fp, 0x60($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
lw $ra, 0x64($sp)
#endif
jr $ra
@@ -793,7 +797,7 @@ func_A4000880:
move $t4, $zero
.LA4000894:
slti $k0, $t4, 0x40
#ifdef VERSION_CN
#ifdef BB_BOOT
beqz $k0, .LA40008D4
nop
#else
@@ -802,7 +806,7 @@ func_A4000880:
#endif
jal func_A400090C
move $a0, $t4
#ifdef VERSION_CN
#ifdef BB_BOOT
blez $v0, .LA40008CC
nop
#else
@@ -811,24 +815,24 @@ func_A4000880:
#endif
subu $k0, $v0, $t1
multu $k0, $t4
#ifndef VERSION_CN
#ifndef BB_BOOT
move $t1, $v0
#endif
mflo $k0
addu $t3, $t3, $k0
#ifdef VERSION_CN
#ifdef BB_BOOT
move $t1, $v0
#else
nop
slti $k0, $t1, 0x50
#endif
.LA40008CC:
#ifdef VERSION_CN
#ifdef BB_BOOT
addiu $t4, $t4, 1
slti $k0, $t1, 0x50
#endif
bnez $k0, .LA4000894
#ifdef VERSION_CN
#ifdef BB_BOOT
nop
#else
addiu $t4, $t4, 1
@@ -840,7 +844,7 @@ func_A4000880:
sll $a0, $a0, 1
jal func_A4000980
addiu $a0, $a0, -0x370
#ifdef VERSION_CN
#ifdef BB_BOOT
b .LA40008FC
nop
.LA40008D4:
@@ -853,7 +857,7 @@ func_A4000880:
.LA40008FC:
lw $ra, 0x1c($sp)
.LA4000900:
#ifdef VERSION_CN
#ifdef BB_BOOT
jr $ra
addiu $sp, $sp, 0x20
#else
@@ -871,7 +875,7 @@ func_A400090C:
move $fp, $zero
.LA40008FC_cn:
li $k0, -1
#ifdef VERSION_CN
#ifdef BB_BOOT
sw $k0, ($s4)
sw $k0, ($s4)
sw $k0, 4($s4)
@@ -889,7 +893,7 @@ func_A400090C:
#endif
.LA4000940:
andi $k0, $v1, 1
#ifdef VERSION_CN
#ifdef BB_BOOT
beqz $k0, .LA4000928_cn
nop
#else
@@ -897,7 +901,7 @@ func_A400090C:
addiu $gp, $gp, 1
#endif
addiu $v0, $v0, 1
#ifdef VERSION_CN
#ifdef BB_BOOT
.LA4000928_cn:
srl $v1, $v1, 1
#endif
@@ -905,14 +909,14 @@ func_A400090C:
.LA4000954:
slti $k0, $gp, 8
bnez $k0, .LA4000940
#ifdef VERSION_CN
#ifdef BB_BOOT
nop
#else
srl $v1, $v1, 1
#endif
addiu $fp, $fp, 1
slti $k0, $fp, 0xa
#ifdef VERSION_CN
#ifdef BB_BOOT
bnez $k0, .LA40008FC_cn
nop
lw $ra, 0x1c($sp)
@@ -931,22 +935,22 @@ func_A4000980:
addiu $sp, $sp, -0x28
sw $ra, 0x1c($sp)
sw $a0, 0x20($sp)
#ifndef VERSION_CN
#ifndef BB_BOOT
sb $zero, 0x27($sp)
#endif
move $t0, $zero
move $t2, $zero
li $t5, 51200
#ifdef VERSION_CN
#ifdef BB_BOOT
sb $zero, 0x27($sp)
#endif
move $t6, $zero
#ifdef VERSION_CN
#ifdef BB_BOOT
.LA4000978:
#endif
slti $k0, $t6, 0x40
.LA40009A4:
#ifdef VERSION_CN
#ifdef BB_BOOT
bnez $k0, .LA400098C_cn
nop
#else
@@ -955,11 +959,11 @@ func_A4000980:
#endif
b .LA4000A30
move $v0, $zero
#ifdef VERSION_CN
#ifdef BB_BOOT
.LA400098C_cn:
#endif
move $a0, $t6
#ifndef VERSION_CN
#ifndef BB_BOOT
.LA40009B8:
#endif
jal func_A4000A40
@@ -970,7 +974,7 @@ func_A4000980:
addiu $a0, $sp, 0x27
lbu $k0, 0x27($sp)
li $k1, 800
#ifdef VERSION_CN
#ifdef BB_BOOT
multu $k0, $k1
mflo $t0
lw $a0, 0x20($sp)
@@ -1035,7 +1039,7 @@ func_A4000980:
func_A4000A40:
addiu $sp, $sp, -0x28
#ifdef VERSION_CN
#ifdef BB_BOOT
sw $ra, 0x1c($sp)
lui $t7, 0x4200
andi $a0, $a0, 0xff
@@ -1072,7 +1076,7 @@ func_A4000A40:
andi $k0, $a0, 0x20
sll $k0, $k0, 0x12
or $t7, $t7, $k0
#ifdef VERSION_CN
#ifdef BB_BOOT
sw $t7, ($s5)
li $k1, 1
bne $a1, $k1, .LA4000AC0
@@ -1086,7 +1090,7 @@ func_A4000A40:
sw $zero, %lo(PHYS_TO_K1(MI_BASE_REG))($k0)
.LA4000AC0:
lw $ra, 0x1c($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
jr $ra
addiu $sp, $sp, 0x28
#else
@@ -1098,25 +1102,25 @@ func_A4000A40:
func_A4000AD0:
addiu $sp, $sp, -0x28
sw $ra, 0x1c($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
move $fp, $zero
#endif
li $k0, 0x2000
lui $k1, %hi(PHYS_TO_K1(MI_BASE_REG))
sw $k0, %lo(PHYS_TO_K1(MI_BASE_REG))($k1)
#ifndef VERSION_CN
#ifndef BB_BOOT
move $fp, $zero
#endif
lw $fp, ($s5)
li $k0, 0x1000
sw $k0, %lo(PHYS_TO_K1(MI_BASE_REG))($k1)
#ifdef VERSION_CN
#ifdef BB_BOOT
move $k0, $zero
#endif
li $k1, 0x40
and $k1, $k1, $fp
srl $k1, $k1, 6
#ifndef VERSION_CN
#ifndef BB_BOOT
move $k0, $zero
#endif
or $k0, $k0, $k1
@@ -1142,7 +1146,7 @@ func_A4000AD0:
or $k0, $k0, $k1
sb $k0, ($a0)
lw $ra, 0x1c($sp)
#ifdef VERSION_CN
#ifdef BB_BOOT
jr $ra
addiu $sp, $sp, 0x28
.fill 0x30