You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
Refresh 3
This commit is contained in:
@@ -71,51 +71,51 @@ struct RenderModeContainer {
|
||||
u32 modes[8];
|
||||
};
|
||||
|
||||
/* Rendermode settings for cycles 1 and 2 for layers 0-3. */
|
||||
/* Rendermode settings for cycle 1 for all 8 layers. */
|
||||
struct RenderModeContainer renderModeTable_1Cycle[2] = { { {
|
||||
G_RM_OPA_SURF,
|
||||
G_RM_AA_OPA_SURF,
|
||||
G_RM_AA_OPA_SURF,
|
||||
G_RM_AA_OPA_SURF,
|
||||
G_RM_AA_TEX_EDGE,
|
||||
G_RM_AA_XLU_SURF,
|
||||
G_RM_AA_XLU_SURF,
|
||||
G_RM_AA_XLU_SURF,
|
||||
} },
|
||||
{ {
|
||||
/* z-buffered */
|
||||
G_RM_ZB_OPA_SURF,
|
||||
G_RM_AA_ZB_OPA_SURF,
|
||||
G_RM_AA_ZB_OPA_DECAL,
|
||||
G_RM_AA_ZB_OPA_INTER,
|
||||
G_RM_AA_ZB_TEX_EDGE,
|
||||
G_RM_AA_ZB_XLU_SURF,
|
||||
G_RM_AA_ZB_XLU_DECAL,
|
||||
G_RM_AA_ZB_XLU_INTER,
|
||||
} } };
|
||||
G_RM_OPA_SURF,
|
||||
G_RM_AA_OPA_SURF,
|
||||
G_RM_AA_OPA_SURF,
|
||||
G_RM_AA_OPA_SURF,
|
||||
G_RM_AA_TEX_EDGE,
|
||||
G_RM_AA_XLU_SURF,
|
||||
G_RM_AA_XLU_SURF,
|
||||
G_RM_AA_XLU_SURF,
|
||||
} },
|
||||
{ {
|
||||
/* z-buffered */
|
||||
G_RM_ZB_OPA_SURF,
|
||||
G_RM_AA_ZB_OPA_SURF,
|
||||
G_RM_AA_ZB_OPA_DECAL,
|
||||
G_RM_AA_ZB_OPA_INTER,
|
||||
G_RM_AA_ZB_TEX_EDGE,
|
||||
G_RM_AA_ZB_XLU_SURF,
|
||||
G_RM_AA_ZB_XLU_DECAL,
|
||||
G_RM_AA_ZB_XLU_INTER,
|
||||
} } };
|
||||
|
||||
/* Rendermode settings for cycles 1 and 2 for layers 4-7. */
|
||||
/* Rendermode settings for cycle 2 for all 8 layers. */
|
||||
struct RenderModeContainer renderModeTable_2Cycle[2] = { { {
|
||||
G_RM_OPA_SURF2,
|
||||
G_RM_AA_OPA_SURF2,
|
||||
G_RM_AA_OPA_SURF2,
|
||||
G_RM_AA_OPA_SURF2,
|
||||
G_RM_AA_TEX_EDGE2,
|
||||
G_RM_AA_XLU_SURF2,
|
||||
G_RM_AA_XLU_SURF2,
|
||||
G_RM_AA_XLU_SURF2,
|
||||
} },
|
||||
{ {
|
||||
/* z-buffered */
|
||||
G_RM_ZB_OPA_SURF2,
|
||||
G_RM_AA_ZB_OPA_SURF2,
|
||||
G_RM_AA_ZB_OPA_DECAL2,
|
||||
G_RM_AA_ZB_OPA_INTER2,
|
||||
G_RM_AA_ZB_TEX_EDGE2,
|
||||
G_RM_AA_ZB_XLU_SURF2,
|
||||
G_RM_AA_ZB_XLU_DECAL2,
|
||||
G_RM_AA_ZB_XLU_INTER2,
|
||||
} } };
|
||||
G_RM_OPA_SURF2,
|
||||
G_RM_AA_OPA_SURF2,
|
||||
G_RM_AA_OPA_SURF2,
|
||||
G_RM_AA_OPA_SURF2,
|
||||
G_RM_AA_TEX_EDGE2,
|
||||
G_RM_AA_XLU_SURF2,
|
||||
G_RM_AA_XLU_SURF2,
|
||||
G_RM_AA_XLU_SURF2,
|
||||
} },
|
||||
{ {
|
||||
/* z-buffered */
|
||||
G_RM_ZB_OPA_SURF2,
|
||||
G_RM_AA_ZB_OPA_SURF2,
|
||||
G_RM_AA_ZB_OPA_DECAL2,
|
||||
G_RM_AA_ZB_OPA_INTER2,
|
||||
G_RM_AA_ZB_TEX_EDGE2,
|
||||
G_RM_AA_ZB_XLU_SURF2,
|
||||
G_RM_AA_ZB_XLU_DECAL2,
|
||||
G_RM_AA_ZB_XLU_INTER2,
|
||||
} } };
|
||||
|
||||
struct GraphNodeRoot *gCurGraphNodeRoot = NULL;
|
||||
struct GraphNodeMasterList *gCurGraphNodeMasterList = NULL;
|
||||
@@ -226,7 +226,7 @@ static void geo_process_ortho_projection(struct GraphNodeOrthoProjection *node)
|
||||
|
||||
guOrtho(mtx, left, right, bottom, top, -2.0f, 2.0f, 1.0f);
|
||||
gSPPerspNormalize(gDisplayListHead++, 0xFFFF);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
|
||||
geo_process_node_and_siblings(node->node.children);
|
||||
}
|
||||
@@ -252,7 +252,7 @@ static void geo_process_perspective(struct GraphNodePerspective *node) {
|
||||
guPerspective(mtx, &perspNorm, node->fov, aspect, node->near, node->far, 1.0f);
|
||||
gSPPerspNormalize(gDisplayListHead++, perspNorm);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
|
||||
gCurGraphNodeCamFrustum = node;
|
||||
geo_process_node_and_siblings(node->fnNode.node.children);
|
||||
@@ -312,7 +312,7 @@ static void geo_process_camera(struct GraphNodeCamera *node) {
|
||||
}
|
||||
mtxf_rotate_xy(rollMtx, node->rollScreen);
|
||||
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(rollMtx), G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(rollMtx), G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH);
|
||||
|
||||
mtxf_lookat(cameraTransform, node->from, node->to, node->roll);
|
||||
mtxf_mul(gMatStack[gMatStackIndex + 1], cameraTransform, gMatStack[gMatStackIndex]);
|
||||
@@ -442,7 +442,7 @@ static void geo_process_billboard(struct GraphNodeBillboard *node) {
|
||||
gCurGraphNodeCamera->roll);
|
||||
if (gCurGraphNodeHeldObject != NULL) {
|
||||
mtxf_scale_vec3f(gMatStack[gMatStackIndex], gMatStack[gMatStackIndex],
|
||||
gCurGraphNodeHeldObject->objNode->scale);
|
||||
gCurGraphNodeHeldObject->objNode->header.gfx.scale);
|
||||
} else if (gCurGraphNodeObject != NULL) {
|
||||
mtxf_scale_vec3f(gMatStack[gMatStackIndex], gMatStack[gMatStackIndex],
|
||||
gCurGraphNodeObject->scale);
|
||||
@@ -479,7 +479,7 @@ static void geo_process_display_list(struct GraphNodeDisplayList *node) {
|
||||
*/
|
||||
static void geo_process_generated_list(struct GraphNodeGenerated *node) {
|
||||
if (node->fnNode.func != NULL) {
|
||||
s32 list = node->fnNode.func(GEO_CONTEXT_RENDER, &node->fnNode.node,
|
||||
Gfx *list = node->fnNode.func(GEO_CONTEXT_RENDER, &node->fnNode.node,
|
||||
(struct AllocOnlyPool *) gMatStack[gMatStackIndex]);
|
||||
|
||||
if (list != 0) {
|
||||
@@ -497,7 +497,7 @@ static void geo_process_generated_list(struct GraphNodeGenerated *node) {
|
||||
* rectangle is drawn instead.
|
||||
*/
|
||||
static void geo_process_background(struct GraphNodeBackground *node) {
|
||||
s32 list = 0;
|
||||
Gfx *list = NULL;
|
||||
|
||||
if (node->fnNode.func != NULL) {
|
||||
list = node->fnNode.func(GEO_CONTEXT_RENDER, &node->fnNode.node,
|
||||
@@ -512,7 +512,7 @@ static void geo_process_background(struct GraphNodeBackground *node) {
|
||||
gDPPipeSync(gfx++);
|
||||
gDPSetCycleType(gfx++, G_CYC_FILL);
|
||||
gDPSetFillColor(gfx++, node->background);
|
||||
gDPFillRectangle(gfx++, 0, BORDER_HEIGHT, 319, 239 - BORDER_HEIGHT);
|
||||
gDPFillRectangle(gfx++, 0, BORDER_HEIGHT, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 - BORDER_HEIGHT);
|
||||
gDPPipeSync(gfx++);
|
||||
gDPSetCycleType(gfx++, G_CYC_1CYCLE);
|
||||
gSPEndDisplayList(gfx++);
|
||||
@@ -611,8 +611,8 @@ void geo_set_animation_globals(struct GraphNodeObject_sub *node, s32 hasAnimatio
|
||||
|
||||
gCurrAnimFrame = node->animFrame;
|
||||
gCurAnimEnabled = (anim->flags & ANIM_FLAG_5) == 0;
|
||||
gCurrAnimAttribute = segmented_to_virtual(anim->index);
|
||||
gCurAnimData = segmented_to_virtual(anim->values);
|
||||
gCurrAnimAttribute = segmented_to_virtual((void *) anim->index);
|
||||
gCurAnimData = segmented_to_virtual((void *) anim->values);
|
||||
|
||||
if (anim->unk02 == 0) {
|
||||
gCurAnimTranslationMultiplier = 1.0f;
|
||||
@@ -866,8 +866,8 @@ void geo_process_held_object(struct GraphNodeHeldObject *node) {
|
||||
if (node->fnNode.func != NULL) {
|
||||
node->fnNode.func(GEO_CONTEXT_RENDER, &node->fnNode.node, gMatStack[gMatStackIndex]);
|
||||
}
|
||||
if (node->objNode != NULL && node->objNode->sharedChild != NULL) {
|
||||
s32 hasAnimation = (node->objNode->node.flags & GRAPH_RENDER_HAS_ANIMATION) != 0;
|
||||
if (node->objNode != NULL && node->objNode->header.gfx.sharedChild != NULL) {
|
||||
s32 hasAnimation = (node->objNode->header.gfx.node.flags & GRAPH_RENDER_HAS_ANIMATION) != 0;
|
||||
|
||||
translation[0] = node->translation[0] / 4.0f;
|
||||
translation[1] = node->translation[1] / 4.0f;
|
||||
@@ -880,7 +880,7 @@ void geo_process_held_object(struct GraphNodeHeldObject *node) {
|
||||
gMatStack[gMatStackIndex + 1][3][2] = gMatStack[gMatStackIndex][3][2];
|
||||
mtxf_mul(gMatStack[gMatStackIndex + 1], mat, gMatStack[gMatStackIndex + 1]);
|
||||
mtxf_scale_vec3f(gMatStack[gMatStackIndex + 1], gMatStack[gMatStackIndex + 1],
|
||||
node->objNode->scale);
|
||||
node->objNode->header.gfx.scale);
|
||||
if (node->fnNode.func != NULL) {
|
||||
node->fnNode.func(GEO_CONTEXT_HELD_OBJ, &node->fnNode.node,
|
||||
(struct AllocOnlyPool *) gMatStack[gMatStackIndex + 1]);
|
||||
@@ -896,11 +896,11 @@ void geo_process_held_object(struct GraphNodeHeldObject *node) {
|
||||
gGeoTempState.data = gCurAnimData;
|
||||
gCurAnimType = 0;
|
||||
gCurGraphNodeHeldObject = (void *) node;
|
||||
if (node->objNode->unk38.curAnim != NULL) {
|
||||
geo_set_animation_globals(&node->objNode->unk38, hasAnimation);
|
||||
if (node->objNode->header.gfx.unk38.curAnim != NULL) {
|
||||
geo_set_animation_globals(&node->objNode->header.gfx.unk38, hasAnimation);
|
||||
}
|
||||
|
||||
geo_process_node_and_siblings(node->objNode->sharedChild);
|
||||
geo_process_node_and_siblings(node->objNode->header.gfx.sharedChild);
|
||||
gCurGraphNodeHeldObject = NULL;
|
||||
gCurAnimType = gGeoTempState.type;
|
||||
gCurAnimEnabled = gGeoTempState.enabled;
|
||||
@@ -1053,7 +1053,7 @@ void geo_process_root(struct GraphNodeRoot *node, Vp *b, Vp *c, s32 clearColor)
|
||||
gMatStackFixed[gMatStackIndex] = initialMatrix;
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(viewport));
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(gMatStackFixed[gMatStackIndex]),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
gCurGraphNodeRoot = node;
|
||||
if (node->node.children != NULL) {
|
||||
geo_process_node_and_siblings(node->node.children);
|
||||
|
||||
Reference in New Issue
Block a user