add way more F3DEX flags
This commit is contained in:
parent
4ecb1e5f1f
commit
84c0fb1349
2 changed files with 118 additions and 1 deletions
|
@ -174,7 +174,8 @@ if HIRES {
|
|||
|
||||
gPipeSync()
|
||||
gSetCombine(15,15,31,4,7,7,7,4, 15,15,31,4,7,7,7,7)
|
||||
gSetOtherMode(0, 0)
|
||||
gSetOtherMode(G_PM_NPRIMITIVE | G_CYC_1CYCLE | G_TP_NONE | G_TD_CLAMP | G_TL_TILE | G_TT_NONE | G_TF_AVERAGE | G_TC_FILT | G_CK_NONE | G_CD_MAGICSQ | G_AD_PATTERN, G_AC_NONE | G_ZS_PIXEL | Z_CMP | Z_UPD)
|
||||
// CULL_FRONT is dying on N64?
|
||||
gGeometryMode(0, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH)
|
||||
|
||||
gSetSegment6(model)
|
||||
|
@ -234,6 +235,7 @@ macro _g(variable c, variable a, variable b) {
|
|||
dw (c << 24) | a, b
|
||||
}
|
||||
|
||||
if 1 {
|
||||
model: // a colorful cube
|
||||
constant S(0x400)
|
||||
// TODO: write a macro for this struct
|
||||
|
@ -256,3 +258,7 @@ constant MODEL_START(pc() - model)
|
|||
gQuadTri(4, 5, 1, 0)
|
||||
gQuadTri(2, 3, 7, 6)
|
||||
gEndList()
|
||||
} else {
|
||||
constant MODEL_START(0x32B0)
|
||||
insert model, "res/teapot.F3D"
|
||||
}
|
||||
|
|
111
inc/F3DEX2.inc
111
inc/F3DEX2.inc
|
@ -55,8 +55,118 @@ constant G_FOG(1 << 16)
|
|||
constant G_LIGHTING(1 << 17)
|
||||
constant G_TEXTURE_GEN(1 << 18)
|
||||
constant G_TEXTURE_GEN_LINEAR(1 << 19)
|
||||
constant G_LOD(1 << 20) // unimplemented (presumably no effect)
|
||||
constant G_SHADING_SMOOTH(1 << 21)
|
||||
constant G_CLIPPING(1 << 23)
|
||||
constant G_CULL_BOTH(G_CULL_FRONT | G_CULL_BACK)
|
||||
|
||||
// gSetOtherModeL: shift amount
|
||||
constant G_MDSFT_ALPHACOMPARE(0)
|
||||
constant G_MDSFT_ZSRCSEL(2)
|
||||
constant G_MDSFT_RENDERMODE(3)
|
||||
constant G_MDSFT_BLENDER(16)
|
||||
|
||||
// gSetOtherModeH: shift amount
|
||||
constant G_MDSFT_BLENDMASK(0) // unsupported (presumably no effect)
|
||||
constant G_MDSFT_ALPHADITHER(4)
|
||||
constant G_MDSFT_RGBDITHER(6)
|
||||
constant G_MDSFT_COMBKEY(8)
|
||||
constant G_MDSFT_TEXTCONV(9)
|
||||
constant G_MDSFT_TEXTFILT(12)
|
||||
constant G_MDSFT_TEXTLUT(14)
|
||||
constant G_MDSFT_TEXTLOD(16)
|
||||
constant G_MDSFT_TEXTDETAIL(17)
|
||||
constant G_MDSFT_TEXTPERSP(19)
|
||||
constant G_MDSFT_CYCLETYPE(20)
|
||||
constant G_MDSFT_COLORDITHER(22) // unsupported (presumably no effect)
|
||||
constant G_MDSFT_PIPELINE(23)
|
||||
|
||||
// gSetOtherModeH gPipelineMode
|
||||
constant G_PM_1PRIMITIVE(1 << G_MDSFT_PIPELINE)
|
||||
constant G_PM_NPRIMITIVE(0 << G_MDSFT_PIPELINE)
|
||||
|
||||
// gSetOtherModeH gSetCycleType
|
||||
constant G_CYC_1CYCLE(0 << G_MDSFT_CYCLETYPE)
|
||||
constant G_CYC_2CYCLE(1 << G_MDSFT_CYCLETYPE)
|
||||
constant G_CYC_COPY(2 << G_MDSFT_CYCLETYPE)
|
||||
constant G_CYC_FILL(3 << G_MDSFT_CYCLETYPE)
|
||||
|
||||
// gSetOtherModeH gSetTexturePersp
|
||||
constant G_TP_NONE(0 << G_MDSFT_TEXTPERSP)
|
||||
constant G_TP_PERSP(1 << G_MDSFT_TEXTPERSP)
|
||||
|
||||
// gSetOtherModeH gSetTextureDetail
|
||||
constant G_TD_CLAMP(0 << G_MDSFT_TEXTDETAIL)
|
||||
constant G_TD_SHARPEN(1 << G_MDSFT_TEXTDETAIL)
|
||||
constant G_TD_DETAIL(2 << G_MDSFT_TEXTDETAIL)
|
||||
|
||||
// gSetOtherModeH gSetTextureLOD
|
||||
constant G_TL_TILE(0 << G_MDSFT_TEXTLOD)
|
||||
constant G_TL_LOD(1 << G_MDSFT_TEXTLOD)
|
||||
|
||||
// gSetOtherModeH gSetTextureLUT
|
||||
constant G_TT_NONE(0 << G_MDSFT_TEXTLUT)
|
||||
constant G_TT_RGBA16(2 << G_MDSFT_TEXTLUT)
|
||||
constant G_TT_IA16(3 << G_MDSFT_TEXTLUT)
|
||||
|
||||
// gSetOtherModeH gSetTextureFilter
|
||||
constant G_TF_POINT(0 << G_MDSFT_TEXTFILT)
|
||||
constant G_TF_AVERAGE(3 << G_MDSFT_TEXTFILT)
|
||||
constant G_TF_BILERP(2 << G_MDSFT_TEXTFILT)
|
||||
|
||||
// gSetOtherModeH gSetTextureConvert
|
||||
constant G_TC_CONV(0 << G_MDSFT_TEXTCONV)
|
||||
constant G_TC_FILTCONV(5 << G_MDSFT_TEXTCONV)
|
||||
constant G_TC_FILT(6 << G_MDSFT_TEXTCONV)
|
||||
|
||||
// gSetOtherModeH gSetCombineKey
|
||||
constant G_CK_NONE(0 << G_MDSFT_COMBKEY)
|
||||
constant G_CK_KEY(1 << G_MDSFT_COMBKEY)
|
||||
|
||||
// gSetOtherModeH gSetColorDither
|
||||
constant G_CD_MAGICSQ(0 << G_MDSFT_RGBDITHER)
|
||||
constant G_CD_BAYER(1 << G_MDSFT_RGBDITHER)
|
||||
constant G_CD_NOISE(2 << G_MDSFT_RGBDITHER)
|
||||
constant G_CD_DISABLE(3 << G_MDSFT_RGBDITHER)
|
||||
constant G_CD_ENABLE(G_CD_NOISE) // for legacy code
|
||||
|
||||
// gSetOtherModeH gSetAlphaDither
|
||||
constant G_AD_PATTERN(0 << G_MDSFT_ALPHADITHER)
|
||||
constant G_AD_NOTPATTERN(1 << G_MDSFT_ALPHADITHER)
|
||||
constant G_AD_NOISE(2 << G_MDSFT_ALPHADITHER)
|
||||
constant G_AD_DISABLE(3 << G_MDSFT_ALPHADITHER)
|
||||
|
||||
// gSetOtherModeL gSetAlphaCompare
|
||||
constant G_AC_NONE(0 << G_MDSFT_ALPHACOMPARE)
|
||||
constant G_AC_THRESHOLD(1 << G_MDSFT_ALPHACOMPARE)
|
||||
constant G_AC_DITHER(3 << G_MDSFT_ALPHACOMPARE)
|
||||
|
||||
// gSetOtherModeL gSetDepthSource
|
||||
constant G_ZS_PIXEL(0 << G_MDSFT_ZSRCSEL)
|
||||
constant G_ZS_PRIM(1 << G_MDSFT_ZSRCSEL)
|
||||
|
||||
// gSetOtherModeL gSetRenderMode
|
||||
constant AA_EN(0x8) // enable anti-aliasing, except not really?
|
||||
// Z stuff
|
||||
constant Z_CMP(0x10) // compare pixels to Z buffer (typically used with Z_UPD)
|
||||
constant Z_UPD(0x20) // write pixels to Z buffer (typically used with Z_CMP)
|
||||
// coverage stuff
|
||||
constant IM_RD(0x40)
|
||||
constant CLR_ON_CVG(0x80)
|
||||
constant CVG_DST_CLAMP(0)
|
||||
constant CVG_DST_WRAP(0x100)
|
||||
constant CVG_DST_FULL(0x200)
|
||||
constant CVG_DST_SAVE(0x300)
|
||||
// more Z stuff
|
||||
constant ZMODE_OPA(0)
|
||||
constant ZMODE_INTER(0x400)
|
||||
constant ZMODE_XLU(0x800)
|
||||
constant ZMODE_DEC(0xC00)
|
||||
// more coverage stuff
|
||||
constant CVG_X_ALPHA(0x1000)
|
||||
constant ALPHA_CVG_SEL(0x2000)
|
||||
// blending
|
||||
constant FORCE_BL(0x4000) // no effect?
|
||||
|
||||
macro gNoOp() {
|
||||
// stalls the RDP (and not the RSP?)
|
||||
|
@ -593,6 +703,7 @@ macro gViewport(variable viewport) {
|
|||
}
|
||||
|
||||
macro gPerspNorm(variable norm) {
|
||||
if norm < 1 || norm > 0xFFFF {; error "norm out of range"; }
|
||||
gMoveWord(G_MW_PERSPNORM, 0, norm)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue