From c82ca9e75f4a7f43153728a723fcfeca3151751c Mon Sep 17 00:00:00 2001 From: NoHomoBoi <36680385+KiritoDv@users.noreply.github.com> Date: Tue, 18 Aug 2020 04:19:09 -0500 Subject: [PATCH] Added High-Quality Ending --- levels/ending/leveldata.c | 216 -------------------------------------- src/game/geo_misc.c | 41 ++++---- tools/mkzip.py | 42 ++++++-- 3 files changed, 52 insertions(+), 247 deletions(-) delete mode 100644 levels/ending/leveldata.c diff --git a/levels/ending/leveldata.c b/levels/ending/leveldata.c deleted file mode 100644 index 6c26ec29..00000000 --- a/levels/ending/leveldata.c +++ /dev/null @@ -1,216 +0,0 @@ -#include -#include "sm64.h" -#include "surface_terrains.h" -#include "moving_texture_macros.h" -#include "level_misc_macros.h" -#include "macro_preset_names.h" -#include "special_preset_names.h" -#include "textures.h" - -#include "make_const_nonconst.h" - -const Gfx dl_cake_end_screen[] = { - gsDPPipeSync(), - //gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB), - //gsDPSetRenderMode(G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2), - //gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - - //gsDPLoadTextureBlock(cake_end_texture_0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025800, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_1, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025840, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_2, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025880, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_3, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_070258C0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_4, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025900, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_5, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025940, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_6, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025980, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_7, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_070259C0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025A00, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_9, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025A40, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_10, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025A80, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_11, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025AC0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_12, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025B00, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_13, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025B40, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_14, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025B80, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_15, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025BC0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_16, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025C00, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_17, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025C40, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_18, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025C80, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_19, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025CC0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_20, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025D00, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_21, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025D40, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_22, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025D80, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_23, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025DC0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_24, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025E00, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_25, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025E40, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_26, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025E80, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_27, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025EC0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_28, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025F00, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_29, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025F40, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_30, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025F80, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_31, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07025FC0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_32, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026000, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_33, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026040, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_34, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026080, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_35, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_070260C0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_36, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026100, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_37, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026140, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_38, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026180, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_39, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_070261C0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_40, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026200, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_41, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026240, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_42, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026280, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_43, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_070262C0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_44, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026300, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_45, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026340, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_46, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_07026380, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPLoadTextureBlock(cake_end_texture_47, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 20, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 6, G_TX_NOLOD, G_TX_NOLOD), - //gsSPVertex(cake_end_vertex_070263C0, 4, 0), - //gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - - //gsDPPipeSync(), - //gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - //gsSPSetGeometryMode(G_LIGHTING), - //gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - //gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPEndDisplayList(), -}; diff --git a/src/game/geo_misc.c b/src/game/geo_misc.c index 72dd0bf0..cc884c12 100644 --- a/src/game/geo_misc.c +++ b/src/game/geo_misc.c @@ -195,30 +195,31 @@ Gfx *geo_exec_cake_end_screen(s32 callContext, struct GraphNode *node, UNUSED f3 Gfx *displayListHead = NULL; if (callContext == GEO_CONTEXT_RENDER) { - displayList = alloc_display_list(3 * sizeof(*displayList)); + displayList = alloc_display_list(13 * sizeof(*displayList)); displayListHead = displayList; generatedNode->fnNode.node.flags = (generatedNode->fnNode.node.flags & 0xFF) | 0x100; -#ifdef VERSION_EU - gSPDisplayList(displayListHead++, dl_cake_end_screen); -#else + + s32 x = 0; + s32 y = 0; + u32 w = SCREEN_HEIGHT * 2560 / 1920; + u32 h = SCREEN_HEIGHT; + u8 *texture = "levels/ending/cake"; + gSPDisplayList(displayListHead++, dl_proj_mtx_fullscreen); -#endif -#ifdef VERSION_EU - switch (eu_get_language()) { - case LANGUAGE_ENGLISH: - gSPDisplayList(displayListHead++, dl_cake_end_screen_eu_070296F8); - break; - case LANGUAGE_FRENCH: - gSPDisplayList(displayListHead++, dl_cake_end_screen_eu_07029768); - break; - case LANGUAGE_GERMAN: - gSPDisplayList(displayListHead++, dl_cake_end_screen_eu_070297D8); - break; - } -#else - gSPDisplayList(displayListHead++, dl_cake_end_screen); -#endif + + gSPDisplayList(displayListHead++, dl_hud_img_begin); + gDPSetTile(displayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_32b, 0, 0, G_TX_LOADTILE, 0, G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD); + gDPTileSync(displayListHead++); + gDPSetTile(displayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_32b, 2, 0, G_TX_RENDERTILE, 0, G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_NOMIRROR, 3, G_TX_NOLOD); + gDPSetTileSize(displayListHead++, G_TX_RENDERTILE, 0, 0, w << G_TEXTURE_IMAGE_FRAC, h << G_TEXTURE_IMAGE_FRAC); + gDPPipeSync(displayListHead++); + gDPSetTextureImage(displayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_32b, 1, texture); + gDPLoadSync(displayListHead++); + gDPLoadBlock(displayListHead++, G_TX_LOADTILE, 0, 0, w * h - 1, CALC_DXT(w, G_IM_SIZ_32b_BYTES)); + gSPTextureRectangle(displayListHead++, x << 2, y << 2, (x + w) << 2, (y + h) << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10); + gSPDisplayList(displayListHead++, dl_hud_img_end); + gSPEndDisplayList(displayListHead); } diff --git a/tools/mkzip.py b/tools/mkzip.py index ffe0153c..3c1e54c5 100644 --- a/tools/mkzip.py +++ b/tools/mkzip.py @@ -14,8 +14,8 @@ def md5(fname): hash_md5.update(chunk) return hash_md5.hexdigest() -if len(sys.argv) < 3: - print('usage: mkzip ') +if len(sys.argv) < 4: + print('usage: mkzip ') sys.exit(1) lst = [] @@ -26,13 +26,33 @@ with open(sys.argv[1], 'r') as f: continue tok = line.split() lst.append((tok[0], tok[1])) - - for (fname, aname) in lst: - path = os.path.join(sys.argv[2], aname) - old_md5 = md5(fname); - if not os.path.exists(path) or os.path.exists(path) and old_md5 != md5(path): - os.makedirs(os.path.dirname(path), exist_ok=True) - copyfile(fname, path) - print("Copying: " + path) + if not sys.argv[3] or not sys.argv[3] == "1": + for (fname, aname) in lst: + path = os.path.join(sys.argv[2], aname) + old_md5 = md5(fname) + if not os.path.exists(path) or os.path.exists(path) and old_md5 != md5(path): + os.makedirs(os.path.dirname(path), exist_ok=True) + copyfile(fname, path) + print("Copying: " + path) + else: + print("Skipping: " + path + " - MD5: "+md5(fname)) + else: + regenZip = False + zipPath = os.path.join(sys.argv[2],"legacy.zip") + print("Using Legacy System") + if os.path.exists(zipPath): + with zipfile.ZipFile(zipPath, 'w', allowZip64=False) as zipf: + for(zinfo) in zipf.infolist(): + with zipf.open(zinfo) as tmp: + print("Pre Loaded: "+md5(tmp.read())) + if md5(fname) != md5(tmp.read()): + print("Found a change on the zip, regenerating") + regenZip = True + break else: - print("Skipping: " + path + " - MD5: "+md5(fname)) + regenZip = True + if regenZip: + with zipfile.ZipFile(zipPath, 'w', allowZip64=False) as zipf: + for (fname, aname) in lst: + zipf.write(fname, arcname=aname) + print("Copying: " + aname) \ No newline at end of file