Removed cake and implemented widescreen on intro

This commit is contained in:
KiritoDv
2023-08-19 23:53:12 -06:00
parent 6356ecd3dd
commit e0182f49c9
7 changed files with 101 additions and 251 deletions
-23
View File
@@ -146,20 +146,6 @@ list(FILTER ALL_FILES EXCLUDE REGEX "bin/eu/.*.c")
list(FILTER ALL_FILES EXCLUDE REGEX "src/game/main.c")
list(FILTER ALL_FILES EXCLUDE REGEX "src/pc/dlmalloc.c")
file(GLOB_RECURSE SKYBOXES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "textures/skyboxes/*.png")
foreach(skybox ${SKYBOXES})
get_filename_component(OUTPUT_FILE_WLE ${skybox} NAME_WLE)
get_filename_component(OUTPUT_DIR ${skybox} DIRECTORY)
set(OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/bin/${OUTPUT_FILE_WLE}_skybox.c)
add_custom_command(
OUTPUT ${OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/bin
VERBATIM COMMAND $<TARGET_FILE:skyconv> --type sky --split ${CMAKE_CURRENT_SOURCE_DIR}/${skybox} ${CMAKE_CURRENT_BINARY_DIR}/bin
DEPENDS skyconv
)
list(APPEND ALL_FILES ${OUTPUT_FILE})
endforeach(skybox)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/level_headers.tmp
COMMAND ${CPP} -I${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/levels/level_headers.h.in > ${CMAKE_CURRENT_BINARY_DIR}/include/level_headers.tmp
@@ -296,7 +282,6 @@ file(GLOB_RECURSE ORGFILES2 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "levels/*.png")
file(GLOB_RECURSE ORGFILES3 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "textures/*.png")
list (APPEND ORGFILES ${ORGFILES2})
list (APPEND ORGFILES ${ORGFILES3})
list(REMOVE_ITEM ORGFILES "levels/ending/cake.png")
list(FILTER ORGFILES EXCLUDE REGEX "textures/ipl3_raw/.*.png")
list(FILTER ORGFILES EXCLUDE REGEX "textures/skyboxes/.*.png")
foreach(orgfile ${ORGFILES})
@@ -314,14 +299,6 @@ foreach(orgfile ${ORGFILES})
list(APPEND INC_C_FILES ${OUTPUT_FILE})
endforeach(orgfile)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/levels/ending/cake.inc.c
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/levels/ending
COMMAND $<TARGET_FILE:skyconv> --type cake --split ${CMAKE_CURRENT_SOURCE_DIR}/levels/ending/cake.png ${CMAKE_CURRENT_BINARY_DIR}/levels/ending
DEPENDS skyconv
)
list(APPEND INC_C_FILES ${CMAKE_CURRENT_BINARY_DIR}/levels/ending/cake.inc.c)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/text/us/define_text-tmp
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/text/us
+1 -2
View File
@@ -7,11 +7,10 @@
extern const GeoLayout ending_geo_000050[];
// leveldata
extern const Gfx dl_cake_end_screen[];
extern const Gfx dl_cake_end_screen_eu_070296F8[];
extern const Gfx dl_cake_end_screen_eu_07029768[];
extern const Gfx dl_cake_end_screen_eu_070297D8[];
extern const Gfx dl_cake_end_screen[];
extern const Vtx* cake_end_vertex_positions[];
// script
extern const LevelScript level_ending_entry[];
+49 -205
View File
@@ -619,210 +619,54 @@ static const Vtx cake_end_vertex_070263C0[] = {
{{{ 240, 20, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
};
// 0x07026400 - 0x07027350
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(),
const Vtx* cake_end_vertex_positions[] = {
cake_end_vertex_07025800,
cake_end_vertex_07025840,
cake_end_vertex_07025880,
cake_end_vertex_070258C0,
cake_end_vertex_07025900,
cake_end_vertex_07025940,
cake_end_vertex_07025980,
cake_end_vertex_070259C0,
cake_end_vertex_07025A00,
cake_end_vertex_07025A40,
cake_end_vertex_07025A80,
cake_end_vertex_07025AC0,
cake_end_vertex_07025B00,
cake_end_vertex_07025B40,
cake_end_vertex_07025B80,
cake_end_vertex_07025BC0,
cake_end_vertex_07025C00,
cake_end_vertex_07025C40,
cake_end_vertex_07025C80,
cake_end_vertex_07025CC0,
cake_end_vertex_07025D00,
cake_end_vertex_07025D40,
cake_end_vertex_07025D80,
cake_end_vertex_07025DC0,
cake_end_vertex_07025E00,
cake_end_vertex_07025E40,
cake_end_vertex_07025E80,
cake_end_vertex_07025EC0,
cake_end_vertex_07025F00,
cake_end_vertex_07025F40,
cake_end_vertex_07025F80,
cake_end_vertex_07025FC0,
cake_end_vertex_07026000,
cake_end_vertex_07026040,
cake_end_vertex_07026080,
cake_end_vertex_070260C0,
cake_end_vertex_07026100,
cake_end_vertex_07026140,
cake_end_vertex_07026180,
cake_end_vertex_070261C0,
cake_end_vertex_07026200,
cake_end_vertex_07026240,
cake_end_vertex_07026280,
cake_end_vertex_070262C0,
cake_end_vertex_07026300,
cake_end_vertex_07026340,
cake_end_vertex_07026380,
cake_end_vertex_070263C0
};
#endif
+2 -2
View File
@@ -120,8 +120,8 @@ void print_intro_text(void) {
#ifdef VERSION_EU
print_text(20, 20, "START");
#else
print_text_centered(60, 38, "PRESS");
print_text_centered(60, 20, "START");
print_text_centered(GFX_DIMENSIONS_FROM_LEFT_EDGE(60), 38, "PRESS");
print_text_centered(GFX_DIMENSIONS_FROM_LEFT_EDGE(60), 20, "START");
#endif
}
}
+35 -2
View File
@@ -1,4 +1,5 @@
#include <libultra/types.h>
#include <stdlib.h>
#include "sm64.h"
#include "geo_misc.h"
@@ -190,6 +191,8 @@ Gfx *geo_exec_flying_carpet_create(s32 callContext, struct GraphNode *node, UNUS
return displayList;
}
static char** gCakeSlices;
/**
* Create a display list for the end screen with Peach's delicious cake.
*/
@@ -198,8 +201,12 @@ Gfx *geo_exec_cake_end_screen(s32 callContext, struct GraphNode *node, UNUSED f3
Gfx *displayList = NULL;
Gfx *displayListHead = NULL;
if(gCakeSlices == NULL){
gCakeSlices = malloc((12 * 4) * sizeof(char*));
}
if (callContext == GEO_CONTEXT_RENDER) {
displayList = alloc_display_list(3 * sizeof(*displayList));
displayList = alloc_display_list(64 * sizeof(*displayList));
displayListHead = displayList;
generatedNode->fnNode.node.flags = (generatedNode->fnNode.node.flags & 0xFF) | 0x100;
@@ -221,7 +228,33 @@ Gfx *geo_exec_cake_end_screen(s32 callContext, struct GraphNode *node, UNUSED f3
break;
}
#else
gSPDisplayList(displayListHead++, dl_cake_end_screen);
Gfx* cake = alloc_display_list(512 * sizeof(*cake));
Gfx *cakeHead = cake;
gDPPipeSync(cakeHead++);
gDPSetCombineMode(cakeHead++, G_CC_DECALRGBA, G_CC_DECALRGBA);
gDPSetRenderMode(cakeHead++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2);
gSPTexture(cakeHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
void* data = ResourceGetDataByName(gCakeImage);
s32 size = 80 * 20 * 2;
for (int i = 0; i < 4 * 12; i++) {
if (!gCakeSlices[i]) {
gCakeSlices[i] = malloc(size);
memcpy(gCakeSlices[i], data + i * 3200, size);
}
gDPLoadTextureBlock(cakeHead++, gCakeSlices[i], 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);
gSPVertex(cakeHead++, cake_end_vertex_positions[i], 4, 0);
gSP2Triangles(cakeHead++, 0, 1, 2, 0x0, 0, 2, 3, 0x0);
}
gDPPipeSync(cakeHead++);
gSPTexture(cakeHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF);
gSPSetGeometryMode(cakeHead++, G_LIGHTING);
gDPSetCombineMode(cakeHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(cakeHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
gSPEndDisplayList(cakeHead++);
gSPDisplayList(displayListHead++, cake);
#endif
gSPEndDisplayList(displayListHead);
}
+4
View File
@@ -1,6 +1,7 @@
#ifndef GEO_MISC_H
#define GEO_MISC_H
#include "align_asset_macro.h"
#include <libultra/types.h>
#include <libultra/gbi.h>
@@ -12,6 +13,9 @@ enum FlyingCarpetState {
extern s8 gFlyingCarpetState;
#define dgCakeImage "__OTR__levels/ending/cake"
static const ALIGN_ASSET(2) char gCakeImage[] = dgCakeImage;
#ifndef GBI_FLOATS
extern void make_vertex(
Vtx *vtx, s32 n, s16 x, s16 y, s16 z, s16 tx, s16 ty, u8 r, u8 g, u8 b, u8 a
+10 -17
View File
@@ -10,6 +10,7 @@
#include "buffers/framebuffers.h"
#include "game/game_init.h"
#include "audio/external.h"
#include "gfx_dimensions.h"
// frame counts for the zoom in, hold, and zoom out of title model
#define INTRO_STEPS_ZOOM_IN 20
@@ -141,19 +142,8 @@ static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) {
static const Gfx *introBackgroundDlRows[] = { title_screen_bg_dl_0A000130, title_screen_bg_dl_0A000148,
title_screen_bg_dl_0A000160, title_screen_bg_dl_0A000178 };
// intro screen background texture X offsets
static float xCoords[] = {
0, 80, 160, 240,
0, 80, 160, 240,
0, 80, 160, 240,
};
// intro screen background texture Y offsets
static float yCoords[] = {
160, 160, 160, 160,
80, 80, 80, 80,
0, 0, 0, 0,
};
s32 num_tiles_h = (s32)(GFX_DIMENSIONS_ASPECT_RATIO * SCREEN_HEIGHT + 80 ) / 80;
float xOffset = ((float) SCREEN_WIDTH / 2) - ( GFX_DIMENSIONS_ASPECT_RATIO * SCREEN_HEIGHT / 2);
// table that points to either the "Super Mario 64" or "Game Over" tables
static const u8 *const *textureTables[] = { mario_title_texture_table, game_over_texture_table };
@@ -161,10 +151,11 @@ static Gfx *intro_backdrop_one_image(s32 index, s8 *backgroundTable) {
Mtx *mtx = alloc_display_list(sizeof(*mtx));
Gfx *displayList = alloc_display_list(36 * sizeof(*displayList));
Gfx *displayListIter = displayList;
const u8 *const *vIntroBgTable = segmented_to_virtual(textureTables[backgroundTable[index]]);
// TODO: Fix this for gameover screen
const u8 *const *vIntroBgTable = segmented_to_virtual(textureTables[backgroundTable[0]]);
s32 i;
guTranslate(mtx, xCoords[index], yCoords[index], 0.0f);
guTranslate(mtx, ((index % num_tiles_h) * 80) + xOffset, (index/num_tiles_h) * 80, 0.0f);
gSPMatrix(displayListIter++, mtx, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_PUSH);
gSPDisplayList(displayListIter++, &title_screen_bg_dl_0A000118);
for (i = 0; i < 4; ++i) {
@@ -198,13 +189,15 @@ Gfx *geo_intro_regular_backdrop(s32 state, struct GraphNode *node, UNUSED void *
Gfx *dlIter = NULL;
s32 i;
s32 num_tiles_h = (s32)((GFX_DIMENSIONS_ASPECT_RATIO * SCREEN_HEIGHT + 80 ) / 80) * 3;
if (state == 1) { // draw
dl = alloc_display_list(16 * sizeof(*dl));
dl = alloc_display_list((num_tiles_h + 4) * sizeof(*dl));
dlIter = dl;
graphNode->node.flags = (graphNode->node.flags & 0xFF) | (LAYER_OPAQUE << 8);
gSPDisplayList(dlIter++, &dl_proj_mtx_fullscreen);
gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000100);
for (i = 0; i < 12; ++i) {
for (i = 0; i < num_tiles_h; ++i) {
gSPDisplayList(dlIter++, intro_backdrop_one_image(i, backgroundTable));
}
gSPDisplayList(dlIter++, &title_screen_bg_dl_0A000190);