summaryrefslogtreecommitdiff
path: root/Source/DirectFB/gfxdrivers/ati128/regs.h
blob: 168eeb0128701e5211f20e980db34582b749211d (plain)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
#ifndef REG_RAGE128_H
#define REG_RAGE128_H

#define CLOCK_CNTL_INDEX                0x0008
#define CLOCK_CNTL_DATA                 0x000c
#define BIOS_0_SCRATCH                  0x0010
#define BUS_CNTL                        0x0030
#define GEN_INT_CNTL                    0x0040
#define CRTC_GEN_CNTL                   0x0050
#define CRTC_EXT_CNTL                   0x0054
#define DAC_CNTL                        0x0058
#define I2C_CNTL_1                      0x0094
#define PALETTE_INDEX                   0x00b0
#define PALETTE_DATA                    0x00b4
#define CONFIG_CNTL                     0x00e0
#define GEN_RESET_CNTL                  0x00f0
#define CONFIG_MEMSIZE                  0x00f8
#define MEM_CNTL                        0x0140
#define AGP_BASE                        0x0170
#define AGP_CNTL                        0x0174
#define AGP_APER_OFFSET                 0x0178
#define PCI_GART_PAGE                   0x017c
#define PC_NGUI_MODE                    0x0180
#define PC_NGUI_CTLSTAT                 0x0184
#define MPP_TB_CONFIG                   0x01C0
#define MPP_GP_CONFIG                   0x01C8
#define VIPH_CONTROL                    0x01D0
#define CRTC_H_TOTAL_DISP               0x0200
#define CRTC_H_SYNC_STRT_WID            0x0204
#define CRTC_V_TOTAL_DISP               0x0208
#define CRTC_V_SYNC_STRT_WID            0x020c
#define CRTC_OFFSET                     0x0224
#define CRTC_OFFSET_CNTL                0x0228
#define CRTC_PITCH                      0x022c
#define OVR_CLR                         0x0230
#define OVR_WID_LEFT_RIGHT              0x0234
#define OVR_WID_TOP_BOTTOM              0x0238
#define LVDS_GEN_CNTL                   0x02d0
#define DDA_CONFIG                      0x02e0
#define DDA_ON_OFF                      0x02e4
#define VGA_DDA_CONFIG                  0x02e8
#define VGA_DDA_ON_OFF                  0x02ec
#define OV0_SCALE_CNTL                  0x0420
#define SUBPIC_CNTL                     0x0540
#define PM4_BUFFER_OFFSET               0x0700
#define PM4_BUFFER_CNTL                 0x0704
#define PM4_BUFFER_WM_CNTL              0x0708
#define PM4_BUFFER_DL_RPTR_ADDR         0x070c
#define PM4_BUFFER_DL_RPTR              0x0710
#define PM4_BUFFER_DL_WPTR              0x0714
#define PM4_VC_FPU_SETUP                0x071c
#define PM4_FPU_CNTL                    0x0720
#define PM4_VC_FORMAT                   0x0724
#define PM4_VC_CNTL                     0x0728
#define PM4_VC_I01                      0x072c
#define PM4_VC_VLOFF                    0x0730
#define PM4_VC_VLSIZE                   0x0734
#define PM4_IW_INDOFF                   0x0738
#define PM4_IW_INDSIZE                  0x073c
#define PM4_FPU_FPX0                    0x0740
#define PM4_FPU_FPY0                    0x0744
#define PM4_FPU_FPX1                    0x0748
#define PM4_FPU_FPY1                    0x074c
#define PM4_FPU_FPX2                    0x0750
#define PM4_FPU_FPY2                    0x0754
#define PM4_FPU_FPY3                    0x0758
#define PM4_FPU_FPY4                    0x075c
#define PM4_FPU_FPY5                    0x0760
#define PM4_FPU_FPY6                    0x0764
#define PM4_FPU_FPR                     0x0768
#define PM4_FPU_FPG                     0x076c
#define PM4_FPU_FPB                     0x0770
#define PM4_FPU_FPA                     0x0774
#define PM4_FPU_INTXY0                  0x0780
#define PM4_FPU_INTXY1                  0x0784
#define PM4_FPU_INTXY2                  0x0788
#define PM4_FPU_INTARGB                 0x078c
#define PM4_FPU_FPTWICEAREA             0x0790
#define PM4_FPU_DMAJOR01                0x0794
#define PM4_FPU_DMAJOR12                0x0798
#define PM4_FPU_DMAJOR02                0x079c
#define PM4_FPU_STAT                    0x07a0
#define PM4_STAT                        0x07b8
#define PM4_TEST_CNTL                   0x07d0
#define PM4_MICROCODE_ADDR              0x07d4
#define PM4_MICROCODE_RADDR             0x07d8
#define PM4_MICROCODE_DATAH             0x07dc
#define PM4_MICROCODE_DATAL             0x07e0
#define PM4_CMDFIFO_ADDR                0x07e4
#define PM4_CMDFIFO_DATAH               0x07e8
#define PM4_CMDFIFO_DATAL               0x07ec
#define PM4_BUFFER_ADDR                 0x07f0
#define PM4_BUFFER_DATAH                0x07f4
#define PM4_BUFFER_DATAL                0x07f8
#define PM4_MICRO_CNTL                  0x07fc
#define CAP0_TRIG_CNTL                  0x0950
#define CAP1_TRIG_CNTL                  0x09c0

/******************************************************************************
 *                  GUI Block Memory Mapped Registers                         *
 *                     These registers are FIFOed.                            *
 *****************************************************************************/
#define PM4_FIFO_DATA_EVEN              0x1000
#define PM4_FIFO_DATA_ODD               0x1004

#define DST_OFFSET                      0x1404
#define DST_PITCH                       0x1408
#define DST_WIDTH                       0x140c
#define DST_HEIGHT                      0x1410
#define SRC_X                           0x1414
#define SRC_Y                           0x1418
#define DST_X                           0x141c
#define DST_Y                           0x1420
#define SRC_PITCH_OFFSET                0x1428
#define DST_PITCH_OFFSET                0x142c
#define SRC_Y_X                         0x1434
#define DST_Y_X                         0x1438
#define DST_HEIGHT_WIDTH                0x143c
#define DP_GUI_MASTER_CNTL              0x146c
#define BRUSH_SCALE                     0x1470
#define BRUSH_Y_X                       0x1474
#define DP_BRUSH_BKGD_CLR               0x1478
#define DP_BRUSH_FRGD_CLR               0x147c
#define DST_WIDTH_X                     0x1588
#define DST_HEIGHT_WIDTH_8              0x158c
#define SRC_X_Y                         0x1590
#define DST_X_Y                         0x1594
#define DST_WIDTH_HEIGHT                0x1598
#define DST_WIDTH_X_INCY                0x159c
#define DST_HEIGHT_Y                    0x15a0
#define DST_X_SUB                       0x15a4
#define DST_Y_SUB                       0x15a8
#define SRC_OFFSET                      0x15ac
#define SRC_PITCH                       0x15b0
#define DST_HEIGHT_WIDTH_BW             0x15b4
#define CLR_CMP_CNTL                    0x15c0
#define CLR_CMP_CLR_SRC                 0x15c4
#define CLR_CMP_CLR_DST                 0x15c8
#define CLR_CMP_MASK                    0x15cc
#define DP_SRC_FRGD_CLR                 0x15d8
#define DP_SRC_BKGD_CLR                 0x15dc
#define DST_BRES_ERR                    0x1628
#define DST_BRES_INC                    0x162c
#define DST_BRES_DEC                    0x1630
#define DST_BRES_LNTH                   0x1634
#define DST_BRES_LNTH_SUB               0x1638
#define SC_LEFT                         0x1640
#define SC_RIGHT                        0x1644
#define SC_TOP                          0x1648
#define SC_BOTTOM                       0x164c
#define SRC_SC_RIGHT                    0x1654
#define SRC_SC_BOTTOM                   0x165c
#define GUI_DEBUG0                      0x16a0
#define GUI_DEBUG1                      0x16a4
#define GUI_TIMEOUT                     0x16b0
#define GUI_TIMEOUT0                    0x16b4
#define GUI_TIMEOUT1                    0x16b8
#define GUI_PROBE                       0x16bc
#define DP_CNTL                         0x16c0
#define DP_DATATYPE                     0x16c4
#define DP_MIX                          0x16c8
#define DP_WRITE_MASK                   0x16cc
#define DP_CNTL_XDIR_YDIR_YMAJOR        0x16d0
#define DEFAULT_OFFSET                  0x16e0
#define DEFAULT_PITCH                   0x16e4
#define DEFAULT_SC_BOTTOM_RIGHT         0x16e8
#define SC_TOP_LEFT                     0x16ec
#define SC_BOTTOM_RIGHT                 0x16f0
#define SRC_SC_BOTTOM_RIGHT             0x16f4
#define WAIT_UNTIL                      0x1720
#define CACHE_CNTL                      0x1724
#define GUI_STAT                        0x1740
#define PC_GUI_MODE                     0x1744
#define PC_GUI_CTLSTAT                  0x1748
#define PC_DEBUG_MODE                   0x1760
#define BRES_DST_ERR_DEC                0x1780
#define TRAIL_BRES_T12_ERR_DEC          0x1784
#define TRAIL_BRES_T12_INC              0x1788
#define DP_T12_CNTL                     0x178c
#define DST_BRES_T1_LNTH                0x1790
#define DST_BRES_T2_LNTH                0x1794
#define SCALE_SRC_HEIGHT_WIDTH          0x1994
#define SCALE_OFFSET_0                  0x1998
#define SCALE_PITCH                     0x199c
#define SCALE_X_INC                     0x19a0
#define SCALE_Y_INC                     0x19a4
#define SCALE_HACC                      0x19a8
#define SCALE_VACC                      0x19ac
#define SCALE_DST_X_Y                   0x19b0
#define SCALE_DST_HEIGHT_WIDTH          0x19b4
#define SCALE_3D_CNTL                   0x1a00
#define SCALE_3D_DATATYPE               0x1a20
#define SETUP_CNTL                      0x1bc4
#define SOLID_COLOR                     0x1bc8
#define WINDOW_XY_OFFSET                0x1bcc
#define DRAW_LINE_POINT                 0x1bd0
#define SETUP_CNTL_PM4                  0x1bd4
#define DST_PITCH_OFFSET_C              0x1c80
#define DP_GUI_MASTER_CNTL_C            0x1c84
#define SC_TOP_LEFT_C                   0x1c88
#define SC_BOTTOM_RIGHT_C               0x1c8c

#define CLR_CMP_MASK_3D                 0x1A28
#define MISC_3D_STATE_CNTL_REG          0x1CA0
#define MC_SRC1_CNTL                    0x19D8
#define TEX_CNTL                        0x1800

/* CONSTANTS */
#define ENG_3D_BUSY                     0x02000000
#define GUI_ACTIVE                      0x80000000


#define ENGINE_IDLE                     0x0

#define PLL_WR_EN                       0x00000080

#define CLK_PIN_CNTL                    0x0001
#define PPLL_CNTL                       0x0002
#define PPLL_REF_DIV                    0x0003
#define PPLL_DIV_0                      0x0004
#define PPLL_DIV_1                      0x0005
#define PPLL_DIV_2                      0x0006
#define PPLL_DIV_3                      0x0007
#define VCLK_ECP_CNTL                   0x0008
#define HTOTAL_CNTL                     0x0009
#define X_MPLL_REF_FB_DIV               0x000a
#define XPLL_CNTL                       0x000b
#define XDLL_CNTL                       0x000c
#define XCLK_CNTL                       0x000d
#define MPLL_CNTL                       0x000e
#define MCLK_CNTL                       0x000f
#define AGP_PLL_CNTL                    0x0010
#define FCP_CNTL                        0x0012
#define PLL_TEST_CNTL                   0x0013

#define PPLL_RESET                      0x01
#define PPLL_ATOMIC_UPDATE_EN           0x10000
#define PPLL_VGA_ATOMIC_UPDATE_EN       0x20000
#define PPLL_REF_DIV_MASK               0x3FF
#define PPLL_FB3_DIV_MASK               0x7FF
#define PPLL_POST3_DIV_MASK             0x70000
#define PPLL_ATOMIC_UPDATE_R            0x8000
#define PPLL_ATOMIC_UPDATE_W            0x8000
#define MEM_CFG_TYPE_MASK               0x3
#define XCLK_SRC_SEL_MASK               0x7
#define XPLL_FB_DIV_MASK                0xFF00
#define X_MPLL_REF_DIV_MASK             0xFF

/* CRTC control values (CRTC_GEN_CNTL) */
#define CRTC_CSYNC_EN                   0x00000010

#define CRTC_PIX_WIDTH_MASK             0x00000700
#define CRTC_PIX_WIDTH_4BPP             0x00000100
#define CRTC_PIX_WIDTH_8BPP             0x00000200
#define CRTC_PIX_WIDTH_15BPP            0x00000300
#define CRTC_PIX_WIDTH_16BPP            0x00000400
#define CRTC_PIX_WIDTH_24BPP            0x00000500
#define CRTC_PIX_WIDTH_32BPP            0x00000600

/* DAC_CNTL bit constants */
#define DAC_8BIT_EN                     0x00000100
#define DAC_MASK                        0xFF000000
#define DAC_BLANKING                    0x00000004
#define DAC_RANGE_CNTL                  0x00000003
#define DAC_RANGE_CNTL                  0x00000003
#define DAC_PALETTE_ACCESS_CNTL         0x00000020
#define DAC_PDWN                        0x00008000

/* GEN_RESET_CNTL bit constants */
#define SOFT_RESET_GUI                  0x00000001
#define SOFT_RESET_VCLK                 0x00000100
#define SOFT_RESET_PCLK                 0x00000200
#define SOFT_RESET_ECP                  0x00000400
#define SOFT_RESET_DISPENG_XCLK         0x00000800

/* PC_GUI_CTLSTAT bit constants */
#define PC_BUSY_INIT                    0x10000000
#define PC_BUSY_GUI                     0x20000000
#define PC_BUSY_NGUI                    0x40000000
#define PC_BUSY                         0x80000000

#define BUS_MASTER_DIS                  0x00000040
#define PM4_BUFFER_CNTL_NONPM4          0x00000000

/* DP_DATATYPE bit constants */
#define DST_8BPP                        0x00000002
#define DST_15BPP                       0x00000003
#define DST_16BPP                       0x00000004
#define DST_24BPP                       0x00000005
#define DST_32BPP                       0x00000006
#define DST_8BPP_RGB332                 0x00000007
#define DST_8BPP_Y8                     0x00000008
#define DST_8BPP_RGB8                   0x00000009
#define DST_16BPP_VYUY422               0x0000000b
#define DST_16BPP_YVYU422               0x0000000c
#define DST_32BPP_AYUV444               0x0000000e
#define DST_16BPP_ARGB4444              0x0000000f
#define BRUSH_8x8MONO                   0x00000000
#define BRUSH_8x8MONO_LBKGD             0x00000100
#define BRUSH_8x1MONO                   0x00000200
#define BRUSH_8x1MONO_LBKGD             0x00000300
#define BRUSH_1x8MONO                   0x00000400
#define BRUSH_1x8MONO_LBKGD             0x00000500
#define BRUSH_32x1MONO                  0x00000600
#define BRUSH_32x1MONO_LBKGD            0x00000700
#define BRUSH_32x32MONO                 0x00000800
#define BRUSH_32x32MONO_LBKGD           0x00000900
#define BRUSH_8x8COLOR                  0x00000a00
#define BRUSH_8x1COLOR                  0x00000b00
#define BRUSH_1x8COLOR                  0x00000c00
#define BRUSH_SOLIDCOLOR                0x00000d00
#define SRC_MONO                        0x00000000
#define SRC_MONO_LBKGD                  0x00010000
#define SRC_DSTCOLOR                    0x00030000
#define BYTE_ORDER_MSB_TO_LSB           0x00000000
#define BYTE_ORDER_LSB_TO_MSB           0x40000000
#define DP_CONVERSION_TEMP              0x80000000

/* DP_GUI_MASTER_CNTL bit constants */
#define GMC_SRC_PITCH_OFFSET_DEFAULT    0x00000000
#define GMC_DST_PITCH_OFFSET_DEFAULT    0x00000000
#define GMC_SRC_CLIP_DEFAULT            0x00000000
#define GMC_DST_CLIP_DEFAULT            0x00000000
#define GMC_BRUSH_SOLIDCOLOR            0x000000d0
#define GMC_SRC_DSTCOLOR                0x00003000
#define GMC_BYTE_ORDER_MSB_TO_LSB       0x00000000
#define GMC_DP_SRC_RECT                 0x02000000
#define GMC_3D_FCN_EN_CLR               0x00000000
#define GMC_AUX_CLIP_CLEAR              0x20000000
#define GMC_DST_CLR_CMP_FCN_CLEAR       0x10000000
#define GMC_WRITE_MASK_SET              0x40000000
#define GMC_DP_CONVERSION_TEMP_6500     0x00000000

/* DP_GUI_MASTER_CNTL ROP3 named constants */
#define ROP3_PATCOPY                    0x00f00000
#define ROP3_SRCCOPY                    0x00cc0000

#define SRC_DSTCOLOR                    0x00030000

/* DP_CNTL bit constants */
#define DST_X_RIGHT_TO_LEFT             0x00000000
#define DST_X_LEFT_TO_RIGHT             0x00000001
#define DST_Y_BOTTOM_TO_TOP             0x00000000
#define DST_Y_TOP_TO_BOTTOM             0x00000002
#define DST_X_MAJOR                     0x00000000
#define DST_Y_MAJOR                     0x00000004
#define DST_X_TILE                      0x00000008
#define DST_Y_TILE                      0x00000010
#define DST_LAST_PEL                    0x00000020
#define DST_TRAIL_X_RIGHT_TO_LEFT       0x00000000
#define DST_TRAIL_X_LEFT_TO_RIGHT       0x00000040
#define DST_TRAP_FILL_RIGHT_TO_LEFT     0x00000000
#define DST_TRAP_FILL_LEFT_TO_RIGHT     0x00000080
#define DST_BRES_SIGN                   0x00000100
#define DST_HOST_BIG_ENDIAN_EN          0x00000200
#define DST_POLYLINE_NONLAST            0x00008000
#define DST_RASTER_STALL                0x00010000
#define DST_POLY_EDGE                   0x00040000

/* DP_MIX bit constants */
#define DP_SRC_RECT                     0x00000200
#define DP_SRC_HOST                     0x00000300
#define DP_SRC_HOST_BYTEALIGN           0x00000400

/* LVDS_GEN_CNTL constants */
#define LVDS_BL_MOD_LEVEL_MASK          0x0000ff00
#define LVDS_BL_MOD_LEVEL_SHIFT         0x8
#define LVDS_BL_MOD_EN                  0x00010000
#define LVDS_DIGION                     0x00040000
#define LVDS_BLON                       0x00080000


/* from the ati128ddk */

#define FOG_3D_TABLE_START              0x1810
#define FOG_3D_TABLE_END                0x1814
#define FOG_3D_TABLE_DENSITY            0x181c

#define FOG_TABLE_INDEX                 0x1a14
#define FOG_TABLE_DATA                  0x1a18

/* MISC_3D_STATE */
#define MISC_3D_STATE_SCALE_3D_FN_NOP                         (0x00000000 << 8)
#define MISC_3D_STATE_SCALE_3D_FN_SCALE                       (0x00000001 << 8)
#define MISC_3D_STATE_SCALE_3D_FN_TMAP_SHADE                  (0x00000002 << 8)
#define MISC_3D_STATE_SCALE_PIX_REP_BLEND                     (0x00000000 << 10)
#define MISC_3D_STATE_SCALE_PIX_REP_REPLICATE                 (0x00000001 << 10)
#define MISC_3D_STATE_ALPHA_COMB_FNC_ADD_CLAMP                (0x00000000 << 12)
#define MISC_3D_STATE_ALPHA_COMB_FNC_ADD_NO_CLAMP             (0x00000001 << 12)
#define MISC_3D_STATE_ALPHA_COMB_FNC_SUB_SRC_DST_CLAMP        (0x00000002 << 12)
#define MISC_3D_STATE_ALPHA_COMB_FNC_SUB_SRC_DST_NO_CLAMP     (0x00000003 << 12)
#define MISC_3D_STATE_FOG_TABLE_EN_VERTEX_FOG                 (0x00000000 << 14)
#define MISC_3D_STATE_FOG_TABLE_EN_TABLE_FOG                  (0x00000001 << 14)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_ZERO                    (0x00000000 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_ONE                     (0x00000001 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_SRCCOLOR                (0x00000002 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_INVSRCCOLOR             (0x00000003 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_SRCALPHA                (0x00000004 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_INVSRCALPHA             (0x00000005 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_DESTALPHA               (0x00000006 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_INVDESTALPHA            (0x00000007 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_DESTCOLOR               (0x00000008 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_INVDESTCOLOR            (0x00000009 << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_SRCALPHASAT             (0x0000000a << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_BOTHSRCALPHA            (0x0000000b << 16)
#define MISC_3D_STATE_ALPHA_BLEND_SRC_BOTHINVSRCALPHA         (0x0000000c << 16)
#define MISC_3D_STATE_ALPHA_BLEND_DST_ZERO                    (0x00000000 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_ONE                     (0x00000001 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_SRCCOLOR                (0x00000002 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_INVSRCCOLOR             (0x00000003 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_SRCALPHA                (0x00000004 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_INVSRCALPHA             (0x00000005 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_DESTALPHA               (0x00000006 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_INVDESTALPHA            (0x00000007 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_DESTCOLOR               (0x00000008 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_INVDESTCOLOR            (0x00000009 << 20)
#define MISC_3D_STATE_ALPHA_BLEND_DST_SRCALPHASAT             (0x0000000a << 20)
#define MISC_3D_STATE_ALPHA_TEST_OP_NEVER                     (0x00000000 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_LESS                      (0x00000001 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_LESSEQUAL                 (0x00000002 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_EQUAL                     (0x00000003 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_GREATEREQUAL              (0x00000004 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_GREATER                   (0x00000005 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_NEQUAL                    (0x00000006 << 24)
#define MISC_3D_STATE_ALPHA_TEST_OP_ALWAYS                    (0x00000007 << 24)



/* Z_STEN_CNTL */
#define Z_STEN_CNTL_Z_PIX_WIDTH_16                            (0x00000000 <<  1)
#define Z_STEN_CNTL_Z_PIX_WIDTH_24                            (0x00000001 <<  1)
#define Z_STEN_CNTL_Z_PIX_WIDTH_32                            (0x00000002 <<  1)
#define Z_STEN_CNTL_Z_TEST_NEVER                              (0x00000000 <<  4)
#define Z_STEN_CNTL_Z_TEST_LESS                               (0x00000001 <<  4)
#define Z_STEN_CNTL_Z_TEST_LESSEQUAL                          (0x00000002 <<  4)
#define Z_STEN_CNTL_Z_TEST_EQUAL                              (0x00000003 <<  4)
#define Z_STEN_CNTL_Z_TEST_GREATEREQUAL                       (0x00000004 <<  4)
#define Z_STEN_CNTL_Z_TEST_GREATER                            (0x00000005 <<  4)
#define Z_STEN_CNTL_Z_TEST_NEQUAL                             (0x00000006 <<  4)
#define Z_STEN_CNTL_Z_TEST_ALWAYS                             (0x00000007 <<  4)
#define Z_STEN_CNTL_STENCIL_TEST_NEVER                        (0x00000000 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_LESS                         (0x00000001 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_LESSEQUAL                    (0x00000002 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_EQUAL                        (0x00000003 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_GREATEREQUAL                 (0x00000004 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_GREATER                      (0x00000005 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_NEQUAL                       (0x00000006 << 12)
#define Z_STEN_CNTL_STENCIL_TEST_ALWAYS                       (0x00000007 << 12)
#define Z_STEN_CNTL_STENCIL_S_FAIL_OP_KEEP                    (0x00000000 << 16)
#define Z_STEN_CNTL_STENCIL_S_FAIL_OP_ZERO                    (0x00000001 << 16)
#define Z_STEN_CNTL_STENCIL_S_FAIL_OP_REPLACE                 (0x00000002 << 16)
#define Z_STEN_CNTL_STENCIL_S_FAIL_OP_INC                     (0x00000003 << 16)
#define Z_STEN_CNTL_STENCIL_S_FAIL_OP_DEC                     (0x00000004 << 16)
#define Z_STEN_CNTL_STENCIL_S_FAIL_OP_INV                     (0x00000005 << 16)
#define Z_STEN_CNTL_STENCIL_ZPASS_OP_KEEP                     (0x00000000 << 20)
#define Z_STEN_CNTL_STENCIL_ZPASS_OP_ZERO                     (0x00000001 << 20)
#define Z_STEN_CNTL_STENCIL_ZPASS_OP_REPLACE                  (0x00000002 << 20)
#define Z_STEN_CNTL_STENCIL_ZPASS_OP_INC                      (0x00000003 << 20)
#define Z_STEN_CNTL_STENCIL_ZPASS_OP_DEC                      (0x00000004 << 20)
#define Z_STEN_CNTL_STENCIL_ZPASS_OP_INV                      (0x00000005 << 20)
#define Z_STEN_CNTL_STENCIL_ZFAIL_OP_KEEP                     (0x00000000 << 24)
#define Z_STEN_CNTL_STENCIL_ZFAIL_OP_ZERO                     (0x00000001 << 24)
#define Z_STEN_CNTL_STENCIL_ZFAIL_OP_REPLACE                  (0x00000002 << 24)
#define Z_STEN_CNTL_STENCIL_ZFAIL_OP_INC                      (0x00000003 << 24)
#define Z_STEN_CNTL_STENCIL_ZFAIL_OP_DEC                      (0x00000004 << 24)
#define Z_STEN_CNTL_STENCIL_ZFAIL_OP_INV                      (0x00000005 << 24)

/* TEX_CNTL */
#define TEX_CNTL_Z_EN_OFF                                     (0x00000000 <<  0)
#define TEX_CNTL_Z_EN_ON                                      (0x00000001 <<  0)
#define TEX_CNTL_Z_MASK_DIS                                   (0x00000000 <<  1)
#define TEX_CNTL_Z_MASK_EN                                    (0x00000001 <<  1)
#define TEX_CNTL_STENCIL_EN_OFF                               (0x00000000 <<  3)
#define TEX_CNTL_STENCIL_EN_ON                                (0x00000001 <<  3)
#define TEX_CNTL_TEX_EN_SHADE                                 (0x00000000 <<  4)
#define TEX_CNTL_TEX_EN_TMAP                                  (0x00000001 <<  4)
#define TEX_CNTL_SECONDARY_TEX_EN_OFF                         (0x00000000 <<  5)
#define TEX_CNTL_SECONDARY_TEX_EN_ON                          (0x00000001 <<  5)
#define TEX_CNTL_FOG_EN_OFF                                   (0x00000000 <<  7)
#define TEX_CNTL_FOG_EN_ON                                    (0x00000001 <<  7)
#define TEX_CNTL_DITHRE_EN_OFF                                (0x00000000 <<  8)
#define TEX_CNTL_DITHRE_EN_ON                                 (0x00000001 <<  8)
#define TEX_CNTL_ALPHA_EN_OFF                                 (0x00000000 <<  9)
#define TEX_CNTL_ALPHA_EN_ON                                  (0x00000001 <<  9)
#define TEX_CNTL_ALPHA_TEST_EN_OFF                            (0x00000000 << 10)
#define TEX_CNTL_ALPHA_TEST_EN_ON                             (0x00000001 << 10)
#define TEX_CNTL_SPEC_LIGHT_EN_OFF                            (0x00000000 << 11)
#define TEX_CNTL_SPEC_LIGHT_EN_ON                             (0x00000001 << 11)
#define TEX_CNTL_TEX_CHROMA_KEY_EN_OFF                        (0x00000000 << 12)
#define TEX_CNTL_TEX_CHROMA_KEY_EN_ON                         (0x00000001 << 12)
#define TEX_CNTL_AMASK_EN_OFF                                 (0x00000000 << 13)
#define TEX_CNTL_AMASK_EN_ON                                  (0x00000001 << 13)
#define TEX_CNTL_LIGHT_FN_DIS                                 (0x00000000 << 14)
#define TEX_CNTL_LIGHT_FN_COPY                                (0x00000001 << 14)
#define TEX_CNTL_LIGHT_FN_MODULATE                            (0x00000002 << 14)
#define TEX_CNTL_LIGHT_FN_ADD                                 (0x00000003 << 14)
#define TEX_CNTL_LIGHT_FN_BLEND_CONSTANT                      (0x00000004 << 14)
#define TEX_CNTL_LIGHT_FN_BLEND_TEXTURE                       (0x00000005 << 14)
#define TEX_CNTL_LIGHT_FN_BLEND_VERTEX                        (0x00000006 << 14)
#define TEX_CNTL_LIGHT_FN_BLEND_CONST_COLOR                   (0x00000007 << 14)
#define TEX_CNTL_ALPHA_LIGHT_FN_DIS                           (0x00000000 << 18)
#define TEX_CNTL_ALPHA_LIGHT_FN_COPY                          (0x00000001 << 18)
#define TEX_CNTL_ALPHA_LIGHT_FN_MODULATE                      (0x00000002 << 18)
#define TEX_CNTL_ALPHA_LIGHT_FN_ADD                           (0x00000003 << 18)
//#define TEX_CNTL_ANTI_ALIAS_FN
#define TEX_CNTL_TEX_CACHE_FLUSH_OFF                          (0x00000000 << 23)
#define TEX_CNTL_TEX_CACHE_FLUSH_ON                           (0x00000001 << 23)
//#define TEX_CNTL_LOD_BIAS


/* PRIM_TEX_CNTL */
#define PRIM_TEX_CNTL_PRIM_MIN_BLEND_FN_NEAREST               (0x00000000 <<  0)
#define PRIM_TEX_CNTL_PRIM_MIN_BLEND_FN_LINEAR                (0x00000001 <<  0)
#define PRIM_TEX_CNTL_PRIM_MIN_BLEND_FN_MIPNEAREST            (0x00000002 <<  0)
#define PRIM_TEX_CNTL_PRIM_MIN_BLEND_FN_MIPLINEAR             (0x00000003 <<  0)
#define PRIM_TEX_CNTL_PRIM_MIN_BLEND_FN_LINEARMIPNEAREST      (0x00000004 <<  0)
#define PRIM_TEX_CNTL_PRIM_MIN_BLEND_FN_LINEARMIPLINEAR       (0x00000005 <<  0)
#define PRIM_TEX_CNTL_PRIM_MAG_BLEND_FN_NEAREST               (0x00000000 <<  4)
#define PRIM_TEX_CNTL_PRIM_MAG_BLEND_FN_LINEAR                (0x00000001 <<  4)
#define PRIM_TEX_CNTL_MIP_MAP_DIS_OFF                         (0x00000000 <<  7)
#define PRIM_TEX_CNTL_MIP_MAP_DIS_ON                          (0x00000001 <<  7)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_S_WRAP              (0x00000000 <<  8)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_S_MIRROR            (0x00000001 <<  8)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_S_CLAMP             (0x00000002 <<  8)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_S_BORDER_COLOR      (0x00000003 <<  8)
#define PRIM_TEX_CNTL_PRIM_TEX_WRAP_S_OFF                     (0x00000000 << 10)
#define PRIM_TEX_CNTL_PRIM_TEX_WRAP_S_ON                      (0x00000001 << 10)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_T_WRAP              (0x00000000 << 11)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_T_MIRROR            (0x00000001 << 11)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_T_CLAMP             (0x00000002 << 11)
#define PRIM_TEX_CNTL_PRIM_TEX_CLAMP_MODE_T_BORDER_COLOR      (0x00000003 << 11)
#define PRIM_TEX_CNTL_PRIM_TEX_WRAP_T_OFF                     (0x00000000 << 13)
#define PRIM_TEX_CNTL_PRIM_TEX_WRAP_T_ON                      (0x00000001 << 13)
#define PRIM_TEX_CNTL_PRIM_TEX_PERSPECTIVE_DIS_OFF            (0x00000000 << 14)
#define PRIM_TEX_CNTL_PRIM_TEX_PERSPECTIVE_DIS_ON             (0x00000001 << 14)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_VQ                        (0x00000000 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_CI4                       (0x00000001 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_CI8                       (0x00000002 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_ARGB1555                  (0x00000003 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_RGB565                    (0x00000004 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_RGB888                    (0x00000005 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_ARGB8888                  (0x00000006 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_RGB332                    (0x00000007 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_Y8                        (0x00000008 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_RGB8                      (0x00000009 << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_CI16                      (0x0000000a << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_YUV422                    (0x0000000b << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_YUV422_2                  (0x0000000c << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_AYUV444                   (0x0000000d << 16)
#define PRIM_TEX_CNTL_PRIM_DATATYPE_ARGB4444                  (0x0000000e << 16)
//#define PRIM_TEX_CNTL_PRIM_PALETTE_OFF_
//#define PRIM_TEX_CNTL_PRIM_PSEUDOCOLOR_DATATYPE_


/* SETP_CNTL */
#define SETUP_CNTL_DONT_START_TRI_OFF                         (0x00000000 <<  0)
#define SETUP_CNTL_DONT_START_TRI_ON                          (0x00000001 <<  0)
#define SETUP_CNTL_Z_BIAS                                     (0x00000000 <<  1)
#define SETUP_CNTL_DONT_START_ANY_OFF                         (0x00000000 <<  2)
#define SETUP_CNTL_DONT_START_ANY_ON                          (0x00000001 <<  2)
#define SETUP_CNTL_COLOR_FNC_SOLID_COLOR                      (0x00000000 <<  3)
#define SETUP_CNTL_COLOR_FNC_FLAT_VERT_1                      (0x00000001 <<  3)
#define SETUP_CNTL_COLOR_FNC_FLAT_VERT_2                      (0x00000002 <<  3)
#define SETUP_CNTL_COLOR_FNC_FLAT_VERT_3                      (0x00000003 <<  3)
#define SETUP_CNTL_COLOR_FNC_GOURAUD                          (0x00000004 <<  3)
#define SETUP_CNTL_PRIM_TYPE_SELECT_TRI                       (0x00000000 <<  7)
#define SETUP_CNTL_PRIM_TYPE_SELECT_LINE                      (0x00000001 <<  7)
#define SETUP_CNTL_PRIM_TYPE_SELECT_POINT                     (0x00000002 <<  7)
#define SETUP_CNTL_PRIM_TYPE_SELECT_POLY_EDGE                 (0x00000003 <<  7)
#define SETUP_CNTL_TEXTURE_ST_FORMAT_MULT_W                   (0x00000000 <<  9)
#define SETUP_CNTL_TEXTURE_ST_FORMAT_DIRECT                   (0x00000001 <<  9)
#define SETUP_CNTL_STARTING_VERTEX_SELECT_1                   (0x00000001 << 14)
#define SETUP_CNTL_STARTING_VERTEX_SELECT_2                   (0x00000002 << 14)
#define SETUP_CNTL_STARTING_VERTEX_SELECT_3                   (0x00000003 << 14)
#define SETUP_CNTL_ENDING_VERTEX_SELECT_1                     (0x00000001 << 16)
#define SETUP_CNTL_ENDING_VERTEX_SELECT_2                     (0x00000002 << 16)
#define SETUP_CNTL_ENDING_VERTEX_SELECT_3                     (0x00000003 << 16)
#define SETUP_CNTL_SU_POLY_LINE_LAST                          (0x00000000 << 18)
#define SETUP_CNTL_SU_POLY_LINE_NOT_LAST                      (0x00000001 << 18)
#define SETUP_CNTL_SUB_PIX_AMOUNT_2BITS                       (0x00000000 << 19)
#define SETUP_CNTL_SUB_PIX_AMOUNT_4BITS                       (0x00000001 << 19)
//#define SETUP_CNTL_SU_POLY_EDGE
//#define SETUP_CNTL_SU_EDGE_DST_Y_MAJOR
//#define SETUP_CNTL_SU_STATE
#define SETUP_CNTL_SET_UP_CONTINUE                            (0x00000001 << 31)

/* PM4_VC_FPU_SETUP */
#define PM4_VC_FPU_SETUP_FRONT_DIR_CW                         (0x00000000 <<  0)
#define PM4_VC_FPU_SETUP_FRONT_DIR_CCW                        (0x00000001 <<  0)
#define PM4_VC_FPU_SETUP_BACKFACE_CULLING_FN_CULL             (0x00000000 <<  1)
#define PM4_VC_FPU_SETUP_BACKFACE_CULLING_FN_POINT            (0x00000001 <<  1)
#define PM4_VC_FPU_SETUP_BACKFACE_CULLING_FN_LINE             (0x00000002 <<  1)
#define PM4_VC_FPU_SETUP_BACKFACE_CULLING_FN_REV_SOLID        (0x00000003 <<  1)
#define PM4_VC_FPU_SETUP_FRONTFACE_CULLING_FN_CULL            (0x00000000 <<  3)
#define PM4_VC_FPU_SETUP_FRONTFACE_CULLING_FN_POINT           (0x00000001 <<  3)
#define PM4_VC_FPU_SETUP_FRONTFACE_CULLING_FN_LINE            (0x00000002 <<  3)
#define PM4_VC_FPU_SETUP_FRONTFACE_CULLING_FN_REV_SOLID       (0x00000003 <<  3)
#define PM4_VC_FPU_SETUP_PM4_COLOR_FCN_SOLID                  (0x00000000 <<  5)
#define PM4_VC_FPU_SETUP_PM4_COLOR_FCN_FLAT                   (0x00000001 <<  5)
#define PM4_VC_FPU_SETUP_PM4_COLOR_FCN_GOURAUD                (0x00000002 <<  5)
#define PM4_VC_FPU_SETUP_PM4_COLOR_FCN_GOURAUD2               (0x00000003 <<  5)
#define PM4_VC_FPU_SETUP_PM4_SUB_PIX_AMOUNT_2BITS             (0x00000000 <<  7)
#define PM4_VC_FPU_SETUP_PM4_SUB_PIX_AMOUNT_4BITS             (0x00000001 <<  7)
#define PM4_VC_FPU_SETUP_FPU_MODE_2D                          (0x00000000 <<  8)
#define PM4_VC_FPU_SETUP_FPU_MODE_3D                          (0x00000001 <<  8)
#define PM4_VC_FPU_SETUP_TRAP_DISABLE_OFF                     (0x00000000 <<  9)
#define PM4_VC_FPU_SETUP_TRAP_DISABLE_ON                      (0x00000001 <<  9)
#define PM4_VC_FPU_SETUP_EDGE_ANTIALIAS_OFF                   (0x00000000 << 10)
#define PM4_VC_FPU_SETUP_EDGE_ANTIALIAS_ON                    (0x00000001 << 10)
#define PM4_VC_FPU_SETUP_SUPERSAMPLE_OFF                      (0x00000000 << 11)
#define PM4_VC_FPU_SETUP_SUPERSAMPLE_ON                       (0x00000001 << 11)
#define PM4_VC_FPU_SETUP_XFACTOR_2                            (0x00000000 << 12)
#define PM4_VC_FPU_SETUP_XFACTOR_4                            (0x00000001 << 12)
#define PM4_VC_FPU_SETUP_YFACTOR_2                            (0x00000000 << 13)
#define PM4_VC_FPU_SETUP_YFACTOR_4                            (0x00000001 << 13)
#define PM4_VC_FPU_SETUP_FLAT_SHADE_VERTEX_D3D                (0x00000000 << 14)
#define PM4_VC_FPU_SETUP_FLAT_SHADE_VERTEX_OPENGL             (0x00000001 << 14)
#define PM4_VC_FPU_SETUP_FPU_ROUND_EN_OFF                     (0x00000000 << 15)
#define PM4_VC_FPU_SETUP_FPU_ROUND_EN_ON                      (0x00000001 << 15)
#define PM4_VC_FPU_SETUP_VC_WM_SEL_8DW                        (0x00000000 << 16)
#define PM4_VC_FPU_SETUP_VC_WM_SEL_16DW                       (0x00000001 << 16)
#define PM4_VC_FPU_SETUP_VC_WM_SEL_32DW                       (0x00000002 << 16)

/* SEC_TEX_CNTL */
#define SEC_TEX_CNTL_SEC_SRC_SEL_ST_0                         (0x00000000 <<  0)
#define SEC_TEX_CNTL_SEC_SRC_SEL_ST_1                         (0x00000001 <<  0)

/* [PRIM_ | SEC_] SEC_TEX_COMBINE_CNTL */
#define TEX_COMBINE_CNTL_COMB_FNC_DIS                         (0x00000000 << 0)
#define TEX_COMBINE_CNTL_COMB_FNC_COPY                        (0x00000001 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_COPY_INP                    (0x00000002 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_MODULATE                    (0x00000003 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_MODULATE2X                  (0x00000004 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_MODULATE4X                  (0x00000005 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_ADD                         (0x00000006 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_ADD_SIGNED                  (0x00000007 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_VERTEX                (0x00000008 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_TEXTURE               (0x00000009 <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_CONST                 (0x0000000a <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_PREMULT               (0x0000000b <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_PREV                  (0x0000000c <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_PREMULT_INV           (0x0000000d <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_ADD_SIGNED2X                (0x0000000e <<  0)
#define TEX_COMBINE_CNTL_COMB_FNC_BLEND_CONST_COLOR           (0x0000000f <<  0)
#define TEX_COMBINE_CNTL_COLOR_FACTOR_TEX                     (0x00000004 <<  4)
#define TEX_COMBINE_CNTL_COLOR_FACTOR_NTEX                    (0x00000005 <<  4)
#define TEX_COMBINE_CNTL_COLOR_FACTOR_ALPHA                   (0x00000006 <<  4)
#define TEX_COMBINE_CNTL_COLOR_FACTOR_NALPHA                  (0x00000007 <<  4)
#define TEX_COMBINE_CNTL_INPUT_FACTOR_CONST_COLOR             (0x00000002 << 10)
#define TEX_COMBINE_CNTL_INPUT_FACTOR_CONST_ALPHA             (0x00000003 << 10)
#define TEX_COMBINE_CNTL_INPUT_FACTOR_INT_COLOR               (0x00000004 << 10)
#define TEX_COMBINE_CNTL_INPUT_FACTOR_INT_ALPHA               (0x00000005 << 10)
#define TEX_COMBINE_CNTL_INPUT_FACTOR_PREV_COLOR              (0x00000008 << 10)
#define TEX_COMBINE_CNTL_INPUT_FACTOR_PREV_ALPHA              (0x00000009 << 10)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_DIS                   (0x00000000 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_COPY                  (0x00000001 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_COPY_INP              (0x00000002 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_MODULATE              (0x00000003 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_MODULATE2X            (0x00000004 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_MODULATE4X            (0x00000005 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_ADD                   (0x00000006 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_ADD_SIGNED            (0x00000007 << 14)
#define TEX_COMBINE_CNTL_COMB_FNC_ALPHA_ADD_SIGNED2X          (0x0000000e << 14)
#define TEX_COMBINE_CNTL_ALPHA_FACTOR_TEX_ALPHA               (0x00000006 << 18)
#define TEX_COMBINE_CNTL_ALPHA_FACTOR_NTEX_ALPHA              (0x00000007 << 18)
#define TEX_COMBINE_CNTL_INP_FACTOR_ALPHA_CONST_ALPHA         (0x00000001 << 25)
#define TEX_COMBINE_CNTL_INP_FACTOR_ALPHA_INT_ALPHA           (0x00000002 << 25)
#define TEX_COMBINE_CNTL_INP_FACTOR_ALPHA_PREV_ALPHA          (0x00000004 << 25)


/* SCALE_3D_CNTL */
#define SCALE_3D_CNTL_SCALE_DITHER_ERR_DIFF                   (0x00000000 <<  1)
#define SCALE_3D_CNTL_SCALE_DITHER_TABLE                      (0x00000001 <<  1)
#define SCALE_3D_CNTL_TEX_CACHE_SIZE_FULL                     (0x00000000 <<  2)
#define SCALE_3D_CNTL_TEX_CACHE_SIZE_HALF                     (0x00000001 <<  2)
#define SCALE_3D_CNTL_DITHER_INIT_CURR                        (0x00000000 <<  3)
#define SCALE_3D_CNTL_DITHER_INIT_RESET                       (0x00000001 <<  3)
#define SCALE_3D_CNTL_ROUND_EN_OFF                            (0x00000000 <<  4)
#define SCALE_3D_CNTL_ROUND_EN_ON                             (0x00000001 <<  4)
#define SCALE_3D_CNTL_TEX_CACHE_DIS_OFF                       (0x00000000 <<  5)
#define SCALE_3D_CNTL_TEX_CACHE_DIS_ON                        (0x00000001 <<  5)
#define SCALE_3D_CNTL_SCALE_3D_FN_NONE                        (0x00000000 <<  6)
#define SCALE_3D_CNTL_SCALE_3D_FN_SCALE                       (0x00000001 <<  6)
#define SCALE_3D_CNTL_SCALE_3D_FN_TMAP_SHADE                  (0x00000002 <<  6)
#define SCALE_3D_CNTL_SCALE_PIX_REP_BLEND                     (0x00000000 <<  8)
#define SCALE_3D_CNTL_SCALE_PIX_REP_REP                       (0x00000001 <<  8)
#define SCALE_3D_CNTL_TEX_CACHE_SPLIT_OFF                     (0x00000000 <<  9)
#define SCALE_3D_CNTL_TEX_CACHE_SPLIT_ON                      (0x00000001 <<  9)
#define SCALE_3D_CNTL_APPLE_YUV_MODE_OFF                      (0x00000000 << 10)
#define SCALE_3D_CNTL_APPLE_YUV_MODE_ON                       (0x00000001 << 10)
#define SCALE_3D_CNTL_TEX_CACHE_PAL_MODE_OFF                  (0x00000000 << 11)
#define SCALE_3D_CNTL_TEX_CACHE_PAL_MODE_ON                   (0x00000001 << 11)
#define SCALE_3D_CNTL_ALPHA_COMB_FNC_ADD_CLAMP                (0x00000000 << 12)
#define SCALE_3D_CNTL_ALPHA_COMB_FNC_ADD_NCLAMP               (0x00000001 << 12)
#define SCALE_3D_CNTL_ALPHA_COMB_FNC_SUB_DST_SRC_CLAMP        (0x00000002 << 12)
#define SCALE_3D_CNTL_ALPHA_COMB_FNC_SUB_DST_SRC_NCLAMP       (0x00000003 << 12)
#define SCALE_3D_CNTL_FOG_TABLE_EN_OFF                        (0x00000000 << 14)
#define SCALE_3D_CNTL_FOG_TABLE_EN_ON                         (0x00000001 << 14)
#define SCALE_3D_CNTL_SIGNED_DST_CLAMP_OFF                    (0x00000000 << 15)
#define SCALE_3D_CNTL_SIGNED_DST_CLAMP_ON                     (0x00000001 << 15)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_ZERO                    (0x00000000 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_ONE                     (0x00000001 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_SRCCOLOR                (0x00000002 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_INVSRCCOLOR             (0x00000003 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_SRCALPHA                (0x00000004 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_INVSRCALPHA             (0x00000005 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_DSTALPHA                (0x00000006 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_INVDSTALPHA             (0x00000007 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_DSTCOLOR                (0x00000008 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_INVDSTCOLOR             (0x00000009 << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_SAT                     (0x0000000a << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_BLEND                   (0x0000000b << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_SRC_INVBLEND                (0x0000000c << 16)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_ZERO                    (0x00000000 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_ONE                     (0x00000001 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_SRCCOLOR                (0x00000002 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_INVSRCCOLOR             (0x00000003 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_SRCALPHA                (0x00000004 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_INVSRCALPHA             (0x00000005 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_DSTALPHA                (0x00000006 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_INVDSTALPHA             (0x00000007 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_DSTCOLOR                (0x00000008 << 20)
#define SCALE_3D_CNTL_ALPHA_BLEND_DST_INVDSTCOLOR             (0x00000009 << 20)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_NEVER                     (0x00000000 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_LESS                      (0x00000001 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_LESSEQUAL                 (0x00000002 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_EQUAL                     (0x00000003 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_GREATEREQUAL              (0x00000004 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_GREATER                   (0x00000005 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_NEQUAL                    (0x00000006 << 24)
#define SCALE_3D_CNTL_ALPHA_TEST_OP_ALWAYS                    (0x00000007 << 24)
#define SCALE_3D_CNTL_COMPOSITE_SHADOW_CMP_EQUAL              (0x00000000 << 28)
#define SCALE_3D_CNTL_COMPOSITE_SHADOW_CMP_NEQUAL             (0x00000001 << 28)
#define SCALE_3D_CNTL_COMPOSITE_SHADOW_EN_OFF                 (0x00000000 << 29)
#define SCALE_3D_CNTL_COMPOSITE_SHADOW_EN_ON                  (0x00000001 << 29)
#define SCALE_3D_CNTL_TEX_MAP_AEN_OFF                         (0x00000000 << 30)
#define SCALE_3D_CNTL_TEX_MAP_AEN_ON                          (0x00000001 << 30)
#define SCALE_3D_CNTL_TEX_CACHE_LINE_SIZE_8QW                 (0x00000000 << 31)
#define SCALE_3D_CNTL_TEX_CACHE_LINE_SIZE_4QW                 (0x00000001 << 31)




#define SCALE_3D_DATATYPE                          0x1a20
#define SETUP_CNTL                                 0x1bc4
#define SOLID_COLOR                                0x1bc8
#define WINDOW_XY_OFFSET                           0x1bcc
#define DRAW_LINE_POINT                            0x1bd0
#define SETUP_CNTL_PM4                             0x1bd4
#define DST_PITCH_OFFSET_C                         0x1c80
#define DP_GUI_MASTER_CNTL_C                       0x1c84
#define SC_TOP_LEFT_C                              0x1c88
#define SC_BOTTOM_RIGHT_C                          0x1c8c

#define Z_OFFSET_C                                 0x1c90
#define Z_PITCH_C                                  0x1c94
#define Z_STEN_CNTL_C                              0x1c98
#define TEX_CNTL_C                                 0x1c9c
#define TEXTURE_CLR_CMP_CLR_C                      0x1CA4
#define TEXTURE_CLR_CMP_MSK_C                      0x1CA8
#define FOG_COLOR_C                                0x1CAC
#define PRIM_TEX_CNTL_C                            0x1CB0
#define PRIM_TEX_COMBINE_CNTL_C                    0x1CB4
#define TEX_SIZE_PITCH_C                           0x1CB8
#define PRIM_TEX_0_OFFSET_C                        0x1CBC
#define PRIM_TEX_1_OFFSET_C                        0x1CC0
#define PRIM_TEX_2_OFFSET_C                        0x1CC4
#define PRIM_TEX_3_OFFSET_C                        0x1CC8
#define PRIM_TEX_4_OFFSET_C                        0x1CCC
#define PRIM_TEX_5_OFFSET_C                        0x1CD0
#define PRIM_TEX_6_OFFSET_C                        0x1CD4
#define PRIM_TEX_7_OFFSET_C                        0x1CD8
#define PRIM_TEX_8_OFFSET_C                        0x1CDC
#define PRIM_TEX_9_OFFSET_C                        0x1CE0
#define PRIM_TEX_10_OFFSET_C                       0x1CE4
#define SEC_TEX_CNTL_C                             0x1D00
#define SEC_TEX_COMBINE_CNTL_C                     0x1D04
#define SEC_TEX_0_OFFSET_C                         0x1D08
#define SEC_TEX_1_OFFSET_C                         0x1D0C
#define SEC_TEX_2_OFFSET_C                         0x1D10
#define SEC_TEX_3_OFFSET_C                         0x1D14
#define SEC_TEX_4_OFFSET_C                         0x1D18
#define SEC_TEX_5_OFFSET_C                         0x1D1C
#define SEC_TEX_6_OFFSET_C                         0x1D20
#define SEC_TEX_7_OFFSET_C                         0x1D24
#define SEC_TEX_8_OFFSET_C                         0x1D28
#define SEC_TEX_9_OFFSET_C                         0x1D2C
#define SEC_TEX_10_OFFSET_C                        0x1D30
#define CONSTANT_COLOR_C                           0x1D34
#define PRIM_TEXTURE_BORDER_COLOR_C                0x1D38
#define SEC_TEXTURE_BORDER_COLOR_C                 0x1D3C
#define STEN_REF_MASK_C                            0x1D40
#define PLANE_3D_MASK_C                            0x1D44

#define CLR_CMP_MASK_3D                            0x1A28
#define MC_SRC1_CNTL                               0x19D8
#define TEX_CNTL                                   0x1800
#define CLR_CMP_CLR_3D 0x1A24


/* first overlay unit (there is only one) */

#define OV0_Y_X_START                0x0400
#define OV0_Y_X_END                  0x0404
#define OV0_EXCLUSIVE_HORZ           0x0408
#       define  R128_EXCL_HORZ_START_MASK        0x000000ff
#       define  R128_EXCL_HORZ_END_MASK          0x0000ff00
#       define  R128_EXCL_HORZ_BACK_PORCH_MASK   0x00ff0000
#       define  R128_EXCL_HORZ_EXCLUSIVE_EN      0x80000000
#define OV0_EXCLUSIVE_VERT           0x040C
#       define  R128_EXCL_VERT_START_MASK        0x000003ff
#       define  R128_EXCL_VERT_END_MASK          0x03ff0000
#define OV0_REG_LOAD_CNTL            0x0410
#       define  R128_REG_LD_CTL_LOCK                 0x00000001L
#       define  R128_REG_LD_CTL_VBLANK_DURING_LOCK   0x00000002L
#       define  R128_REG_LD_CTL_STALL_GUI_UNTIL_FLIP 0x00000004L
#       define  R128_REG_LD_CTL_LOCK_READBACK        0x00000008L
#define OV0_SCALE_CNTL               0x0420
#       define  R128_SCALER_PIX_EXPAND           0x00000001L
#       define  R128_SCALER_Y2R_TEMP             0x00000002L
#       define  R128_SCALER_HORZ_PICK_NEAREST    0x00000003L
#       define  R128_SCALER_VERT_PICK_NEAREST    0x00000004L
#       define  R128_SCALER_SIGNED_UV            0x00000010L
#       define  R128_SCALER_GAMMA_SEL_MASK       0x00000060L
#       define  R128_SCALER_GAMMA_SEL_BRIGHT     0x00000000L
#       define  R128_SCALER_GAMMA_SEL_G22        0x00000020L
#       define  R128_SCALER_GAMMA_SEL_G18        0x00000040L
#       define  R128_SCALER_GAMMA_SEL_G14        0x00000060L
#       define  R128_SCALER_COMCORE_SHIFT_UP_ONE 0x00000080L
#       define  R128_SCALER_SURFAC_FORMAT        0x00000f00L
#       define  R128_SCALER_SOURCE_15BPP         0x00000300L
#       define  R128_SCALER_SOURCE_16BPP         0x00000400L
#       define  R128_SCALER_SOURCE_32BPP         0x00000600L
#       define  R128_SCALER_SOURCE_YUV9          0x00000900L
#       define  R128_SCALER_SOURCE_YUV12         0x00000A00L
#       define  R128_SCALER_SOURCE_VYUY422       0x00000B00L
#       define  R128_SCALER_SOURCE_YVYU422       0x00000C00L
#       define  R128_SCALER_SMART_SWITCH         0x00008000L
#       define  R128_SCALER_BURST_PER_PLANE      0x00ff0000L
#       define  R128_SCALER_DOUBLE_BUFFER        0x01000000L
#       define  R128_SCALER_DIS_LIMIT            0x08000000L
#       define  R128_SCALER_PRG_LOAD_START       0x10000000L
#       define  R128_SCALER_INT_EMU              0x20000000L
#       define  R128_SCALER_ENABLE               0x40000000L
#       define  R128_SCALER_SOFT_RESET           0x80000000L
#define OV0_V_INC                    0x0424
#define OV0_P1_V_ACCUM_INIT          0x0428
#       define  OV0_P1_MAX_LN_IN_PER_LN_OUT        0x00000003L
#       define  OV0_P1_V_ACCUM_INIT_MASK           0x01ff8000L
#define OV0_P23_V_ACCUM_INIT         0x042C
#define OV0_P1_BLANK_LINES_AT_TOP    0x0430
#       define  R128_P1_BLNK_LN_AT_TOP_M1_MASK   0x00000fffL
#       define  R128_P1_ACTIVE_LINES_M1          0x0fff0000L
#define OV0_P23_BLANK_LINES_AT_TOP   0x0434
#       define  R128_P23_BLNK_LN_AT_TOP_M1_MASK  0x000007ffL
#       define  R128_P23_ACTIVE_LINES_M1         0x07ff0000L
#define OV0_VID_BUF0_BASE_ADRS       0x0440
#       define  R128_VIF_BUF0_PITCH_SEL          0x00000001L
#       define  R128_VIF_BUF0_TILE_ADRS          0x00000002L
#       define  R128_VIF_BUF0_BASE_ADRS_MASK     0x03fffff0L
#       define  R128_VIF_BUF0_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF1_BASE_ADRS       0x0444
#       define  R128_VIF_BUF1_PITCH_SEL          0x00000001L
#       define  R128_VIF_BUF1_TILE_ADRS          0x00000002L
#       define  R128_VIF_BUF1_BASE_ADRS_MASK     0x03fffff0L
#       define  R128_VIF_BUF1_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF2_BASE_ADRS       0x0448
#       define  R128_VIF_BUF2_PITCH_SEL          0x00000001L
#       define  R128_VIF_BUF2_TILE_ADRS          0x00000002L
#       define  R128_VIF_BUF2_BASE_ADRS_MASK     0x03fffff0L
#       define  R128_VIF_BUF2_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF3_BASE_ADRS       0x044C
#define OV0_VID_BUF4_BASE_ADRS       0x0450
#define OV0_VID_BUF5_BASE_ADRS       0x0454
#define OV0_VID_BUF_PITCH0_VALUE     0x0460
#define OV0_VID_BUF_PITCH1_VALUE     0x0464
#define OV0_AUTO_FLIP_CNTL           0x0470
#define OV0_DEINTERLACE_PATTERN      0x0474
#define OV0_H_INC                    0x0480
#define OV0_STEP_BY                  0x0484
#define OV0_P1_H_ACCUM_INIT          0x0488
#define OV0_P23_H_ACCUM_INIT         0x048C
#define OV0_P1_X_START_END           0x0494
#define OV0_P2_X_START_END           0x0498
#define OV0_P3_X_START_END           0x049C
#define OV0_FILTER_CNTL              0x04A0
#define OV0_FOUR_TAP_COEF_0          0x04B0
#define OV0_FOUR_TAP_COEF_1          0x04B4
#define OV0_FOUR_TAP_COEF_2          0x04B8
#define OV0_FOUR_TAP_COEF_3          0x04BC
#define OV0_FOUR_TAP_COEF_4          0x04C0
#define OV0_COLOR_CNTL               0x04E0
#define OV0_VIDEO_KEY_CLR            0x04E4
#define OV0_VIDEO_KEY_MSK            0x04E8
#define OV0_GRAPHICS_KEY_CLR         0x04EC
#define OV0_GRAPHICS_KEY_MSK         0x04F0
#define OV0_KEY_CNTL                 0x04F4
#       define  R128_VIDEO_KEY_FN_MASK           0x00000007L
#       define  R128_VIDEO_KEY_FN_FALSE          0x00000000L
#       define  R128_VIDEO_KEY_FN_TRUE           0x00000001L
#       define  R128_VIDEO_KEY_FN_EQ             0x00000004L
#       define  R128_VIDEO_KEY_FN_NE             0x00000005L
#       define  R128_GRAPHIC_KEY_FN_MASK         0x00000070L
#       define  R128_GRAPHIC_KEY_FN_FALSE        0x00000000L
#       define  R128_GRAPHIC_KEY_FN_TRUE         0x00000010L
#       define  R128_GRAPHIC_KEY_FN_EQ           0x00000040L
#       define  R128_GRAPHIC_KEY_FN_NE           0x00000050L
#       define  R128_CMP_MIX_MASK                0x00000100L
#       define  R128_CMP_MIX_OR                  0x00000000L
#       define  R128_CMP_MIX_AND                 0x00000100L
#define OV0_TEST                     0x04F8


/* added by DirectFB programmers */
#define CRTC_OFFSET_FLIP_CNTL                      0x00010000
#define MEM_ADDR_CONFIG                            0x0148

#endif