diff --git a/src/game/game_init.c b/src/game/game_init.c index 35ec669c..fced0fb0 100644 --- a/src/game/game_init.c +++ b/src/game/game_init.c @@ -62,6 +62,7 @@ UNUSED u8 filler80339D30[0x90]; s32 unused8032C690 = 0; u32 gGlobalTimer = 0; +u8 gIsConsole; u16 sCurrFBNum = 0; u16 frameBufferIndex = 0; @@ -319,6 +320,11 @@ void draw_reset_bars(void) { } void rendering_init(void) { + if (IO_READ(DPC_PIPEBUSY_REG) == 0) { + gIsConsole = 0; + } else { + gIsConsole = 1; + } gGfxPool = &gGfxPools[0]; set_segment_base_addr(1, gGfxPool->buffer); gGfxSPTask = &gGfxPool->spTask; diff --git a/src/game/game_init.h b/src/game/game_init.h index f1948718..8bcd83c5 100644 --- a/src/game/game_init.h +++ b/src/game/game_init.h @@ -41,6 +41,7 @@ extern Gfx *gDisplayListHead; extern u8 *gGfxPoolEnd; extern struct GfxPool *gGfxPool; extern u8 gControllerBits; +extern u8 gIsConsole; #ifdef EEP extern s8 gEepromProbe; #endif diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index 4626a34d..a3007a59 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -267,7 +267,13 @@ static void geo_process_perspective(struct GraphNodePerspective *node) { * range of this node. */ static void geo_process_level_of_detail(struct GraphNodeLevelOfDetail *node) { - f32 distanceFromCam = -gMatStack[gMatStackIndex][3][2]; + f32 distanceFromCam; + if (gIsConsole) { + distanceFromCam = -gMatStack[gMatStackIndex][3][2]; + } else { + distanceFromCam = 50; + } + if ((f32)node->minDistance <= distanceFromCam && distanceFromCam < (f32)node->maxDistance) { if (node->node.children != 0) { geo_process_node_and_siblings(node->node.children);