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>
442 lines
10 KiB
ArmAsm
442 lines
10 KiB
ArmAsm
.file "startup.c"
|
|
// PGC Rel 2.0a -opt 2
|
|
.text
|
|
.globl _initialize_paz
|
|
.align 8
|
|
_initialize_paz:
|
|
.a1 = 80
|
|
.f1 = 48
|
|
addu -(.a1+.f1), sp, sp
|
|
st.l fp,(.f1-16)(sp)
|
|
addu (.f1-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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mov r16, r5
|
|
mov r17, r6
|
|
// lineno: 0
|
|
// lineno: 12
|
|
orh h%.S00408, r0, r31
|
|
or l%.S00408, r31, r16
|
|
or (67110193&0xffff), r0, r8
|
|
call _printf
|
|
orh ((67110193>>16)&0xffff), r8, r8
|
|
adds -1, r0, r28
|
|
btne r6, r28, .B411
|
|
or (67109937&0xffff), r0, r7
|
|
br .B414
|
|
orh ((67109937>>16)&0xffff), r7, r7
|
|
// lineno: 19
|
|
.B411: //.B0000
|
|
or (67112753&0xffff), r0, r7
|
|
.DB.B411411:
|
|
orh ((67112753>>16)&0xffff), r7, r7
|
|
or (67112241&0xffff), r0, r8
|
|
orh ((67112241>>16)&0xffff), r8, r8
|
|
// lineno: 22
|
|
.B414: //.B0001
|
|
btne r6, r5, .B417
|
|
orh h%.S00418, r0, r31
|
|
call _printf
|
|
or l%.S00418, r31, r16
|
|
adds 666, r0, r16
|
|
adds 704, r0, r17
|
|
adds 480, r0, r18
|
|
adds -1, r0, r20
|
|
mov r5, r19
|
|
mov r20, r21
|
|
mov r7, r22
|
|
mov r20, r23
|
|
mov r20, r24
|
|
call _PAZinit
|
|
mov r0, r25
|
|
orh h%.S00424, r0, r31
|
|
call _printf
|
|
or l%.S00424, r31, r16
|
|
adds 666, r0, r16
|
|
adds 704, r0, r17
|
|
adds 480, r0, r18
|
|
adds -1, r0, r20
|
|
mov r6, r19
|
|
mov r20, r21
|
|
mov r8, r22
|
|
mov r20, r23
|
|
mov r20, r24
|
|
adds 1, r0, r25
|
|
|
|
orh h%.B426, r0, r1
|
|
br _PAZinit
|
|
or l%.B426, r1, r1
|
|
// lineno: 37
|
|
.B417: //.B0002
|
|
mov r0, r4
|
|
.DB.B417417:
|
|
mov r0, r4
|
|
// lineno: 38
|
|
.B503: //.M0000
|
|
orh h%.S00431, r0, r31
|
|
.DB.B503503:
|
|
or l%.S00431, r31, r16
|
|
|
|
call _printf
|
|
mov r4, r17
|
|
adds 666, r0, r16
|
|
adds 704, r0, r17
|
|
adds 480, r0, r18
|
|
adds -1, r0, r21
|
|
mov r5, r19
|
|
mov r6, r20
|
|
mov r7, r22
|
|
mov r8, r23
|
|
mov r21, r24
|
|
call _PAZinit
|
|
mov r4, r25
|
|
adds 1, r4, r4
|
|
adds -4, r4, r0
|
|
|
|
bc.t .DB.B503503
|
|
orh h%.S00431, r0, r31
|
|
// lineno: 0
|
|
// lineno: 0
|
|
.B426: //.B0003
|
|
// lineno: 45
|
|
|
|
|
|
|
|
|
|
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 .a1+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _initialize_eyes
|
|
.align 8
|
|
_initialize_eyes:
|
|
.a2 = 80
|
|
.f2 = 48
|
|
addu -(.a2+.f2), sp, sp
|
|
st.l fp,(.f2-16)(sp)
|
|
addu (.f2-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -16(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r18, 56(fp)
|
|
st.l r19, 60(fp)
|
|
mov r17, r4
|
|
// lineno: 0
|
|
// lineno: 53
|
|
orh h%.S00440, r0, r31
|
|
call _printf
|
|
or l%.S00440, r31, r16
|
|
orh h%.S00442, r0, r31
|
|
call _printf
|
|
or l%.S00442, r31, r16
|
|
call _PAZcreateScene
|
|
nop
|
|
call _PAZsetScene
|
|
st.l r16, -4(fp)
|
|
orh h%.S00444, r0, r31
|
|
call _printf
|
|
or l%.S00444, r31, r16
|
|
call _PAZcreateView
|
|
nop
|
|
ld.l 56(fp), r28
|
|
|
|
st.l r16, 0(r28)
|
|
btne 0x0000, r16, .B446
|
|
orh h%.S00447, r0, r31
|
|
call _printf
|
|
or l%.S00447, r31, r16
|
|
br .B511
|
|
mov r0, r16
|
|
// lineno: 64
|
|
.B446: //.B0006
|
|
orh h%.S00450, r0, r31
|
|
.DB.B446446:
|
|
call _printf
|
|
or l%.S00450, r31, r16
|
|
ld.l 56(fp), r28
|
|
ld.l 48(fp), r17
|
|
ld.l r0(r28), r16
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f8
|
|
orh ha%.C00456, r0, r31
|
|
fld.l l%.C00456(r31), f9
|
|
orh ha%.C00457, r0, r31
|
|
fld.l l%.C00457(r31), f10
|
|
orh ha%.C00458, r0, r31
|
|
fld.l l%.C00458(r31), f11
|
|
orh ha%.C00459, r0, r31
|
|
fld.l l%.C00459(r31), f12
|
|
orh ha%.C00460, r0, r31
|
|
call _PAZinitView
|
|
fld.l l%.C00460(r31), f13
|
|
orh h%.S00461, r0, r31
|
|
call _printf
|
|
or l%.S00461, r31, r16
|
|
ld.l 56(fp), r28
|
|
|
|
call _PAZwriteView
|
|
ld.l r0(r28), r16
|
|
adds -1, r0, r28
|
|
btne r4, r28, .B463
|
|
orh h%.S00464, r0, r31
|
|
call _printf
|
|
or l%.S00464, r31, r16
|
|
ld.l 60(fp), r28
|
|
|
|
br .B467
|
|
st.l r0, 0(r28)
|
|
// lineno: 75
|
|
.B463: //.B0007
|
|
orh h%.S00468, r0, r31
|
|
.DB.B463463:
|
|
call _printf
|
|
or l%.S00468, r31, r16
|
|
call _PAZcreateView
|
|
nop
|
|
ld.l 60(fp), r28
|
|
|
|
st.l r16, 0(r28)
|
|
btne 0x0000, r16, .B471
|
|
orh h%.S00472, r0, r31
|
|
call _printf
|
|
or l%.S00472, r31, r16
|
|
br .B511
|
|
mov r0, r16
|
|
// lineno: 82
|
|
.B471: //.B0009
|
|
orh h%.S00475, r0, r31
|
|
.DB.B471471:
|
|
call _printf
|
|
or l%.S00475, r31, r16
|
|
ld.l 60(fp), r28
|
|
|
|
ld.l r0(r28), r16
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f8
|
|
orh ha%.C00456, r0, r31
|
|
fld.l l%.C00456(r31), f9
|
|
orh ha%.C00457, r0, r31
|
|
fld.l l%.C00457(r31), f10
|
|
orh ha%.C00458, r0, r31
|
|
fld.l l%.C00458(r31), f11
|
|
orh ha%.C00459, r0, r31
|
|
fld.l l%.C00459(r31), f12
|
|
orh ha%.C00460, r0, r31
|
|
fld.l l%.C00460(r31), f13
|
|
|
|
|
|
|
|
call _PAZinitView
|
|
mov r4, r17
|
|
orh h%.S00477, r0, r31
|
|
call _printf
|
|
or l%.S00477, r31, r16
|
|
ld.l 60(fp), r28
|
|
|
|
call _PAZwriteView
|
|
ld.l r0(r28), r16
|
|
// lineno: 88
|
|
.B467: //.B0008
|
|
ld.l -4(fp), r16
|
|
.DB.B467467:
|
|
// lineno: 0
|
|
.B511: //.R0000
|
|
// lineno: 89
|
|
|
|
|
|
|
|
|
|
ld.l -16(fp), r4
|
|
adds .a2+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _initialize_all
|
|
.align 8
|
|
_initialize_all:
|
|
.a3 = 80
|
|
.f3 = 32
|
|
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)
|
|
st.l r17, 52(fp)
|
|
st.l r18, 56(fp)
|
|
st.l r19, 60(fp)
|
|
// lineno: 97
|
|
orh h%.S00485, r0, r31
|
|
call _printf
|
|
or l%.S00485, r31, r16
|
|
ld.l 48(fp), r16
|
|
call _initialize_paz
|
|
ld.l 52(fp), r17
|
|
ld.l 48(fp), r16
|
|
ld.l 52(fp), r17
|
|
ld.l 56(fp), r18
|
|
call _initialize_eyes
|
|
ld.l 60(fp), r19
|
|
mov r16, r28
|
|
orh h%.S00487, r0, r31
|
|
or l%.S00487, r31, r16
|
|
call _printf
|
|
st.l r28, -4(fp)
|
|
ld.l -4(fp), r16
|
|
// lineno: 103
|
|
|
|
|
|
|
|
|
|
adds .a3+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.data
|
|
.align 8
|
|
.C00460: // (0)
|
|
.long 0x3faaaaab // 1.33333337E+00
|
|
.C00459: // (4)
|
|
.long 0x43f00000 // 4.80000000E+02
|
|
.C00458: // (8)
|
|
.long 0x44300000 // 7.04000000E+02
|
|
.C00457: // (12)
|
|
.long 0x461c4000 // 1.00000000E+04
|
|
.C00456: // (16)
|
|
.long 0x41000000 // 8.00000000E+00
|
|
.C00036: // (20)
|
|
.long 0x3f800000 // 1.00000000E+00
|
|
.data
|
|
.align 1
|
|
.S00408: //
|
|
// "initialize paz\n"
|
|
.byte 0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20
|
|
.byte 0x70,0x61,0x7a,0x0a,0x00
|
|
.S00418: //
|
|
// "PAZinit on left eye\n"
|
|
.byte 0x50,0x41,0x5a,0x69,0x6e,0x69,0x74,0x20,0x6f,0x6e,0x20
|
|
.byte 0x6c,0x65,0x66,0x74,0x20,0x65,0x79,0x65,0x0a,0x00
|
|
.S00424: //
|
|
// "PAZinit on right eye\n"
|
|
.byte 0x50,0x41,0x5a,0x69,0x6e,0x69,0x74,0x20,0x6f,0x6e,0x20
|
|
.byte 0x72,0x69,0x67,0x68,0x74,0x20,0x65,0x79,0x65,0x0a,0x00
|
|
.S00431: //
|
|
// "PAZinit on processor %d\n"
|
|
.byte 0x50,0x41,0x5a,0x69,0x6e,0x69,0x74,0x20,0x6f,0x6e,0x20
|
|
.byte 0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x20,0x25
|
|
.byte 0x64,0x0a,0x00
|
|
.S00440: //
|
|
// "initialize eyes\n"
|
|
.byte 0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20
|
|
.byte 0x65,0x79,0x65,0x73,0x0a,0x00
|
|
.S00442: //
|
|
// "PAZcreatescene, setscene\n "
|
|
.byte 0x50,0x41,0x5a,0x63,0x72,0x65,0x61,0x74,0x65,0x73,0x63
|
|
.byte 0x65,0x6e,0x65,0x2c,0x20,0x73,0x65,0x74,0x73,0x63,0x65
|
|
.byte 0x6e,0x65,0x0a,0x20,0x00
|
|
.S00444: //
|
|
// "PAZcreateView\n "
|
|
.byte 0x50,0x41,0x5a,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x69
|
|
.byte 0x65,0x77,0x0a,0x20,0x00
|
|
.S00447: //
|
|
// "NULL eye\n"
|
|
.byte 0x4e,0x55,0x4c,0x4c,0x20,0x65,0x79,0x65,0x0a,0x00
|
|
.S00450: //
|
|
// "PAZinitView\n "
|
|
.byte 0x50,0x41,0x5a,0x69,0x6e,0x69,0x74,0x56,0x69,0x65,0x77
|
|
.byte 0x0a,0x20,0x00
|
|
.S00461: //
|
|
// "PAZwriteView\n "
|
|
.byte 0x50,0x41,0x5a,0x77,0x72,0x69,0x74,0x65,0x56,0x69,0x65
|
|
.byte 0x77,0x0a,0x20,0x00
|
|
.S00464: //
|
|
// "no right eye\n "
|
|
.byte 0x6e,0x6f,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x65,0x79
|
|
.byte 0x65,0x0a,0x20,0x00
|
|
.S00468: //
|
|
// "PAZcreateView\n "
|
|
.byte 0x50,0x41,0x5a,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x69
|
|
.byte 0x65,0x77,0x0a,0x20,0x00
|
|
.S00472: //
|
|
// "NULL rye\n"
|
|
.byte 0x4e,0x55,0x4c,0x4c,0x20,0x72,0x79,0x65,0x0a,0x00
|
|
.S00475: //
|
|
// "PAZinitView\n "
|
|
.byte 0x50,0x41,0x5a,0x69,0x6e,0x69,0x74,0x56,0x69,0x65,0x77
|
|
.byte 0x0a,0x20,0x00
|
|
.S00477: //
|
|
// "PAZwriteView\n "
|
|
.byte 0x50,0x41,0x5a,0x77,0x72,0x69,0x74,0x65,0x56,0x69,0x65
|
|
.byte 0x77,0x0a,0x20,0x00
|
|
.S00485: //
|
|
// "initialize all\n"
|
|
.byte 0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20
|
|
.byte 0x61,0x6c,0x6c,0x0a,0x00
|
|
.S00487: //
|
|
// "initialize all returning\n"
|
|
.byte 0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20
|
|
.byte 0x61,0x6c,0x6c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x69
|
|
.byte 0x6e,0x67,0x0a,0x00
|
|
.extern _PAZwriteView
|
|
.extern _PAZinitView
|
|
.extern _PAZcreateView
|
|
.extern _PAZsetScene
|
|
.extern _PAZcreateScene
|
|
.extern _PAZinit
|
|
.extern _printf
|