KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches

PowerVR register offsets More...

Macros

#define PVR_ID   0x0000
 Chip ID.
 
#define PVR_REVISION   0x0004
 Chip revision.
 
#define PVR_RESET   0x0008
 Reset pins.
 
#define PVR_ISP_START   0x0014
 Start the ISP/TSP.
 
#define PVR_UNK_0018   0x0018
 ??
 
#define PVR_ISP_VERTBUF_ADDR   0x0020
 Vertex buffer address for scene rendering.
 
#define PVR_ISP_TILEMAT_ADDR   0x002c
 Tile matrix address for scene rendering.
 
#define PVR_SPANSORT_CFG   0x0030
 ?? – write 0x101 for now
 
#define PVR_BORDER_COLOR   0x0040
 Border Color in RGB888.
 
#define PVR_FB_CFG_1   0x0044
 Framebuffer config 1.
 
#define PVR_FB_CFG_2   0x0048
 Framebuffer config 2.
 
#define PVR_RENDER_MODULO   0x004c
 Render modulo.
 
#define PVR_FB_ADDR   0x0050
 Framebuffer start address.
 
#define PVR_FB_IL_ADDR   0x0054
 Framebuffer odd-field start address for interlace.
 
#define PVR_FB_SIZE   0x005c
 Framebuffer display size.
 
#define PVR_RENDER_ADDR   0x0060
 Render output address.
 
#define PVR_RENDER_ADDR_2   0x0064
 Output for strip-buffering.
 
#define PVR_PCLIP_X   0x0068
 Horizontal clipping area.
 
#define PVR_PCLIP_Y   0x006c
 Vertical clipping area.
 
#define PVR_CHEAP_SHADOW   0x0074
 Cheap shadow control.
 
#define PVR_OBJECT_CLIP   0x0078
 Distance for polygon culling.
 
#define PVR_UNK_007C   0x007c
 ?? – write 0x0027df77 for now
 
#define PVR_UNK_0080   0x0080
 ?? – write 7 for now
 
#define PVR_TEXTURE_CLIP   0x0084
 Distance for texture clipping.
 
#define PVR_BGPLANE_Z   0x0088
 Distance for background plane.
 
#define PVR_BGPLANE_CFG   0x008c
 Background plane config.
 
#define PVR_UNK_0098   0x0098
 ?? – write 0x00800408 for now
 
#define PVR_UNK_00A0   0x00a0
 ?? – write 0x20 for now
 
#define PVR_UNK_00A8   0x00a8
 ?? – write 0x15d1c951 for now
 
#define PVR_FOG_TABLE_COLOR   0x00b0
 Table fog color.
 
#define PVR_FOG_VERTEX_COLOR   0x00b4
 Vertex fog color.
 
#define PVR_FOG_DENSITY   0x00b8
 Fog density coefficient.
 
#define PVR_COLOR_CLAMP_MAX   0x00bc
 RGB Color clamp max.
 
#define PVR_COLOR_CLAMP_MIN   0x00c0
 RGB Color clamp min.
 
#define PVR_GUN_POS   0x00c4
 Light gun position.
 
#define PVR_HPOS_IRQ   0x00c8
 Horizontal position IRQ.
 
#define PVR_VPOS_IRQ   0x00cc
 Vertical position IRQ.
 
#define PVR_IL_CFG   0x00d0
 Interlacing config.
 
#define PVR_BORDER_X   0x00d4
 Window border X position.
 
#define PVR_SCAN_CLK   0x00d8
 Clock and scanline values.
 
#define PVR_BORDER_Y   0x00dc
 Window border Y position.
 
#define PVR_TXR_STRIDE_MULT   0x00e4
 Multiplier for stride width in increments of 32.
 
#define PVR_VIDEO_CFG   0x00e8
 Misc video config.
 
#define PVR_BITMAP_X   0x00ec
 Bitmap window X position.
 
#define PVR_BITMAP_Y   0x00f0
 Bitmap window Y position.
 
#define PVR_SCALER_CFG   0x00f4
 Smoothing scaler.
 
#define PVR_PALETTE_CFG   0x0108
 Palette format.
 
#define PVR_SYNC_STATUS   0x010c
 V/H blank status.
 
#define PVR_UNK_0110   0x0110
 ?? – write 0x93f39 for now
 
#define PVR_UNK_0114   0x0114
 ?? – write 0x200000 for now
 
#define PVR_UNK_0118   0x0118
 ?? – write 0x8040 for now
 
#define PVR_TA_OPB_START   0x0124
 Object Pointer Buffer start for TA usage.
 
#define PVR_TA_VERTBUF_START   0x0128
 Vertex buffer start for TA usage.
 
#define PVR_TA_OPB_END   0x012c
 OPB end for TA usage.
 
#define PVR_TA_VERTBUF_END   0x0130
 Vertex buffer end for TA usage.
 
#define PVR_TA_OPB_POS   0x0134
 Top used memory location in OPB for TA usage.
 
#define PVR_TA_VERTBUF_POS   0x0138
 Top used memory location in vertbuf for TA usage.
 
#define PVR_TILEMAT_CFG   0x013c
 Tile matrix size config.
 
#define PVR_OPB_CFG   0x0140
 Active lists / list size.
 
#define PVR_TA_INIT   0x0144
 Initialize vertex reg.
 
#define PVR_YUV_ADDR   0x0148
 YUV conversion destination.
 
#define PVR_YUV_CFG   0x014c
 YUV configuration.
 
#define PVR_YUV_STAT   0x0150
 The number of YUV macroblocks converted.
 
#define PVR_UNK_0160   0x0160
 ??
 
#define PVR_TA_OPB_INIT   0x0164
 Object pointer buffer position init.
 
#define PVR_FOG_TABLE_BASE   0x0200
 Base of the fog table.
 
#define PVR_PALETTE_TABLE_BASE   0x1000
 Base of the palette table.
 

Detailed Description

PowerVR register offsets

The registers themselves; these are from Maiwe's powervr-reg.txt.

Note
2D specific registers have been excluded for now (like vsync, hsync, v/h size, etc)

Macro Definition Documentation

◆ PVR_BGPLANE_CFG

#define PVR_BGPLANE_CFG   0x008c

Background plane config.

◆ PVR_BGPLANE_Z

#define PVR_BGPLANE_Z   0x0088

Distance for background plane.

◆ PVR_BITMAP_X

#define PVR_BITMAP_X   0x00ec

Bitmap window X position.

◆ PVR_BITMAP_Y

#define PVR_BITMAP_Y   0x00f0

Bitmap window Y position.

◆ PVR_BORDER_COLOR

#define PVR_BORDER_COLOR   0x0040

Border Color in RGB888.

◆ PVR_BORDER_X

#define PVR_BORDER_X   0x00d4

Window border X position.

◆ PVR_BORDER_Y

#define PVR_BORDER_Y   0x00dc

Window border Y position.

◆ PVR_CHEAP_SHADOW

#define PVR_CHEAP_SHADOW   0x0074

Cheap shadow control.

◆ PVR_COLOR_CLAMP_MAX

#define PVR_COLOR_CLAMP_MAX   0x00bc

RGB Color clamp max.

◆ PVR_COLOR_CLAMP_MIN

#define PVR_COLOR_CLAMP_MIN   0x00c0

RGB Color clamp min.

◆ PVR_FB_ADDR

#define PVR_FB_ADDR   0x0050

Framebuffer start address.

◆ PVR_FB_CFG_1

#define PVR_FB_CFG_1   0x0044

Framebuffer config 1.

◆ PVR_FB_CFG_2

#define PVR_FB_CFG_2   0x0048

Framebuffer config 2.

◆ PVR_FB_IL_ADDR

#define PVR_FB_IL_ADDR   0x0054

Framebuffer odd-field start address for interlace.

◆ PVR_FB_SIZE

#define PVR_FB_SIZE   0x005c

Framebuffer display size.

◆ PVR_FOG_DENSITY

#define PVR_FOG_DENSITY   0x00b8

Fog density coefficient.

◆ PVR_FOG_TABLE_BASE

#define PVR_FOG_TABLE_BASE   0x0200

Base of the fog table.

◆ PVR_FOG_TABLE_COLOR

#define PVR_FOG_TABLE_COLOR   0x00b0

Table fog color.

◆ PVR_FOG_VERTEX_COLOR

#define PVR_FOG_VERTEX_COLOR   0x00b4

Vertex fog color.

◆ PVR_GUN_POS

#define PVR_GUN_POS   0x00c4

Light gun position.

◆ PVR_HPOS_IRQ

#define PVR_HPOS_IRQ   0x00c8

Horizontal position IRQ.

◆ PVR_ID

#define PVR_ID   0x0000

Chip ID.

◆ PVR_IL_CFG

#define PVR_IL_CFG   0x00d0

Interlacing config.

◆ PVR_ISP_START

#define PVR_ISP_START   0x0014

Start the ISP/TSP.

◆ PVR_ISP_TILEMAT_ADDR

#define PVR_ISP_TILEMAT_ADDR   0x002c

Tile matrix address for scene rendering.

◆ PVR_ISP_VERTBUF_ADDR

#define PVR_ISP_VERTBUF_ADDR   0x0020

Vertex buffer address for scene rendering.

◆ PVR_OBJECT_CLIP

#define PVR_OBJECT_CLIP   0x0078

Distance for polygon culling.

◆ PVR_OPB_CFG

#define PVR_OPB_CFG   0x0140

Active lists / list size.

◆ PVR_PALETTE_CFG

#define PVR_PALETTE_CFG   0x0108

Palette format.

◆ PVR_PALETTE_TABLE_BASE

#define PVR_PALETTE_TABLE_BASE   0x1000

Base of the palette table.

Referenced by pvr_set_pal_entry().

◆ PVR_PCLIP_X

#define PVR_PCLIP_X   0x0068

Horizontal clipping area.

◆ PVR_PCLIP_Y

#define PVR_PCLIP_Y   0x006c

Vertical clipping area.

◆ PVR_RENDER_ADDR

#define PVR_RENDER_ADDR   0x0060

Render output address.

◆ PVR_RENDER_ADDR_2

#define PVR_RENDER_ADDR_2   0x0064

Output for strip-buffering.

◆ PVR_RENDER_MODULO

#define PVR_RENDER_MODULO   0x004c

Render modulo.

◆ PVR_RESET

#define PVR_RESET   0x0008

Reset pins.

◆ PVR_REVISION

#define PVR_REVISION   0x0004

Chip revision.

◆ PVR_SCALER_CFG

#define PVR_SCALER_CFG   0x00f4

Smoothing scaler.

◆ PVR_SCAN_CLK

#define PVR_SCAN_CLK   0x00d8

Clock and scanline values.

◆ PVR_SPANSORT_CFG

#define PVR_SPANSORT_CFG   0x0030

?? – write 0x101 for now

◆ PVR_SYNC_STATUS

#define PVR_SYNC_STATUS   0x010c

V/H blank status.

◆ PVR_TA_INIT

#define PVR_TA_INIT   0x0144

Initialize vertex reg.

params

◆ PVR_TA_OPB_END

#define PVR_TA_OPB_END   0x012c

OPB end for TA usage.

◆ PVR_TA_OPB_INIT

#define PVR_TA_OPB_INIT   0x0164

Object pointer buffer position init.

◆ PVR_TA_OPB_POS

#define PVR_TA_OPB_POS   0x0134

Top used memory location in OPB for TA usage.

◆ PVR_TA_OPB_START

#define PVR_TA_OPB_START   0x0124

Object Pointer Buffer start for TA usage.

◆ PVR_TA_VERTBUF_END

#define PVR_TA_VERTBUF_END   0x0130

Vertex buffer end for TA usage.

◆ PVR_TA_VERTBUF_POS

#define PVR_TA_VERTBUF_POS   0x0138

Top used memory location in vertbuf for TA usage.

◆ PVR_TA_VERTBUF_START

#define PVR_TA_VERTBUF_START   0x0128

Vertex buffer start for TA usage.

◆ PVR_TEXTURE_CLIP

#define PVR_TEXTURE_CLIP   0x0084

Distance for texture clipping.

◆ PVR_TILEMAT_CFG

#define PVR_TILEMAT_CFG   0x013c

Tile matrix size config.

◆ PVR_TXR_STRIDE_MULT

#define PVR_TXR_STRIDE_MULT   0x00e4

Multiplier for stride width in increments of 32.

◆ PVR_UNK_0018

#define PVR_UNK_0018   0x0018

??

◆ PVR_UNK_007C

#define PVR_UNK_007C   0x007c

?? – write 0x0027df77 for now

◆ PVR_UNK_0080

#define PVR_UNK_0080   0x0080

?? – write 7 for now

◆ PVR_UNK_0098

#define PVR_UNK_0098   0x0098

?? – write 0x00800408 for now

◆ PVR_UNK_00A0

#define PVR_UNK_00A0   0x00a0

?? – write 0x20 for now

◆ PVR_UNK_00A8

#define PVR_UNK_00A8   0x00a8

?? – write 0x15d1c951 for now

◆ PVR_UNK_0110

#define PVR_UNK_0110   0x0110

?? – write 0x93f39 for now

◆ PVR_UNK_0114

#define PVR_UNK_0114   0x0114

?? – write 0x200000 for now

◆ PVR_UNK_0118

#define PVR_UNK_0118   0x0118

?? – write 0x8040 for now

◆ PVR_UNK_0160

#define PVR_UNK_0160   0x0160

??

◆ PVR_VIDEO_CFG

#define PVR_VIDEO_CFG   0x00e8

Misc video config.

◆ PVR_VPOS_IRQ

#define PVR_VPOS_IRQ   0x00cc

Vertical position IRQ.

◆ PVR_YUV_ADDR

#define PVR_YUV_ADDR   0x0148

YUV conversion destination.

◆ PVR_YUV_CFG

#define PVR_YUV_CFG   0x014c

YUV configuration.

◆ PVR_YUV_STAT

#define PVR_YUV_STAT   0x0150

The number of YUV macroblocks converted.