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>
130 lines
2.5 KiB
C++
130 lines
2.5 KiB
C++
#ifndef register_h
|
|
|
|
//
|
|
// integer registers first
|
|
//
|
|
// icoeff_p = vpx ( icoeff_p, codeword, opcode0, conn, backwards );
|
|
// icoeff_p = vpx ( icoeff_p, codeword, opcode0, conn, backwards );
|
|
//
|
|
|
|
#define iparam1 r16
|
|
#define iparam2 r17
|
|
#define iparam3 r18
|
|
#define iparam4 r19
|
|
#define iparam5 r20
|
|
//
|
|
#define rv1 iparam3
|
|
#define rv2 iparam4
|
|
#define rv3 r20
|
|
#define needs_texture r21
|
|
#define rcoeffptr r22
|
|
#define rcoeffsave r23
|
|
#define rvertex r24
|
|
#define rcoeff_pp r25
|
|
#define rcoeffmax r26
|
|
#define n_polygons r27
|
|
#define extra_stuff r28
|
|
#define itmp1 r29
|
|
#define itmp2 r30
|
|
|
|
#define lbin r4
|
|
#define xbin r5
|
|
#define ycnt r6
|
|
#define xcnt r7
|
|
#define usage r8
|
|
#define bin r9
|
|
#define opcode0 r10
|
|
#define backwards r11
|
|
#define iminx r12
|
|
#define iminy r13
|
|
#define imaxx r14
|
|
#define imaxy r15
|
|
|
|
// iminx iminy etc only used early in binitization
|
|
#define n_verts usage
|
|
#define rvert bin
|
|
|
|
//
|
|
// fp registers
|
|
//
|
|
|
|
//
|
|
// screen-space minimax for binitizing
|
|
// PASS NO FLOAT PARAMETERS IN HERE OR YOU ARE S T U F F E D
|
|
//
|
|
#define fparam1 f8
|
|
#define fparam2 f9
|
|
#define fparam3 f10
|
|
|
|
#define fminx f8
|
|
#define fminy f9
|
|
#define fmaxx f10
|
|
#define fmaxy f11
|
|
|
|
//
|
|
// some sphere-only registers
|
|
//
|
|
#define fxc f12
|
|
#define fyc f13
|
|
#define fzc f14
|
|
#define frad f15
|
|
#define flx f16
|
|
#define fly f17
|
|
#define flz f20
|
|
#define frz f21
|
|
#define ftwo ftexscale
|
|
#define fr2 fminz
|
|
#define fx2y2 f22
|
|
#define fr12 f23
|
|
#define fK f24
|
|
#define frinvlz f25
|
|
// re-use lz - not needed after load
|
|
|
|
#define fxtwo ftmp7
|
|
#define fytwo ftmp8
|
|
#define fminus1 ftmp9
|
|
|
|
// x, y coords for tris/quads
|
|
#define fx1 f12
|
|
#define fy1 f13
|
|
#define fx2 f14
|
|
#define fy2 f15
|
|
#define fx3 f16
|
|
#define fy3 f17
|
|
#define fx4 f18
|
|
#define fy4 f19
|
|
|
|
// repeated expressions fx32, fx13, fx21, fC
|
|
#define fx32 f20
|
|
#define fx13 f21
|
|
#define fx21 f22
|
|
#define fC f23
|
|
#define fy31 fx13
|
|
#define fy12 fx21
|
|
#define fy23 fx32
|
|
|
|
|
|
|
|
// screen-space function values for planarizing
|
|
#define fv1 f24
|
|
#define fv2 f25
|
|
#define fv3 f26
|
|
|
|
#define ftmp1 f28
|
|
#define ftmp2 f29
|
|
#define ftmp3 f30
|
|
#define ftmp4 f31
|
|
#define ftmp5 f27
|
|
#define ftmp6 f4
|
|
#define ftmp7 f6
|
|
#define ftmp8 f7
|
|
#define ftmp9 ftmp4
|
|
|
|
#define fmaterial f3
|
|
#define ftexscale f2
|
|
#define fminz f5
|
|
|
|
#else
|
|
#endif
|
|
|