Files
TeslaRel410/sda4/DPL3/VRENDER/PXPL5SUP/PXPL5TST.S
T
CydandClaude Fable 5 db7745fcd0 sda4: commit the Glaze developer hard-drive dump
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>
2026-07-04 19:41:15 -05:00

691 lines
16 KiB
ArmAsm

.file "pxpl5tst.c"
// PGC Rel 2.0a -opt 4
.text
.align 8
_set_vertex:
// lineno: 43
shl 6, r16, r29
adds r29, r17, r30
fst.l f8, r0(r30)
fst.l f9, 4(r30)
fst.l f10, 8(r30)
fst.l f8, 16(r30)
fst.l f9, 20(r30)
fst.l f10, 24(r30)
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f16
fst.l f16, 28(r30)
fst.l f13, 32(r30)
fst.l f14, 36(r30)
fst.l f11, 52(r30)
bri r1
fst.l f12, 56(r30)
// lineno: 57
bri r1
nop
.globl _main
.align 8
_main:
.a2 = 80
.f2 = 160
addu -(.a2+.f2), sp, sp
st.l fp,(.f2-16)(sp)
addu (.f2-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -136(fp)
fst.d f4, -128(fp)
fst.d f6, -120(fp)
st.l r4, -112(fp)
st.l r5, -108(fp)
st.l r6, -104(fp)
st.l r7, -100(fp)
st.l r8, -96(fp)
st.l r9, -92(fp)
st.l r10, -88(fp)
st.l r11, -84(fp)
st.l r12, -80(fp)
st.l r13, -76(fp)
st.l r14, -72(fp)
st.l r15, -68(fp)
// lineno: 0
orh ha%.C00416, r0, r31
fld.d l%.C00416(r31), f6
or (-2023406815&0xffff), r0, r7
orh ((-2023406815>>16)&0xffff), r7, r7
// lineno: 63
call _getFsr
st.l r0, -4(fp)
call _setFsr
or 0x0001, r16, r16
call _malloc
adds 4096, r0, r16
mov r16, r28
adds 8192, r0, r16
mov r28, r15
call _malloc
st.l r28, -8(fp)
mov r16, r28
orh h%.S00309, r0, r31
or l%.S00309, r31, r16
call _printf
st.l r28, -12(fp)
orh ha%.C00312, r0, r31
fld.l l%.C00312(r31), f8
adds 45, r0, r16
ld.l -12(fp), r17
orh ha%.C00313, r0, r31
fld.l l%.C00313(r31), f10
fiadd.ss f8, f0, f9
orh ha%.C00314, r0, r31
fld.l l%.C00314(r31), f11
orh ha%.C00315, r0, r31
fld.l l%.C00315(r31), f12
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f14
call _set_vertex
fiadd.ss f0, f0, f13
orh ha%.C00317, r0, r31
fld.l l%.C00317(r31), f8
adds 63, r0, r16
ld.l -12(fp), r17
orh ha%.C00318, r0, r31
fld.l l%.C00318(r31), f9
orh ha%.C00319, r0, r31
fld.l l%.C00319(r31), f10
orh ha%.C00320, r0, r31
fld.l l%.C00320(r31), f11
orh ha%.C00321, r0, r31
fld.l l%.C00321(r31), f12
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f13
call _set_vertex
fiadd.ss f13, f0, f14
orh ha%.C00323, r0, r31
fld.l l%.C00323(r31), f8
adds 123, r0, r16
ld.l -12(fp), r17
orh ha%.C00324, r0, r31
fld.l l%.C00324(r31), f9
orh ha%.C00325, r0, r31
fld.l l%.C00325(r31), f10
orh ha%.C00326, r0, r31
fld.l l%.C00326(r31), f11
orh ha%.C00327, r0, r31
fld.l l%.C00327(r31), f12
fiadd.ss f0, f0, f13
call _set_vertex
fiadd.ss f0, f0, f14
orh ha%.C00329, r0, r31
fld.l l%.C00329(r31), f8
adds 15, r0, r16
ld.l -12(fp), r17
orh ha%.C00330, r0, r31
fld.l l%.C00330(r31), f10
fiadd.ss f8, f0, f9
orh ha%.C00314, r0, r31
fld.l l%.C00314(r31), f11
orh ha%.C00331, r0, r31
fld.l l%.C00331(r31), f12
fiadd.ss f0, f0, f13
call _set_vertex
fiadd.ss f0, f0, f14
orh ha%.C00333, r0, r31
fld.l l%.C00333(r31), f8
adds 23, r0, r16
ld.l -12(fp), r17
orh ha%.C00334, r0, r31
fld.l l%.C00334(r31), f9
orh ha%.C00335, r0, r31
fld.l l%.C00335(r31), f10
orh ha%.C00320, r0, r31
fld.l l%.C00320(r31), f11
orh ha%.C00336, r0, r31
fld.l l%.C00336(r31), f12
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f14
call _set_vertex
fiadd.ss f0, f0, f13
orh ha%.C00338, r0, r31
fld.l l%.C00338(r31), f8
adds 81, r0, r16
ld.l -12(fp), r17
orh ha%.C00339, r0, r31
fld.l l%.C00339(r31), f9
orh ha%.C00340, r0, r31
fld.l l%.C00340(r31), f10
orh ha%.C00326, r0, r31
fld.l l%.C00326(r31), f11
orh ha%.C00341, r0, r31
fld.l l%.C00341(r31), f12
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f13
call _set_vertex
fiadd.ss f13, f0, f14
orh h%.S00342, r0, r31
or l%.S00342, r31, r16
ld.l -12(fp), r28
mov r28, r17
addu 2880, r28, r9
mov r9, r18
addu 4032, r28, r10
mov r10, r19
addu 7872, r28, r11
mov r11, r20
addu 960, r28, r12
addu 1472, r28, r13
call _printf
addu 5184, r28, r14
call _grab_binchunks
adds 400, r0, r16
adds 1024, r0, r16
call _create_screenbins
adds 512, r0, r17
adds 255, r0, r18
addu -4, r15, r19
adds -1, r0, r17
bla r17, r18,.B511
pfmul.dd f0, f0, f0
// lineno: 112
.B511: //.M0000
bla r17, r18, .B511
fst.l f0, 4(r19)++
// lineno: 112
.B349: //.B0001
orh h%.S00371, r0, r31
.DB.B349349:
or l%.S00371, r31, r16
adds 256, r0, r17
adds 512, r0, r18
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f16
fst.l f16, -28(fp)
fst.l f16, -24(fp)
fst.l f16, -20(fp)
call _printf
fst.l f16, -16(fp)
orh h%.S00373, r0, r31
or l%.S00373, r31, r16
or (988365312&0xffff), r0, r17
orh ((988365312>>16)&0xffff), r17, r17
or (988286208&0xffff), r0, r18
call _printf
orh ((988286208>>16)&0xffff), r18, r18
orh h%.S00375, r0, r31
or l%.S00375, r31, r16
or (1156194592&0xffff), r0, r17
orh ((1156194592>>16)&0xffff), r17, r17
or (1133134624&0xffff), r0, r18
call _printf
orh ((1133134624>>16)&0xffff), r18, r18
orh h%.S00377, r0, r31
or l%.S00377, r31, r16
or (1034568530&0xffff), r0, r17
orh ((1034568530>>16)&0xffff), r17, r17
or (1034568538&0xffff), r0, r18
call _printf
orh ((1034568538>>16)&0xffff), r18, r18
orh h%.S00379, r0, r31
or l%.S00379, r31, r16
or (1101677410&0xffff), r0, r17
orh ((1101677410>>16)&0xffff), r17, r17
or (1101677426&0xffff), r0, r18
call _printf
orh ((1101677426>>16)&0xffff), r18, r18
orh h%.S00381, r0, r31
or l%.S00381, r31, r16
or (1101677442&0xffff), r0, r17
call _printf
orh ((1101677442>>16)&0xffff), r17, r17
call _second_
nop
fld.l -16(fp), f2
fld.l -20(fp), f3
fld.l -24(fp), f4
fld.l -28(fp), f5
adds 2000, r0, r4
st.l r4, -36(fp)
ld.l -4(fp), r5
or (-1985277388&0xffff), r0, r6
orh ((-1985277388>>16)&0xffff), r6, r6
fst.l f8, -32(fp)
// lineno: 150
.B516: //.M0001
mov r15, r16
.DB.B516516:
fiadd.ss f5, f0, f8
mov r7, r17
mov r12, r18
mov r13, r19
mov r14, r20
call _tri_zb_d_s_tex
mov r0, r21
mov r16, r8
fiadd.ss f4, f0, f8
mov r6, r17
mov r9, r18
mov r10, r19
mov r11, r20
call _tri_zb_d_s_tex
mov r0, r21
mov r16, r8
fiadd.ss f3, f0, f8
mov r7, r17
mov r12, r18
mov r13, r19
mov r14, r20
call _tri_zb_d_s_tex
mov r0, r21
mov r16, r8
fiadd.ss f2, f0, f8
mov r6, r17
mov r9, r18
mov r10, r19
mov r11, r20
call _tri_zb_d_s_tex
mov r0, r21
mov r16, r8
adds 4, r5, r5
adds -1, r4, r4
xor 0x0000, r4, r0
bnc.t .DB.B516516
mov r15, r16
// lineno: 0
st.l r4, -36(fp)
call _second_
st.l r5, -4(fp)
fld.l -32(fp), f16
orh ha%.C00037, r0, r31
fld.l l%.C00037(r31), f20
fsub.ss f8, f16, f17
orh ha%.C00488, r0, r31
fld.d l%.C00488(r31), f26
frcp.ss f17, f18
fmul.ss f17, f18, f19
ld.l -4(fp), r17
fsub.ss f20, f19, f21
xorh 0x8000, r17, r28
fmul.ss f18, f21, f22
orh h%.S00390, r0, r31
or l%.S00390, r31, r16
fmul.ss f17, f22, f23
fsub.ss f20, f23, f24
fmul.ss f24, f22, f25
ixfr r28, f28
fiadd.ss f27, f0, f29
fsub.dd f28, f26, f30
fmov.ds f30, f9
fmul.ss f9, f25, f10
fmov.sd f10, f10
fiadd.ss f8, f0, f12
fmov.sd f17, f8
call _printf
fst.l f12, -40(fp)
orh h%.S00392, r0, r31
or l%.S00392, r31, r16
call _printf
mov r15, r17
ld.l -8(fp), r5
mov r15, r6
st.l r0, -44(fp)
mov r0, r4
// lineno: 173
.B519: //.M0002
fld.l r0(r6), f16
.DB.B519519:
orh h%.S00397, r0, r31
or l%.S00397, r31, r16
fmov.sd f16, f8
mov r5, r17
ld.l r0(r5), r19
call _printf
mov r4, r18
adds 1, r4, r4
addu 4, r5, r5
addu 4, r6, r6
adds -70, r4, r0
bc.t .DB.B519519
fld.l r0(r6), f16
// lineno: 0
orh ha%.C00404, r0, r31
fld.l l%.C00404(r31), f16
orh ha%.C00406, r0, r31
fld.l l%.C00406(r31), f17
fst.l f16, -48(fp)
st.l r4, -44(fp)
fst.l f17, -52(fp)
orh ha%.C00408, r0, r31
fld.l l%.C00408(r31), f18
orh ha%.C00415, r0, r31
fld.d l%.C00415(r31), f2
fst.l f18, -56(fp)
orh ha%.C00414, r0, r31
fld.d l%.C00414(r31), f4
st.l r0, -60(fp)
mov r0, r4
// lineno: 189
.B520: //.M0003
fld.l -48(fp), f8
.DB.B520520:
fld.l -52(fp), f9
call _tex_scalefac
fld.l -56(fp), f10
adds -48, fp, r16
adds -52, fp, r17
adds -56, fp, r18
call _tex_fixz
fst.l f8, -64(fp)
fld.l -64(fp), f16
orh h%.S00412, r0, r31
or l%.S00412, r31, r16
fmov.sd f16, f8
call _printf
ld.l -64(fp), r17
fld.l -48(fp), f16
fld.l -52(fp), f22
fld.l -56(fp), f28
fmov.sd f16, f18
adds 1, r4, r4
fmul.dd f18, f4, f20
fmov.ds f20, f17
fst.l f17, -48(fp)
fmov.sd f22, f24
fmul.dd f24, f2, f26
fmov.ds f26, f23
fst.l f23, -52(fp)
fmov.sd f28, f30
fmul.dd f30, f6, f8
fmov.ds f8, f29
adds -4, r4, r0
fst.l f29, -56(fp)
bc.t .DB.B520520
fld.l -48(fp), f8
// lineno: 0
st.l r4, -60(fp)
// lineno: 0
.B410: //.B0007
// lineno: 199
fld.d -136(fp), f2
fld.d -128(fp), f4
fld.d -120(fp), f6
ld.l -112(fp), r4
ld.l -108(fp), r5
ld.l -104(fp), r6
ld.l -100(fp), r7
ld.l -96(fp), r8
ld.l -92(fp), r9
ld.l -88(fp), r10
ld.l -84(fp), r11
ld.l -80(fp), r12
ld.l -76(fp), r13
ld.l -72(fp), r14
ld.l -68(fp), r15
adds .a2+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.data
.align 8
.C00036: // (0)
.long 0x3f800000 // 1.00000000E+00
.align 8
.C00416: // (8)
.long 0xecbfb15b, 0x3fdc3c9e // 4.41199999999999981E-01
.C00315: // (16)
.long 0x3fa7ae14 // 1.30999994E+00
.C00314: // (20)
.long 0x3fb33333 // 1.39999998E+00
.C00313: // (24)
.long 0x42f40000 // 1.22000000E+02
.C00312: // (28)
.long 0x42000000 // 3.20000000E+01
.C00321: // (32)
.long 0xc0028f5c // -2.03999996E+00
.C00320: // (36)
.long 0x40066666 // 2.09999990E+00
.C00319: // (40)
.long 0x42180000 // 3.80000000E+01
.C00318: // (44)
.long 0x41b00000 // 2.20000000E+01
.C00317: // (48)
.long 0x42280000 // 4.20000000E+01
.C00327: // (52)
.long 0x3fc3d70a // 1.52999997E+00
.C00326: // (56)
.long 0x405b851f // 3.43000007E+00
.C00325: // (60)
.long 0x444d8000 // 8.22000000E+02
.C00324: // (64)
.long 0x42780000 // 6.20000000E+01
.C00323: // (68)
.long 0x41400000 // 1.20000000E+01
.C00331: // (72)
.long 0x4053d70a // 3.30999994E+00
.C00330: // (76)
.long 0x441b8000 // 6.22000000E+02
.C00329: // (80)
.long 0x43040000 // 1.32000000E+02
.C00336: // (84)
.long 0x3f851eb8 // 1.03999996E+00
.C00335: // (88)
.long 0x430a0000 // 1.38000000E+02
.C00334: // (92)
.long 0x43160000 // 1.50000000E+02
.C00333: // (96)
.long 0x430e0000 // 1.42000000E+02
.C00341: // (100)
.long 0xbfc3d70a // -1.52999997E+00
.C00340: // (104)
.long 0x435e0000 // 2.22000000E+02
.C00339: // (108)
.long 0x43220000 // 1.62000000E+02
.C00338: // (112)
.long 0x43180000 // 1.52000000E+02
.align 8
.C00488: // (120)
.long 0x80000000, 0x43300000 // 4.50360177485414400E+15
.C00037: // (128)
.long 0x40000000 // 2.00000000E+00
.C00404: // (132)
.long 0x3cbfb15b // 2.33999994E-02
.C00406: // (136)
.long 0x3aafa2f0 // 1.33999996E-03
.C00408: // (140)
.long 0x3d1003ef // 3.51600014E-02
.align 8
.C00415: // (144)
.long 0x432ca57a, 0x3feaeb1c // 8.41199999999999948E-01
.C00414: // (152)
.long 0xdcc63f14, 0x3fe484b5 // 6.41199999999999992E-01
.data
.align 1
.S00309: //
// "pxpl5tst is go\n"
.byte 0x70,0x78,0x70,0x6c,0x35,0x74,0x73,0x74,0x20,0x69,0x73
.byte 0x20,0x67,0x6f,0x0a,0x00
.S00342: //
// "vertices 0x%x vert0 0x%x vert1 0x%x vert2 0x%x\n"
.byte 0x76,0x65,0x72,0x74,0x69,0x63,0x65,0x73,0x20,0x30,0x78
.byte 0x25,0x78,0x20,0x76,0x65,0x72,0x74,0x30,0x20,0x30,0x78
.byte 0x25,0x78,0x20,0x76,0x65,0x72,0x74,0x31,0x20,0x30,0x78
.byte 0x25,0x78,0x20,0x76,0x65,0x72,0x74,0x32,0x20,0x30,0x78
.byte 0x25,0x78,0x0a,0x00
.S00371: //
// "SETENABS 0x%8x CLRENABS 0x%8x\n"
.byte 0x53,0x45,0x54,0x45,0x4e,0x41,0x42,0x53,0x20,0x20,0x20
.byte 0x20,0x20,0x20,0x30,0x78,0x25,0x38,0x78,0x20,0x43,0x4c
.byte 0x52,0x45,0x4e,0x41,0x42,0x53,0x20,0x20,0x20,0x20,0x20
.byte 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x78,0x25
.byte 0x38,0x78,0x0a,0x00
.S00373: //
// "TREEltZERO_L3 0x%8x TREEgeZERO_L3 0x%8x\n"
.byte 0x54,0x52,0x45,0x45,0x6c,0x74,0x5a,0x45,0x52,0x4f,0x5f
.byte 0x4c,0x33,0x20,0x30,0x78,0x25,0x38,0x78,0x20,0x54,0x52
.byte 0x45,0x45,0x67,0x65,0x5a,0x45,0x52,0x4f,0x5f,0x4c,0x33
.byte 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x78,0x25
.byte 0x38,0x78,0x0a,0x00
.S00375: //
// "MEMltTREE_l3 0x%8x TREEintoMEM_L0(zbuf) 0x%8x\n"
.byte 0x4d,0x45,0x4d,0x6c,0x74,0x54,0x52,0x45,0x45,0x5f,0x6c
.byte 0x33,0x20,0x20,0x30,0x78,0x25,0x38,0x78,0x20,0x54,0x52
.byte 0x45,0x45,0x69,0x6e,0x74,0x6f,0x4d,0x45,0x4d,0x5f,0x4c
.byte 0x30,0x28,0x7a,0x62,0x75,0x66,0x29,0x20,0x30,0x78,0x25
.byte 0x38,0x78,0x0a,0x00
.S00377: //
// "TREEintoMEM_L3(diff) 0x%8x TREEintoMEM_L3(spec) 0x%8x\n"
.byte 0x54,0x52,0x45,0x45,0x69,0x6e,0x74,0x6f,0x4d,0x45,0x4d
.byte 0x5f,0x4c,0x33,0x28,0x64,0x69,0x66,0x66,0x29,0x20,0x30
.byte 0x78,0x25,0x38,0x78,0x20,0x54,0x52,0x45,0x45,0x69,0x6e
.byte 0x74,0x6f,0x4d,0x45,0x4d,0x5f,0x4c,0x33,0x28,0x73,0x70
.byte 0x65,0x63,0x29,0x20,0x30,0x78,0x25,0x38,0x78,0x0a,0x00
.S00379: //
// "TREEintoMEM_L3(texu) 0x%8x TREEintoMEM_L3(texv) 0x%8x\n"
.byte 0x54,0x52,0x45,0x45,0x69,0x6e,0x74,0x6f,0x4d,0x45,0x4d
.byte 0x5f,0x4c,0x33,0x28,0x74,0x65,0x78,0x75,0x29,0x20,0x30
.byte 0x78,0x25,0x38,0x78,0x20,0x54,0x52,0x45,0x45,0x69,0x6e
.byte 0x74,0x6f,0x4d,0x45,0x4d,0x5f,0x4c,0x33,0x28,0x74,0x65
.byte 0x78,0x76,0x29,0x20,0x30,0x78,0x25,0x38,0x78,0x0a,0x00
.S00381: //
// "TREEintoMEM_L3(texz) 0x%8x\n"
.byte 0x54,0x52,0x45,0x45,0x69,0x6e,0x74,0x6f,0x4d,0x45,0x4d
.byte 0x5f,0x4c,0x33,0x28,0x74,0x65,0x78,0x7a,0x29,0x20,0x30
.byte 0x78,0x25,0x38,0x78,0x0a,0x00
.S00390: //
// "Gosh golly gee - %d triangles pxpl5ized in %f ticks (%f per sec)\n"
.byte 0x47,0x6f,0x73,0x68,0x20,0x67,0x6f,0x6c,0x6c,0x79,0x20
.byte 0x67,0x65,0x65,0x20,0x2d,0x20,0x25,0x64,0x20,0x74,0x72
.byte 0x69,0x61,0x6e,0x67,0x6c,0x65,0x73,0x20,0x70,0x78,0x70
.byte 0x6c,0x35,0x69,0x7a,0x65,0x64,0x20,0x69,0x6e,0x20,0x25
.byte 0x66,0x20,0x74,0x69,0x63,0x6b,0x73,0x20,0x28,0x25,0x66
.byte 0x20,0x70,0x65,0x72,0x20,0x73,0x65,0x63,0x29,0x0a,0x00
.S00392: //
// "Dump of equation memory 0x%x\n"
.byte 0x44,0x75,0x6d,0x70,0x20,0x6f,0x66,0x20,0x65,0x71,0x75
.byte 0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x6d,0x6f,0x72
.byte 0x79,0x20,0x30,0x78,0x25,0x78,0x0a,0x00
.S00397: //
// "(0x%8x) memory[%d] - 0x%8x (%f)\n"
.byte 0x28,0x30,0x78,0x25,0x38,0x78,0x29,0x20,0x6d,0x65,0x6d
.byte 0x6f,0x72,0x79,0x5b,0x25,0x64,0x5d,0x20,0x2d,0x20,0x30
.byte 0x78,0x25,0x38,0x78,0x20,0x28,0x25,0x66,0x29,0x0a,0x00
.S00412: //
// "tex_scalefac returned %f (0x%x)\n"
.byte 0x74,0x65,0x78,0x5f,0x73,0x63,0x61,0x6c,0x65,0x66,0x61
.byte 0x63,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20
.byte 0x25,0x66,0x20,0x28,0x30,0x78,0x25,0x78,0x29,0x0a,0x00
.extern _tex_fixz
.extern _tex_scalefac
.extern _tri_zb_d_s_tex
.extern _second_
.extern _create_screenbins
.extern _grab_binchunks
.extern _printf
.extern _malloc
.extern _setFsr
.extern _getFsr