add definitions of some bp mem bits relating to interlacing (no behavior change)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7683 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman 2011-07-18 08:27:30 +00:00
parent 7135dba54e
commit fc261b32bf
2 changed files with 49 additions and 5 deletions

View File

@ -239,6 +239,30 @@ void SetTextureMode(const BPCmd &bp)
void SetInterlacingMode(const BPCmd &bp)
{
// TODO
switch (bp.address)
{
case BPMEM_FIELDMODE:
{
// SDK always sets bpmem.lineptwidth.lineaspect via BPMEM_LINEPTWIDTH
// just before this cmd
const char *action[] = { "don't adjust", "adjust" };
DEBUG_LOG(VIDEO, "BPMEM_FIELDMODE texLOD:%s lineaspect:%s",
action[bpmem.fieldmode.texLOD],
action[bpmem.lineptwidth.lineaspect]);
}
break;
case BPMEM_FIELDMASK:
{
// Determines if fields will be written to EFB (always computed)
const char *action[] = { "skip", "write" };
DEBUG_LOG(VIDEO, "BPMEM_FIELDMASK even:%s odd:%s",
action[bpmem.fieldmask.even], action[bpmem.fieldmask.odd]);
}
break;
default:
ERROR_LOG(VIDEO, "SetInterlacingMode default");
break;
}
}
};

View File

@ -592,7 +592,7 @@ union LPSize
u32 pointsize : 8; // in 1/6th pixels
u32 lineoff : 3;
u32 pointoff : 3;
u32 lineaspect : 1;
u32 lineaspect : 1; // interlacing: adjust for pixels having AR of 1/2
u32 padding : 1;
};
u32 hex;
@ -748,6 +748,26 @@ union ConstantAlpha
u32 hex;
};
union FieldMode
{
struct
{
u32 texLOD : 1; // adjust vert tex LOD computation to account for interlacing
};
u32 hex;
};
union FieldMask
{
struct
{
// If bit is not set, do not write field to EFB
u32 odd : 1;
u32 even : 1;
};
u32 hex;
};
#define PIXELFMT_RGB8_Z24 0
#define PIXELFMT_RGBA6_Z24 1
#define PIXELFMT_RGB565_Z16 2
@ -910,7 +930,7 @@ struct BPMemory
BlendMode blendmode; //41
ConstantAlpha dstalpha; //42
PE_CONTROL zcontrol; //43 GXSetZCompLoc, GXPixModeSync
u32 fieldmask; //44
FieldMask fieldmask; //44
u32 drawdone; //45, bit1=1 if end of list
u32 unknown5; //46 clock?
u32 petoken; //47
@ -936,7 +956,7 @@ struct BPMemory
u32 tlutXferDest; //65
u32 texinvalidate;//66
u32 metric; //67
u32 fieldmode;//68
FieldMode fieldmode;//68
u32 unknown10[7];//69-6F
u32 unknown11[16];//70-7F
FourTexUnits tex[2]; //80-bf