Added High-Quality Ending

This commit is contained in:
NoHomoBoi 2020-08-18 04:19:09 -05:00
parent 77570e7137
commit c82ca9e75f
3 changed files with 52 additions and 247 deletions

View File

@ -1,216 +0,0 @@
#include <ultra64.h>
#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(),
};

View File

@ -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);
}

View File

@ -14,8 +14,8 @@ def md5(fname):
hash_md5.update(chunk)
return hash_md5.hexdigest()
if len(sys.argv) < 3:
print('usage: mkzip <lstfile> <dstpath>')
if len(sys.argv) < 4:
print('usage: mkzip <lstfile> <dstpath> <legacy>')
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]))
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);
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:
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)