Un-ignored: the dev drive is the ground truth the restoration and emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio content). Kept in-repo for the pod-owner community. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2922 lines
55 KiB
ArmAsm
2922 lines
55 KiB
ArmAsm
.file "vr_cull.c"
|
|
// PGC Rel 2.0a -opt 4
|
|
.text
|
|
.globl _printf_matrix
|
|
.align 8
|
|
_printf_matrix:
|
|
.a1 = 80
|
|
.f1 = 32
|
|
addu -(.a1+.f1), sp, sp
|
|
st.l fp,(.f1-16)(sp)
|
|
addu (.f1-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 38
|
|
ld.l 48(fp), r28
|
|
|
|
fld.l r0(r28), f16
|
|
orh h%.S00661, r0, r31
|
|
or l%.S00661, r31, r16
|
|
fmov.sd f16, f8
|
|
fld.l 4(r28), f17
|
|
fld.l 8(r28), f18
|
|
fld.l 12(r28), f19
|
|
fmov.sd f17, f10
|
|
|
|
|
|
fmov.sd f18, f12
|
|
|
|
|
|
call _printf
|
|
fmov.sd f19, f14
|
|
ld.l 48(fp), r28
|
|
|
|
fld.l 16(r28), f16
|
|
orh h%.S00665, r0, r31
|
|
or l%.S00665, r31, r16
|
|
fmov.sd f16, f8
|
|
fld.l 20(r28), f17
|
|
fld.l 24(r28), f18
|
|
fld.l 28(r28), f19
|
|
fmov.sd f17, f10
|
|
|
|
|
|
fmov.sd f18, f12
|
|
|
|
|
|
call _printf
|
|
fmov.sd f19, f14
|
|
ld.l 48(fp), r28
|
|
|
|
fld.l 32(r28), f16
|
|
orh h%.S00667, r0, r31
|
|
or l%.S00667, r31, r16
|
|
fmov.sd f16, f8
|
|
fld.l 36(r28), f17
|
|
fld.l 40(r28), f18
|
|
fld.l 44(r28), f19
|
|
fmov.sd f17, f10
|
|
|
|
|
|
fmov.sd f18, f12
|
|
|
|
|
|
call _printf
|
|
fmov.sd f19, f14
|
|
ld.l 48(fp), r28
|
|
|
|
fld.l 48(r28), f16
|
|
orh h%.S00669, r0, r31
|
|
or l%.S00669, r31, r16
|
|
fmov.sd f16, f8
|
|
fld.l 52(r28), f17
|
|
fld.l 56(r28), f18
|
|
fld.l 60(r28), f19
|
|
fmov.sd f17, f10
|
|
|
|
|
|
fmov.sd f18, f12
|
|
|
|
|
|
call _printf
|
|
fmov.sd f19, f14
|
|
// lineno: 47
|
|
|
|
|
|
|
|
|
|
adds .a1+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_dbl_plane_term:
|
|
.a2 = 0
|
|
.f2 = 32
|
|
addu -(.a2+.f2), sp, sp
|
|
st.l fp,(.f2-16)(sp)
|
|
addu (.f2-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 70
|
|
fld.d 8(r28), f16
|
|
fld.d r0(r28), f18
|
|
|
|
|
|
fsub.dd f18, f16, f20
|
|
|
|
|
|
fmul.dd f20, f8, f22
|
|
|
|
|
|
|
|
fsub.dd f16, f14, f24
|
|
|
|
|
|
fmul.dd f24, f10, f26
|
|
|
|
|
|
|
|
fadd.dd f26, f22, f28
|
|
|
|
|
|
fsub.dd f14, f18, f30
|
|
|
|
|
|
fmul.dd f30, f12, f20
|
|
|
|
|
|
|
|
fadd.dd f20, f28, f16
|
|
|
|
|
|
fmov.ds f16, f8
|
|
// lineno: 74
|
|
|
|
|
|
|
|
|
|
adds .a2+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _compute_plane_eqn
|
|
.align 8
|
|
_compute_plane_eqn:
|
|
.a3 = 80
|
|
.f3 = 128
|
|
addu -(.a3+.f3), sp, sp
|
|
st.l fp,(.f3-16)(sp)
|
|
addu (.f3-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 80
|
|
fld.l 4(r17), f16
|
|
fld.l 4(r18), f17
|
|
fld.l 4(r19), f18
|
|
fmov.sd f16, f8
|
|
fld.l 8(r17), f19
|
|
fld.l r0(r17), f20
|
|
fmov.sd f17, f10
|
|
fld.l r0(r18), f21
|
|
fld.l 8(r18), f26
|
|
fmov.sd f18, f12
|
|
fld.l r0(r19), f27
|
|
fld.l 8(r19), f16
|
|
fmov.sd f19, f14
|
|
adds -88, fp, r28
|
|
|
|
fmov.sd f20, f22
|
|
|
|
|
|
fst.d f22, -8(fp)
|
|
fst.d f8, -16(fp)
|
|
fst.d f14, -24(fp)
|
|
fmov.sd f21, f24
|
|
|
|
|
|
fst.d f24, -32(fp)
|
|
fst.d f10, -40(fp)
|
|
fmov.sd f26, f28
|
|
|
|
|
|
fst.d f28, -48(fp)
|
|
fmov.sd f27, f30
|
|
|
|
|
|
fst.d f30, -56(fp)
|
|
fst.d f12, -64(fp)
|
|
fmov.sd f16, f18
|
|
|
|
|
|
fst.d f18, -72(fp)
|
|
fst.d f28, -88(fp)
|
|
call _dbl_plane_term
|
|
fst.d f18, -80(fp)
|
|
fiadd.ss f8, f0, f16
|
|
fld.d -24(fp), f8
|
|
fld.d -48(fp), f10
|
|
fld.d -72(fp), f12
|
|
fld.d -8(fp), f14
|
|
fld.d -32(fp), f18
|
|
fld.d -56(fp), f20
|
|
ld.l 48(fp), r28
|
|
fst.d f18, -88(fp)
|
|
fst.d f20, -80(fp)
|
|
fst.l f16, r0(r28)
|
|
adds -88, fp, r29
|
|
call _dbl_plane_term
|
|
mov r29, r28
|
|
fiadd.ss f8, f0, f16
|
|
fld.d -8(fp), f8
|
|
fld.d -32(fp), f10
|
|
fld.d -56(fp), f12
|
|
fld.d -16(fp), f14
|
|
fld.d -40(fp), f18
|
|
fld.d -64(fp), f20
|
|
ld.l 48(fp), r28
|
|
fst.d f18, -88(fp)
|
|
fst.d f20, -80(fp)
|
|
fst.l f16, 4(r28)
|
|
adds -88, fp, r29
|
|
call _dbl_plane_term
|
|
mov r29, r28
|
|
fld.d -48(fp), f16
|
|
fld.d -64(fp), f18
|
|
fld.d -72(fp), f22
|
|
fld.d -40(fp), f24
|
|
fmul.dd f18, f16, f20
|
|
fld.d -8(fp), f30
|
|
fld.d -16(fp), f12
|
|
ld.l 48(fp), r28
|
|
fmul.dd f24, f22, f26
|
|
|
|
|
|
|
|
fsub.dd f26, f20, f28
|
|
fld.d -24(fp), f20
|
|
|
|
fmul.dd f30, f28, f10
|
|
fld.d -32(fp), f30
|
|
|
|
|
|
fmul.dd f12, f22, f14
|
|
|
|
|
|
|
|
fmul.dd f18, f20, f26
|
|
|
|
|
|
|
|
fsub.dd f26, f14, f28
|
|
|
|
|
|
fmul.dd f30, f28, f22
|
|
fld.d -56(fp), f30
|
|
|
|
|
|
fadd.dd f22, f10, f18
|
|
|
|
|
|
fmul.dd f24, f20, f14
|
|
|
|
|
|
|
|
fmul.dd f12, f16, f26
|
|
|
|
|
|
|
|
fsub.dd f26, f14, f28
|
|
|
|
|
|
fmul.dd f30, f28, f10
|
|
|
|
|
|
|
|
fadd.dd f10, f18, f22
|
|
|
|
|
|
fsub.dd f0, f22, f20
|
|
|
|
|
|
fmov.ds f20, f9
|
|
|
|
|
|
fst.l f9, 12(r28)
|
|
fst.d f20, -96(fp)
|
|
fst.l f8, 8(r28)
|
|
// lineno: 111
|
|
|
|
|
|
|
|
|
|
adds .a3+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_cull_view:
|
|
.a4 = 80
|
|
.f4 = 80
|
|
addu -(.a4+.f4), sp, sp
|
|
st.l fp,(.f4-16)(sp)
|
|
addu (.f4-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
// lineno: 132
|
|
fld.l 100(r17), f16
|
|
orh ha%.C00037, r0, r31
|
|
fld.l l%.C00037(r31), f19
|
|
frcp.ss f16, f17
|
|
fmul.ss f16, f17, f18
|
|
fld.l 96(r17), f25
|
|
ld.l 52(fp), r28
|
|
fsub.ss f19, f18, f20
|
|
adds 64, r0, r18
|
|
|
|
fmul.ss f17, f20, f21
|
|
|
|
|
|
fmul.ss f16, f21, f22
|
|
|
|
|
|
fsub.ss f19, f22, f23
|
|
|
|
|
|
fmul.ss f23, f21, f24
|
|
|
|
|
|
fmul.ss f25, f24, f26
|
|
|
|
|
|
fst.l f26, 168(r16)
|
|
|
|
fld.l 80(r17), f27
|
|
fld.l 88(r17), f28
|
|
fld.l 92(r17), f13
|
|
addu 8, r28, r17
|
|
fsub.ss f28, f27, f29
|
|
|
|
|
|
frcp.ss f29, f30
|
|
fmul.ss f29, f30, f31
|
|
|
|
|
|
fsub.ss f19, f31, f8
|
|
|
|
|
|
fmul.ss f30, f8, f9
|
|
|
|
|
|
fmul.ss f29, f9, f10
|
|
|
|
|
|
fsub.ss f19, f10, f11
|
|
|
|
|
|
fmul.ss f11, f9, f12
|
|
|
|
|
|
fadd.ss f13, f13, f14
|
|
|
|
|
|
fmul.ss f14, f12, f15
|
|
|
|
|
|
call _memcpy
|
|
fst.l f15, 128(r16)
|
|
ld.l 48(fp), r28
|
|
|
|
addu 64, r28, r16
|
|
|
|
call _dpl_Invert
|
|
mov r28, r17
|
|
ld.l 52(fp), r28
|
|
ld.l 48(fp), r29
|
|
fld.l 108(r28), f16
|
|
orh ha%.C00037, r0, r31
|
|
fld.l l%.C00037(r31), f19
|
|
frcp.ss f16, f17
|
|
fmul.ss f16, f17, f18
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f27
|
|
fsub.ss f19, f18, f20
|
|
orh ha%.C00038, r0, r31
|
|
fld.l l%.C00038(r31), f15
|
|
fmul.ss f17, f20, f21
|
|
addu 196, r29, r16
|
|
adds -16, fp, r17
|
|
fmul.ss f16, f21, f22
|
|
adds -32, fp, r18
|
|
adds -48, fp, r19
|
|
fsub.ss f19, f22, f23
|
|
fld.l 128(r29), f22
|
|
|
|
fmul.ss f23, f21, f24
|
|
|
|
|
|
fst.l f16, 136(r29)
|
|
frcp.ss f22, f21
|
|
fld.l 104(r28), f25
|
|
|
|
|
|
fmul.ss f25, f24, f26
|
|
|
|
|
|
fsub.ss f27, f26, f28
|
|
|
|
|
|
frcp.ss f28, f29
|
|
fmul.ss f28, f29, f30
|
|
|
|
|
|
fsub.ss f19, f30, f31
|
|
|
|
|
|
fmul.ss f29, f31, f8
|
|
|
|
|
|
fmul.ss f28, f8, f9
|
|
|
|
|
|
fsub.ss f19, f9, f10
|
|
|
|
|
|
fmul.ss f10, f8, f11
|
|
|
|
|
|
fst.l f25, 132(r29)
|
|
fmul.ss f22, f21, f23
|
|
fld.l 96(r28), f12
|
|
|
|
|
|
fst.l f12, 140(r29)
|
|
fsub.ss f19, f23, f16
|
|
fld.l 100(r28), f13
|
|
|
|
|
|
fst.l f13, 148(r29)
|
|
fmul.ss f21, f16, f24
|
|
fld.l 96(r28), f14
|
|
|
|
|
|
fmul.ss f14, f15, f18
|
|
|
|
|
|
fst.l f18, 144(r29)
|
|
|
|
fld.l 100(r28), f20
|
|
fst.l f11, 160(r29)
|
|
fst.l f0, 172(r29)
|
|
fmul.ss f20, f15, f17
|
|
|
|
|
|
fst.l f17, 152(r29)
|
|
fst.l f0, 176(r29)
|
|
fmul.ss f22, f24, f27
|
|
|
|
|
|
fsub.ss f19, f27, f30
|
|
|
|
|
|
fmul.ss f30, f24, f31
|
|
|
|
|
|
fmul.ss f25, f31, f29
|
|
|
|
|
|
fst.l f29, 164(r29)
|
|
fst.l f26, 156(r29)
|
|
fst.l f0, -16(fp)
|
|
fst.l f0, -12(fp)
|
|
fst.l f0, -8(fp)
|
|
|
|
fld.l 84(r28), f9
|
|
|
|
|
|
fst.l f9, -32(fp)
|
|
|
|
fld.l 88(r28), f8
|
|
|
|
|
|
fst.l f8, -28(fp)
|
|
|
|
fld.l 92(r28), f10
|
|
|
|
|
|
fst.l f10, -24(fp)
|
|
|
|
fld.l 84(r28), f28
|
|
|
|
|
|
fst.l f28, -48(fp)
|
|
|
|
fld.l 80(r28), f12
|
|
|
|
|
|
fst.l f12, -44(fp)
|
|
|
|
fld.l 92(r28), f23
|
|
|
|
|
|
call _compute_plane_eqn
|
|
fst.l f23, -40(fp)
|
|
ld.l 52(fp), r28
|
|
ld.l 48(fp), r29
|
|
fld.l 76(r28), f16
|
|
addu 228, r29, r16
|
|
adds -16, fp, r17
|
|
fst.l f16, -48(fp)
|
|
adds -48, fp, r18
|
|
fld.l 88(r28), f17
|
|
adds -32, fp, r19
|
|
|
|
call _compute_plane_eqn
|
|
fst.l f17, -44(fp)
|
|
ld.l 52(fp), r28
|
|
ld.l 48(fp), r29
|
|
fld.l 76(r28), f16
|
|
addu 180, r29, r16
|
|
adds -16, fp, r17
|
|
fst.l f16, -32(fp)
|
|
adds -32, fp, r18
|
|
fld.l 80(r28), f17
|
|
adds -48, fp, r19
|
|
|
|
call _compute_plane_eqn
|
|
fst.l f17, -28(fp)
|
|
ld.l 52(fp), r28
|
|
ld.l 48(fp), r29
|
|
fld.l 84(r28), f16
|
|
addu 212, r29, r16
|
|
adds -16, fp, r17
|
|
fst.l f16, -48(fp)
|
|
adds -48, fp, r18
|
|
fld.l 80(r28), f17
|
|
adds -32, fp, r19
|
|
|
|
call _compute_plane_eqn
|
|
fst.l f17, -44(fp)
|
|
orh ha%_eof_FOG_far, r0, r31
|
|
fld.l l%_eof_FOG_far(r31), f16
|
|
orh ha%.C00037, r0, r31
|
|
fld.l l%.C00037(r31), f19
|
|
frcp.ss f16, f17
|
|
fmul.ss f16, f17, f18
|
|
ld.l 48(fp), r28
|
|
|
|
fsub.ss f19, f18, f20
|
|
fld.l 164(r28), f25
|
|
fld.l 128(r28), f26
|
|
fmul.ss f17, f20, f21
|
|
orh ha%_Czscale, r0, r31
|
|
fld.l l%_Czscale(r31), f28
|
|
fmul.ss f16, f21, f22
|
|
orh ha%_eof_FOG_near, r0, r31
|
|
fld.l l%_eof_FOG_near(r31), f31
|
|
fsub.ss f19, f22, f23
|
|
|
|
|
|
fmul.ss f23, f21, f24
|
|
|
|
|
|
fmul.ss f26, f25, f27
|
|
|
|
|
|
fmul.ss f28, f27, f29
|
|
|
|
|
|
fmul.ss f29, f24, f30
|
|
|
|
|
|
ftrunc.sd f30, f8
|
|
|
|
orh ha%_eof_Z_far, r0, r31
|
|
fst.l f8, l%_eof_Z_far(r31)
|
|
frcp.ss f31, f10
|
|
fmul.ss f31, f10, f11
|
|
|
|
|
|
fsub.ss f19, f11, f12
|
|
|
|
|
|
fmul.ss f10, f12, f13
|
|
|
|
|
|
fmul.ss f31, f13, f14
|
|
|
|
|
|
fsub.ss f19, f14, f15
|
|
|
|
|
|
fmul.ss f15, f13, f18
|
|
|
|
|
|
fmul.ss f29, f18, f20
|
|
|
|
|
|
ftrunc.sd f20, f16
|
|
|
|
orh ha%_eof_Z_near, r0, r31
|
|
fst.l f16, l%_eof_Z_near(r31)
|
|
|
|
fld.l 136(r28), f22
|
|
|
|
|
|
frcp.ss f22, f21
|
|
fmul.ss f22, f21, f23
|
|
|
|
|
|
fsub.ss f19, f23, f25
|
|
|
|
|
|
fmul.ss f21, f25, f26
|
|
|
|
|
|
fmul.ss f22, f26, f27
|
|
|
|
|
|
fsub.ss f19, f27, f28
|
|
|
|
|
|
fmul.ss f28, f26, f24
|
|
|
|
|
|
fmul.ss f24, f29, f30
|
|
|
|
|
|
ftrunc.sd f30, f8
|
|
|
|
orh ha%_eof_farZ, r0, r31
|
|
fst.l f8, l%_eof_farZ(r31)
|
|
// lineno: 176
|
|
|
|
|
|
|
|
|
|
adds .a4+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_new_draw_item:
|
|
.a5 = 80
|
|
.f5 = 48
|
|
addu -(.a5+.f5), sp, sp
|
|
st.l fp,(.f5-16)(sp)
|
|
addu (.f5-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -24(fp)
|
|
st.l r5, -20(fp)
|
|
st.l r6, -16(fp)
|
|
st.l r7, -12(fp)
|
|
st.l r8, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r17, 52(fp)
|
|
mov r16, r4
|
|
// lineno: 0
|
|
orh h%_chunk_active, r0, r31
|
|
or l%_chunk_active, r31, r5
|
|
orh h%_chunk_usage, r0, r31
|
|
or l%_chunk_usage, r31, r6
|
|
orh h%_chunk_free_ptr, r0, r31
|
|
or l%_chunk_free_ptr, r31, r8
|
|
// lineno: 190
|
|
ld.l r0(r6), r28
|
|
|
|
adds r16, r28, r29
|
|
adds -4064, r29, r0
|
|
|
|
bc .B730
|
|
ld.l r0(r5), r30
|
|
|
|
ld.l 4(r30), r17
|
|
|
|
btne 0x0000, r17, .B732
|
|
call _malloc
|
|
adds 4096, r0, r16
|
|
ld.l r0(r5), r28
|
|
|
|
st.l r16, 4(r28)
|
|
btne 0x0000, r16, .B735
|
|
orh h%.S00736, r0, r31
|
|
call _printf
|
|
or l%.S00736, r31, r16
|
|
br .B1131
|
|
mov r0, r16
|
|
// lineno: 198
|
|
.B735: //.B0002
|
|
ld.l r0(r5), r28
|
|
.DB.B735735:
|
|
|
|
ld.l 4(r28), r29
|
|
|
|
st.l r0, 4(r29)
|
|
// lineno: 200
|
|
.B732: //.B0001
|
|
ld.l r0(r5), r28
|
|
.DB.B732732:
|
|
adds 1, r0, r17
|
|
ld.l 4(r28), r29
|
|
st.l r0, 12(r28)
|
|
addu 16, r29, r30
|
|
st.l r30, 0(r8)
|
|
st.l r29, 0(r5)
|
|
st.l r17, 12(r29)
|
|
st.l r0, 8(r29)
|
|
st.l r0, 0(r6)
|
|
// lineno: 209
|
|
.B730: //.B0000
|
|
ld.l r0(r5), r28
|
|
.DB.B730730:
|
|
ld.l r0(r8), r16
|
|
ld.l 8(r28), r29
|
|
ld.l 52(fp), r17
|
|
adds 1, r29, r30
|
|
st.l r30, 8(r28)
|
|
st.l r17, 0(r16)
|
|
adds r4, r16, r20
|
|
ld.l r0(r6), r18
|
|
st.l r20, 0(r8)
|
|
adds r18, r4, r19
|
|
st.l r19, 0(r6)
|
|
// lineno: 0
|
|
.B1131: //.R0001
|
|
// lineno: 215
|
|
|
|
|
|
|
|
|
|
ld.l -24(fp), r4
|
|
ld.l -20(fp), r5
|
|
ld.l -16(fp), r6
|
|
ld.l -12(fp), r7
|
|
ld.l -8(fp), r8
|
|
adds .a5+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_bbox_plane:
|
|
.a6 = 0
|
|
.f6 = 32
|
|
orh h%.STACK+.f6-16, r0, r28
|
|
or l%.STACK+.f6-16, r28, r28
|
|
st.l r4, -8(r28)
|
|
st.l r5, -4(r28)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 0
|
|
adds -1, r0, r18
|
|
// lineno: 226
|
|
fld.l r0(r17), f11
|
|
fld.l 4(r17), f12
|
|
fld.l 8(r17), f13
|
|
fld.l 12(r17), f14
|
|
mov r0, r20
|
|
mov r0, r20
|
|
mov r16, r21
|
|
mov r16, r21
|
|
adds 1, r0, r19
|
|
addu -12, r16, r4
|
|
addu -8, r16, r5
|
|
bla r18, r19,.B1159
|
|
pfmul.dd f0, f0, f0
|
|
// lineno: 236
|
|
.B1159: //.M0000
|
|
.align 8
|
|
d.pfadd.dd f0, f0, f0
|
|
nop
|
|
.align 8
|
|
.PD0.B1159105:
|
|
d.fnop
|
|
mov r4, r29
|
|
.DB.B11591159:
|
|
d.fnop
|
|
fld.l 16(r29)++, f17
|
|
d.fnop
|
|
fld.l 16(r29)++, f18
|
|
d.fnop
|
|
fld.l 16(r29)++, f19
|
|
d.fnop
|
|
addu 16, r29, r4
|
|
d.fnop
|
|
fld.l r0(r4), f9
|
|
d.pfmul.ss f19, f12, f0
|
|
mov r21, r30
|
|
d.pfmul.ss f0, f0, f0
|
|
mov r30, r22
|
|
d.pfmul.ss f9, f12, f0
|
|
fld.l 16(r30)++, f23
|
|
d.pfmul.ss f0, f0, f21
|
|
fld.l 16(r30)++, f24
|
|
d.pfmul.ss f0, f0, f0
|
|
fld.l r0(r22), f25
|
|
d.pfmul.ss f0, f0, f20
|
|
fld.l 16(r30)++, f10
|
|
d.pfmul.ss f24, f11, f0
|
|
mov r5, r23
|
|
d.pfmul.ss f0, f0, f0
|
|
fld.l 16(r23)++, f29
|
|
d.pfmul.ss f10, f11, f0
|
|
fld.l 16(r23)++, f30
|
|
d.mi2p1.ss f21, f0, f16
|
|
fld.l 16(r23)++, f31
|
|
d.mm12msm.ss f18, f12, f0
|
|
addu 16, r23, r5
|
|
d.mi2p1.ss f20, f0, f26
|
|
fld.l r0(r5), f8
|
|
d.m12tpa.ss f31, f13, f19
|
|
addu 16, r30, r21
|
|
d.mm12msm.ss f23, f11, f26
|
|
nop
|
|
d.m12tpa.ss f8, f13, f27
|
|
nop
|
|
d.mi2p1.ss f19, f0, f24
|
|
nop
|
|
d.mi2p1.ss f26, f0, f18
|
|
nop
|
|
d.mi2p1.ss f27, f0, f15
|
|
nop
|
|
d.pfadd.ss f14, f16, f16
|
|
nop
|
|
d.m12tpa.ss f30, f13, f20
|
|
nop
|
|
d.ia1p2.ss f14, f28, f28
|
|
nop
|
|
d.ia1p2.ss f0, f0, f21
|
|
nop
|
|
d.mm12msm.ss f0, f0, f31
|
|
nop
|
|
d.pfadd.ss f0, f0, f22
|
|
nop
|
|
d.pfgt.ss f22, f0, f0
|
|
nop
|
|
d.fnop
|
|
shl r0, r0, r24
|
|
d.fnop
|
|
bnc ..L3
|
|
d.fnop
|
|
adds 1, r0, r24
|
|
..L3:
|
|
|
|
d.pfgt.ss f21, f0, f0
|
|
nop
|
|
d.fnop
|
|
shl r0, r0, r25
|
|
d.fnop
|
|
bnc ..L2
|
|
d.fnop
|
|
adds 1, r0, r25
|
|
..L2:
|
|
|
|
d.pfadd.ss f20, f31, f0
|
|
nop
|
|
d.mm12msm.ss f25, f11, f0
|
|
nop
|
|
d.mm12msm.ss f17, f12, f0
|
|
nop
|
|
d.ia1p2.ss f14, f23, f23
|
|
nop
|
|
d.mm12msm.ss f0, f0, f19
|
|
nop
|
|
d.mm12msm.ss f0, f0, f18
|
|
nop
|
|
d.pfadd.ss f0, f0, f24
|
|
nop
|
|
d.pfgt.ss f24, f0, f0
|
|
nop
|
|
d.fnop
|
|
shl r0, r0, r26
|
|
d.fnop
|
|
bnc ..L1
|
|
d.fnop
|
|
adds 1, r0, r26
|
|
..L1:
|
|
|
|
d.pfadd.ss f19, f18, f0
|
|
nop
|
|
d.mm12msm.ss f29, f13, f0
|
|
nop
|
|
d.mm12msm.ss f0, f0, f0
|
|
nop
|
|
d.ia1p2.ss f0, f0, f26
|
|
nop
|
|
d.mi2p1.ss f26, f0, f15
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f14, f27, f27
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f16
|
|
nop
|
|
d.pfgt.ss f16, f0, f0
|
|
nop
|
|
d.fnop
|
|
shl r0, r0, r27
|
|
d.fnop
|
|
bnc ..L0
|
|
d.fnop
|
|
adds 1, r0, r27
|
|
..L0:
|
|
|
|
d.fnop
|
|
adds r20, r27, r29
|
|
d.fnop
|
|
adds r29, r26, r22
|
|
d.fnop
|
|
adds r22, r25, r23
|
|
d.fnop
|
|
adds r23, r24, r20
|
|
d.fnop
|
|
bla r18, r19, .PD0.B1159105
|
|
d.fnop
|
|
nop
|
|
.align 8
|
|
fnop
|
|
nop
|
|
fnop
|
|
nop
|
|
// lineno: 0
|
|
mov r20, r16
|
|
// lineno: 0
|
|
// lineno: 247
|
|
|
|
|
|
|
|
|
|
ld.l -8(r28), r4
|
|
ld.l -4(r28), r5
|
|
bri r1
|
|
nop
|
|
.align 8
|
|
_scale_from_matrix:
|
|
.a7 = 80
|
|
.f7 = 32
|
|
addu -(.a7+.f7), sp, sp
|
|
st.l fp,(.f7-16)(sp)
|
|
addu (.f7-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 255
|
|
fld.l 32(r16), f16
|
|
fld.l 36(r16), f18
|
|
fld.l 40(r16), f21
|
|
fmul.ss f16, f16, f17
|
|
|
|
|
|
fmul.ss f18, f18, f19
|
|
|
|
|
|
fadd.ss f19, f17, f20
|
|
|
|
|
|
fmul.ss f21, f21, f22
|
|
|
|
|
|
fadd.ss f22, f20, f23
|
|
|
|
|
|
fmov.sd f23, f8
|
|
|
|
|
|
fst.l f18, -4(fp)
|
|
call _sqrt
|
|
fst.l f21, -8(fp)
|
|
fmov.ds f8, f8
|
|
// lineno: 261
|
|
|
|
|
|
|
|
|
|
adds .a7+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_visibility:
|
|
.a8 = 80
|
|
.f8 = 64
|
|
addu -(.a8+.f8), sp, sp
|
|
st.l fp,(.f8-16)(sp)
|
|
addu (.f8-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
fst.d f2, -40(fp)
|
|
fst.d f4, -32(fp)
|
|
fst.d f6, -24(fp)
|
|
st.l r4, -16(fp)
|
|
st.l r5, -12(fp)
|
|
st.l r6, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
// lineno: 0
|
|
// lineno: 274
|
|
fld.l 8(r16), f3
|
|
addu 16, r16, r6
|
|
fld.l 8(r6), f2
|
|
fiadd.ss f3, f0, f4
|
|
fld.l 132(r17), f6
|
|
fld.l 136(r17), f5
|
|
mov r0, r4
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B767
|
|
br .B768
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 298
|
|
.B767: //.B0005
|
|
pfle.ss f2, f4, f0
|
|
.DB.B767767:
|
|
|
|
bnc .B769
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B769: //.B0007
|
|
// lineno: 301
|
|
.B768: //.B0006
|
|
addu 16, r6, r6
|
|
.DB.B768768:
|
|
fld.l 8(r6), f2
|
|
|
|
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B770
|
|
br .B771
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 304
|
|
.B770: //.B0008
|
|
pfle.ss f2, f4, f0
|
|
.DB.B770770:
|
|
|
|
bnc .B772
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B772: //.B0010
|
|
// lineno: 307
|
|
.B771: //.B0009
|
|
addu 16, r6, r6
|
|
.DB.B771771:
|
|
fld.l 8(r6), f2
|
|
|
|
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B773
|
|
br .B774
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 310
|
|
.B773: //.B0011
|
|
pfle.ss f2, f4, f0
|
|
.DB.B773773:
|
|
|
|
bnc .B775
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B775: //.B0013
|
|
// lineno: 313
|
|
.B774: //.B0012
|
|
addu 16, r6, r6
|
|
.DB.B774774:
|
|
fld.l 8(r6), f2
|
|
|
|
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B776
|
|
br .B777
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 316
|
|
.B776: //.B0014
|
|
pfle.ss f2, f4, f0
|
|
.DB.B776776:
|
|
|
|
bnc .B778
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B778: //.B0016
|
|
// lineno: 319
|
|
.B777: //.B0015
|
|
addu 16, r6, r6
|
|
.DB.B777777:
|
|
fld.l 8(r6), f2
|
|
|
|
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B779
|
|
br .B780
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 322
|
|
.B779: //.B0017
|
|
pfle.ss f2, f4, f0
|
|
.DB.B779779:
|
|
|
|
bnc .B781
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B781: //.B0019
|
|
// lineno: 325
|
|
.B780: //.B0018
|
|
addu 16, r6, r6
|
|
.DB.B780780:
|
|
fld.l 8(r6), f2
|
|
|
|
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B782
|
|
br .B783
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 328
|
|
.B782: //.B0020
|
|
pfle.ss f2, f4, f0
|
|
.DB.B782782:
|
|
|
|
bnc .B784
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B784: //.B0022
|
|
// lineno: 331
|
|
.B783: //.B0021
|
|
addu 16, r6, r6
|
|
.DB.B783783:
|
|
fld.l 8(r6), f2
|
|
|
|
|
|
pfle.ss f3, f2, f0
|
|
|
|
bnc .B785
|
|
br .B786
|
|
fiadd.ss f2, f0, f3
|
|
// lineno: 334
|
|
.B785: //.B0023
|
|
pfle.ss f2, f4, f0
|
|
.DB.B785785:
|
|
|
|
bnc .B787
|
|
fiadd.ss f2, f0, f4
|
|
// lineno: 0
|
|
.B787: //.B0025
|
|
// lineno: 339
|
|
.B786: //.B0024
|
|
pfle.ss f6, f4, f0
|
|
.DB.B786786:
|
|
|
|
bnc .B788
|
|
br .B1177
|
|
adds 64, r0, r16
|
|
// lineno: 345
|
|
.B788: //.B0026
|
|
pfle.ss f3, f5, f0
|
|
.DB.B788788:
|
|
|
|
bnc .B791
|
|
br .B1177
|
|
adds 64, r0, r16
|
|
// lineno: 356
|
|
.B791: //.B0028
|
|
pfle.ss f4, f5, f0
|
|
.DB.B791791:
|
|
|
|
bnc .B793
|
|
adds 32, r0, r4
|
|
// lineno: 357
|
|
.B793: //.B0029
|
|
pfle.ss f6, f3, f0
|
|
.DB.B793793:
|
|
|
|
bnc .B795
|
|
or 0x0010, r4, r4
|
|
// lineno: 361
|
|
.B795: //.B0030
|
|
ld.l 48(fp), r16
|
|
.DB.B795795:
|
|
ld.l 52(fp), r28
|
|
|
|
call _bbox_plane
|
|
addu 212, r28, r17
|
|
mov r16, r5
|
|
btne 0x0008, r16, .B798
|
|
br .B1177
|
|
adds 64, r0, r16
|
|
// lineno: 366
|
|
.B798: //.B0031
|
|
bte 0x0000, r5, .B801
|
|
or 0x0004, r4, r4
|
|
// lineno: 371
|
|
.B801: //.B0033
|
|
ld.l 48(fp), r16
|
|
.DB.B801801:
|
|
ld.l 52(fp), r28
|
|
|
|
call _bbox_plane
|
|
addu 228, r28, r17
|
|
mov r16, r5
|
|
btne 0x0008, r16, .B803
|
|
br .B1177
|
|
adds 64, r0, r16
|
|
// lineno: 376
|
|
.B803: //.B0034
|
|
bte 0x0000, r5, .B806
|
|
or 0x0008, r4, r4
|
|
// lineno: 381
|
|
.B806: //.B0036
|
|
ld.l 48(fp), r16
|
|
.DB.B806806:
|
|
ld.l 52(fp), r28
|
|
|
|
call _bbox_plane
|
|
addu 180, r28, r17
|
|
mov r16, r5
|
|
btne 0x0008, r16, .B808
|
|
br .B1177
|
|
adds 64, r0, r16
|
|
// lineno: 387
|
|
.B808: //.B0037
|
|
bte 0x0000, r5, .B811
|
|
or 0x0001, r4, r4
|
|
// lineno: 392
|
|
.B811: //.B0039
|
|
ld.l 48(fp), r16
|
|
.DB.B811811:
|
|
ld.l 52(fp), r28
|
|
|
|
call _bbox_plane
|
|
addu 196, r28, r17
|
|
mov r16, r5
|
|
btne 0x0008, r16, .B813
|
|
br .B1177
|
|
adds 64, r0, r16
|
|
// lineno: 398
|
|
.B813: //.B0040
|
|
bte 0x0000, r5, .B816
|
|
or 0x0002, r4, r4
|
|
// lineno: 403
|
|
.B816: //.B0042
|
|
mov r4, r16
|
|
.DB.B816816:
|
|
// lineno: 0
|
|
.B1177: //.R0004
|
|
// lineno: 404
|
|
|
|
|
|
|
|
|
|
fld.d -40(fp), f2
|
|
fld.d -32(fp), f4
|
|
fld.d -24(fp), f6
|
|
ld.l -16(fp), r4
|
|
ld.l -12(fp), r5
|
|
ld.l -8(fp), r6
|
|
adds .a8+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_build_bound:
|
|
.a9 = 0
|
|
.f9 = 48
|
|
orh h%.STACK+.f9-16, r0, r28
|
|
or l%.STACK+.f9-16, r28, r28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 885
|
|
fld.l r0(r17), f16
|
|
fld.l 4(r17), f17
|
|
fld.l 8(r17), f18
|
|
fld.l 16(r17), f19
|
|
fst.l f17, -4(r28)
|
|
fst.l f18, -8(r28)
|
|
fst.l f19, -12(r28)
|
|
|
|
fld.l 20(r17), f20
|
|
fld.l 24(r17), f21
|
|
fst.l f16, r0(r16)
|
|
fst.l f20, -16(r28)
|
|
fst.l f21, -20(r28)
|
|
fst.l f17, 4(r16)
|
|
fst.l f18, 8(r16)
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f22
|
|
fst.l f19, 16(r16)
|
|
fst.l f17, 20(r16)
|
|
fst.l f22, 12(r16)
|
|
fst.l f18, 24(r16)
|
|
fst.l f22, 28(r16)
|
|
fst.l f16, 32(r16)
|
|
fst.l f20, 36(r16)
|
|
fst.l f18, 40(r16)
|
|
fst.l f22, 44(r16)
|
|
fst.l f19, 48(r16)
|
|
fst.l f20, 52(r16)
|
|
fst.l f18, 56(r16)
|
|
fst.l f22, 60(r16)
|
|
fst.l f16, 64(r16)
|
|
fst.l f17, 68(r16)
|
|
fst.l f21, 72(r16)
|
|
fst.l f22, 76(r16)
|
|
fst.l f19, 80(r16)
|
|
fst.l f17, 84(r16)
|
|
fst.l f21, 88(r16)
|
|
fst.l f22, 92(r16)
|
|
fst.l f16, 96(r16)
|
|
fst.l f20, 100(r16)
|
|
fst.l f21, 104(r16)
|
|
fst.l f22, 108(r16)
|
|
fst.l f19, 112(r16)
|
|
fst.l f20, 116(r16)
|
|
fst.l f21, 120(r16)
|
|
bri r1
|
|
fst.l f22, 124(r16)
|
|
// lineno: 943
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.align 8
|
|
_next_free_ramp:
|
|
.a10 = 80
|
|
.f10 = 32
|
|
addu -(.a10+.f10), sp, sp
|
|
st.l fp,(.f10-16)(sp)
|
|
addu (.f10-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -8(fp)
|
|
st.l r5, -4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 0
|
|
orh h%_allocated_ramps, r0, r31
|
|
or l%_allocated_ramps, r31, r5
|
|
// lineno: 952
|
|
ld.l r0(r5), r28
|
|
|
|
btne 0x0004, r28, .B835
|
|
br .B1200
|
|
mov r0, r16
|
|
// lineno: 954
|
|
.B835: //.B0043
|
|
mov r0, r4
|
|
.DB.B835835:
|
|
ld.l r0(r5), r28
|
|
|
|
subs 0, r28, r0
|
|
|
|
bnc .B837
|
|
adds -1, r28, r18
|
|
orh h%_ref_texture_ramps, r0, r31
|
|
or l%_ref_texture_ramps, r31, r20
|
|
ld.l 48(fp), r21
|
|
adds -1, r0, r17
|
|
mov r0, r19
|
|
bla r17, r18,.B1216
|
|
pfmul.dd f0, f0, f0
|
|
// lineno: 955
|
|
.B1216: //.M0001
|
|
ld.l r0(r20), r28
|
|
.DB.B12161216:
|
|
|
|
btne r21, r28, .B839
|
|
// lineno: 0
|
|
mov r19, r4
|
|
br .B1200
|
|
mov r19, r16
|
|
// lineno: 956
|
|
.B839: //.B0046
|
|
adds 1, r19, r19
|
|
.DB.B839839:
|
|
bla r17, r18, .B1216
|
|
addu 4, r20, r20
|
|
// lineno: 0
|
|
mov r19, r4
|
|
// lineno: 958
|
|
.B837: //.B0045
|
|
ld.l r0(r5), r28
|
|
.DB.B837837:
|
|
adds 28, r0, r29
|
|
ixfr r28, f16
|
|
ixfr r29, f18
|
|
orh h%_texture_ramps, r0, r31
|
|
or l%_texture_ramps, r31, r16
|
|
fmlow.dd f16, f18, f20
|
|
shl 2, r28, r22
|
|
orh h%_ref_texture_ramps, r0, r31
|
|
or l%_ref_texture_ramps, r31, r23
|
|
fxfr f20, r30
|
|
ld.l 48(fp), r24
|
|
adds r30, r16, r16
|
|
|
|
mov r28, r17
|
|
adds r22, r23, r31
|
|
st.l r24, 0(r31)
|
|
|
|
fld.l 8(r24), f8
|
|
fld.l 12(r24), f9
|
|
fld.l 16(r24), f10
|
|
fld.l 20(r24), f11
|
|
fld.l 24(r24), f12
|
|
call _setRampEntry
|
|
fld.l 28(r24), f13
|
|
ld.l r0(r5), r28
|
|
|
|
adds 1, r28, r29
|
|
st.l r29, 0(r5)
|
|
adds -1, r29, r16
|
|
// lineno: 0
|
|
.B1200: //.R0005
|
|
// lineno: 972
|
|
|
|
|
|
|
|
|
|
ld.l -8(fp), r4
|
|
ld.l -4(fp), r5
|
|
adds .a10+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_cull_material:
|
|
.a11 = 80
|
|
.f11 = 32
|
|
addu -(.a11+.f11), sp, sp
|
|
st.l fp,(.f11-16)(sp)
|
|
addu (.f11-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -8(fp)
|
|
st.l r5, -4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
st.l r18, 56(fp)
|
|
// lineno: 0
|
|
// lineno: 990
|
|
ld.l 52(fp), r28
|
|
adds 12, r0, r18
|
|
call _memcpy
|
|
addu 36, r28, r17
|
|
ld.l 48(fp), r28
|
|
ld.l 52(fp), r29
|
|
addu 16, r28, r16
|
|
addu 60, r29, r17
|
|
adds 12, r0, r18
|
|
fld.l 48(r29), f16
|
|
|
|
|
|
call _memcpy
|
|
fst.l f16, 12(r28)
|
|
ld.l 52(fp), r28
|
|
|
|
call _compute_phong_table
|
|
fld.l 72(r28), f8
|
|
ld.l 48(fp), r28
|
|
adds -1, r0, r29
|
|
st.l r16, 28(r28)
|
|
st.l r29, 32(r28)
|
|
|
|
ld.l 56(fp), r30
|
|
|
|
bte 0x0000, r30, .B851
|
|
ld.l 8(r30), r5
|
|
|
|
bte 0x0000, r5, .B854
|
|
ld.l 52(fp), r17
|
|
|
|
ld.l 76(r17), r18
|
|
|
|
bte 0x0000, r18, .B856
|
|
call _next_free_ramp
|
|
mov r18, r16
|
|
br .B857
|
|
mov r16, r4
|
|
// lineno: 1003
|
|
.B856: //.B0049
|
|
mov r0, r4
|
|
.DB.B856856:
|
|
// lineno: 1014
|
|
.B857: //.B0050
|
|
ld.l 28(r5), r28
|
|
.DB.B857857:
|
|
ld.l 24(r5), r17
|
|
and 0x003f, r28, r29
|
|
shl 2, r29, r30
|
|
or r17, r30, r18
|
|
shl 8, r4, r19
|
|
or r18, r19, r20
|
|
ld.l 56(fp), r21
|
|
ld.l 48(fp), r27
|
|
ld.l 12(r21), r22
|
|
addu 36, r27, r29
|
|
adds -1, r22, r23
|
|
and 0x0007, r23, r24
|
|
shl 10, r24, r25
|
|
or r20, r25, r26
|
|
st.l r26, 32(r27)
|
|
orh ha%_animate_elapsed_time, r0, r28
|
|
fld.l l%_animate_elapsed_time(r28)++, f16
|
|
fld.l 44(r21), f17
|
|
fld.l 36(r21), f19
|
|
|
|
fmul.ss f16, f17, f18
|
|
orh ha%.C01226, r0, r31
|
|
fld.d l%.C01226(r31), f28
|
|
fadd.ss f18, f19, f20
|
|
|
|
|
|
fst.l f20, r0(r29)
|
|
ftrunc.sd f20, f12
|
|
fld.l 48(r21), f21
|
|
fld.l r0(r28), f22
|
|
fld.l 40(r21), f24
|
|
|
|
fmul.ss f22, f21, f23
|
|
|
|
|
|
fadd.ss f23, f24, f25
|
|
|
|
|
|
ftrunc.sd f25, f26
|
|
|
|
|
|
fxfr f26, r30
|
|
|
|
xorh 0x8000, r30, r17
|
|
ixfr r17, f30
|
|
fiadd.ss f29, f0, f31
|
|
|
|
fsub.dd f30, f28, f8
|
|
|
|
|
|
fmov.ds f8, f10
|
|
|
|
|
|
fsub.ss f25, f10, f11
|
|
|
|
|
|
fst.l f11, 40(r27)
|
|
fxfr f12, r19
|
|
|
|
xorh 0x8000, r19, r18
|
|
ixfr r18, f14
|
|
fiadd.ss f29, f0, f15
|
|
|
|
fsub.dd f14, f28, f16
|
|
|
|
|
|
fmov.ds f16, f19
|
|
|
|
|
|
fsub.ss f20, f19, f18
|
|
|
|
|
|
fst.l f18, r0(r29)
|
|
pfle.ss f0, f18, f0
|
|
|
|
bnc .B860
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f21
|
|
|
|
|
|
fadd.ss f18, f21, f22
|
|
|
|
|
|
fst.l f22, r0(r29)
|
|
// lineno: 1029
|
|
.B860: //.B0051
|
|
ld.l 48(fp), r28
|
|
.DB.B860860:
|
|
|
|
fld.l 40(r28), f16
|
|
|
|
|
|
pfle.ss f0, f16, f0
|
|
|
|
bnc .B861
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f17
|
|
|
|
|
|
fadd.ss f16, f17, f18
|
|
|
|
|
|
fst.l f18, 40(r28)
|
|
// lineno: 1031
|
|
.B861: //.B0052
|
|
ld.l 48(fp), r28
|
|
.DB.B861861:
|
|
|
|
fld.l 36(r28), f16
|
|
orh ha%.C00862, r0, r31
|
|
fld.l l%.C00862(r31), f17
|
|
fld.l 40(r28), f19
|
|
|
|
fmul.ss f16, f17, f18
|
|
|
|
|
|
fst.l f18, 36(r28)
|
|
fmul.ss f19, f17, f20
|
|
|
|
|
|
fst.l f20, 40(r28)
|
|
// lineno: 0
|
|
.B854: //.B0048
|
|
// lineno: 0
|
|
.B851: //.B0047
|
|
// lineno: 1035
|
|
|
|
|
|
|
|
|
|
ld.l -8(fp), r4
|
|
ld.l -4(fp), r5
|
|
adds .a11+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_whichLOD:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 0
|
|
// lineno: 1161
|
|
ld.l 16(r16), r19
|
|
|
|
bte 0x0000, r19, .B868
|
|
br .B1231
|
|
ld.l r0(r19), r16
|
|
// lineno: 1166
|
|
.B868: //.B0053
|
|
mov r0, r16
|
|
.DB.B868868:
|
|
// lineno: 0
|
|
.B1231: //.R0006
|
|
// lineno: 1167
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.align 8
|
|
_cull_lmodel:
|
|
.a13 = 80
|
|
.f13 = 32
|
|
addu -(.a13+.f13), sp, sp
|
|
st.l fp,(.f13-16)(sp)
|
|
addu (.f13-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
// lineno: 0
|
|
// lineno: 1175
|
|
btne 0x0000, r16, .B874
|
|
orh h%.S00875, r0, r31
|
|
or l%.S00875, r31, r16
|
|
|
|
orh h%.B1235, r0, r1
|
|
br _printf
|
|
or l%.B1235, r1, r1
|
|
// lineno: 1180
|
|
.B874: //.B0055
|
|
adds 496, r0, r16
|
|
.DB.B874874:
|
|
call _new_draw_item
|
|
adds 6, r0, r17
|
|
mov r16, r4
|
|
bte 0x0000, r16, .B879
|
|
mov r16, r28
|
|
addu 72, r16, r16
|
|
ld.l 52(fp), r17
|
|
adds 16, r0, r18
|
|
ld.l 48(fp), r29
|
|
st.l r0, 100(r28)
|
|
st.l r29, 104(r28)
|
|
st.l r0, 4(r28)
|
|
fst.l f0, 88(r28)
|
|
fst.l f0, 92(r28)
|
|
fst.l f0, 96(r28)
|
|
orh h%.B881, r0, r1
|
|
br _memcpy
|
|
or l%.B881, r1, r1
|
|
// lineno: 1192
|
|
.B879: //.B0056
|
|
orh h%.S00882, r0, r31
|
|
.DB.B879879:
|
|
call _printf
|
|
or l%.S00882, r31, r16
|
|
// lineno: 1194
|
|
.B881: //.B0057
|
|
// lineno: 0
|
|
.B1235: //.R0007
|
|
// lineno: 0
|
|
|
|
|
|
|
|
|
|
ld.l -8(fp), r4
|
|
adds .a13+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_cull_geogroup:
|
|
.a14 = 80
|
|
.f14 = 48
|
|
addu -(.a14+.f14), sp, sp
|
|
st.l fp,(.f14-16)(sp)
|
|
addu (.f14-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -24(fp)
|
|
st.l r5, -20(fp)
|
|
st.l r6, -16(fp)
|
|
st.l r7, -12(fp)
|
|
st.l r8, -8(fp)
|
|
st.l r9, -4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
st.l r18, 56(fp)
|
|
st.l r19, 60(fp)
|
|
st.l r21, 68(fp)
|
|
// lineno: 0
|
|
// lineno: 1208
|
|
orh ha%.BSS, r0, r31
|
|
ld.l l%.BSS(r31), r28
|
|
mov r0, r4
|
|
bte 0x0000, r28, .B898
|
|
br .B899
|
|
mov r28, r7
|
|
// lineno: 1213
|
|
.B898: //.B0058
|
|
ld.l 64(r16), r7
|
|
.DB.B898898:
|
|
// lineno: 1215
|
|
.B899: //.B0059
|
|
orh ha%.BSS+4, r0, r31
|
|
.DB.B899899:
|
|
ld.l l%.BSS+4(r31), r28
|
|
|
|
bte 0x0000, r28, .B900
|
|
br .B901
|
|
mov r28, r6
|
|
// lineno: 1218
|
|
.B900: //.B0060
|
|
ld.l 48(fp), r28
|
|
.DB.B900900:
|
|
|
|
ld.l 68(r28), r6
|
|
// lineno: 1220
|
|
.B901: //.B0061
|
|
bte 0x0000, r7, .B902
|
|
orh ha%.BSS+8, r0, r31
|
|
ld.l l%.BSS+8(r31), r28
|
|
adds 512, r0, r4
|
|
bte 0x0000, r28, .B905
|
|
br .B906
|
|
mov r28, r9
|
|
// lineno: 1225
|
|
.B905: //.B0063
|
|
ld.l 8(r7), r9
|
|
.DB.B905905:
|
|
// lineno: 0
|
|
.B906: //.B0064
|
|
// lineno: 1227
|
|
.B902: //.B0062
|
|
bte 0x0000, r6, .B907
|
|
orh ha%.BSS+12, r0, r31
|
|
ld.l l%.BSS+12(r31), r28
|
|
or 0x0400, r4, r4
|
|
bte 0x0000, r28, .B910
|
|
br .B911
|
|
mov r28, r8
|
|
// lineno: 1232
|
|
.B910: //.B0066
|
|
ld.l 8(r6), r8
|
|
.DB.B910910:
|
|
// lineno: 0
|
|
.B911: //.B0067
|
|
// lineno: 1235
|
|
.B907: //.B0065
|
|
bte 0x0000, r4, .B912
|
|
adds 272, r0, r16
|
|
call _new_draw_item
|
|
adds 10, r0, r17
|
|
mov r16, r5
|
|
bte 0x0000, r16, .B915
|
|
bte 0x0000, r7, .B917
|
|
addu 184, r16, r16
|
|
|
|
mov r7, r17
|
|
call _cull_material
|
|
mov r9, r18
|
|
// lineno: 1241
|
|
.B917: //.B0070
|
|
bte 0x0000, r6, .B918
|
|
addu 228, r5, r16
|
|
|
|
mov r6, r17
|
|
call _cull_material
|
|
mov r8, r18
|
|
// lineno: 1244
|
|
.B918: //.B0071
|
|
orh ha%.BSS+16, r0, r31
|
|
.DB.B918918:
|
|
fld.l l%.BSS+16(r31), f16
|
|
ld.l 48(fp), r28
|
|
addu 8, r5, r16
|
|
fst.l f16, 176(r5)
|
|
st.l r28, 4(r5)
|
|
|
|
ld.l 44(r28), r29
|
|
|
|
or r29, r4, r30
|
|
st.l r30, 172(r5)
|
|
orh ha%_current_frame_count, r0, r31
|
|
ld.l l%_current_frame_count(r31), r17
|
|
|
|
st.l r17, 180(r5)
|
|
|
|
call _matrix_copy
|
|
ld.l 52(fp), r17
|
|
addu 72, r5, r16
|
|
call _matrix_copy
|
|
ld.l 56(fp), r17
|
|
addu 136, r5, r16
|
|
ld.l 60(fp), r17
|
|
call _memcpy
|
|
adds 12, r0, r18
|
|
fld.l 136(r5), f16
|
|
fld.l 140(r5), f18
|
|
fld.l 144(r5), f20
|
|
fsub.ss f0, f16, f17
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f22
|
|
fst.l f17, 152(r5)
|
|
fsub.ss f0, f18, f19
|
|
orh ha%.C00920, r0, r31
|
|
fld.l l%.C00920(r31), f23
|
|
fst.l f19, 156(r5)
|
|
fsub.ss f0, f20, f21
|
|
ld.l 68(fp), r28
|
|
|
|
fst.l f21, 160(r5)
|
|
fst.l f22, 148(r5)
|
|
fst.l f23, 164(r5)
|
|
br .B921
|
|
st.l r28, 168(r5)
|
|
// lineno: 1265
|
|
.B915: //.B0069
|
|
orh h%.S00922, r0, r31
|
|
.DB.B915915:
|
|
call _printf
|
|
or l%.S00922, r31, r16
|
|
// lineno: 1271
|
|
.B921: //.B0072
|
|
br .B925
|
|
nop
|
|
// lineno: 0
|
|
.B912: //.B0068
|
|
orh h%.S00926, r0, r31
|
|
.DB.B912912:
|
|
call _printf
|
|
or l%.S00926, r31, r16
|
|
// lineno: 0
|
|
.B925: //.B0073
|
|
// lineno: 1273
|
|
|
|
|
|
|
|
|
|
ld.l -24(fp), r4
|
|
ld.l -20(fp), r5
|
|
ld.l -16(fp), r6
|
|
ld.l -12(fp), r7
|
|
ld.l -8(fp), r8
|
|
ld.l -4(fp), r9
|
|
adds .a14+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_cull_object:
|
|
.a15 = 80
|
|
.f15 = 336
|
|
addu -(.a15+.f15), sp, sp
|
|
st.l fp,(.f15-16)(sp)
|
|
addu (.f15-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -312(fp)
|
|
st.l r5, -308(fp)
|
|
st.l r6, -304(fp)
|
|
st.l r7, -300(fp)
|
|
st.l r8, -296(fp)
|
|
st.l r9, -292(fp)
|
|
st.l r10, -288(fp)
|
|
st.l r11, -284(fp)
|
|
st.l r12, -280(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
st.l r18, 56(fp)
|
|
st.l r19, 60(fp)
|
|
st.l r20, 64(fp)
|
|
// lineno: 0
|
|
orh h%.BSS+20, r0, r31
|
|
or l%.BSS+20, r31, r9
|
|
orh h%.BSS+132, r0, r31
|
|
or l%.BSS+132, r31, r10
|
|
orh h%.BSS+84, r0, r31
|
|
or l%.BSS+84, r31, r12
|
|
// lineno: 1292
|
|
call _dpl_IdMatrix
|
|
mov r9, r16
|
|
ld.l 60(fp), r28
|
|
mov r9, r16
|
|
addu 64, r28, r17
|
|
|
|
mov r9, r18
|
|
orh ha%.C00920, r0, r31
|
|
fld.l l%.C00920(r31), f16
|
|
orh h%.BSS+60, r0, r31
|
|
or l%.BSS+60, r31, r29
|
|
fst.l f16, r0(r29)
|
|
call _fn_concatenate
|
|
fst.l f16, -20(r29)
|
|
ld.l 52(fp), r17
|
|
mov r9, r16
|
|
|
|
call _fn_concatenate
|
|
mov r9, r18
|
|
call _scale_from_matrix
|
|
mov r9, r16
|
|
fiadd.ss f8, f0, f16
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f8
|
|
mov r9, r16
|
|
ld.l 60(fp), r28
|
|
|
|
fld.l 168(r28), f9
|
|
orh ha%.BSS+16, r0, r31
|
|
fst.l f16, l%.BSS+16(r31)
|
|
|
|
call _dpl_Scale
|
|
fiadd.ss f8, f0, f10
|
|
ld.l 48(fp), r16
|
|
ld.l 64(fp), r17
|
|
|
|
|
|
call _whichLOD
|
|
mov r9, r18
|
|
mov r16, r11
|
|
bte 0x0000, r16, .B1281
|
|
mov r16, r28
|
|
adds -128, fp, r16
|
|
call _build_bound
|
|
addu 8, r28, r17
|
|
adds -128, fp, r16
|
|
|
|
mov r16, r17
|
|
call _fn_xform_bound
|
|
mov r9, r18
|
|
adds -128, fp, r16
|
|
call _visibility
|
|
ld.l 60(fp), r17
|
|
mov r16, r4
|
|
xor 0x0040, r16, r0
|
|
bc .B948
|
|
adds -192, fp, r16
|
|
call _dpl_Invert
|
|
ld.l 52(fp), r17
|
|
ld.l 60(fp), r17
|
|
mov r12, r16
|
|
call _fn_concatenate
|
|
adds -192, fp, r18
|
|
call _dpl_IdMatrix
|
|
adds -256, fp, r16
|
|
ld.l 60(fp), r28
|
|
adds -256, fp, r17
|
|
fld.l 168(r28), f16
|
|
mov r12, r16
|
|
mov r12, r18
|
|
call _dpl_Concat
|
|
fst.l f16, -236(fp)
|
|
fld.l 8(r11), f16
|
|
fld.l 24(r11), f17
|
|
orh ha%.C00038, r0, r31
|
|
fld.l l%.C00038(r31), f19
|
|
fadd.ss f17, f16, f18
|
|
adds -272, fp, r16
|
|
ld.l 52(fp), r18
|
|
fmul.ss f18, f19, f20
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f29
|
|
fst.l f20, r0(r16)
|
|
mov r16, r17
|
|
fld.l 12(r11), f21
|
|
fld.l 28(r11), f22
|
|
|
|
|
|
fadd.ss f22, f21, f23
|
|
|
|
|
|
fmul.ss f23, f19, f24
|
|
|
|
|
|
fst.l f24, -268(fp)
|
|
|
|
fld.l 16(r11), f25
|
|
fld.l 32(r11), f26
|
|
fst.l f29, -260(fp)
|
|
|
|
fadd.ss f26, f25, f27
|
|
|
|
|
|
fmul.ss f27, f19, f28
|
|
|
|
|
|
call _dpl_XformPoint
|
|
fst.l f28, -264(fp)
|
|
ld.l 56(fp), r16
|
|
call _cull_lmodel
|
|
adds -272, fp, r17
|
|
ld.l 52(r11), r6
|
|
|
|
bte 0x0000, r6, .B954
|
|
ld.l 60(fp), r8
|
|
// lineno: 1356
|
|
.B1305: //.M0002
|
|
ld.l r0(r6), r7
|
|
.DB.B13051305:
|
|
btne 0x0000, r4, .B957
|
|
mov r7, r16
|
|
mov r9, r17
|
|
adds -192, fp, r18
|
|
|
|
mov r10, r19
|
|
mov r8, r20
|
|
mov r0, r21
|
|
orh h%.B958, r0, r1
|
|
br _cull_geogroup
|
|
or l%.B958, r1, r1
|
|
// lineno: 1362
|
|
.B957: //.B0078
|
|
xor 0x0040, r4, r0
|
|
.DB.B957957:
|
|
bc .B959
|
|
adds -128, fp, r16
|
|
call _build_bound
|
|
addu 8, r7, r17
|
|
adds -128, fp, r16
|
|
|
|
mov r16, r17
|
|
call _fn_xform_bound
|
|
mov r9, r18
|
|
adds -128, fp, r16
|
|
|
|
call _visibility
|
|
mov r8, r17
|
|
mov r16, r5
|
|
xor 0x0040, r16, r0
|
|
bc .B961
|
|
mov r16, r28
|
|
mov r7, r16
|
|
mov r9, r17
|
|
adds -192, fp, r18
|
|
|
|
mov r10, r19
|
|
mov r8, r20
|
|
call _cull_geogroup
|
|
mov r28, r21
|
|
// lineno: 0
|
|
.B961: //.B0081
|
|
// lineno: 0
|
|
.B959: //.B0080
|
|
// lineno: 1369
|
|
.B958: //.B0079
|
|
ld.l 8(r6), r6
|
|
.DB.B958958:
|
|
|
|
xor 0x0000, r6, r0
|
|
bnc.t .DB.B13051305
|
|
ld.l r0(r6), r7
|
|
// lineno: 0
|
|
// lineno: 0
|
|
.B954: //.B0077
|
|
// lineno: 1371
|
|
.B948: //.B0075
|
|
// lineno: 0
|
|
.B1281: //.R0008
|
|
// lineno: 0
|
|
|
|
|
|
|
|
|
|
ld.l -312(fp), r4
|
|
ld.l -308(fp), r5
|
|
ld.l -304(fp), r6
|
|
ld.l -300(fp), r7
|
|
ld.l -296(fp), r8
|
|
ld.l -292(fp), r9
|
|
ld.l -288(fp), r10
|
|
ld.l -284(fp), r11
|
|
ld.l -280(fp), r12
|
|
adds .a15+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_cull_node:
|
|
.a16 = 80
|
|
.f16 = 48
|
|
addu -(.a16+.f16), sp, sp
|
|
st.l fp,(.f16-16)(sp)
|
|
addu (.f16-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -16(fp)
|
|
st.l r5, -12(fp)
|
|
st.l r6, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r18, 56(fp)
|
|
st.l r19, 60(fp)
|
|
// lineno: 0
|
|
// lineno: 1382
|
|
ld.l 8(r17), r6
|
|
|
|
bte 0x0000, r6, .B1308
|
|
ld.l 4(r6), r28
|
|
|
|
btne 0x0007, r28, .B970
|
|
mov r6, r5
|
|
ld.l 12(r6), r29
|
|
|
|
btne 0x0003, r29, .B973
|
|
fld.l 32(r16), f16
|
|
|
|
|
|
fsub.ss f0, f16, f17
|
|
|
|
|
|
fst.l f17, 44(r6)
|
|
|
|
fld.l 36(r16), f18
|
|
|
|
|
|
fsub.ss f0, f18, f19
|
|
|
|
|
|
fst.l f19, 48(r6)
|
|
|
|
fld.l 40(r16), f20
|
|
|
|
|
|
fsub.ss f0, f20, f21
|
|
|
|
|
|
br .B975
|
|
fst.l f21, 52(r6)
|
|
// lineno: 1400
|
|
.B973: //.B0084
|
|
fld.l 48(r16), f16
|
|
.DB.B973973:
|
|
|
|
|
|
fsub.ss f0, f16, f17
|
|
|
|
|
|
fst.l f17, 44(r5)
|
|
|
|
fld.l 52(r16), f18
|
|
|
|
|
|
fsub.ss f0, f18, f19
|
|
|
|
|
|
fst.l f19, 48(r5)
|
|
|
|
fld.l 56(r16), f20
|
|
|
|
|
|
fsub.ss f0, f20, f21
|
|
|
|
|
|
fst.l f21, 52(r5)
|
|
// lineno: 1413
|
|
.B975: //.B0085
|
|
br .B977
|
|
nop
|
|
// lineno: 1415
|
|
.B970: //.B0083
|
|
ld.l 4(r6), r28
|
|
.DB.B970970:
|
|
|
|
btne 0x0004, r28, .B978
|
|
mov r6, r4
|
|
btne 0x0000, r19, .B982
|
|
orh h%.S00983, r0, r31
|
|
or l%.S00983, r31, r16
|
|
|
|
orh h%.B1308, r0, r1
|
|
br _printf
|
|
or l%.B1308, r1, r1
|
|
// lineno: 1422
|
|
.B982: //.B0088
|
|
ld.l 20(r4), r28
|
|
.DB.B982982:
|
|
|
|
bte 0x0000, r28, .B986
|
|
orh ha%_current_frame_count, r0, r31
|
|
ld.l l%_current_frame_count(r31), r29
|
|
ld.l 28(r4), r18
|
|
st.l r29, 44(r4)
|
|
orh h%.BSS, r0, r31
|
|
or l%.BSS, r31, r30
|
|
st.l r18, 0(r30)
|
|
|
|
ld.l 32(r4), r20
|
|
ld.l 36(r4), r21
|
|
st.l r20, 4(r30)
|
|
st.l r21, 8(r30)
|
|
|
|
ld.l 40(r4), r22
|
|
ld.l 12(r4), r23
|
|
st.l r22, 12(r30)
|
|
bte 0x0000, r23, .B989
|
|
|
|
call _billboardize
|
|
mov r0, r17
|
|
// lineno: 1441
|
|
.B989: //.B0090
|
|
ld.l 20(r4), r16
|
|
.DB.B989989:
|
|
ld.l 48(fp), r17
|
|
ld.l 60(fp), r18
|
|
ld.l 56(fp), r19
|
|
call _cull_object
|
|
addu 48, r4, r20
|
|
// lineno: 1446
|
|
.B986: //.B0089
|
|
br .B990
|
|
nop
|
|
// lineno: 0
|
|
.B978: //.B0087
|
|
orh h%.S00991, r0, r31
|
|
.DB.B978978:
|
|
call _printf
|
|
or l%.S00991, r31, r16
|
|
// lineno: 0
|
|
.B990: //.B0091
|
|
// lineno: 1448
|
|
.B977: //.B0086
|
|
// lineno: 0
|
|
.B1308: //.R0009
|
|
// lineno: 0
|
|
|
|
|
|
|
|
|
|
ld.l -16(fp), r4
|
|
ld.l -12(fp), r5
|
|
ld.l -8(fp), r6
|
|
adds .a16+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
_cull_tree:
|
|
.a17 = 80
|
|
.f17 = 112
|
|
addu -(.a17+.f17), sp, sp
|
|
st.l fp,(.f17-16)(sp)
|
|
addu (.f17-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -80(fp)
|
|
st.l r5, -76(fp)
|
|
st.l r6, -72(fp)
|
|
st.l r7, -68(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
st.l r18, 56(fp)
|
|
st.l r19, 60(fp)
|
|
// lineno: 0
|
|
// lineno: 1459
|
|
ld.l 52(fp), r28
|
|
adds -64, fp, r16
|
|
addu 12, r28, r17
|
|
call _fn_concatenate
|
|
ld.l 48(fp), r18
|
|
ld.l 52(fp), r28
|
|
|
|
ld.l 92(r28), r29
|
|
|
|
bte 0x0000, r29, .B1000
|
|
ld.l 76(r28), r30
|
|
|
|
and 0x0002, r30, r0
|
|
bc .B1000
|
|
adds -64, fp, r16
|
|
ld.l 56(fp), r18
|
|
mov r29, r17
|
|
call _cull_tree
|
|
ld.l 60(fp), r19
|
|
// lineno: 1466
|
|
.B1000: //.B0092
|
|
ld.l 52(fp), r28
|
|
.DB.B10001000:
|
|
|
|
ld.l 76(r28), r29
|
|
|
|
and 0x0001, r29, r0
|
|
bc .B1001
|
|
adds -64, fp, r16
|
|
ld.l 56(fp), r18
|
|
mov r28, r17
|
|
call _cull_node
|
|
ld.l 60(fp), r19
|
|
// lineno: 1470
|
|
.B1001: //.B0093
|
|
ld.l 52(fp), r28
|
|
.DB.B10011001:
|
|
|
|
ld.l 88(r28), r29
|
|
|
|
bte 0x0000, r29, .B1003
|
|
ld.l 56(fp), r5
|
|
ld.l 60(fp), r6
|
|
ld.l 48(fp), r7
|
|
mov r28, r4
|
|
// lineno: 1472
|
|
.B1327: //.M0003
|
|
ld.l 88(r4), r4
|
|
.DB.B13271327:
|
|
|
|
ld.l 76(r4), r28
|
|
|
|
and 0x0001, r28, r0
|
|
bc .B1005
|
|
adds -64, fp, r16
|
|
addu 12, r4, r17
|
|
|
|
call _fn_concatenate
|
|
mov r7, r18
|
|
adds -64, fp, r16
|
|
|
|
mov r4, r17
|
|
mov r5, r18
|
|
call _cull_node
|
|
mov r6, r19
|
|
// lineno: 1476
|
|
.B1005: //.B0096
|
|
ld.l 88(r4), r28
|
|
.DB.B10051005:
|
|
|
|
xor 0x0000, r28, r0
|
|
bnc.t .DB.B13271327
|
|
ld.l 88(r4), r4
|
|
// lineno: 0
|
|
st.l r4, 52(fp)
|
|
// lineno: 0
|
|
.B1003: //.B0095
|
|
// lineno: 1477
|
|
|
|
|
|
|
|
|
|
ld.l -80(fp), r4
|
|
ld.l -76(fp), r5
|
|
ld.l -72(fp), r6
|
|
ld.l -68(fp), r7
|
|
adds .a17+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _veloci_cull
|
|
.align 8
|
|
_veloci_cull:
|
|
.a18 = 80
|
|
.f18 = 112
|
|
addu -(.a18+.f18), sp, sp
|
|
st.l fp,(.f18-16)(sp)
|
|
addu (.f18-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -88(fp)
|
|
st.l r5, -84(fp)
|
|
st.l r6, -80(fp)
|
|
st.l r7, -76(fp)
|
|
st.l r8, -72(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 0
|
|
orh h%.BSS+148, r0, r31
|
|
or l%.BSS+148, r31, r6
|
|
orh h%_chunk_head, r0, r31
|
|
or l%_chunk_head, r31, r7
|
|
orh h%_current_frame_count, r0, r31
|
|
or l%_current_frame_count, r31, r8
|
|
// lineno: 1487
|
|
ld.l r0(r8), r28
|
|
|
|
btne 0x0000, r28, .B1018
|
|
call _malloc
|
|
adds 4096, r0, r16
|
|
addu 16, r16, r28
|
|
orh ha%_chunk_free_ptr, r0, r31
|
|
st.l r28, l%_chunk_free_ptr(r31)
|
|
orh ha%_chunk_active, r0, r31
|
|
st.l r16, l%_chunk_active(r31)
|
|
adds 1, r0, r29
|
|
st.l r29, 12(r16)
|
|
st.l r16, 0(r7)
|
|
st.l r0, 4(r16)
|
|
st.l r0, 8(r16)
|
|
br .B1020
|
|
st.l r0, 0(r16)
|
|
// lineno: 1502
|
|
.B1018: //.B0097
|
|
ld.l r0(r7), r28
|
|
.DB.B10181018:
|
|
adds 1, r0, r30
|
|
addu 16, r28, r29
|
|
orh ha%_chunk_free_ptr, r0, r31
|
|
st.l r29, l%_chunk_free_ptr(r31)
|
|
orh ha%_chunk_active, r0, r31
|
|
st.l r28, l%_chunk_active(r31)
|
|
st.l r0, 8(r28)
|
|
st.l r0, 0(r28)
|
|
st.l r30, 12(r28)
|
|
orh ha%_chunk_usage, r0, r31
|
|
st.l r0, l%_chunk_usage(r31)
|
|
// lineno: 1511
|
|
.B1020: //.B0098
|
|
adds 1, r0, r28
|
|
.DB.B10201020:
|
|
orh ha%_allocated_ramps, r0, r31
|
|
st.l r28, l%_allocated_ramps(r31)
|
|
call _dpl_IdMatrix
|
|
adds -64, fp, r16
|
|
ld.l r0(r8), r28
|
|
ld.l 48(fp), r17
|
|
adds 1, r28, r29
|
|
st.l r29, 0(r8)
|
|
call _cull_view
|
|
mov r6, r16
|
|
ld.l 48(fp), r28
|
|
|
|
ld.l 156(r28), r5
|
|
|
|
bte 0x0000, r5, .B1023
|
|
// lineno: 1520
|
|
.B1345: //.M0004
|
|
ld.l r0(r5), r4
|
|
.DB.B13451345:
|
|
|
|
ld.l 16(r4), r28
|
|
|
|
bte 0x0000, r28, .B1025
|
|
ld.l 8(r4), r29
|
|
|
|
bte 0x0000, r29, .B1026
|
|
adds -64, fp, r16
|
|
ld.l 12(r4), r19
|
|
mov r29, r17
|
|
call _cull_tree
|
|
mov r6, r18
|
|
// lineno: 0
|
|
.B1026: //.B0102
|
|
// lineno: 1525
|
|
.B1025: //.B0101
|
|
ld.l 8(r5), r5
|
|
.DB.B10251025:
|
|
|
|
xor 0x0000, r5, r0
|
|
bnc.t .DB.B13451345
|
|
ld.l r0(r5), r4
|
|
// lineno: 0
|
|
// lineno: 1527
|
|
.B1023: //.B0100
|
|
orh ha%_the_scene+16, r0, r31
|
|
.DB.B10231023:
|
|
ld.l l%_the_scene+16(r31), r5
|
|
|
|
bte 0x0000, r5, .B1028
|
|
// lineno: 1528
|
|
.B1346: //.M0005
|
|
ld.l r0(r5), r4
|
|
.DB.B13461346:
|
|
|
|
ld.l 16(r4), r28
|
|
|
|
bte 0x0000, r28, .B1030
|
|
ld.l 8(r4), r29
|
|
|
|
bte 0x0000, r29, .B1031
|
|
adds -64, fp, r16
|
|
ld.l 12(r4), r19
|
|
mov r29, r17
|
|
call _cull_tree
|
|
mov r6, r18
|
|
// lineno: 0
|
|
.B1031: //.B0106
|
|
// lineno: 1533
|
|
.B1030: //.B0105
|
|
ld.l 8(r5), r5
|
|
.DB.B10301030:
|
|
|
|
xor 0x0000, r5, r0
|
|
bnc.t .DB.B13461346
|
|
ld.l r0(r5), r4
|
|
// lineno: 0
|
|
// lineno: 1535
|
|
.B1028: //.B0104
|
|
ld.l r0(r7), r28
|
|
.DB.B10281028:
|
|
orh ha%.BSS+408, r0, r31
|
|
st.l r28, l%.BSS+408(r31)
|
|
mov r6, r16
|
|
// lineno: 0
|
|
// lineno: 1538
|
|
|
|
|
|
|
|
|
|
ld.l -88(fp), r4
|
|
ld.l -84(fp), r5
|
|
ld.l -80(fp), r6
|
|
ld.l -76(fp), r7
|
|
ld.l -72(fp), r8
|
|
adds .a18+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.data
|
|
.align 8
|
|
.C00037: // (0)
|
|
.long 0x40000000 // 2.00000000E+00
|
|
.C00038: // (4)
|
|
.long 0x3f000000 // 5.00000000E-01
|
|
.C00036: // (8)
|
|
.long 0x3f800000 // 1.00000000E+00
|
|
.align 8
|
|
.C01226: // (16)
|
|
.long 0x80000000, 0x43300000 // 4.50360177485414400E+15
|
|
.C00862: // (24)
|
|
.long 0x3e000000 // 1.25000000E-01
|
|
.C00920: // (28)
|
|
.long 0xbf800000 // -1.00000000E+00
|
|
.data
|
|
.align 1
|
|
.S00661: //
|
|
// " [ %f, %f, %f, %f ]\n"
|
|
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
|
|
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
|
|
.S00665: //
|
|
// " [ %f, %f, %f, %f ]\n"
|
|
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
|
|
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
|
|
.S00667: //
|
|
// " [ %f, %f, %f, %f ]\n"
|
|
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
|
|
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
|
|
.S00669: //
|
|
// " [ %f, %f, %f, %f ]\n"
|
|
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
|
|
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
|
|
.S00736: //
|
|
// "Velocirender ran out of memory in new_draw_item\n"
|
|
.byte 0x56,0x65,0x6c,0x6f,0x63,0x69,0x72,0x65,0x6e,0x64,0x65
|
|
.byte 0x72,0x20,0x72,0x61,0x6e,0x20,0x6f,0x75,0x74,0x20,0x6f
|
|
.byte 0x66,0x20,0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x69,0x6e
|
|
.byte 0x20,0x6e,0x65,0x77,0x5f,0x64,0x72,0x61,0x77,0x5f,0x69
|
|
.byte 0x74,0x65,0x6d,0x0a,0x00
|
|
.S00875: //
|
|
// "cull_lmodel returning due to NULL lmodel\n"
|
|
.byte 0x63,0x75,0x6c,0x6c,0x5f,0x6c,0x6d,0x6f,0x64,0x65,0x6c
|
|
.byte 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x69,0x6e,0x67,0x20
|
|
.byte 0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x4e,0x55,0x4c,0x4c
|
|
.byte 0x20,0x6c,0x6d,0x6f,0x64,0x65,0x6c,0x0a,0x00
|
|
.S00882: //
|
|
// "Failed to allocate draw item\n"
|
|
.byte 0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61
|
|
.byte 0x6c,0x6c,0x6f,0x63,0x61,0x74,0x65,0x20,0x64,0x72,0x61
|
|
.byte 0x77,0x20,0x69,0x74,0x65,0x6d,0x0a,0x00
|
|
.S00922: //
|
|
// "Failed to allocate draw item\n"
|
|
.byte 0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61
|
|
.byte 0x6c,0x6c,0x6f,0x63,0x61,0x74,0x65,0x20,0x64,0x72,0x61
|
|
.byte 0x77,0x20,0x69,0x74,0x65,0x6d,0x0a,0x00
|
|
.S00926: //
|
|
// "Not bothering to draw, no materials\n"
|
|
.byte 0x4e,0x6f,0x74,0x20,0x62,0x6f,0x74,0x68,0x65,0x72,0x69
|
|
.byte 0x6e,0x67,0x20,0x74,0x6f,0x20,0x64,0x72,0x61,0x77,0x2c
|
|
.byte 0x20,0x6e,0x6f,0x20,0x6d,0x61,0x74,0x65,0x72,0x69,0x61
|
|
.byte 0x6c,0x73,0x0a,0x00
|
|
.S00983: //
|
|
// "No lighting model, returning\n"
|
|
.byte 0x4e,0x6f,0x20,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67
|
|
.byte 0x20,0x6d,0x6f,0x64,0x65,0x6c,0x2c,0x20,0x72,0x65,0x74
|
|
.byte 0x75,0x72,0x6e,0x69,0x6e,0x67,0x0a,0x00
|
|
.S00991: //
|
|
// "Unexpected node type in dcs\n"
|
|
.byte 0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20
|
|
.byte 0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x69
|
|
.byte 0x6e,0x20,0x64,0x63,0x73,0x0a,0x00
|
|
.data
|
|
.globl _current_frame_count
|
|
.align 4
|
|
_current_frame_count: //current_frame_count
|
|
.long 0
|
|
.globl _allocated_ramps
|
|
_allocated_ramps: //allocated_ramps
|
|
.long 0
|
|
_chunk_head: //chunk_head
|
|
.long 0
|
|
_chunk_active: //chunk_active
|
|
.long 0
|
|
_chunk_free_ptr: //chunk_free_ptr
|
|
.long 0
|
|
_chunk_usage: //chunk_usage
|
|
.long 0
|
|
.lcomm .STACK,48
|
|
.lcomm .BSS,416
|
|
//f_mtl_override +0
|
|
//b_mtl_override +4
|
|
//f_tex_override +8
|
|
//b_tex_override +12
|
|
//sphere_scale +16
|
|
//render_f +20
|
|
//render_b +84
|
|
//view +148
|
|
.data
|
|
.comm _ref_texture_ramps,16
|
|
.comm _texture_ramps,112
|
|
.extern _billboardize
|
|
.extern _dpl_XformPoint
|
|
.extern _dpl_Concat
|
|
.extern _fn_xform_bound
|
|
.extern _dpl_Scale
|
|
.extern _fn_concatenate
|
|
.extern _dpl_IdMatrix
|
|
.extern _matrix_copy
|
|
.extern _compute_phong_table
|
|
.extern _setRampEntry
|
|
.extern _sqrt
|
|
.extern _malloc
|
|
.extern _dpl_Invert
|
|
.extern _memcpy
|
|
.extern _printf
|