gDisplayListHead++ -> MASTERDL

This commit is contained in:
a
2025-07-04 15:11:00 -04:00
parent 363c64acc4
commit 147c92fd0e
12 changed files with 437 additions and 436 deletions

View File

@@ -370,18 +370,18 @@ void render_game(void) {
if (gCurrentArea != NULL && !gWarpTransition.pauseRendering) {
geo_process_root(gCurrentArea->unk04, D_8032CE74, D_8032CE78, gFBSetColor);
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_8032CF00));
gSPViewport(MASTERDL, VIRTUAL_TO_PHYSICAL(&D_8032CF00));
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
SCREEN_HEIGHT - BORDER_HEIGHT);
render_hud();
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
render_text_labels();
do_cutscene_handler();
print_displaying_credits_entry();
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
SCREEN_HEIGHT - BORDER_HEIGHT);
gMenuOptSelectIndex = render_menus_and_dialogs();
if (gMenuOptSelectIndex != MENU_OPT_NONE) {
@@ -391,7 +391,7 @@ void render_game(void) {
if (D_8032CE78 != NULL) {
make_viewport_clip_rect(D_8032CE78);
} else {
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
SCREEN_HEIGHT - BORDER_HEIGHT);
}

View File

@@ -85,47 +85,47 @@ struct DemoInput gRecordedDemoInput = { 0 };
* Sets the initial RDP (Reality Display Processor) rendering settings.
*/
void init_rdp(void) {
gDPPipeSync(gDisplayListHead++);
gDPPipelineMode(gDisplayListHead++, G_PM_1PRIMITIVE);
gDPPipeSync(MASTERDL);
gDPPipelineMode(MASTERDL, G_PM_1PRIMITIVE);
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
gDPSetCombineMode(MASTERDL, G_CC_SHADE, G_CC_SHADE);
gDPSetTextureLOD(gDisplayListHead++, G_TL_TILE);
gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE);
gDPSetTextureDetail(gDisplayListHead++, G_TD_CLAMP);
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP);
gDPSetTextureConvert(gDisplayListHead++, G_TC_FILT);
gDPSetTextureLOD(MASTERDL, G_TL_TILE);
gDPSetTextureLUT(MASTERDL, G_TT_NONE);
gDPSetTextureDetail(MASTERDL, G_TD_CLAMP);
gDPSetTexturePersp(MASTERDL, G_TP_PERSP);
gDPSetTextureFilter(MASTERDL, G_TF_BILERP);
gDPSetTextureConvert(MASTERDL, G_TC_FILT);
gDPSetCombineKey(gDisplayListHead++, G_CK_NONE);
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetColorDither(gDisplayListHead++, G_CD_MAGICSQ);
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
gDPSetCombineKey(MASTERDL, G_CK_NONE);
gDPSetAlphaCompare(MASTERDL, G_AC_NONE);
gDPSetRenderMode(MASTERDL, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetColorDither(MASTERDL, G_CD_MAGICSQ);
gDPSetCycleType(MASTERDL, G_CYC_FILL);
#if defined(VERSION_SH) || defined(VERSION_CN)
gDPSetAlphaDither(gDisplayListHead++, G_AD_PATTERN);
gDPSetAlphaDither(MASTERDL, G_AD_PATTERN);
#endif
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
}
/**
* Sets the initial RSP (Reality Signal Processor) settings.
*/
void init_rsp(void) {
gSPClearGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CULL_BOTH | G_FOG
gSPClearGeometryMode(MASTERDL, G_SHADE | G_SHADING_SMOOTH | G_CULL_BOTH | G_FOG
| G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD);
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CULL_BACK | G_LIGHTING);
gSPSetGeometryMode(MASTERDL, G_SHADE | G_SHADING_SMOOTH | G_CULL_BACK | G_LIGHTING);
gSPNumLights(gDisplayListHead++, NUMLIGHTS_1);
gSPTexture(gDisplayListHead++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
gSPNumLights(MASTERDL, NUMLIGHTS_1);
gSPTexture(MASTERDL, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
// @bug Failing to set the clip ratio will result in warped triangles in F3DEX2
// without this change: https://jrra.zone/n64/doc/n64man/gsp/gSPClipRatio.htm
#ifdef F3DEX_GBI_2
gSPClipRatio(gDisplayListHead++, FRUSTRATIO_1);
gSPClipRatio(MASTERDL, FRUSTRATIO_1);
#endif
}
@@ -133,16 +133,16 @@ void init_rsp(void) {
* Initialize the z buffer for the current frame.
*/
void init_z_buffer(void) {
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetDepthSource(gDisplayListHead++, G_ZS_PIXEL);
gDPSetDepthImage(gDisplayListHead++, gPhysicalZBuffer);
gDPSetDepthSource(MASTERDL, G_ZS_PIXEL);
gDPSetDepthImage(MASTERDL, gPhysicalZBuffer);
gDPSetColorImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gPhysicalZBuffer);
gDPSetFillColor(gDisplayListHead++,
gDPSetColorImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gPhysicalZBuffer);
gDPSetFillColor(MASTERDL,
GPACK_ZDZ(G_MAXFBZ, 0) << 16 | GPACK_ZDZ(G_MAXFBZ, 0));
gDPFillRectangle(gDisplayListHead++, 0, BORDER_HEIGHT, SCREEN_WIDTH - 1,
gDPFillRectangle(MASTERDL, 0, BORDER_HEIGHT, SCREEN_WIDTH - 1,
SCREEN_HEIGHT - 1 - BORDER_HEIGHT);
}
@@ -150,12 +150,12 @@ void init_z_buffer(void) {
* Tells the RDP which of the three framebuffers it shall draw to.
*/
void select_framebuffer(void) {
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
gDPSetColorImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH,
gDPSetCycleType(MASTERDL, G_CYC_1CYCLE);
gDPSetColorImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH,
gPhysicalFramebuffers[sRenderingFramebuffer]);
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
SCREEN_HEIGHT - BORDER_HEIGHT);
}
@@ -164,19 +164,19 @@ void select_framebuffer(void) {
* Information about the color argument: https://jrra.zone/n64/doc/n64man/gdp/gDPSetFillColor.htm
*/
void clear_framebuffer(s32 color) {
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
gDPSetRenderMode(MASTERDL, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetCycleType(MASTERDL, G_CYC_FILL);
gDPSetFillColor(gDisplayListHead++, color);
gDPFillRectangle(gDisplayListHead++,
gDPSetFillColor(MASTERDL, color);
gDPFillRectangle(MASTERDL,
GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(0), BORDER_HEIGHT,
GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(0) - 1, SCREEN_HEIGHT - BORDER_HEIGHT - 1);
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
gDPSetCycleType(MASTERDL, G_CYC_1CYCLE);
}
/**
@@ -193,35 +193,35 @@ void clear_viewport(Vp *viewport, s32 color) {
vpLrx = GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(SCREEN_WIDTH - vpLrx);
#endif
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
gDPSetRenderMode(MASTERDL, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetCycleType(MASTERDL, G_CYC_FILL);
gDPSetFillColor(gDisplayListHead++, color);
gDPFillRectangle(gDisplayListHead++, vpUlx, vpUly, vpLrx, vpLry);
gDPSetFillColor(MASTERDL, color);
gDPFillRectangle(MASTERDL, vpUlx, vpUly, vpLrx, vpLry);
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
gDPSetCycleType(MASTERDL, G_CYC_1CYCLE);
}
/**
* Draw the horizontal screen borders.
*/
void draw_screen_borders(void) {
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
gDPSetRenderMode(MASTERDL, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gDPSetCycleType(MASTERDL, G_CYC_FILL);
gDPSetFillColor(gDisplayListHead++, GPACK_RGBA5551(0, 0, 0, 0) << 16 | GPACK_RGBA5551(0, 0, 0, 0));
gDPSetFillColor(MASTERDL, GPACK_RGBA5551(0, 0, 0, 0) << 16 | GPACK_RGBA5551(0, 0, 0, 0));
#if BORDER_HEIGHT != 0
gDPFillRectangle(gDisplayListHead++, GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(0), 0,
gDPFillRectangle(MASTERDL, GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(0), 0,
GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(0) - 1, BORDER_HEIGHT - 1);
gDPFillRectangle(gDisplayListHead++,
gDPFillRectangle(MASTERDL,
GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(0), SCREEN_HEIGHT - BORDER_HEIGHT,
GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(0) - 1, SCREEN_HEIGHT - 1);
#endif
@@ -237,7 +237,7 @@ void make_viewport_clip_rect(Vp *viewport) {
s16 vpLrx = (viewport->vp.vtrans[0] + viewport->vp.vscale[0]) / 4 - 1;
s16 vpLry = (viewport->vp.vtrans[1] + viewport->vp.vscale[1]) / 4 - 1;
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, vpUlx, vpPly, vpLrx, vpLry);
gDPSetScissor(MASTERDL, G_SC_NON_INTERLACE, vpUlx, vpPly, vpLrx, vpLry);
}
/**
@@ -288,8 +288,8 @@ void end_master_display_list(void) {
draw_profiler();
}
gDPFullSync(gDisplayListHead++);
gSPEndDisplayList(gDisplayListHead++);
gDPFullSync(MASTERDL);
gSPEndDisplayList(MASTERDL);
create_gfx_task_structure();
}

View File

@@ -10,6 +10,7 @@
#include "init/memory.h"
#define GFX_POOL_SIZE 6400 // Size of how large the master display list (gDisplayListHead) can be
#define MASTERDL gDisplayListHead++
struct GfxPool {
Gfx buffer[GFX_POOL_SIZE];

View File

@@ -57,10 +57,10 @@ static s16 sCameraHUDStatus = CAM_STATUS_NONE;
* Renders a rgba16 16x16 glyph texture from a table list.
*/
void render_hud_tex_lut(s32 x, s32 y, u8 *texture) {
gDPPipeSync(gDisplayListHead++);
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture);
gSPDisplayList(gDisplayListHead++, &dl_hud_img_load_tex_block);
gSPTextureRectangle(gDisplayListHead++, x << 2, y << 2, (x + 15) << 2, (y + 15) << 2,
gDPPipeSync(MASTERDL);
gDPSetTextureImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture);
gSPDisplayList(MASTERDL, &dl_hud_img_load_tex_block);
gSPTextureRectangle(MASTERDL, x << 2, y << 2, (x + 15) << 2, (y + 15) << 2,
G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10);
}
@@ -68,17 +68,17 @@ void render_hud_tex_lut(s32 x, s32 y, u8 *texture) {
* Renders a rgba16 8x8 glyph texture from a table list.
*/
void render_hud_small_tex_lut(s32 x, s32 y, u8 *texture) {
gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0,
gDPSetTile(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0,
G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD);
gDPTileSync(gDisplayListHead++);
gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0, G_TX_RENDERTILE, 0,
gDPTileSync(MASTERDL);
gDPSetTile(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0, G_TX_RENDERTILE, 0,
G_TX_CLAMP, 3, G_TX_NOLOD, G_TX_CLAMP, 3, G_TX_NOLOD);
gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, (8 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC);
gDPPipeSync(gDisplayListHead++);
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture);
gDPLoadSync(gDisplayListHead++);
gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 8 * 8 - 1, CALC_DXT(8, G_IM_SIZ_16b_BYTES));
gSPTextureRectangle(gDisplayListHead++, x << 2, y << 2, (x + 7) << 2, (y + 7) << 2, G_TX_RENDERTILE,
gDPSetTileSize(MASTERDL, G_TX_RENDERTILE, 0, 0, (8 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC);
gDPPipeSync(MASTERDL);
gDPSetTextureImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture);
gDPLoadSync(MASTERDL);
gDPLoadBlock(MASTERDL, G_TX_LOADTILE, 0, 0, 8 * 8 - 1, CALC_DXT(8, G_IM_SIZ_16b_BYTES));
gSPTextureRectangle(MASTERDL, x << 2, y << 2, (x + 7) << 2, (y + 7) << 2, G_TX_RENDERTILE,
0, 0, 4 << 10, 1 << 10);
}
@@ -88,13 +88,13 @@ void render_hud_small_tex_lut(s32 x, s32 y, u8 *texture) {
void render_power_meter_health_segment(s16 numHealthWedges) {
u8 *(*healthLUT)[] = segmented_to_virtual(&power_meter_health_segments_lut);
gDPPipeSync(gDisplayListHead++);
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1,
gDPPipeSync(MASTERDL);
gDPSetTextureImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1,
(*healthLUT)[numHealthWedges - 1]);
gDPLoadSync(gDisplayListHead++);
gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES));
gSP1Triangle(gDisplayListHead++, 0, 1, 2, 0);
gSP1Triangle(gDisplayListHead++, 0, 2, 3, 0);
gDPLoadSync(MASTERDL);
gDPLoadBlock(MASTERDL, G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES));
gSP1Triangle(MASTERDL, 0, 1, 2, 0);
gSP1Triangle(MASTERDL, 0, 2, 3, 0);
}
/**
@@ -110,17 +110,17 @@ void render_dl_power_meter(s16 numHealthWedges) {
guTranslate(mtx, (f32) sPowerMeterHUD.x, (f32) sPowerMeterHUD.y, 0);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx++),
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(mtx++),
G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_PUSH);
gSPDisplayList(gDisplayListHead++, &dl_power_meter_base);
gSPDisplayList(MASTERDL, &dl_power_meter_base);
if (numHealthWedges != 0) {
gSPDisplayList(gDisplayListHead++, &dl_power_meter_health_segments_begin);
gSPDisplayList(MASTERDL, &dl_power_meter_health_segments_begin);
render_power_meter_health_segment(numHealthWedges);
gSPDisplayList(gDisplayListHead++, &dl_power_meter_health_segments_end);
gSPDisplayList(MASTERDL, &dl_power_meter_health_segments_end);
}
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gSPPopMatrix(MASTERDL, G_MTX_MODELVIEW);
}
/**
@@ -350,10 +350,10 @@ void render_hud_timer(void) {
print_text_fmt_int(GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(71), 185, "%02d", timerSecs);
print_text_fmt_int(GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(37), 185, "%d", timerFracSecs);
gSPDisplayList(gDisplayListHead++, dl_hud_img_begin);
gSPDisplayList(MASTERDL, dl_hud_img_begin);
render_hud_tex_lut(GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(81), 32, (*hudLUT)[GLYPH_APOSTROPHE]);
render_hud_tex_lut(GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(46), 32, (*hudLUT)[GLYPH_DOUBLE_QUOTE]);
gSPDisplayList(gDisplayListHead++, dl_hud_img_end);
gSPDisplayList(MASTERDL, dl_hud_img_end);
}
/**
@@ -377,7 +377,7 @@ void render_hud_camera_status(void) {
return;
}
gSPDisplayList(gDisplayListHead++, dl_hud_img_begin);
gSPDisplayList(MASTERDL, dl_hud_img_begin);
render_hud_tex_lut(x, y, (*cameraLUT)[GLYPH_CAM_CAMERA]);
switch (sCameraHUDStatus & CAM_STATUS_MODE_GROUP) {
@@ -401,7 +401,7 @@ void render_hud_camera_status(void) {
break;
}
gSPDisplayList(gDisplayListHead++, dl_hud_img_end);
gSPDisplayList(MASTERDL, dl_hud_img_end);
}
/**
@@ -426,8 +426,8 @@ void render_hud(void) {
create_dl_identity_matrix();
guOrtho(mtx, -16.0f, SCREEN_WIDTH + 16, 0, SCREEN_HEIGHT, -10.0f, 10.0f, 1.0f);
gSPPerspNormalize(gDisplayListHead++, 0xFFFF);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx),
gSPPerspNormalize(MASTERDL, 0xFFFF);
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(mtx),
G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH);
#else
create_dl_ortho_matrix();

File diff suppressed because it is too large Load Diff

View File

@@ -366,13 +366,13 @@ s8 char_to_glyph_index(char c) {
void add_glyph_texture(s8 glyphIndex) {
const u8 *const *glyphs = segmented_to_virtual(main_hud_lut);
gDPPipeSync(gDisplayListHead++);
gDPPipeSync(MASTERDL);
#ifdef VERSION_CN
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, glyphs[(u8) glyphIndex]);
gDPSetTextureImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, glyphs[(u8) glyphIndex]);
#else
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, glyphs[glyphIndex]);
gDPSetTextureImage(MASTERDL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, glyphs[glyphIndex]);
#endif
gSPDisplayList(gDisplayListHead++, dl_hud_img_load_tex_block);
gSPDisplayList(MASTERDL, dl_hud_img_load_tex_block);
}
#ifndef WIDESCREEN
@@ -418,7 +418,7 @@ void render_textrect(s32 x, s32 y, s32 pos) {
#endif
rectX = rectBaseX;
rectY = rectBaseY;
gSPTextureRectangle(gDisplayListHead++, rectX << 2, rectY << 2, (rectX + 15) << 2,
gSPTextureRectangle(MASTERDL, rectX << 2, rectY << 2, (rectX + 15) << 2,
(rectY + 15) << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10);
}
@@ -444,9 +444,9 @@ void render_text_labels(void) {
}
guOrtho(mtx, 0.0f, SCREEN_WIDTH, 0.0f, SCREEN_HEIGHT, -10.0f, 10.0f, 1.0f);
gSPPerspNormalize((Gfx *) (gDisplayListHead++), 0xFFFF);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
gSPDisplayList(gDisplayListHead++, dl_hud_img_begin);
gSPPerspNormalize((Gfx *) (MASTERDL), 0xFFFF);
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
gSPDisplayList(MASTERDL, dl_hud_img_begin);
for (i = 0; i < sTextLabelsCount; i++) {
for (j = 0; j < sTextLabels[i]->length; j++) {
@@ -519,7 +519,7 @@ void render_text_labels(void) {
mem_pool_free(gEffectsMemoryPool, sTextLabels[i]);
}
gSPDisplayList(gDisplayListHead++, dl_hud_img_end);
gSPDisplayList(MASTERDL, dl_hud_img_end);
sTextLabelsCount = 0;
}

View File

@@ -88,9 +88,9 @@ void draw_profiler_bar(OSTime clockBase, OSTime clockStart, OSTime clockEnd, s16
// perform the render if start is less than end. in most cases, it should be.
if (rectX1 < rectX2) {
gDPPipeSync(gDisplayListHead++);
gDPSetFillColor(gDisplayListHead++, color << 16 | color);
gDPFillRectangle(gDisplayListHead++, rectX1, posY, rectX2, posY + 2);
gDPPipeSync(MASTERDL);
gDPSetFillColor(MASTERDL, color << 16 | color);
gDPFillRectangle(MASTERDL, rectX1, posY, rectX2, posY + 2);
}
}
@@ -98,28 +98,28 @@ void draw_reference_profiler_bars(void) {
// Draws the reference "max" bars underneath the real thing.
// Blue
gDPPipeSync(gDisplayListHead++);
gDPSetFillColor(gDisplayListHead++,
gDPPipeSync(MASTERDL);
gDPSetFillColor(MASTERDL,
GPACK_RGBA5551(40, 80, 255, 1) << 16 | GPACK_RGBA5551(40, 80, 255, 1));
gDPFillRectangle(gDisplayListHead++, 30, 220, 79, 222);
gDPFillRectangle(MASTERDL, 30, 220, 79, 222);
// Yellow
gDPPipeSync(gDisplayListHead++);
gDPSetFillColor(gDisplayListHead++,
gDPPipeSync(MASTERDL);
gDPSetFillColor(MASTERDL,
GPACK_RGBA5551(255, 255, 40, 1) << 16 | GPACK_RGBA5551(255, 255, 40, 1));
gDPFillRectangle(gDisplayListHead++, 79, 220, 128, 222);
gDPFillRectangle(MASTERDL, 79, 220, 128, 222);
// Orange
gDPPipeSync(gDisplayListHead++);
gDPSetFillColor(gDisplayListHead++,
gDPPipeSync(MASTERDL);
gDPSetFillColor(MASTERDL,
GPACK_RGBA5551(255, 120, 40, 1) << 16 | GPACK_RGBA5551(255, 120, 40, 1));
gDPFillRectangle(gDisplayListHead++, 128, 220, 177, 222);
gDPFillRectangle(MASTERDL, 128, 220, 177, 222);
// Red
gDPPipeSync(gDisplayListHead++);
gDPSetFillColor(gDisplayListHead++,
gDPPipeSync(MASTERDL);
gDPSetFillColor(MASTERDL,
GPACK_RGBA5551(255, 40, 40, 1) << 16 | GPACK_RGBA5551(255, 40, 40, 1));
gDPFillRectangle(gDisplayListHead++, 177, 220, 226, 222);
gDPFillRectangle(MASTERDL, 177, 220, 226, 222);
}
/*

View File

@@ -148,24 +148,24 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) {
#endif
if (enableZBuffer != 0) {
gDPPipeSync(gDisplayListHead++);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER);
gDPPipeSync(MASTERDL);
gSPSetGeometryMode(MASTERDL, G_ZBUFFER);
}
for (i = 0; i < GFX_NUM_MASTER_LISTS; i++) {
if ((currList = node->listHeads[i]) != NULL) {
gDPSetRenderMode(gDisplayListHead++, modeList->modes[i], mode2List->modes[i]);
gDPSetRenderMode(MASTERDL, modeList->modes[i], mode2List->modes[i]);
while (currList != NULL) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(currList->transform),
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(currList->transform),
G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
gSPDisplayList(gDisplayListHead++, currList->displayList);
gSPDisplayList(MASTERDL, currList->displayList);
currList = currList->next;
}
}
}
if (enableZBuffer != 0) {
gDPPipeSync(gDisplayListHead++);
gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER);
gDPPipeSync(MASTERDL);
gSPClearGeometryMode(MASTERDL, G_ZBUFFER);
}
}
@@ -177,7 +177,7 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) {
static void geo_append_display_list(void *displayList, s16 layer) {
#ifdef F3DEX_GBI_2
gSPLookAt(gDisplayListHead++, &lookAt);
gSPLookAt(MASTERDL, &lookAt);
#endif
if (gCurGraphNodeMasterList != 0) {
struct DisplayListNode *listNode =
@@ -225,8 +225,8 @@ static void geo_process_ortho_projection(struct GraphNodeOrthoProjection *node)
f32 bottom = (gCurGraphNodeRoot->y + gCurGraphNodeRoot->height) / 2.0f * node->scale;
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 | G_MTX_NOPUSH);
gSPPerspNormalize(MASTERDL, 0xFFFF);
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
geo_process_node_and_siblings(node->node.children);
}
@@ -250,9 +250,9 @@ static void geo_process_perspective(struct GraphNodePerspective *node) {
#endif
guPerspective(mtx, &perspNorm, node->fov, aspect, node->near, node->far, 1.0f);
gSPPerspNormalize(gDisplayListHead++, perspNorm);
gSPPerspNormalize(MASTERDL, perspNorm);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
gCurGraphNodeCamFrustum = node;
geo_process_node_and_siblings(node->fnNode.node.children);
@@ -317,7 +317,7 @@ static void geo_process_camera(struct GraphNodeCamera *node) {
}
mtxf_rotate_xy(rollMtx, node->rollScreen);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(rollMtx), G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH);
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(rollMtx), G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH);
mtxf_lookat(cameraTransform, node->pos, node->focus, node->roll);
mtxf_mul(gMatStack[gMatStackIndex + 1], cameraTransform, gMatStack[gMatStackIndex]);
@@ -880,7 +880,7 @@ void geo_process_held_object(struct GraphNodeHeldObject *node) {
Mtx *mtx = alloc_display_list(sizeof(*mtx));
#ifdef F3DEX_GBI_2
gSPLookAt(gDisplayListHead++, &lookAt);
gSPLookAt(MASTERDL, &lookAt);
#endif
if (node->fnNode.func != NULL) {
@@ -1071,8 +1071,8 @@ void geo_process_root(struct GraphNodeRoot *node, Vp *b, Vp *c, s32 clearColor)
mtxf_identity(gMatStack[gMatStackIndex]);
mtxf_to_mtx(initialMatrix, gMatStack[gMatStackIndex]);
gMatStackFixed[gMatStackIndex] = initialMatrix;
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(viewport));
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(gMatStackFixed[gMatStackIndex]),
gSPViewport(MASTERDL, VIRTUAL_TO_PHYSICAL(viewport));
gSPMatrix(MASTERDL, VIRTUAL_TO_PHYSICAL(gMatStackFixed[gMatStackIndex]),
G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
gCurGraphNodeRoot = node;
if (node->node.children != NULL) {

View File

@@ -63,12 +63,12 @@ s32 dl_transition_color(s8 fadeTimer, u8 transTime, struct WarpTransitionData *t
Vtx *verts = vertex_transition_color(transData, alpha);
if (verts != NULL) {
gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen);
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(verts), 4, 0);
gSPDisplayList(gDisplayListHead++, dl_draw_quad_verts_0123);
gSPDisplayList(gDisplayListHead++, dl_screen_transition_end);
gSPDisplayList(MASTERDL, dl_proj_mtx_fullscreen);
gDPSetCombineMode(MASTERDL, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(MASTERDL, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
gSPVertex(MASTERDL, VIRTUAL_TO_PHYSICAL(verts), 4, 0);
gSPDisplayList(MASTERDL, dl_draw_quad_verts_0123);
gSPDisplayList(MASTERDL, dl_screen_transition_end);
}
return set_and_reset_transition_fade_timer(fadeTimer, transTime);
}
@@ -176,30 +176,30 @@ s32 render_textured_transition(s8 fadeTimer, s8 transTime, struct WarpTransition
if (verts != NULL) {
load_tex_transition_vertex(verts, fadeTimer, transData, centerTransX, centerTransY, texTransRadius, transTexType);
gSPDisplayList(gDisplayListHead++, dl_proj_mtx_fullscreen)
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2);
gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(verts), 8, 0);
gSPDisplayList(gDisplayListHead++, dl_transition_draw_filled_region);
gDPPipeSync(gDisplayListHead++);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP);
gSPDisplayList(MASTERDL, dl_proj_mtx_fullscreen)
gDPSetCombineMode(MASTERDL, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(MASTERDL, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2);
gSPVertex(MASTERDL, VIRTUAL_TO_PHYSICAL(verts), 8, 0);
gSPDisplayList(MASTERDL, dl_transition_draw_filled_region);
gDPPipeSync(MASTERDL);
gDPSetCombineMode(MASTERDL, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(MASTERDL, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
gDPSetTextureFilter(MASTERDL, G_TF_BILERP);
switch (transTexType) {
case TRANS_TYPE_MIRROR:
gDPLoadTextureBlock(gDisplayListHead++, sTextureTransitionID[texID], G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0,
gDPLoadTextureBlock(MASTERDL, sTextureTransitionID[texID], G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0,
G_TX_WRAP | G_TX_MIRROR, G_TX_WRAP | G_TX_MIRROR, 5, 6, G_TX_NOLOD, G_TX_NOLOD);
break;
case TRANS_TYPE_CLAMP:
gDPLoadTextureBlock(gDisplayListHead++, sTextureTransitionID[texID], G_IM_FMT_IA, G_IM_SIZ_8b, 64, 64, 0,
gDPLoadTextureBlock(MASTERDL, sTextureTransitionID[texID], G_IM_FMT_IA, G_IM_SIZ_8b, 64, 64, 0,
G_TX_CLAMP, G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD);
break;
}
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPVertex(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(verts), 4, 0);
gSPDisplayList(gDisplayListHead++, dl_draw_quad_verts_0123);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF);
gSPDisplayList(gDisplayListHead++, dl_screen_transition_end);
gSPTexture(MASTERDL, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPVertex(MASTERDL, VIRTUAL_TO_PHYSICAL(verts), 4, 0);
gSPDisplayList(MASTERDL, dl_draw_quad_verts_0123);
gSPTexture(MASTERDL, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF);
gSPDisplayList(MASTERDL, dl_screen_transition_end);
sTransitionTextureFadeCount[fadeTimer] += transData->texTimer;
} else {
}

View File

@@ -93,7 +93,7 @@ void move_segment_table_to_dmem(void) {
s32 i;
for (i = 0; i < 16; i++) {
gSPSegment(gDisplayListHead++, i, sSegmentTable[i]);
gSPSegment(MASTERDL, i, sSegmentTable[i]);
}
}
#else

View File

@@ -1722,13 +1722,13 @@ void print_menu_cursor(void) {
// Get the right graphic to use for the cursor.
if (sCursorClickingTimer == 0) {
// Idle
gSPDisplayList(gDisplayListHead++, dl_menu_idle_hand);
gSPDisplayList(MASTERDL, dl_menu_idle_hand);
}
if (sCursorClickingTimer != 0) {
// Grabbing
gSPDisplayList(gDisplayListHead++, dl_menu_grabbing_hand);
gSPDisplayList(MASTERDL, dl_menu_grabbing_hand);
}
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gSPPopMatrix(MASTERDL, G_MTX_MODELVIEW);
if (sCursorClickingTimer != 0) {
sCursorClickingTimer++; // This is a very strange way to implement a timer? It counts up and
// then resets to 0 instead of just counting down to 0.
@@ -1742,20 +1742,20 @@ void print_menu_cursor(void) {
* Prints a hud string depending of the hud table list defined with text fade properties.
*/
void print_hud_lut_string_fade(s8 hudLUT, s16 x, s16 y, const u8 *text) {
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha - sTextFadeAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha - sTextFadeAlpha);
print_hud_lut_string(hudLUT, x, y, text);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
}
/**
* Prints a generic white string with text fade properties.
*/
void print_generic_string_fade(s16 x, s16 y, const u8 *text) {
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha - sTextFadeAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha - sTextFadeAlpha);
print_generic_string(x, y, text);
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
}
/**
@@ -1873,8 +1873,8 @@ void print_main_menu_strings(void) {
static s16 sSoundTextX; // TODO: There should be a way to make this match on both US and Shindou.
#endif
// Print "SELECT FILE" text
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
#ifndef VERSION_EU
print_hud_lut_string(HUD_LUT_DIFF2, SELECT_FILE_X, SELECT_FILE_Y, textSelectFile);
#endif
@@ -1883,11 +1883,11 @@ void print_main_menu_strings(void) {
print_save_file_star_count(SAVE_FILE_B, SAVEFILE_X2, 78);
print_save_file_star_count(SAVE_FILE_C, SAVEFILE_X1, 118);
print_save_file_star_count(SAVE_FILE_D, SAVEFILE_X2, 118);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
#ifndef VERSION_EU
// Print menu names
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
print_generic_string(SCORE_X, 39, textScore);
print_generic_string(COPY_X, 39, textCopy);
print_generic_string(ERASE_X, 39, textErase);
@@ -1895,17 +1895,17 @@ void print_main_menu_strings(void) {
sSoundTextX = get_str_x_pos_from_center(254, textSoundModes[sSoundMode], 10.0f);
#endif
print_generic_string(SOUNDMODE_X1, 39, textSoundModes[sSoundMode]);
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
#endif
// Print file names
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
FILE_SELECT_PRINT_STRING(MARIOTEXT_X1, MARIOTEXT_Y1, textMarioA);
FILE_SELECT_PRINT_STRING(MARIOTEXT_X2, MARIOTEXT_Y1, textMarioB);
FILE_SELECT_PRINT_STRING(MARIOTEXT_X1, MARIOTEXT_Y2, textMarioC);
FILE_SELECT_PRINT_STRING(MARIOTEXT_X2, MARIOTEXT_Y2, textMarioD);
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_END);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_END);
}
#ifdef VERSION_EU
@@ -1918,15 +1918,15 @@ void print_main_lang_strings(void) {
static s16 centeredX;
// Print "SELECT FILE" text
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
centeredX = get_str_x_pos_from_center_scale(160, textSelectFile[sLanguageMode], 12.0f);
print_hud_lut_string(HUD_LUT_GLOBAL, centeredX, 35, textSelectFile[sLanguageMode]);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
// Print menu names
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
centeredX = get_str_x_pos_from_center(76, textScore[sLanguageMode], 10.0f);
print_generic_string(centeredX, 39, textScore[sLanguageMode]);
centeredX = get_str_x_pos_from_center(131, textCopy[sLanguageMode], 10.0f);
@@ -1935,7 +1935,7 @@ void print_main_lang_strings(void) {
print_generic_string(centeredX, 39, textErase[sLanguageMode]);
centeredX = get_str_x_pos_from_center(245, textOption[sLanguageMode], 10.0f);
print_generic_string(centeredX, 39, textOption[sLanguageMode]);
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
print_main_menu_strings();
}
@@ -2043,18 +2043,18 @@ void print_score_menu_strings(void) {
#ifndef VERSION_EU
// Print file star counts
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
print_save_file_star_count(SAVE_FILE_A, 90, 76);
print_save_file_star_count(SAVE_FILE_B, 211, 76);
print_save_file_star_count(SAVE_FILE_C, 90, 119);
print_save_file_star_count(SAVE_FILE_D, 211, 119);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
#endif
// Print menu names
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
#ifdef VERSION_EU
centeredX = get_str_x_pos_from_center(69, textReturn[sLanguageMode], 10.0f);
#endif
@@ -2067,19 +2067,19 @@ void print_score_menu_strings(void) {
centeredX = get_str_x_pos_from_center(249, textEraseFileButton[sLanguageMode], 10.0f);
#endif
print_generic_string(ERASEFILE_X1, 35, LANGUAGE_ARRAY(textEraseFileButton));
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
// Print file names
#ifdef VERSION_EU
print_main_menu_strings();
#else
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
FILE_SELECT_PRINT_STRING(89, SCORE_FILE_Y1, textMarioA);
FILE_SELECT_PRINT_STRING(211, SCORE_FILE_Y1, textMarioB);
FILE_SELECT_PRINT_STRING(89, SCORE_FILE_Y2, textMarioC);
FILE_SELECT_PRINT_STRING(211, SCORE_FILE_Y2, textMarioD);
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_END);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_END);
#endif
}
@@ -2252,17 +2252,17 @@ void print_copy_menu_strings(void) {
copy_menu_display_message(sStatusMessageID);
#ifndef VERSION_EU
// Print file star counts
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
print_save_file_star_count(SAVE_FILE_A, 90, 76);
print_save_file_star_count(SAVE_FILE_B, 211, 76);
print_save_file_star_count(SAVE_FILE_C, 90, 119);
print_save_file_star_count(SAVE_FILE_D, 211, 119);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
#endif
// Print menu names
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
#ifdef VERSION_EU
centeredX = get_str_x_pos_from_center(69, textReturn[sLanguageMode], 10.0f);
#endif
@@ -2275,19 +2275,19 @@ void print_copy_menu_strings(void) {
centeredX = get_str_x_pos_from_center(249, textEraseFileButton[sLanguageMode], 10.0f);
#endif
print_generic_string(ERASEFILE_X2, 35, LANGUAGE_ARRAY(textEraseFileButton));
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
// Print file names
#ifdef VERSION_EU
print_main_menu_strings();
#else
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
FILE_SELECT_PRINT_STRING(89, COPY_FILE_Y1, textMarioA);
FILE_SELECT_PRINT_STRING(211, COPY_FILE_Y1, textMarioB);
FILE_SELECT_PRINT_STRING(89, COPY_FILE_Y2, textMarioC);
FILE_SELECT_PRINT_STRING(211, COPY_FILE_Y2, textMarioD);
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_END);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_END);
#endif
}
@@ -2400,12 +2400,12 @@ void print_erase_menu_prompt(s16 x, s16 y) {
}
// Print "YES NO" strings
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, sYesNoColor[0], sYesNoColor[0], sYesNoColor[0], sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, sYesNoColor[0], sYesNoColor[0], sYesNoColor[0], sTextBaseAlpha);
print_generic_string(x + MENU_ERASE_YES_X_OFFSET, y, LANGUAGE_ARRAY(textYes));
gDPSetEnvColor(gDisplayListHead++, sYesNoColor[1], sYesNoColor[1], sYesNoColor[1], sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, sYesNoColor[1], sYesNoColor[1], sYesNoColor[1], sTextBaseAlpha);
print_generic_string(x + 98, y, LANGUAGE_ARRAY(textNo));
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
}
// MARIO_ERASED_VAR is the value there the letter "A" is, it works like this:
@@ -2570,18 +2570,18 @@ void print_erase_menu_strings(void) {
#ifndef VERSION_EU
// Print file star counts
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
print_save_file_star_count(SAVE_FILE_A, 90, 76);
print_save_file_star_count(SAVE_FILE_B, 211, 76);
print_save_file_star_count(SAVE_FILE_C, 90, 119);
print_save_file_star_count(SAVE_FILE_D, 211, 119);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
#endif
// Print menu names
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
#ifdef VERSION_EU
centeredX = get_str_x_pos_from_center(69, textReturn[sLanguageMode], 10.0f);
@@ -2595,19 +2595,19 @@ void print_erase_menu_strings(void) {
print_generic_string(VIEWSCORE_X2, 35, textViewScore);
print_generic_string(COPYFILE_X2, 35, textCopyFileButton);
#endif
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
// Print file names
#ifdef VERSION_EU
print_main_menu_strings();
#else
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
FILE_SELECT_PRINT_STRING(89, ERASE_FILE_Y1, textMarioA);
FILE_SELECT_PRINT_STRING(211, ERASE_FILE_Y1, textMarioB);
FILE_SELECT_PRINT_STRING(89, ERASE_FILE_Y2, textMarioC);
FILE_SELECT_PRINT_STRING(211, ERASE_FILE_Y2, textMarioD);
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_END);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_END);
#endif
}
@@ -2641,8 +2641,8 @@ void print_sound_mode_menu_strings(void) {
#endif
// Print "SOUND SELECT" text
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
#ifdef VERSION_EU
print_hud_lut_string(HUD_LUT_DIFF, 47, 32, textSoundSelect[sLanguageMode]);
@@ -2651,17 +2651,17 @@ void print_sound_mode_menu_strings(void) {
print_hud_lut_string(HUD_LUT_DIFF, SOUND_HUD_X, SOUND_HUD_Y, textSoundSelect);
#endif
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
#ifdef VERSION_EU // In EU their X position get increased each string
// Print sound mode names
for (mode = 0, textX = 90; mode < 3; textX += 70, mode++) {
if (mode == sSoundMode) {
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
} else {
gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 0, 0, 0, sTextBaseAlpha);
}
print_generic_string(
get_str_x_pos_from_center(textX, textSoundModes[sLanguageMode * 3 + mode], 10.0f),
@@ -2671,9 +2671,9 @@ void print_sound_mode_menu_strings(void) {
// In EU, print language mode names
for (mode = 0, textX = 90; mode < 3; textX += 70, mode++) {
if (mode == sLanguageMode) {
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
} else {
gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 0, 0, 0, sTextBaseAlpha);
}
print_generic_string(
get_str_x_pos_from_center(textX, textLanguage[mode], 10.0f),
@@ -2683,9 +2683,9 @@ void print_sound_mode_menu_strings(void) {
// Print sound mode names
for (mode = 0; mode < 3; mode++) {
if (sSoundMode == mode) {
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
} else {
gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 0, 0, 0, sTextBaseAlpha);
}
#ifndef VERSION_JP
// Mode names are centered correctly on US and Shindou
@@ -2698,11 +2698,11 @@ void print_sound_mode_menu_strings(void) {
#endif
#ifdef VERSION_EU
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
print_generic_string(182, 29, textReturn[sLanguageMode]);
#endif
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
}
#ifndef VERSION_CN
@@ -2946,18 +2946,18 @@ void print_save_file_scores(s8 fileIndex) {
textFileLetter[0] = fileIndex + ASCII_TO_DIALOG('A'); // get letter of file selected
// Print file name at top
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
print_hud_lut_string(HUD_LUT_DIFF, MARIO_X, MARIO_Y, textMario);
print_hud_lut_string(HUD_LUT_GLOBAL, FILE_LETTER_X, 15, textFileLetter);
// Print save file star count at top
print_save_file_star_count(fileIndex, 124, 15);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
// Print course scores
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_BEGIN);
gDPSetEnvColor(MASTERDL, 255, 255, 255, sTextBaseAlpha);
//! Huge print list, for loops exist for a reason!
#ifdef VERSION_CN
@@ -3041,7 +3041,7 @@ void print_save_file_scores(s8 fileIndex) {
FILE_SELECT_PRINT_STRING(270, 17, textRArrow);
#endif
gSPDisplayList(gDisplayListHead++, FILE_SELECT_TEXT_DL_END);
gSPDisplayList(MASTERDL, FILE_SELECT_TEXT_DL_END);
}
#undef PRINT_COURSE_NAME_CN

View File

@@ -214,28 +214,28 @@ void print_course_number(void) {
create_dl_translation_matrix(MENU_MTX_PUSH, 158.0f, 81.0f, 0.0f);
// Full wood texture in JP & US, lower part of it on EU
gSPDisplayList(gDisplayListHead++, dl_menu_rgba16_wood_course);
gSPDisplayList(MASTERDL, dl_menu_rgba16_wood_course);
#ifdef VERSION_EU
// Change upper part of the wood texture depending of the language defined
switch (language) {
case LANGUAGE_ENGLISH:
gSPDisplayList(gDisplayListHead++, dl_menu_texture_course_upper);
gSPDisplayList(MASTERDL, dl_menu_texture_course_upper);
break;
case LANGUAGE_FRENCH:
gSPDisplayList(gDisplayListHead++, dl_menu_texture_niveau_upper);
gSPDisplayList(MASTERDL, dl_menu_texture_niveau_upper);
break;
case LANGUAGE_GERMAN:
gSPDisplayList(gDisplayListHead++, dl_menu_texture_kurs_upper);
gSPDisplayList(MASTERDL, dl_menu_texture_kurs_upper);
break;
}
gSPDisplayList(gDisplayListHead++, dl_menu_rgba16_wood_course_end);
gSPDisplayList(MASTERDL, dl_menu_rgba16_wood_course_end);
#endif
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 255);
gSPPopMatrix(MASTERDL, G_MTX_MODELVIEW);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, 255);
int_to_str(gCurrCourseNum, courseNum);
@@ -245,7 +245,7 @@ void print_course_number(void) {
print_hud_lut_string(HUD_LUT_GLOBAL, 143, 158, courseNum);
}
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
}
#ifdef VERSION_JP
@@ -304,13 +304,13 @@ void print_act_selector_strings(void) {
#endif
// Print the coin highscore.
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 255);
gSPDisplayList(MASTERDL, dl_rgba16_text_begin);
gDPSetEnvColor(MASTERDL, 255, 255, 255, 255);
print_hud_my_score_coins(1, gCurrSaveFileNum - 1, COURSE_NUM_TO_INDEX(gCurrCourseNum), 155, 106);
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end);
gSPDisplayList(MASTERDL, dl_rgba16_text_end);
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, 255);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
gDPSetEnvColor(MASTERDL, 0, 0, 0, 255);
// Print the "MY SCORE" text if the coin score is more than 0
if (save_file_get_course_coin_score(gCurrSaveFileNum - 1, COURSE_NUM_TO_INDEX(gCurrCourseNum)) != 0) {
// TODO: Macros for all these hardcoded positions would be nice
@@ -331,7 +331,7 @@ void print_act_selector_strings(void) {
print_generic_string(lvlNameX, 33, currLevelName + 3);
#endif
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
#ifdef VERSION_EU
print_course_number(language);
@@ -340,11 +340,11 @@ void print_act_selector_strings(void) {
#endif
#ifdef VERSION_CN
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
gSPDisplayList(MASTERDL, dl_ia_text_begin);
#else
gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin);
gSPDisplayList(MASTERDL, dl_menu_ia8_text_begin);
#endif
gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, 255);
gDPSetEnvColor(MASTERDL, 0, 0, 0, 255);
// Print the name of the selected act.
if (sVisibleStars != 0) {
@@ -360,10 +360,10 @@ void print_act_selector_strings(void) {
}
#ifdef VERSION_CN
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
gSPDisplayList(MASTERDL, dl_ia_text_end);
gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin);
gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, 255);
gSPDisplayList(MASTERDL, dl_menu_ia8_text_begin);
gDPSetEnvColor(MASTERDL, 0, 0, 0, 255);
#endif
// Print the numbers above each star.
@@ -376,7 +376,7 @@ void print_act_selector_strings(void) {
#endif
}
gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end);
gSPDisplayList(MASTERDL, dl_menu_ia8_text_end);
}
/**