gltri.s
1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* File: gltri.s
* Creator: yasu@rd3.nintendo.co.jp
* Create Date: Tue Sep 24 19:07:34 JST 1996
*
*/
#ifdef F3DLP_GBI
.ent case_G_TRI1
case_G_TRI1:
#-YASU
#
# F3DLP-TRI1
#
# 2 TRI setup の片一方を使用する. もう一方は同じ頂点を指定し, つぶしてしまう.
# DMEM 上の DL を書換えたところで問題はない.
# flag フィールドはサポートしない. 先頭頂点を flag に固定する
#
#-YASU
sb gfx1, (0-7)(dinp)
sb gfx1, (0-6)(dinp)
j case_G_TRI2
sb gfx1, (0-5)(dinp)
.end case_G_TRI1
#ifdef QUAD
.name v0, $1
.name v1, $2
.name v2, $3
.name v3, $7
.ent case_G_QUAD3D
case_G_QUAD3D:
#-YASU
#
# F3DLP-QUAD
#
# 2 TRI setup を利用して 2 つの 3 角形を同時に描画する.
# flag のアンサポート. flag は v1 に固定 (F3DEX の都合による)
#
# 一時的にサポートを止める.
#
# またうまくオプティマイズをすることもあるだろう.
#
#-YASU
# dinp points to next dl cmd, so back up to get tri indices
lbu v0, (0-4)(dinp)
lbu v1, (0-3)(dinp)
lbu v3, (0-1)(dinp)
sb v1, (0-7)(dinp)
sb v3, (0-6)(dinp)
j case_G_TRI2
sb v0, (0-5)(dinp)
.unname v0
.unname v1
.unname v2
.unname v3
.end case_G_QUAD3D
#endif
#endif