📄 mbx13ddef.h
字号:
/******************************************************************************
* Name : mbx13ddef.h
* Title : MBX1 3D Hardware defs.
* Author(s) : Imagination Technologies
* Created : 1st August 2003
*
* Copyright : 2003 by Imagination Technologies Limited.
* All rights reserved. No part of this software, either
* material or conceptual may be copied or distributed,
* transmitted, transcribed, stored in a retrieval system
* or translated into any human or computer language in any
* form by any means, electronic, mechanical, manual or
* other-wise, or disclosed to third parties without the
* express written permission of Imagination Technologies
* Limited, Unit 8, HomePark Industrial Estate,
* King's Langley, Hertfordshire, WD4 8LZ, U.K.
*
* Description : Hardware definitions for MBX1 3D stuff.
*
* Platform : Generic
*
* Notes : formerly mbx13ddef.h mks rev 1.9
*
* Modifications:-
* $Log: mbx13ddef.h $
*
* --- Revision Logs Removed ---
*
*
******************************************************************************/
#if !defined ( __MBX13DDEFS_H__)
#define __MBX13DDEFS_H__
/*****************************************************************************
MBX1 Register addresses
*****************************************************************************/
/*
* Base address's..
*/
#define MBX1_GLOBREG_RGNBASE 0x0608
#define MBX1_GLOBREG_OBJBASE 0x060C
#define MBX1_GLOBREG_ZLOADSTORE 0x0610
#define MBX1_GLOBREG_FPUPERPVAL 0x0614
#define MBX1_GLOBREG_FPUCULLVAL 0x0618
#define MBX1_GLOBREG_3DPIXSAMP 0x061C
#define MBX1_GLOBREG_CK1 0x0624
#define MBX1_GLOBREG_CK2 0x0628
#define MBX1_GLOBREG_CKUV 0x062C
#define MBX1_GLOBREG_CKMASK 0x0630
#define MBX1_GLOBREG_FOGCOLTABLE 0x0638
#define MBX1_GLOBREG_FOGCOLVERT 0x063C
#define MBX1_GLOBREG_VERTFOGSTATUS 0x0640
#define MBX1_GLOBREG_SCALERCTL 0x0644
#define MBX1_GLOBREG_BLENDCTL 0x0648
#define MBX1_GLOBREG_ARGBSUM 0x064C
#define MBX1_GLOBREG_FBCTL 0x0650
#define MBX1_GLOBREG_FBXCLIP 0x0654
#define MBX1_GLOBREG_FBYCLIP 0x0658
#define MBX1_GLOBREG_FBSTART 0x065C
#define MBX1_GLOBREG_FBLINESTRIDE 0x0660
#define MBX1_GLOBREG_LATENCYCOUNT 0x0664
#define MBX1_GLOBREG_ENDIANCTL 0x0668
#define MBX1_GLOBREG_BPOINTCTL 0x066C
#define MBX1_GLOBREG_BPOINTRES 0x0670
#define MBX1_GLOBREG_ZBASEADDR 0x0674
#define MBX1_GLOBREG_STARTRENDER 0x0680
#define MBX1_GLOBREG_2DFASTRENDERBASE 0x06C0
#define MBX1_GLOBREG_3DRENDERTYPE 0x06C4
#define MBX1_GLOBREG_3DBBOXCOORDS 0x06C8
#define MBX1_GLOBREG_3DBBOXXSIZE 0x06CC
#define MBX1_GLOBREG_3DFLATSHADEDCS 0x06D0
#define MBX1_GLOBREG_2DFASTRENDERSTART 0x06D4
#define MBX1_GLOBREG_3D_ZL_BACKGROUND_TAG 0x06D8
#define MBX1_GLOBREG_3D_ZL_BACKGROUND_DEPTH 0x06DC
#define MBX1_GLOBREG_1BPP_BACKGROUND_COLOUR 0x06E0
#define MBX1_GLOBREG_1BPP_FOREGROUND_COLOUR 0x06E4
#define MBX1_GLOBREG_USE_1BPP_REGS_CTL 0x06E8
#define MBX1_GLOBREG_3D_RENDER_ID 0x06EC
#define MBX1_GLOBREG_AUTOSORTCFG 0x06F4
/*****************************************************************************
* Control bits in some of above regs...
*****************************************************************************/
/*
* region/object base address masks
*/
#define MBX1_RGNBASE_MASK 0x01FFFFFC
#define MBX1_OBJBASE_MASK 0x01FFF000
/*
* Z load and store control register bits. (MBX1_GLOBREG_ZLOADSTORE)
*/
#define MBX1_ZLOADSTORE_ZLOAD 0x00000001
#define MBX1_ZLOADSTORE_ZSTORE 0x00000002
#ifdef SUPPORT_MBX1_LITE
#define MBX1_ZLOADSTORE_XEXTENTCLR 0xFFFF807F
#define MBX1_ZLOADSTORE_XEXTENTSHIFT 7
#else
#define MBX1_ZLOADSTORE_XEXTENTCLR 0xFFFF80FF
#define MBX1_ZLOADSTORE_XEXTENTSHIFT 8
#endif
#define MBX1_ZLOADSTORE_ZFORMATCLR 0xFFFCFFFF
#define MBX1_ZLOADSTORE_ZFORMAT_28F_1M 0x00000000
#define MBX1_ZLOADSTORE_ZFORMAT_24I_1M 0x00010000
#define MBX1_ZLOADSTORE_ZFORMAT_16I_PACKED 0x00020000
#define MBX1_ZLOADSTORE_ZFORMAT_NO_EXT_Z 0x00030000
#define MBX1_ZLOADSTORE_ZFORMATSHIFT 16
#define MBX1_ZLOADSTORE_ZONLYRENDER 0x00080000
/*
* 3D FPU Perpendicular Compare
*/
#define MBX1_FPUPERPVAL_MASK 0x7FFFFFF0
#define MBX1_FPUPERPVALSHIFT 4
/*
* 3D FPU Cull Value
*/
#define MBX1_FPUCULLVAL_MASK 0x7FFFFFF0
#define MBX1_FPUCULLVALSHIFT 4
/*
* Pixel sampling control.
*/
#define MBX1_PIXSAMP_FPUPIXEL 0x00000001
#define MBX1_PIXSAMP_TSPPIXEL 0x00000002
#define MBX1_PIXSAMP_TSPTEXEL 0x00000004
#define MBX1_PIXSAMP_FASTAA 0x00000008
#define MBX1_PIXSAMP_DCALCCLR 0xFFFCFFFF
#define MBX1_PIXSAMP_DCALCSHIFT 16
#define MBX1_PIXSAMP_DCALCAVERAGE 0x00000000
#define MBX1_PIXSAMP_DCALCSCREEN00 0x00010000
#define MBX1_PIXSAMP_DCALCTILEXY 0x00020000
/*
* 3D Colour Key 1
*/
#define MBX1_CK1_R_MASK 0x00FF0000
#define MBX1_CK1_G_MASK 0x0000FF00
#define MBX1_CK1_B_MASK 0x000000FF
/*
* 3D Colour Key 2
*/
#define MBX1_CK2_R_MASK 0x00FF0000
#define MBX1_CK2_G_MASK 0x0000FF00
#define MBX1_CK2_B_MASK 0x000000FF
/*
* 3D Colour Key UV
*/
#define MBX1_CK_U_MASK 0x0000FF00
#define MBX1_CK_V_MASK 0x000000FF
/*
* 3D Colour Key Mask
*/
#define MBX1_CKMASK_LSB_MASK 0x00000007
/*
* Vertex Fog Colour
*/
#define MBX1_FOGCOLVERT_MASK 0x00FFFFFF
/*
* Scaler stuff..
*/
#define MBX1_SCALERCTL_VSCALE 0x00000001
#define MBX1_SCALERCTL_HSCALE 0x00000002
/*
* 3D blend control
*/
#define MBX1_3DBLENDCONTROL_SUB128 0x00000001
#define MBX1_3DBLENDCONTROL_FORCEALPHA 0x00010000
/*
* Blend ARGB Sum
*/
#define MBX1_ARGBSUM_ADD_RGB 0
#define MBX1_ARGBSUM_ADD_ARGB 1
/*
* Frame buffer write control register bits.
*/
#define MBX1_FBCTL_PACKMODECLR 0xFFFFFFF8
#define MBX1_FBCTL_PACKMODE555 0x00000000
#define MBX1_FBCTL_PACKMODE565 0x00000001
#define MBX1_FBCTL_PACKMODE4444 0x00000002
#define MBX1_FBCTL_PACKMODE1555 0x00000003
#define MBX1_FBCTL_PACKMODE888 0x00000004
#define MBX1_FBCTL_PACKMODEK888 0x00000005
#define MBX1_FBCTL_PACKMODE8888 0x00000006
#define MBX1_FBCTL_DITHER 0x00000008
#define MBX1_FBCTL_KVALCLR 0xFFFFF00F
#define MBX1_FBCTL_KVALSHIFT 4
#define MBX1_FBCTL_ALPHATHRESHCLR 0xFFF00FFF
#define MBX1_FBCTL_ALPHATHRESHSHIFT 12
/*
* Screen X clipping control bits.
*/
#define MBX1_FBXCLIPMINCLR 0xFFFFF800
#define MBX1_FBXCLIPMINSHIFT 0
#define MBX1_FBXCLIPMAXCLR 0xF800FFFF
#define MBX1_FBXCLIPMAXSHIFT 16
/*
* Screen Y clipping control bits.
*/
#define MBX1_FBYCLIPMINCLR 0xFFFFF800
#define MBX1_FBYCLIPMINSHIFT 0
#define MBX1_FBYCLIPMAXCLR 0xF800FFFF
#define MBX1_FBYCLIPMAXSHIFT 16
/*
* 3D Render Address
*/
#define MBX1_FBSTART_MASK 0x01FFFFFC
/*
* 3D Write Stride
*/
#define MBX1_FBLINESTRIDE_MASK 0x00000FFF
#define MBX1_FBLINESTRIDE_ALIGNSHIFT 2
#define MBX1_FBLINESTRIDE_ALIGNMASK 3
/*
* Texture Latency
*/
#define MBX1_LATENCYCOUNT_MASK 0x0000000F
/*
* Texture Endian Control
*/
#define MBX1_ENDIANCTLCLR 0xFFFFFFFC
#define MBX1_ENDIANCTL_NOSWAP 0
#define MBX1_ENDIANCTL_SWAPWORDS 1
#define MBX1_ENDIANCTL_SWAPWORDBYTES 2
#define MBX1_ENDIANCTL_SWAPBYTES 3
#define MBX1_MAXTEXTURE_LAYERS 2
#define MBX1_MAX_COLOURKEYS 2
/*
* 3D Breakpoint Control
*/
#define MBX1_BPOINT_TILE_X_CLR 0xFFFF03FF
#define MBX1_BPOINT_TILE_X_SHIFT 10
#define MBX1_BPOINT_TILE_Y_CLR 0xFFFFFC07
#define MBX1_BPOINT_TILE_Y_SHIFT 3
#define MBX1_BPOINT_TILE_BP_ENABLE 0x00000002
#define MBX1_BPOINT_PTR_BP_ENABLE 0x00000001
/*
* 3D Breakpoint Resume
*/
#define MBX1_BPOINTRES_RESUME_MASK 0xFFFFFFFF
/*
* Z Base Address
*/
#define MBX1_ZBASEADDR_MASK 0x01FFFFFC
#define MBX1_ZBASEADDR_ALIGNSIZE 4
/*
* 3D Start Render
*/
#define MBX1_STARTRENDER_MASK 0xFFFFFFFF
/*
2D Fast Render Base Address
*/
#define MBX1_2DFASTRENDERBASE_MASK 0x00FFFFFC
/*
3D Render Type
*/
#define MBX1_3DRENDERTYPE_ENDRENDER 0x00000004
#define MBX1_3DRENDERTYPE_MASK 0x00000003
#define MBX1_3DRENDERTYPE_NORMAL 0x00000000
#define MBX1_3DRENDERTYPE_FAST 0x00000001
#define MBX1_3DRENDERTYPE_BBOX 0x00000002
/*
3D Bounding Box coordinates
*/
#define MBX1_GLOBREG_X1_MASK 0xFC000000
#define MBX1_GLOBREG_Y1_MASK 0x03F80000
#define MBX1_GLOBREG_X2_MASK 0x0007E000
#define MBX1_GLOBREG_Y2_MASK 0x00001FC0
#define MBX1_GLOBREG_SCRNSIZE_MASK 0x0000003F
/*
* Flat shade type D3D / SGL,OpenGL
*/
#define MBX1_3DFLATSHADEDCS_D3D 0x00000000
#define MBX1_3DFLATSHADEDCS_OPENGL_SGL 0x00000001
/*
* 3D Z Load Background Tag
*/
#define MBX1_3DZLBG_TAG_RESERVED 0xC0000000
#define MBX1_3DZLBG_TAG_OBJ_OFFSET_PRES 0x20000000
#define MBX1_3DZLBG_TAG_OBJ_NUM_UV 0x10000000
#define MBX1_3DZLBG_TAG_OBJ_TEXTURED 0x08000000
#define MBX1_3DZLBG_TAG_OBJ_NUM_VERTEX_MASK 0x06000000
#define MBX1_3DZLBG_TAG_OBJ_NUM_VERTEX_SHIFT 25
#define MBX1_3DZLBG_TAG_OBJ_MASK_MASK 0x01E00000
#define MBX1_3DZLBG_TAG_OBJ_MASK_SHIFT 21
#define MBX1_3DZLBG_TAG_OBJ_ADDR_MASK 0x001FFFFF
#define MBX1_3DZLBG_TAG_OBJ_ADDR_SHIFT 0
#define MBX1_3DZLBG_TAG_OBJ_ADDR_ALIGNSHIFT 2
/*
* 3D Zload Background Depth
*/
#define MBX1_3DZLBG_DEPTH_MASK 0x7FFFFFF0
#define MBX1_3DZLBG_DEPTH_SHIFT 4
#define MBX1_3DZLBG_MASK_PLANE 0x00000001
/*
* Background Colour
*/
#define MBX1_1BPP_BACKGROUND_COLOUR_MASK 0xFFFFFFFF
/*
* Foreground Colour
*/
#define MBX1_1BPP_FOREGROUND_COLOUR_MASK 0xFFFFFFFF
/*
* Use Register Values For 1BPP
*/
#define MBX1_USE_1BPP_REGS_CTL 0x00000001
/*
* 3D Render ID
*/
#define MBX1_3D_RENDER_ID 0x00000001
/* <KINGYO> - DO NOT REMOVE THIS LINE!!! */
/* 3D Translucency Autosort Mode
*/
#define MBX1_3DTRANSAUTOSORT_ZMODE 0
#define MBX1_3DTRANSAUTOSORT_RHWMODE (1 << 9)
#define MBX1_3DTRANSAUTOSORT_BACKTTOFRONT 0
#define MBX1_3DTRANSAUTOSORT_FRONTTOBACK (1 << 8)
#define MBX1_TRANSLUCENTAUTOSORTMAXLIMIT 255
/* </KINGYO> - DO NOT REMOVE THIS LINE!!! */
/****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -