Merge pull request #124 from DavidSM64/doc

Decompiled display lists for unknown_078050 & unknown_07B870
This commit is contained in:
David Benepe
2021-06-26 20:29:19 -05:00
committed by GitHub
6 changed files with 967 additions and 517 deletions
+62
View File
@@ -0,0 +1,62 @@
#ifndef _F3DDKR_H_
#define _F3DDKR_H_
// This file is an extension of PR/gbi.h
#include "PR/mbi.h"
#include "PR/gbi.h"
// Color combiner values. These need better names!
#define DKR_CC_UNK0 0, 0, 0, COMBINED, COMBINED, 0, PRIMITIVE, 0
#define DKR_CC_UNK1 ENVIRONMENT, COMBINED, ENV_ALPHA, COMBINED, COMBINED, 0, PRIMITIVE, 0
#define DKR_CC_UNK2 ENVIRONMENT, COMBINED, ENV_ALPHA, COMBINED, 0, 0, 0, COMBINED
#define DKR_CC_UNK3 ENVIRONMENT, SHADE, ENV_ALPHA, SHADE, 0, 0, 0, SHADE
#define DKR_CC_UNK4 ENVIRONMENT, SHADE, ENV_ALPHA, SHADE, 0, 0, 0, PRIMITIVE
#define DKR_CC_UNK5 TEXEL0, PRIMITIVE, SHADE_ALPHA, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0
#define DKR_CC_UNK6 ENVIRONMENT, COMBINED, SHADE, COMBINED, 0, 0, 0, COMBINED
#define DKR_CC_UNK7 TEXEL1, TEXEL0, PRIMITIVE, TEXEL0, TEXEL1, TEXEL0, PRIMITIVE, TEXEL0
#define DKR_CC_UNK8 COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED
#define DKR_CC_UNK9 PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0
#define DKR_CC_DECALFADEPRIM 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0
// For some reason DKR has a value for G_MDSFT_BLENDMASK, despite the fact that it is unsupported.
#define G_DKR_BLENDMASK 15
// OtherMode_H values.
#define DKR_OMH_COMMON G_DKR_BLENDMASK | G_PM_NPRIMITIVE | G_TD_CLAMP | G_TL_TILE | G_TC_FILT \
| G_CK_NONE | G_CD_MAGICSQ | G_AD_PATTERN
#define DKR_OMH_1CYC_POINT DKR_OMH_COMMON | G_CYC_1CYCLE | G_TT_NONE | G_TF_POINT | G_TP_PERSP
#define DKR_OMH_1CYC_POINT_NOPERSP DKR_OMH_COMMON | G_CYC_1CYCLE | G_TT_NONE | G_TF_POINT | G_TP_NONE
#define DKR_OMH_1CYC_BILERP DKR_OMH_COMMON | G_CYC_1CYCLE | G_TT_NONE | G_TF_BILERP | G_TP_PERSP
#define DKR_OMH_1CYC_BILERP_NOPERSP DKR_OMH_COMMON | G_CYC_1CYCLE | G_TT_NONE | G_TF_BILERP | G_TP_NONE
#define DKR_OMH_1CYC_CI_BILERP DKR_OMH_COMMON | G_CYC_1CYCLE | G_TT_RGBA16 | G_TF_BILERP | G_TP_PERSP
#define DKR_OMH_2CYC_BILERP DKR_OMH_COMMON | G_CYC_2CYCLE | G_TT_NONE | G_TF_BILERP | G_TP_PERSP
#define DKR_OMH_2CYC_POINT DKR_OMH_COMMON | G_CYC_2CYCLE | G_TT_NONE | G_TF_POINT | G_TP_PERSP
#define DKR_OMH_2CYC_CI_BILERP DKR_OMH_COMMON | G_CYC_2CYCLE | G_TT_RGBA16 | G_TF_BILERP | G_TP_PERSP
// OtherMode_L values.
#define DKR_OML_COMMON G_AC_NONE | G_ZS_PIXEL
// Render mode values. These need better names!
#define DKR_RM_UNKNOWN0 Z_UPD | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_IN, G_BL_1MA)
#define DKR_RM_UNKNOWN1 GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_IN, G_BL_1MA)
#define DKR_RM_UNKNOWN2 AA_EN | IM_RD | CLR_ON_CVG | FORCE_BL | CVG_DST_WRAP | ZMODE_OPA
#define DKR_RM_UNKNOWN2_1 DKR_RM_UNKNOWN2 | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
#define DKR_RM_UNKNOWN2_2 DKR_RM_UNKNOWN2 | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
#define DKR_RM_UNKNOWN3 AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_X_ALPHA | ALPHA_CVG_SEL | CVG_DST_CLAMP | ZMODE_OPA
#define DKR_RM_UNKNOWN3_1 DKR_RM_UNKNOWN3 | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
#define DKR_RM_UNKNOWN3_2 DKR_RM_UNKNOWN3 | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)
#define DKR_RM_UNKNOWN4 AA_EN | Z_CMP | IM_RD | CVG_X_ALPHA | FORCE_BL | CVG_DST_CLAMP | ZMODE_XLU
#define DKR_RM_UNKNOWN4_1 DKR_RM_UNKNOWN4 | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
#define DKR_RM_UNKNOWN4_2 DKR_RM_UNKNOWN4 | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)
// Temporary until all commands are properly defined.
#define fast3d_cmd(pkt, word0, word1) \
{ \
Gfx *_g = (Gfx*)(pkt); \
_g->w0 = word0; \
_g->w1 = word1; \
}
#endif
+1
View File
@@ -16,4 +16,5 @@ typedef struct Gfx {
_g->w0 = word0; \
_g->w1 = word1; \
}
#endif
+95 -89
View File
@@ -29,109 +29,115 @@ s32 D_800DE4D4 = 0;
s32 D_800DE4D8 = 0;
s32 D_800DE4DC = 0;
// Fast3D (F3DDKR) display list
u32 D_800DE4E0[] = {
0xB6000000, 0x001F3204,
0xBB000000, 0x00000000,
0xB7000000, 0x00000204,
0xBC000404, 0x00000002,
0xBC000C04, 0x00000002,
0xBC001404, 0x0000FFFE,
0xBC001C04, 0x0000FFFE,
0xB8000000, 0x00000000
Gfx D_800DE4E0[] = {
gsSPClearGeometryMode(0x001F3204),
gsSPTexture(0, 0, 0, 0, 0),
gsSPSetGeometryMode(G_SHADING_SMOOTH | G_SHADE),
gsSPClipRatio(FRUSTRATIO_2),
gsSPEndDisplayList(),
};
// Fast3D (F3DDKR) display list
u32 D_800DE520[] = {
0xBA001402, 0x00000000,
0xBA001701, 0x00800000,
0xBA001001, 0x00000000,
0xBA000E02, 0x00000000,
0xBA001102, 0x00000000,
0xBA001301, 0x00080000,
0xBA000C02, 0x00002000,
0xBA000903, 0x00000C00,
0xFCFFFFFF, 0xFFFCF87C,
0xBA000801, 0x00000000,
0xB9000002, 0x00000000,
0xB900031D, 0x0F0A4000,
0xBA000602, 0x00000000,
0xE7000000, 0x00000000,
0xB8000000, 0x00000000
// Default RDP settings
Gfx D_800DE520[] = {
gsDPSetCycleType(G_CYC_1CYCLE),
gsDPPipelineMode(G_PM_1PRIMITIVE),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTexturePersp(G_TP_PERSP),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetTextureConvert(G_TC_FILT),
gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB),
gsDPSetCombineKey(G_CK_NONE),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
gsDPSetColorDither(G_CD_MAGICSQ),
gsDPPipeSync(),
gsSPEndDisplayList(),
};
// Fast3D (F3DDKR) display list
u32 D_800DE598[] = {
0xE7000000, 0x00000000,
0xBA001001, 0x00000000,
0xBA000E02, 0x00000000,
0xB9000002, 0x00000000,
0xB6000000, 0x00010001,
0xE7000000, 0x00000000,
0xFCFFFFFF, 0xFFFCF279,
0xEF000C0F, 0x0F0A4000,
0xB8000000, 0x00000000
Gfx D_800DE598[] = {
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPClearGeometryMode(G_ZBUFFER | G_FOG),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_OPA_SURF | G_RM_OPA_SURF2),
gsSPEndDisplayList(),
};
// Fast3D (F3DDKR) display list
u32 D_800DE5E0[] = {
0xE7000000, 0x00000000,
0xBA001001, 0x00000000,
0xBA000E02, 0x00000000,
0xB9000002, 0x00000000,
0xB6000000, 0x00010001,
0xE7000000, 0x00000000,
0xFCFFFFFF, 0xFFFDF6FB,
0xEF000C0F, 0x0F0A4000,
0xB8000000, 0x00000000
Gfx D_800DE5E0[] = {
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPClearGeometryMode(G_ZBUFFER | G_FOG),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_PRIMITIVE, G_CC_PRIMITIVE),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_OPA_SURF | G_RM_OPA_SURF2),
gsSPEndDisplayList(),
};
// Fast3D (F3DDKR) display list
u32 D_800DE628[] = {
0xE7000000, 0x00000000,
0xBA001001, 0x00000000,
0xBA000E02, 0x00000000,
0xB9000002, 0x00000000,
0xB6000000, 0x00010001,
0xE7000000, 0x00000000,
0xFC119623, 0xFF2FFFFF,
0xEF000C0F, 0x00504240,
0xB8000000, 0x00000000
Gfx D_800DE628[] = {
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPClearGeometryMode(G_ZBUFFER | G_FOG),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_XLU_SURF | G_RM_XLU_SURF2),
gsSPEndDisplayList(),
};
// Fast3D (F3DDKR) display list
u32 D_800DE670[] = {
0xE7000000, 0x00000000,
0xBA001001, 0x00000000,
0xBA000E02, 0x00000000,
0xB9000002, 0x00000000,
0xB6000000, 0x00010001,
0xE7000000, 0x00000000,
0xB8000000, 0x00000000
Gfx D_800DE670[] = {
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPClearGeometryMode(G_ZBUFFER | G_FOG),
gsDPPipeSync(),
gsSPEndDisplayList(),
};
// Fast3D (F3DDKR) display list
u32 D_800DE6A8[] = {
0xFC119623, 0xFF2FFFFF,
0xEF002C0F, 0x00552048,
0xFC119623, 0xFF2FFFFF,
0xEF002C0F, 0x0F0A4000,
0xFC119623, 0xFF2FFFFF,
0xEF000C0F, 0x00552048,
0xFC119623, 0xFF2FFFFF,
0xEF000C0F, 0x0F0A4000
Gfx D_800DE6A8[][2] = {
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_BILERP_NOPERSP, DKR_OML_COMMON | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2),
},
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_BILERP_NOPERSP, DKR_OML_COMMON | G_RM_OPA_SURF | G_RM_OPA_SURF2),
},
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_AA_OPA_SURF | G_RM_AA_OPA_SURF2),
},
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_OPA_SURF | G_RM_OPA_SURF2),
}
};
// Fast3D (F3DDKR) display list
u32 D_800DE6E8[] = {
0xFC119623, 0xFF2FFFFF,
0xEF002C0F, 0x005041C8,
0xFC119623, 0xFF2FFFFF,
0xEF002C0F, 0x00504240,
0xFC119623, 0xFF2FFFFF,
0xEF000C0F, 0x005041C8,
0xFC119623, 0xFF2FFFFF,
0xEF000C0F, 0x00504240
Gfx D_800DE6E8[][2] = {
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_BILERP_NOPERSP, DKR_OML_COMMON | G_RM_AA_XLU_SURF | G_RM_AA_XLU_SURF2),
},
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_BILERP_NOPERSP, DKR_OML_COMMON | G_RM_XLU_SURF | G_RM_XLU_SURF2),
},
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_AA_XLU_SURF | G_RM_AA_XLU_SURF2),
},
{
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetOtherMode(DKR_OMH_1CYC_POINT_NOPERSP, DKR_OML_COMMON | G_RM_XLU_SURF | G_RM_XLU_SURF2),
}
};
/*******************************/
+3
View File
@@ -2,6 +2,7 @@
#define _UNKNOWN_078050_H_
#include "types.h"
#include "f3ddkr.h"
extern s16 D_800DE490[16];
@@ -20,6 +21,7 @@ extern s32 D_800DE4D4;
extern s32 D_800DE4D8;
extern s32 D_800DE4DC;
/*
// Fast3D (F3DDKR) display list
extern u32 D_800DE4E0[];
@@ -43,5 +45,6 @@ extern u32 D_800DE6A8[];
// Fast3D (F3DDKR) display list
extern u32 D_800DE6E8[];
*/
#endif
+802 -427
View File
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -2,12 +2,14 @@
#define _UNKNOWN_07B870_H_
#include "types.h"
#include "f3ddkr.h"
extern u32 D_800DE7C0;
extern s32 D_800DE7C4;
/*
// Fast3D (F3DDKR) display list
extern u32 D_800DE7C8[];
extern Gfx D_800DE7C8[][2];
// Fast3D (F3DDKR) display list
extern u32 D_800DE848[];
@@ -47,5 +49,6 @@ extern u32 D_800DF3D8[];
// Fast3D (F3DDKR) display list
extern u32 D_800DF410[];
*/
#endif