• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 .386P
2 .model FLAT
3 externdef _d_zistepu:dword
4 externdef _d_pzbuffer:dword
5 externdef _d_zistepv:dword
6 externdef _d_zrowbytes:dword
7 externdef _d_ziorigin:dword
8 externdef _r_turb_s:dword
9 externdef _r_turb_t:dword
10 externdef _r_turb_pdest:dword
11 externdef _r_turb_spancount:dword
12 externdef _r_turb_turb:dword
13 externdef _r_turb_pbase:dword
14 externdef _r_turb_sstep:dword
15 externdef _r_turb_tstep:dword
16 externdef _r_bmodelactive:dword
17 externdef _d_sdivzstepu:dword
18 externdef _d_tdivzstepu:dword
19 externdef _d_sdivzstepv:dword
20 externdef _d_tdivzstepv:dword
21 externdef _d_sdivzorigin:dword
22 externdef _d_tdivzorigin:dword
23 externdef _sadjust:dword
24 externdef _tadjust:dword
25 externdef _bbextents:dword
26 externdef _bbextentt:dword
27 externdef _cacheblock:dword
28 externdef _d_viewbuffer:dword
29 externdef _cachewidth:dword
30 externdef _d_pzbuffer:dword
31 externdef _d_zrowbytes:dword
32 externdef _d_zwidth:dword
33 externdef _d_scantable:dword
34 externdef _r_lightptr:dword
35 externdef _r_numvblocks:dword
36 externdef _prowdestbase:dword
37 externdef _pbasesource:dword
38 externdef _r_lightwidth:dword
39 externdef _lightright:dword
40 externdef _lightrightstep:dword
41 externdef _lightdeltastep:dword
42 externdef _lightdelta:dword
43 externdef _lightright:dword
44 externdef _lightdelta:dword
45 externdef _sourcetstep:dword
46 externdef _surfrowbytes:dword
47 externdef _lightrightstep:dword
48 externdef _lightdeltastep:dword
49 externdef _r_sourcemax:dword
50 externdef _r_stepback:dword
51 externdef _colormap:dword
52 externdef _blocksize:dword
53 externdef _sourcesstep:dword
54 externdef _lightleft:dword
55 externdef _blockdivshift:dword
56 externdef _blockdivmask:dword
57 externdef _lightleftstep:dword
58 externdef _r_origin:dword
59 externdef _r_ppn:dword
60 externdef _r_pup:dword
61 externdef _r_pright:dword
62 externdef _ycenter:dword
63 externdef _xcenter:dword
64 externdef _d_vrectbottom_particle:dword
65 externdef _d_vrectright_particle:dword
66 externdef _d_vrecty:dword
67 externdef _d_vrectx:dword
68 externdef _d_pix_shift:dword
69 externdef _d_pix_min:dword
70 externdef _d_pix_max:dword
71 externdef _d_y_aspect_shift:dword
72 externdef _screenwidth:dword
73 externdef _vright:dword
74 externdef _vup:dword
75 externdef _vpn:dword
76 externdef _BOPS_Error:dword
77 externdef _snd_scaletable:dword
78 externdef _paintbuffer:dword
79 externdef _snd_linear_count:dword
80 externdef _snd_p:dword
81 externdef _snd_vol:dword
82 externdef _snd_out:dword
83 externdef _r_leftclipped:dword
84 externdef _r_leftenter:dword
85 externdef _r_rightclipped:dword
86 externdef _r_rightenter:dword
87 externdef _modelorg:dword
88 externdef _xscale:dword
89 externdef _r_refdef:dword
90 externdef _yscale:dword
91 externdef _r_leftexit:dword
92 externdef _r_rightexit:dword
93 externdef _r_lastvertvalid:dword
94 externdef _cacheoffset:dword
95 externdef _newedges:dword
96 externdef _removeedges:dword
97 externdef _r_pedge:dword
98 externdef _r_framecount:dword
99 externdef _r_u1:dword
100 externdef _r_emitted:dword
101 externdef _edge_p:dword
102 externdef _surface_p:dword
103 externdef _surfaces:dword
104 externdef _r_lzi1:dword
105 externdef _r_v1:dword
106 externdef _r_ceilv1:dword
107 externdef _r_nearzi:dword
108 externdef _r_nearzionly:dword
109 externdef _edge_aftertail:dword
110 externdef _edge_tail:dword
111 externdef _current_iv:dword
112 externdef _edge_head_u_shift20:dword
113 externdef _span_p:dword
114 externdef _edge_head:dword
115 externdef _fv:dword
116 externdef _edge_tail_u_shift20:dword
117 externdef _r_apverts:dword
118 externdef _r_anumverts:dword
119 externdef _aliastransform:dword
120 externdef _r_avertexnormals:dword
121 externdef _r_plightvec:dword
122 externdef _r_ambientlight:dword
123 externdef _r_shadelight:dword
124 externdef _aliasxcenter:dword
125 externdef _aliasycenter:dword
126 externdef _a_sstepxfrac:dword
127 externdef _r_affinetridesc:dword
128 externdef _acolormap:dword
129 externdef _d_pcolormap:dword
130 externdef _r_affinetridesc:dword
131 externdef _d_sfrac:dword
132 externdef _d_ptex:dword
133 externdef _d_pedgespanpackage:dword
134 externdef _d_tfrac:dword
135 externdef _d_light:dword
136 externdef _d_zi:dword
137 externdef _d_pdest:dword
138 externdef _d_pz:dword
139 externdef _d_aspancount:dword
140 externdef _erroradjustup:dword
141 externdef _errorterm:dword
142 externdef _d_xdenom:dword
143 externdef _r_p0:dword
144 externdef _r_p1:dword
145 externdef _r_p2:dword
146 externdef _a_tstepxfrac:dword
147 externdef _r_sstepx:dword
148 externdef _r_tstepx:dword
149 externdef _a_ststepxwhole:dword
150 externdef _zspantable:dword
151 externdef _skintable:dword
152 externdef _r_zistepx:dword
153 externdef _erroradjustdown:dword
154 externdef _d_countextrastep:dword
155 externdef _ubasestep:dword
156 externdef _a_ststepxwhole:dword
157 externdef _a_tstepxfrac:dword
158 externdef _r_lstepx:dword
159 externdef _a_spans:dword
160 externdef _erroradjustdown:dword
161 externdef _d_pdestextrastep:dword
162 externdef _d_pzextrastep:dword
163 externdef _d_sfracextrastep:dword
164 externdef _d_ptexextrastep:dword
165 externdef _d_countextrastep:dword
166 externdef _d_tfracextrastep:dword
167 externdef _d_lightextrastep:dword
168 externdef _d_ziextrastep:dword
169 externdef _d_pdestbasestep:dword
170 externdef _d_pzbasestep:dword
171 externdef _d_sfracbasestep:dword
172 externdef _d_ptexbasestep:dword
173 externdef _ubasestep:dword
174 externdef _d_tfracbasestep:dword
175 externdef _d_lightbasestep:dword
176 externdef _d_zibasestep:dword
177 externdef _zspantable:dword
178 externdef _r_lstepy:dword
179 externdef _r_sstepy:dword
180 externdef _r_tstepy:dword
181 externdef _r_zistepy:dword
182 externdef _D_PolysetSetEdgeTable:dword
183 externdef _D_RasterizeAliasPolySmooth:dword
184 externdef float_point5:dword
185 externdef Float2ToThe31nd:dword
186 externdef izistep:dword
187 externdef izi:dword
188 externdef FloatMinus2ToThe31nd:dword
189 externdef float_1:dword
190 externdef float_particle_z_clip:dword
191 externdef float_minus_1:dword
192 externdef float_0:dword
193 externdef fp_16:dword
194 externdef fp_64k:dword
195 externdef fp_1m:dword
196 externdef fp_1m_minus_1:dword
197 externdef fp_8:dword
198 externdef entryvec_table:dword
199 externdef advancetable:dword
200 externdef sstep:dword
201 externdef tstep:dword
202 externdef pspantemp:dword
203 externdef counttemp:dword
204 externdef jumptemp:dword
205 externdef reciprocal_table:dword
206 externdef DP_Count:dword
207 externdef DP_u:dword
208 externdef DP_v:dword
209 externdef DP_32768:dword
210 externdef DP_Color:dword
211 externdef DP_Pix:dword
212 externdef DP_EntryTable:dword
213 externdef pbase:dword
214 externdef s:dword
215 externdef t:dword
216 externdef sfracf:dword
217 externdef tfracf:dword
218 externdef snext:dword
219 externdef tnext:dword
220 externdef spancountminus1:dword
221 externdef zi16stepu:dword
222 externdef sdivz16stepu:dword
223 externdef tdivz16stepu:dword
224 externdef zi8stepu:dword
225 externdef sdivz8stepu:dword
226 externdef tdivz8stepu:dword
227 externdef reciprocal_table_16:dword
228 externdef entryvec_table_16:dword
229 externdef ceil_cw:dword
230 externdef single_cw:dword
231 externdef fp_64kx64k:dword
232 externdef pz:dword
233 externdef spr8entryvec_table:dword
234_DATA SEGMENT
235k dd 0
236loopentry dd 0
237 align 4
238blockjumptable16:
239 dd LEnter2_16
240 dd LEnter4_16
241 dd 0, LEnter8_16
242 dd 0, 0, 0, LEnter16_16
243_DATA ENDS
244_TEXT SEGMENT
245 align 4
246 public _R_Surf16Start
247_R_Surf16Start:
248 align 4
249 public _R_DrawSurfaceBlock16
250_R_DrawSurfaceBlock16:
251 push ebp
252 push edi
253 push esi
254 push ebx
255 mov eax,ds:dword ptr[_blocksize]
256 mov edi,ds:dword ptr[_prowdestbase]
257 mov esi,ds:dword ptr[_pbasesource]
258 mov ebx,ds:dword ptr[_sourcesstep]
259 mov ecx,ds:dword ptr[blockjumptable16-4+eax*2]
260 mov ds:dword ptr[k],eax
261 mov ds:dword ptr[loopentry],ecx
262 mov edx,ds:dword ptr[_lightleft]
263 mov ebp,ds:dword ptr[_lightright]
264Lblockloop16:
265 sub ebp,edx
266 mov cl,ds:byte ptr[_blockdivshift]
267 sar ebp,cl
268 jns Lp1_16
269 test ebp,ds:dword ptr[_blockdivmask]
270 jz Lp1_16
271 inc ebp
272Lp1_16:
273 sub eax,eax
274 sub ecx,ecx
275 jmp dword ptr[loopentry]
276 align 4
277LEnter16_16:
278 mov al,ds:byte ptr[esi]
279 mov cl,ds:byte ptr[esi+ebx]
280 mov ah,dh
281 add edx,ebp
282 mov ch,dh
283 lea esi,ds:dword ptr[esi+ebx*2]
284 mov ax,ds:word ptr[12345678h+eax*2]
285LBPatch0:
286 add edx,ebp
287 mov ds:word ptr[edi],ax
288 mov cx,ds:word ptr[12345678h+ecx*2]
289LBPatch1:
290 mov ds:word ptr[2+edi],cx
291 add edi,04h
292 mov al,ds:byte ptr[esi]
293 mov cl,ds:byte ptr[esi+ebx]
294 mov ah,dh
295 add edx,ebp
296 mov ch,dh
297 lea esi,ds:dword ptr[esi+ebx*2]
298 mov ax,ds:word ptr[12345678h+eax*2]
299LBPatch2:
300 add edx,ebp
301 mov ds:word ptr[edi],ax
302 mov cx,ds:word ptr[12345678h+ecx*2]
303LBPatch3:
304 mov ds:word ptr[2+edi],cx
305 add edi,04h
306 mov al,ds:byte ptr[esi]
307 mov cl,ds:byte ptr[esi+ebx]
308 mov ah,dh
309 add edx,ebp
310 mov ch,dh
311 lea esi,ds:dword ptr[esi+ebx*2]
312 mov ax,ds:word ptr[12345678h+eax*2]
313LBPatch4:
314 add edx,ebp
315 mov ds:word ptr[edi],ax
316 mov cx,ds:word ptr[12345678h+ecx*2]
317LBPatch5:
318 mov ds:word ptr[2+edi],cx
319 add edi,04h
320 mov al,ds:byte ptr[esi]
321 mov cl,ds:byte ptr[esi+ebx]
322 mov ah,dh
323 add edx,ebp
324 mov ch,dh
325 lea esi,ds:dword ptr[esi+ebx*2]
326 mov ax,ds:word ptr[12345678h+eax*2]
327LBPatch6:
328 add edx,ebp
329 mov ds:word ptr[edi],ax
330 mov cx,ds:word ptr[12345678h+ecx*2]
331LBPatch7:
332 mov ds:word ptr[2+edi],cx
333 add edi,04h
334LEnter8_16:
335 mov al,ds:byte ptr[esi]
336 mov cl,ds:byte ptr[esi+ebx]
337 mov ah,dh
338 add edx,ebp
339 mov ch,dh
340 lea esi,ds:dword ptr[esi+ebx*2]
341 mov ax,ds:word ptr[12345678h+eax*2]
342LBPatch8:
343 add edx,ebp
344 mov ds:word ptr[edi],ax
345 mov cx,ds:word ptr[12345678h+ecx*2]
346LBPatch9:
347 mov ds:word ptr[2+edi],cx
348 add edi,04h
349 mov al,ds:byte ptr[esi]
350 mov cl,ds:byte ptr[esi+ebx]
351 mov ah,dh
352 add edx,ebp
353 mov ch,dh
354 lea esi,ds:dword ptr[esi+ebx*2]
355 mov ax,ds:word ptr[12345678h+eax*2]
356LBPatch10:
357 add edx,ebp
358 mov ds:word ptr[edi],ax
359 mov cx,ds:word ptr[12345678h+ecx*2]
360LBPatch11:
361 mov ds:word ptr[2+edi],cx
362 add edi,04h
363LEnter4_16:
364 mov al,ds:byte ptr[esi]
365 mov cl,ds:byte ptr[esi+ebx]
366 mov ah,dh
367 add edx,ebp
368 mov ch,dh
369 lea esi,ds:dword ptr[esi+ebx*2]
370 mov ax,ds:word ptr[12345678h+eax*2]
371LBPatch12:
372 add edx,ebp
373 mov ds:word ptr[edi],ax
374 mov cx,ds:word ptr[12345678h+ecx*2]
375LBPatch13:
376 mov ds:word ptr[2+edi],cx
377 add edi,04h
378LEnter2_16:
379 mov al,ds:byte ptr[esi]
380 mov cl,ds:byte ptr[esi+ebx]
381 mov ah,dh
382 add edx,ebp
383 mov ch,dh
384 lea esi,ds:dword ptr[esi+ebx*2]
385 mov ax,ds:word ptr[12345678h+eax*2]
386LBPatch14:
387 add edx,ebp
388 mov ds:word ptr[edi],ax
389 mov cx,ds:word ptr[12345678h+ecx*2]
390LBPatch15:
391 mov ds:word ptr[2+edi],cx
392 add edi,04h
393 mov esi,ds:dword ptr[_pbasesource]
394 mov edx,ds:dword ptr[_lightleft]
395 mov ebp,ds:dword ptr[_lightright]
396 mov eax,ds:dword ptr[_sourcetstep]
397 mov ecx,ds:dword ptr[_lightrightstep]
398 mov edi,ds:dword ptr[_prowdestbase]
399 add esi,eax
400 add ebp,ecx
401 mov eax,ds:dword ptr[_lightleftstep]
402 mov ecx,ds:dword ptr[_surfrowbytes]
403 add edx,eax
404 add edi,ecx
405 mov ds:dword ptr[_pbasesource],esi
406 mov ds:dword ptr[_lightright],ebp
407 mov eax,ds:dword ptr[k]
408 mov ds:dword ptr[_lightleft],edx
409 dec eax
410 mov ds:dword ptr[_prowdestbase],edi
411 mov ds:dword ptr[k],eax
412 jnz Lblockloop16
413 pop ebx
414 pop esi
415 pop edi
416 pop ebp
417 ret
418 public _R_Surf16End
419_R_Surf16End:
420_TEXT ENDS
421_DATA SEGMENT
422 align 4
423LPatchTable16:
424 dd LBPatch0-4
425 dd LBPatch1-4
426 dd LBPatch2-4
427 dd LBPatch3-4
428 dd LBPatch4-4
429 dd LBPatch5-4
430 dd LBPatch6-4
431 dd LBPatch7-4
432 dd LBPatch8-4
433 dd LBPatch9-4
434 dd LBPatch10-4
435 dd LBPatch11-4
436 dd LBPatch12-4
437 dd LBPatch13-4
438 dd LBPatch14-4
439 dd LBPatch15-4
440_DATA ENDS
441_TEXT SEGMENT
442 align 4
443 public _R_Surf16Patch
444_R_Surf16Patch:
445 push ebx
446 mov eax,ds:dword ptr[_colormap]
447 mov ebx,offset LPatchTable16
448 mov ecx,16
449LPatchLoop16:
450 mov edx,ds:dword ptr[ebx]
451 add ebx,4
452 mov ds:dword ptr[edx],eax
453 dec ecx
454 jnz LPatchLoop16
455 pop ebx
456 ret
457_TEXT ENDS
458 END
459