sm64coopdx/levels/ttm/areas/1/painting.inc.c
Isaac0-dev 663e4549d8
extract assets from rom at runtime (#4)
* Proof of concept for loading rom assets at runtime

* Added skybox textures

* Adjusted format

* Load all texture assets from rom

* Adjusted rom asset loading

* Load all Vtx lists from rom

* clean up toad, wario and his cap conflicts

* Load sound samples from rom

* fix toad sounds

* Loaded sequences from rom

* Load collisions from rom

* Object animations are now loaded from the rom

* Load player animations from rom

* Load goddard anims from rom

* whoops

* fix some compile errors

* drag and drop rom checker, everything works now.

* fix errors due to merge conflicts

* fix compile errors on windows, switch to md5

* fix vertex colors during load

Co-Authored-By: Agent X <44549182+agent-11@users.noreply.github.com>

* Load dialogs from rom

* Loaded course/act names from rom

* Loaded ingame text from rom

* rerun autogen & blacklist smlua_text_utils_init

* fix ttc_seg7_vertex_0700B238 colors

---------

Co-authored-by: MysterD <myster@d>
Co-authored-by: Agent X <44549182+agent-11@users.noreply.github.com>
2024-03-23 16:11:30 -04:00

597 lines
14 KiB
C

#include "pc/rom_assets.h"
#include "game/paintings.h"
// 0x070122F0 - 0x07012308
static const Lights1 ttm_seg7_lights_070122F0 = gdSPDefLights1(
0x50, 0x50, 0x50,
0xff, 0xff, 0xff, 0x32, 0x32, 0x32
);
// 0x07012308 - 0x07012388
ROM_ASSET_LOAD_VTX(ttm_seg7_vertex_07012308, 0x00396340, 232834, 0x00021818, 128);
// 0x07012388 - 0x070123A0
const Gfx ttm_seg7_dl_07012388[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPEndDisplayList(),
};
// 0x070123A0 - 0x070123B8
const Gfx ttm_seg7_dl_070123A0[] = {
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPEndDisplayList(),
};
// 0x070123B8 - 0x07012410
const Gfx ttm_seg7_dl_070123B8[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPLight(&ttm_seg7_lights_070122F0.l, 1),
gsSPLight(&ttm_seg7_lights_070122F0.a, 2),
gsDPSetTile(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),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
};
// 0x07012410 - 0x07012430
const Gfx ttm_seg7_dl_07012410[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
// 0x07012430 - 0x07012450
static const Gfx ttm_seg7_painting_dl_07012430[] = {
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPEndDisplayList(),
};
// 0x07012450 - 0x0701296A
static const PaintingData ttm_seg7_painting_texture_map_bottom_07012450[] = {
85, // num mappings
// Format:
// mesh vtx ID, texture X, texture Y
49, 2016, 889,
53, 2016, 685,
55, 1843, 787,
50, 2016, 992,
51, 1843, 992,
52, 1843, 583,
75, 2016, 513,
54, 1671, 889,
59, 1671, 685,
62, 1502, 787,
56, 1502, 992,
57, 1671, 992,
58, 1502, 583,
60, 1671, 513,
61, 1330, 889,
65, 1330, 685,
63, 1162, 992,
64, 1330, 992,
66, 1162, 583,
67, 1330, 513,
69, 1162, 787,
68, 989, 889,
70, 821, 992,
71, 989, 992,
73, 989, 685,
72, 821, 583,
74, 989, 513,
77, 2016, 308,
78, 1843, 410,
76, 1843, 204,
81, 1502, 410,
80, 1671, 308,
47, 1671, 102,
79, 1502, 204,
46, 1330, 102,
82, 1162, 204,
83, 1330, 308,
84, 1162, 410,
86, 989, 308,
85, 821, 204,
48, 989, 102,
25, 1502, 0,
31, 1162, 0,
19, 1843, 0,
37, 821, 0,
120, 821, 787,
119, 649, 889,
122, 481, 992,
121, 649, 992,
124, 649, 685,
125, 481, 583,
123, 649, 513,
127, 481, 787,
126, 308, 889,
129, 140, 992,
128, 308, 992,
132, 308, 513,
131, 308, 685,
130, 140, 583,
134, 140, 787,
133, -32, 889,
135, -32, 513,
136, 821, 410,
116, 649, 102,
137, 649, 308,
114, 481, 204,
138, 481, 410,
139, 308, 308,
118, 140, 204,
115, 308, 102,
140, 140, 410,
117, -32, 102,
99, 481, 0,
105, 140, 0,
143, 2016, 102,
145, 1330, 0,
144, 1671, 0,
142, 2016, 0,
146, 989, 0,
155, -32, 685,
156, -32, 992,
154, -32, 308,
151, 308, 0,
150, 649, 0,
153, -32, 0,
132, // num groups
// Grouped by 5 + one remainder group,
// = 15 vertices per group + a few extra triangles
13, 8, 5,
0, 1, 2,
3, 0, 4,
4, 0, 2,
5, 2, 1,
1, 6, 5,
7, 2, 8,
5, 8, 2,
2, 7, 4,
7, 8, 9,
10, 7, 9,
11, 7, 10,
7, 11, 4,
12, 9, 8,
8, 13, 12,
21, 24, 45,
14, 9, 15,
12, 15, 9,
9, 14, 10,
16, 14, 20,
17, 14, 16,
14, 15, 20,
14, 17, 10,
15, 19, 18,
18, 20, 15,
19, 15, 12,
20, 21, 16,
18, 24, 20,
21, 20, 24,
22, 21, 45,
23, 21, 22,
21, 23, 16,
24, 26, 25,
25, 45, 24,
26, 24, 18,
6, 27, 28,
5, 6, 28,
29, 28, 27,
27, 74, 29,
29, 31, 28,
13, 28, 31,
28, 13, 5,
36, 34, 35,
12, 13, 30,
13, 31, 30,
31, 32, 33,
32, 31, 29,
33, 30, 31,
33, 36, 30,
30, 19, 12,
19, 30, 36,
18, 19, 37,
19, 36, 37,
34, 36, 33,
35, 37, 36,
37, 26, 18,
35, 38, 37,
26, 37, 38,
25, 26, 62,
26, 38, 62,
38, 40, 39,
39, 62, 38,
40, 38, 35,
41, 34, 33,
33, 32, 41,
42, 34, 75,
34, 41, 75,
35, 34, 42,
32, 43, 76,
41, 32, 76,
43, 32, 29,
29, 74, 43,
43, 74, 77,
46, 49, 52,
42, 40, 35,
39, 40, 44,
40, 42, 78,
44, 40, 78,
25, 49, 45,
45, 46, 22,
46, 45, 49,
47, 46, 52,
48, 46, 47,
46, 48, 22,
58, 59, 57,
49, 51, 50,
50, 52, 49,
51, 49, 25,
50, 57, 52,
52, 53, 47,
53, 52, 57,
53, 55, 47,
54, 53, 59,
55, 53, 54,
53, 57, 59,
56, 57, 50,
57, 56, 58,
58, 79, 59,
59, 60, 54,
60, 59, 79,
60, 80, 54,
61, 79, 58,
62, 51, 25,
39, 64, 62,
51, 62, 64,
50, 51, 66,
51, 64, 66,
63, 64, 39,
64, 63, 65,
65, 66, 64,
66, 56, 50,
56, 66, 67,
65, 67, 66,
58, 56, 70,
56, 67, 70,
67, 69, 68,
68, 70, 67,
69, 67, 65,
70, 61, 58,
68, 81, 70,
61, 70, 81,
71, 73, 84,
71, 81, 68,
72, 69, 65,
65, 63, 72,
68, 69, 73,
69, 72, 82,
73, 69, 82,
44, 63, 39,
63, 44, 83,
72, 63, 83,
73, 71, 68,
};
// 0x0701296C - 0x07012E84
static const PaintingData ttm_seg7_painting_top_0701296C[] = {
85, // num mappings
// Format:
// mesh vtx ID, texture X, texture Y
0, 2016, 72,
1, 2016, 0,
2, 1843, 0,
3, 1843, 174,
4, 2016, 276,
5, 1671, 72,
6, 1671, 0,
8, 989, 72,
7, 989, 0,
10, 821, 0,
9, 1162, 0,
11, 821, 174,
12, 989, 276,
13, 1162, 174,
14, 1330, 72,
15, 1502, 0,
16, 1671, 276,
17, 1502, 174,
18, 1330, 276,
19, 1843, 992,
20, 2016, 889,
22, 2016, 685,
21, 1843, 583,
23, 1843, 787,
24, 1671, 889,
25, 1502, 992,
26, 1502, 583,
27, 1671, 685,
28, 1671, 481,
30, 1502, 787,
29, 1330, 889,
31, 1162, 992,
32, 1330, 481,
33, 1162, 583,
34, 1330, 685,
35, 1162, 787,
36, 989, 889,
37, 821, 992,
39, 821, 583,
38, 989, 685,
40, 989, 481,
41, 2016, 481,
42, 1843, 378,
43, 1502, 378,
44, 1162, 378,
45, 821, 378,
87, 649, 72,
88, -32, 0,
90, 140, 0,
89, -32, 72,
92, 308, 72,
91, 140, 174,
94, 481, 174,
93, 649, 276,
95, 481, 0,
96, 308, 276,
97, 821, 787,
98, 649, 889,
99, 481, 992,
102, 649, 481,
101, 649, 685,
100, 481, 583,
103, 481, 787,
104, 308, 889,
105, 140, 992,
108, 308, 481,
107, 308, 685,
106, 140, 583,
110, -32, 889,
109, 140, 787,
111, -32, 481,
112, 481, 378,
113, 140, 378,
141, 1330, 0,
142, 2016, 992,
144, 1671, 992,
145, 1330, 992,
146, 989, 992,
147, 649, 0,
148, -32, 276,
149, 308, 0,
150, 649, 992,
151, 308, 992,
152, -32, 685,
153, -32, 992,
132, // num groups
// Grouped by 5 + one remainder group,
// = 15 vertices per group + a few extra triangles
10, 7, 13,
0, 1, 2,
3, 0, 2,
4, 0, 3,
5, 2, 6,
2, 5, 3,
7, 8, 9,
8, 7, 10,
11, 7, 9,
12, 7, 11,
7, 12, 13,
13, 14, 10,
14, 73, 10,
5, 6, 15,
5, 16, 3,
16, 5, 17,
17, 5, 15,
14, 15, 73,
15, 14, 17,
18, 14, 13,
14, 18, 17,
19, 74, 20,
19, 20, 23,
28, 27, 22,
21, 41, 22,
22, 23, 21,
20, 21, 23,
23, 24, 19,
22, 27, 23,
24, 23, 27,
19, 24, 75,
25, 75, 24,
25, 24, 29,
24, 27, 29,
26, 29, 27,
27, 28, 26,
31, 36, 77,
26, 34, 29,
29, 30, 25,
30, 29, 34,
25, 30, 76,
31, 76, 30,
31, 30, 35,
30, 34, 35,
32, 34, 26,
33, 35, 34,
34, 32, 33,
35, 36, 31,
33, 39, 35,
36, 35, 39,
37, 36, 56,
36, 39, 56,
37, 77, 36,
28, 16, 43,
38, 56, 39,
39, 40, 38,
40, 39, 33,
22, 41, 42,
41, 4, 42,
3, 42, 4,
42, 28, 22,
28, 42, 16,
3, 16, 42,
26, 28, 43,
17, 43, 16,
43, 32, 26,
32, 43, 18,
17, 18, 43,
33, 32, 44,
32, 18, 44,
13, 44, 18,
13, 12, 44,
44, 40, 33,
40, 44, 12,
38, 40, 45,
40, 12, 45,
11, 45, 12,
9, 46, 11,
46, 9, 78,
47, 49, 48,
48, 49, 51,
49, 79, 51,
50, 80, 48,
51, 50, 48,
57, 56, 60,
46, 53, 11,
52, 46, 54,
53, 46, 52,
46, 78, 54,
54, 50, 52,
50, 54, 80,
50, 55, 52,
55, 50, 51,
38, 60, 56,
56, 57, 37,
58, 57, 62,
57, 60, 62,
58, 81, 57,
37, 57, 81,
59, 60, 38,
60, 59, 61,
61, 62, 60,
62, 63, 58,
63, 62, 66,
61, 66, 62,
63, 66, 69,
58, 63, 82,
64, 82, 63,
64, 63, 69,
45, 59, 38,
65, 66, 61,
66, 65, 67,
67, 69, 66,
68, 69, 83,
69, 68, 64,
67, 83, 69,
64, 68, 84,
70, 83, 67,
11, 53, 45,
59, 45, 53,
59, 53, 71,
61, 59, 71,
52, 71, 53,
52, 55, 71,
65, 71, 55,
71, 65, 61,
65, 55, 72,
67, 65, 72,
51, 72, 55,
70, 72, 79,
51, 79, 72,
72, 70, 67,
};
// 0x07012E88
static const PaintingData *const ttm_seg7_painting_texture_maps_07012E88[] = {
ttm_seg7_painting_texture_map_bottom_07012450,
ttm_seg7_painting_top_0701296C,
};
UNUSED static const u64 ttm_unused_0 = 0x0;
// 0x07012E98 - 0x07012EF8
static const Gfx ttm_seg7_painting_dl_07012E98[] = {
gsSPDisplayList(ttm_seg7_dl_070123B8),
gsSPVertex(ttm_seg7_vertex_07012308, 8, 0),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07004000),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(ttm_seg7_dl_07012388),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07003000),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(ttm_seg7_dl_070123A0),
gsSPDisplayList(ttm_seg7_dl_07012410),
gsSPEndDisplayList(),
};
// 0x07012EF8 - 0x07012F78
ALIGNED8 const Texture *const ttm_seg7_painting_textures_07012EF8[] = {
ttm_seg7_texture_07004000, ttm_seg7_texture_07003000,
};
// 0x07012F00 (PaintingData)
struct Painting ttm_slide_painting = {
/* id */ 0x0000,
/* Image Count */ 0x02,
/* Texture Type */ PAINTING_IMAGE,
/* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */,
/* Ripple Status */ 0x00,
/* Rotation */ 0.0f, 90.0f,
/* Position */ 3072.0f, 921.6f, -819.2f,
/* curr passive entry */
/* Ripple Magnitude */ 0.0f, 20.0f, 80.0f,
/* Ripple Decay */ 1.0f, 0.9608f, 0.9524f,
/* Ripple Rate */ 0.0f, 0.24f, 0.14f,
/* Ripple Dispersion */ 0.0f, 40.0f, 30.0f,
/* Curr Ripple Timer */ 0.0f,
/* Curr Ripple x, y */ 0.0f, 0.0f,
/* Normal DList */ ttm_seg7_painting_dl_07012E98,
/* Texture Maps */ ttm_seg7_painting_texture_maps_07012E88,
/* Textures */ ttm_seg7_painting_textures_07012EF8,
/* Texture w, h */ 64, 32,
/* Ripple DList */ ttm_seg7_painting_dl_07012430,
/* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY,
/* Alpha */ 0xFF,
/* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */
/* Size */ 460.8f,
/* Ripples */ { 0 },
};
struct Painting default_ttm_slide_painting = {
/* id */ 0x0000,
/* Image Count */ 0x02,
/* Texture Type */ PAINTING_IMAGE,
/* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */,
/* Ripple Status */ 0x00,
/* Rotation */ 0.0f, 90.0f,
/* Position */ 3072.0f, 921.6f, -819.2f,
/* curr passive entry */
/* Ripple Magnitude */ 0.0f, 20.0f, 80.0f,
/* Ripple Decay */ 1.0f, 0.9608f, 0.9524f,
/* Ripple Rate */ 0.0f, 0.24f, 0.14f,
/* Ripple Dispersion */ 0.0f, 40.0f, 30.0f,
/* Curr Ripple Timer */ 0.0f,
/* Curr Ripple x, y */ 0.0f, 0.0f,
/* Normal DList */ ttm_seg7_painting_dl_07012E98,
/* Texture Maps */ ttm_seg7_painting_texture_maps_07012E88,
/* Textures */ ttm_seg7_painting_textures_07012EF8,
/* Texture w, h */ 64, 32,
/* Ripple DList */ ttm_seg7_painting_dl_07012430,
/* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY,
/* Alpha */ 0xFF,
/* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */
/* Size */ 460.8f,
/* Ripples */ { 0 },
};