Compare commits

..

114 Commits

Author SHA1 Message Date
Arceveti
882c9d781e Merge branch 'develop/2.3.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2024-03-30 15:14:06 -07:00
Arceveti
88ac68be53 Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2024-02-14 01:50:26 -08:00
Arceveti
c4d0df7c1d Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-12-15 14:48:07 -08:00
Arceveti
95b21c5195 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-12-15 14:47:58 -08:00
Arceveti
e6c6a8b691 Move segment2 paintings data to paintings.c.in 2023-09-28 10:57:13 -07:00
Arceveti
1fe6bc0c57 Merge branch 'develop/2.1.2' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-27 14:54:33 -07:00
Arceveti
0761d2fdec Fix(?) painting warp checkpoints 2023-09-27 14:54:29 -07:00
Arceveti
1fb29f9340 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-26 20:11:18 -07:00
Arceveti
fa3fc8dac9 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-25 17:38:15 -07:00
Arceveti
3731f9209f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-22 15:33:47 -07:00
Arceveti
941207b50f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-11 13:57:44 -07:00
Arceveti
bd83b07625 Some documentation + add IEEE754 unions + formatting 2023-09-07 15:24:43 -07:00
Arceveti
e02659d23d Improve painting struct definitions 2023-09-01 19:22:14 -07:00
Arceveti
117ae7339b Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-01 19:18:50 -07:00
Arceveti
a4e297747a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-08-23 17:13:22 -07:00
Arceveti
17e4f7b811 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-07-12 16:36:31 -07:00
Arceveti
1e0e6803ad Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-04-30 22:30:10 -04:00
Arceveti
b518acfc7d use _Bool for 'shaded' 2023-04-26 12:28:20 -04:00
Arceveti
dc0d6c698c _Bool/enum usage 2023-04-16 14:55:39 -04:00
Arceveti
41dc7217be initiate_painting_warp pointer formatting 2023-04-10 14:18:36 -04:00
Arceveti
33b70550e8 Fix arg formatting in painting_calculate_triangle_normals 2023-04-10 14:08:19 -04:00
Arceveti
5f694b9333 pointer formatting changes 2023-04-07 18:33:06 -04:00
Arceveti
199486a299 improve gfx allocation (formatting) + add gsLoadBlockTexture 2023-03-28 12:35:28 -04:00
Arceveti
8a0547550d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-27 18:27:15 -04:00
Arceveti
4744c9cd7f Remove unused externs 2023-03-17 13:39:21 -04:00
Arceveti
643e6a7a64 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-17 12:15:20 -04:00
Arceveti
2c52e0699d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-07 13:48:04 -05:00
Arceveti
9e30c865fc Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-02-10 21:50:17 -05:00
Arceveti
16fdf6299a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-01-26 12:46:53 -05:00
Arceveti
d5b4190fe2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-01-26 02:54:31 -05:00
Arceveti
cc683d2415 'vec3f_local_pos_to_world_pos' and 'vec3f_world_pos_to_local_pos' documentation + fix some comments 2023-01-14 14:40:38 -05:00
Arceveti
bfdae60182 Painting scale changes 2023-01-06 16:23:07 -05:00
Arceveti
f0509d42f8 Don't use PAINTING_SIZE for fake CCM paintings 2022-12-16 02:21:43 -05:00
Arceveti
bb5ad7835a Formatting changes :) 2022-12-16 00:07:17 -05:00
Arceveti
04210115ec Clean up non-rippling painting dl 2022-12-15 22:10:24 -05:00
Arceveti
be01f6c5d2 Use object scale as painting scale instead of painting_model_view_transform 2022-12-15 19:05:35 -05:00
Arceveti
3a526ef10f Center scaled paintings during cutscenes 2022-12-15 17:57:03 -05:00
Arceveti
23ea8b0130 Add PAINTING_IMAGE_TYPE_INVISIBLE + format PaintingImage structs 2022-12-14 22:54:59 -05:00
Arceveti
be58ea7396 WARP_DEST_LEVEL_NUM_MASK Usage 2022-12-14 21:27:06 -05:00
Arceveti
09ca176cb9 Rename 'PaintingIDs' to 'PaintingImageIDs' 2022-12-14 18:36:35 -05:00
Arceveti
aaa2250c29 Automatically determine neighboring triangles for each vertex instead of using a hardcoded list 2022-12-14 18:29:17 -05:00
Arceveti
98a413af23 Fix some typos/formatting 2022-12-14 18:10:45 -05:00
Arceveti
dbfb89d19c Update some variable names 2022-12-14 15:35:29 -05:00
Arceveti
9aab0fd00c Rename 'painting_data_mesh' to 'painting_data_vertices' 2022-12-13 22:30:12 -05:00
Arceveti
4fe3d3f606 Remove redundant painting data from segment2.c 2022-12-13 22:25:35 -05:00
Arceveti
33d7f63156 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-13 19:24:35 -05:00
Arceveti
a5df7ffedf Add PAINTING_WOBBLE_WARP_THRESHOLD + Change paintings.h defines to use vanilla values + Change oPaintingFlags to oPaintingStoredAction + Combine painting_update_ripples into bhv_painting_loop 2022-12-13 19:24:09 -05:00
Arceveti
1ed0a72b94 rr_painting uses RIPPLE_TRIGGER_NONE 2022-12-13 16:17:38 -05:00
Arceveti
9cee1eed3c Smaller PAINTING_EDGE_MARGIN 2022-12-12 18:46:42 -05:00
Arceveti
c97839cd34 Replace 'oPaintingLocalMarioPosX' and 'oPaintingLocalMarioPosY' with local variables 2022-12-12 18:25:42 -05:00
Arceveti
0b6417a467 Remove 'oPaintingChangedFlags' + rename some object fields & enums 2022-12-12 18:07:59 -05:00
Arceveti
04d832154c Make some function names clearer 2022-12-12 17:46:10 -05:00
Arceveti
d19ec64310 use oAction instead of oPaintingState 2022-12-12 15:50:09 -05:00
Arceveti
ec318df0a6 Fix some comments in paintings.h 2022-12-12 15:36:20 -05:00
Arceveti
1d2c50eda8 Remove unused gsSPLightColor commands in dl_paintings_env_mapped_begin 2022-12-12 15:23:36 -05:00
Arceveti
11d7f84db1 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-12 14:56:19 -05:00
Arceveti
66828dab80 Rename some structs 2022-12-12 14:56:12 -05:00
Arceveti
e27ba77533 Make PaintingState enum names clearer 2022-12-12 00:42:56 -05:00
Arceveti
2d23771587 Painting UV cleanup 2022-12-12 00:39:38 -05:00
Arceveti
f396d89b42 Rename 'oPaintingData' to 'oPaintingImageInfo' 2022-12-11 20:07:10 -05:00
Arceveti
d63bb4d3fc skip s16 conversion for ripple magnitude 2022-12-11 20:02:00 -05:00
Arceveti
508fe3958c Make 'sPaintingMesh' and 'sPaintingTriNorms' into local variables 2022-12-11 20:01:39 -05:00
Arceveti
a73531aa41 small changes 2022-12-10 22:22:01 -05:00
Arceveti
eed1293624 Replace gEnteredPaintingObject with a MarioState field 2022-12-10 18:38:32 -05:00
Arceveti
5d12ebffc1 Make WDW water level detextion relative to the painting instead of absolute height. 2022-12-10 18:09:52 -05:00
Arceveti
16ebce4ccc Rename 'oPaintingRippleX' and 'oPaintingRippleY' to 'oPaintingRipplePosX' and 'oPaintingRipplePosY' 2022-12-10 17:50:48 -05:00
Arceveti
578e70ed4c RippleAnimationInfo struct changes 2022-12-10 17:49:58 -05:00
Arceveti
be3294399e Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-10 15:33:10 -05:00
Arceveti
3c17702b4d Remove gRipplingPaintingObject + clean up painting eject sound 2022-12-10 01:38:12 -05:00
Arceveti
f98b8b8dc5 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-10 00:48:01 -05:00
Arceveti
2988324b93 Improve painting texture map names + change imageCount check to switch 2022-12-10 00:18:44 -05:00
Arceveti
2436072bcd Move painting functionality except for rendering into bhv_painting_loop + remove area update counter fields + change relative mario and ripple positions to floats 2022-12-09 21:41:13 -05:00
Arceveti
a1ec042d13 Paintings use regular object warp nodes + remove painting groups + painting struct cleanup + fix gTTCSpeedSetting being changed on exit + change relative painting coords to s32 2022-12-09 17:43:21 -05:00
Arceveti
171d08dae2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-06 15:18:32 -05:00
Arceveti
e3243cb917 Add PAINTING_VERTEX macro for painting triangle mesh 2022-12-05 00:41:49 -05:00
Arceveti
656c72ac91 Remove SAVE_FLAG_DDD_MOVED_BACK + allow paintings to move during some cutscenes. 2022-12-04 22:11:13 -05:00
Arceveti
590084fd6a Remove reset_painting and NO_SEGMENTED_MEMORY ifdef 2022-12-04 20:04:49 -05:00
Arceveti
d4c7a58e28 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-11-28 15:16:17 -05:00
Arceveti
ab9f3279f4 Rename 'resetTimer' arg to 'doResetTimer' in painting_state 2022-11-07 19:08:26 -08:00
Arceveti
c78624db2f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-11-07 19:06:24 -08:00
Arceveti
69330d30ec fix SurfaceClass enum 2022-11-07 18:19:17 -08:00
Arceveti
e9dd49478f Fix painting object field offsets 2022-11-03 04:07:13 -07:00
Arceveti
11fb0377fc Fix RR painting using the wrong ID 2022-10-21 13:33:39 -07:00
Arceveti
d08afdef68 Rename 'gRipplingPainting' to 'gRipplingPaintingObject' and 'gEnteredPainting' to 'gEnteredPaintingObject' 2022-10-21 13:24:46 -07:00
Arceveti
3ea3c1fb3c Change painting object data pointer to const void 2022-10-10 15:30:17 -07:00
Arceveti
a6676efee3 Revert some formatting changes in camera.c 2022-10-08 13:08:30 -07:00
Arceveti
2222429d9d Fix ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS comment + Undo removal of trailing whitespace 2022-10-08 13:04:48 -07:00
Arceveti
d7b63e82ed Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-10-03 18:59:49 -07:00
Arceveti
8e6b62547f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-30 22:54:12 -07:00
Arceveti
12e6c855b3 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-29 14:33:09 -07:00
Arceveti
c7115d4a2c Fix seams between painting sections on console 2022-09-29 14:32:54 -07:00
Arceveti
5ea50a7b69 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-28 21:15:34 -07:00
Arceveti
fc093b9fdb Add get_exponent for painting texture setup + dl_painting_not_rippling cleanup 2022-08-16 21:57:17 -07:00
Arceveti
4b651cc174 Clean up painting texel calculations 2022-08-16 15:48:50 -07:00
Arceveti
7fe7f6b083 Fix tiny seam between painting segments 2022-08-16 12:15:29 -07:00
Arceveti
d1b0bad2fd Automatic texture maps & non-rippling display lists for paintings 2022-08-14 01:41:05 -07:00
Arceveti
c330431603 Rename 'commands' to 'gfxCmds' 2022-08-10 18:49:28 -07:00
Arceveti
df051e3ad3 Partially update main paintings.c comment + more formatting 2022-08-10 17:03:03 -07:00
Arceveti
5e992b540a Revert change that was using unimplemented functionality in geo_painting_draw 2022-08-10 16:04:23 -07:00
Arceveti
168293d3bc Some paintings.c refactoring 2022-08-10 16:01:37 -07:00
Arceveti
f9cbf8f59c Use defines for fake CCM paintings' coords 2022-08-10 15:59:15 -07:00
Arceveti
ee96ec7417 Remove extra newline 2022-08-09 22:28:53 -07:00
Arceveti
da9e796457 Move ripple constants outside of Painting struct 2022-08-09 20:46:27 -07:00
Arceveti
d7503663a0 Combine ripple setup dls + paintings.c gfx commands formatting + use PAINTING_SIZE for vertex dls 2022-08-09 19:49:00 -07:00
Arceveti
e2c0fe02ab Combine duplicate painting texture map data and move it to segment2 2022-08-09 15:44:34 -07:00
Arceveti
57d7529bce Allow paintings to use 32 vertex buffer + optimization + formatting 2022-08-09 14:53:06 -07:00
Arceveti
6e9df1f812 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-08-09 14:27:18 -07:00
Arceveti
d118c79ce4 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-08-03 17:51:44 -07:00
Arceveti
d755fb4931 Make normalize_component return s8 instead of casting 2022-07-18 21:16:05 -07:00
Arceveti
786a569ed7 Revert formatting change in 'cutscene_exit_painting' 2022-07-18 21:12:09 -07:00
Arceveti
0ff4147366 Rename 'sPaintingEjectSoundPlayed' to 'gPaintingEjectSoundPlayed' 2022-07-18 21:11:23 -07:00
Arceveti
b340408c4f Merge branch 'develop/2.1.0' into develop/2.1.0-painting-objects 2022-07-05 19:39:18 -07:00
Arceveti
76809f51f6 Fix missing floor behind DDD painting 2022-07-05 19:27:20 -07:00
Arceveti
e176d806d7 Add painting objects + convert vanilla paintings into objects 2022-07-05 18:39:38 -07:00
1162 changed files with 18800 additions and 22759 deletions

138
.gitignore vendored
View File

@@ -528,26 +528,21 @@ assets/demos/pss.bin
assets/demos/unused.bin
assets/demos/wf.bin
levels/bbh/0.rgba16.png
actors/vanilla_actors/bbh/0.rgba16.png
levels/bbh/1.rgba16.png
levels/bbh/2.rgba16.png
levels/bbh/3.rgba16.png
actors/vanilla_actors/bbh/4.rgba16.png
actors/vanilla_actors/bbh/5.rgba16.png
actors/vanilla_actors/bbh/6.rgba16.png
actors/vanilla_actors/bitdw/0.rgba16.png
levels/bbh/4.rgba16.png
levels/bbh/5.rgba16.png
levels/bbh/6.rgba16.png
levels/bitdw/0.rgba16.png
levels/bitdw/1.rgba16.png
levels/bitdw/2.rgba16.png
levels/bitdw/3.rgba16.png
actors/vanilla_actors/bitfs/0.rgba16.png
levels/bitfs/0.rgba16.png
actors/vanilla_actors/bitfs/1.rgba16.png
levels/bitfs/1.rgba16.png
levels/bitfs/2.rgba16.png
levels/bits/0.rgba16.png
levels/bits/1.rgba16.png
actors/vanilla_actors/bits/2.rgba16.png
levels/bits/2.rgba16.png
levels/bob/0.rgba16.png
levels/bob/1.rgba16.png
@@ -564,9 +559,9 @@ levels/bowser_3/2.rgba16.png
levels/castle_grounds/0.rgba16.png
levels/castle_grounds/1.rgba16.png
levels/castle_grounds/2.rgba16.png
actors/vanilla_actors/castle_grounds/3.rgba16.png
actors/vanilla_actors/castle_grounds/4.rgba16.png
actors/vanilla_actors/castle_grounds/5.ia8.png
levels/castle_grounds/3.rgba16.png
levels/castle_grounds/4.rgba16.png
levels/castle_grounds/5.ia8.png
levels/castle_inside/1.rgba16.png
levels/castle_inside/10.rgba16.png
levels/castle_inside/11.rgba16.png
@@ -604,25 +599,22 @@ levels/castle_inside/38.rgba16.png
levels/castle_inside/39.rgba16.png
levels/castle_inside/4.rgba16.png
levels/castle_inside/40.rgba16.png
actors/vanilla_actors/castle_inside/5.rgba16.png
actors/vanilla_actors/castle_inside/6.rgba16.png
actors/vanilla_actors/castle_inside/7.rgba16.png
levels/castle_inside/5.rgba16.png
levels/castle_inside/6.rgba16.png
levels/castle_inside/7.rgba16.png
levels/castle_inside/8.rgba16.png
levels/castle_inside/9.rgba16.png
actors/vanilla_actors/castle_inside/castle_light.ia16.png
levels/castle_inside/castle_light.ia16.png
levels/ccm/0.rgba16.png
levels/ccm/1.rgba16.png
actors/vanilla_actors/ccm/1.rgba16.png
levels/ccm/10.rgba16.png
levels/ccm/11.rgba16.png
actors/vanilla_actors/ccm/12.rgba16.png
levels/ccm/12.rgba16.png
levels/ccm/2.rgba16.png
actors/vanilla_actors/ccm/2.rgba16.png
actors/vanilla_actors/ccm/3.rgba16.png
levels/ccm/3.rgba16.png
levels/ccm/4.rgba16.png
actors/vanilla_actors/ccm/5.rgba16.png
actors/vanilla_actors/ccm/6.rgba16.png
levels/ccm/5.rgba16.png
levels/ccm/6.rgba16.png
levels/ccm/7.rgba16.png
levels/ccm/8.ia16.png
levels/ccm/9.ia16.png
@@ -631,12 +623,11 @@ levels/cotmc/1.rgba16.png
levels/cotmc/2.rgba16.png
levels/cotmc/3.rgba16.png
levels/cotmc/4.rgba16.png
actors/vanilla_actors/ddd/0.rgba16.png
levels/ddd/0.rgba16.png
levels/ddd/1.rgba16.png
levels/ddd/2.rgba16.png
actors/vanilla_actors/ddd/2.rgba16.png
levels/ddd/3.rgba16.png
actors/vanilla_actors/ddd/4.rgba16.png
levels/ddd/4.rgba16.png
levels/ending/cake.png
levels/ending/cake_eu.png
levels/ending/eu_023000.rgba16.png
@@ -648,10 +639,10 @@ levels/ending/eu_028000.rgba16.png
levels/hmc/0.rgba16.png
levels/hmc/1.rgba16.png
levels/hmc/2.rgba16.png
actors/vanilla_actors/hmc/3.rgba16.png
actors/vanilla_actors/hmc/4.rgba16.png
actors/vanilla_actors/hmc/5.rgba16.png
actors/vanilla_actors/hmc/6.rgba16.png
levels/hmc/3.rgba16.png
levels/hmc/4.rgba16.png
levels/hmc/5.rgba16.png
levels/hmc/6.rgba16.png
levels/hmc/7.rgba16.png
levels/intro/0.rgba16.png
levels/intro/1.rgba16.png
@@ -662,41 +653,40 @@ levels/intro/3_sh_tm.rgba16.png
levels/intro/3_tm.rgba16.png
levels/jrb/0.rgba16.png
levels/jrb/1.rgba16.png
actors/vanilla_actors/jrb/2.rgba16.png
actors/vanilla_actors/jrb/3.rgba16.png
actors/vanilla_actors/lll/0.rgba16.png
actors/vanilla_actors/lll/1.rgba16.png
actors/vanilla_actors/lll/10.rgba16.png
actors/vanilla_actors/lll/11.rgba16.png
actors/vanilla_actors/lll/12.rgba16.png
actors/vanilla_actors/lll/13.rgba16.png
actors/vanilla_actors/lll/14.rgba16.png
actors/vanilla_actors/lll/15.rgba16.png
actors/vanilla_actors/lll/16.rgba16.png
actors/vanilla_actors/lll/17.rgba16.png
actors/vanilla_actors/lll/18.rgba16.png
actors/vanilla_actors/lll/19.rgba16.png
actors/vanilla_actors/lll/2.rgba16.png
actors/vanilla_actors/lll/20.rgba16.png
actors/vanilla_actors/lll/21.rgba16.png
actors/vanilla_actors/lll/22.rgba16.png
actors/vanilla_actors/lll/23.rgba16.png
actors/vanilla_actors/lll/24.rgba16.png
actors/vanilla_actors/lll/25.rgba16.png
levels/jrb/2.rgba16.png
levels/jrb/3.rgba16.png
levels/lll/0.rgba16.png
levels/lll/1.rgba16.png
levels/lll/10.rgba16.png
levels/lll/11.rgba16.png
levels/lll/12.rgba16.png
levels/lll/13.rgba16.png
levels/lll/14.rgba16.png
levels/lll/15.rgba16.png
levels/lll/16.rgba16.png
levels/lll/17.rgba16.png
levels/lll/18.rgba16.png
levels/lll/19.rgba16.png
levels/lll/2.rgba16.png
levels/lll/20.rgba16.png
levels/lll/21.rgba16.png
levels/lll/22.rgba16.png
levels/lll/23.rgba16.png
levels/lll/24.rgba16.png
levels/lll/25.rgba16.png
levels/lll/26.rgba16.png
levels/lll/27.ia16.png
levels/lll/28.rgba16.png
levels/lll/29.rgba16.png
actors/vanilla_actors/lll/29.rgba16.png
levels/lll/3.rgba16.png
levels/lll/30.rgba16.png
levels/lll/31.rgba16.png
levels/lll/32.rgba16.png
levels/lll/4.rgba16.png
levels/lll/5.rgba16.png
actors/vanilla_actors/lll/6.rgba16.png
levels/lll/6.rgba16.png
levels/lll/7.rgba16.png
actors/vanilla_actors/lll/8.rgba16.png
levels/lll/8.rgba16.png
levels/lll/9.rgba16.png
levels/menu/main_menu_seg7.00018.rgba16.png
levels/menu/main_menu_seg7.00818.rgba16.png
@@ -931,64 +921,59 @@ levels/menu/main_menu_seg7_us.0B800.ia8.png
levels/pss/0.rgba16.png
levels/pss/1.ia16.png
levels/pss/2.rgba16.png
actors/vanilla_actors/rr/1.rgba16.png
levels/rr/1.rgba16.png
levels/rr/2.rgba16.png
actors/vanilla_actors/rr/quarter_flying_carpet.rgba16.png
levels/rr/quarter_flying_carpet.rgba16.png
levels/sl/0.rgba16.png
levels/sl/1.rgba16.png
actors/vanilla_actors/sl/2.rgba16.png
levels/sl/2.rgba16.png
levels/sl/3.rgba16.png
levels/sl/4.rgba16.png
levels/ssl/0.rgba16.png
levels/ssl/1.ia16.png
actors/vanilla_actors/ssl/10.rgba16.png
actors/vanilla_actors/ssl/11.rgba16.png
levels/ssl/10.rgba16.png
levels/ssl/11.rgba16.png
levels/ssl/2.rgba16.png
levels/ssl/3.rgba16.png
levels/ssl/4.rgba16.png
actors/vanilla_actors/ssl/5.rgba16.png
actors/vanilla_actors/ssl/6.rgba16.png
levels/ssl/5.rgba16.png
levels/ssl/6.rgba16.png
levels/ssl/7.rgba16.png
actors/vanilla_actors/ssl/8.rgba16.png
actors/vanilla_actors/ssl/9.rgba16.png
levels/ssl/8.rgba16.png
levels/ssl/9.rgba16.png
levels/thi/0.rgba16.png
levels/thi/1.rgba16.png
actors/vanilla_actors/thi/1.rgba16.png
levels/totwc/0.rgba16.png
levels/totwc/1.rgba16.png
levels/totwc/2.rgba16.png
levels/totwc/3.ia16.png
actors/vanilla_actors/ttc/0.rgba16.png
actors/vanilla_actors/ttc/1.rgba16.png
levels/ttc/0.rgba16.png
levels/ttc/1.rgba16.png
levels/ttc/2.rgba16.png
levels/ttm/0.ia16.png
levels/ttm/1.rgba16.png
levels/ttm/2.rgba16.png
levels/ttm/3.rgba16.png
actors/vanilla_actors/ttm/4.rgba16.png
levels/ttm/4.rgba16.png
levels/ttm/5.rgba16.png
levels/ttm/6.rgba16.png
levels/ttm/7.rgba16.png
actors/vanilla_actors/ttm/8.rgba16.png
levels/ttm/8.rgba16.png
levels/vcutm/0.rgba16.png
levels/vcutm/1.rgba16.png
actors/vanilla_actors/vcutm/2.rgba16.png
levels/vcutm/2.rgba16.png
levels/vcutm/3.rgba16.png
levels/wdw/0.rgba16.png
levels/wdw/1.rgba16.png
actors/vanilla_actors/wdw/1.rgba16.png
actors/vanilla_actors/wdw/2.rgba16.png
actors/vanilla_actors/wdw/3.rgba16.png
levels/wdw/2.rgba16.png
levels/wdw/3.rgba16.png
levels/wdw/4.rgba16.png
actors/vanilla_actors/wf/0.rgba16.png
levels/wf/0.rgba16.png
levels/wf/1.rgba16.png
actors/vanilla_actors/wf/2.rgba16.png
levels/wf/2.rgba16.png
actors/vanilla_actors/wf/3.rgba16.png
actors/vanilla_actors/wf/4.rgba16.png
actors/vanilla_actors/wf/5.ia8.png
levels/wf/3.rgba16.png
levels/wf/4.rgba16.png
levels/wf/5.ia8.png
levels/wmotr/0.rgba16.png
levels/wmotr/1.rgba16.png
levels/wmotr/2.rgba16.png
@@ -2164,6 +2149,3 @@ lib/libs2d_engine.a
# :Zone_Identifier files
*Zone.Identifier
# user-specific config file
include/config/config_local.h

6
.gitmodules vendored
View File

@@ -1,3 +1,3 @@
[submodule "lib/libpl2"]
path = lib/libpl2
url = https://gitlab.com/parallel-launcher/libpl2.git
[submodule "lib/libpl"]
path = lib/libpl
url = https://gitlab.com/parallel-launcher/libpl.git

View File

@@ -2,7 +2,9 @@
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in the repo.
* @Reonu @gheskett @arthurtilly
* @Reonu
* @thecozies
* @gheskett
# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners

View File

@@ -258,7 +258,7 @@ endif
# 1 - includes code in ROM
# 0 - does not
LIBPL ?= 0
LIBPL_DIR := lib/libpl2
LIBPL_DIR := lib/libpl
$(eval $(call validate-option,LIBPL,0 1))
ifeq ($(LIBPL),1)
DEFINES += LIBPL=1
@@ -269,7 +269,7 @@ BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
COMPRESS ?= yay0
COMPRESS ?= rnc1
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
ifeq ($(COMPRESS),gzip)
DEFINES += GZIP=1
@@ -351,10 +351,10 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
# Clone any needed submodules
ifeq ($(LIBPL),1)
ifeq ($(wildcard $(LIBPL_DIR)/*.h),)
$(info Cloning libpl2 submodule...)
$(info Cloning libpl submodule...)
DUMMY != git submodule update --init $(LIBPL_DIR) > /dev/null || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to clone libpl2 submodule)
$(error Failed to clone libpl submodule)
endif
endif
endif
@@ -380,10 +380,9 @@ SOUND_BIN_DIR := $(BUILD_DIR)/sound
TEXTURE_DIR := textures
ACTOR_DIR := actors
LEVEL_DIRS := $(patsubst levels/%,%,$(dir $(wildcard levels/*/header.h)))
VNL_ACTRS_DIRS := $(patsubst actors/vanilla_actors/%,%,$(dir $(wildcard actors/vanilla_actors/*/header.h)))
# Directories containing source files
SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers lib/librtc actors levels bin data assets asm lib sound
SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers actors levels bin data assets asm lib sound
LIBZ_SRC_DIRS := src/libz
GODDARD_SRC_DIRS := src/goddard src/goddard/dynlists
BIN_DIRS := bin bin/$(VERSION)
@@ -393,17 +392,13 @@ include Makefile.split
# Source code files
LEVEL_C_FILES := $(wildcard levels/*/leveldata.c) $(wildcard levels/*/script.c) $(wildcard levels/*/geo.c)
VNL_ACTRS_C_FILES := $(wildcard actors/vanilla_actors/*/data.c) $(wildcard actors/vanilla_actors/*/geo.c)
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES) $(VNL_ACTRS_C_FILES)
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES)
CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
LIBZ_C_FILES := $(foreach dir,$(LIBZ_SRC_DIRS),$(wildcard $(dir)/*.c))
GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
# Ignore all .inc.c files
C_FILES := $(filter-out %.inc.c,$(C_FILES))
# Sound files
SOUND_BANK_FILES := $(wildcard sound/sound_banks/*.json)
SOUND_SAMPLE_DIRS := $(wildcard sound/samples/*)
@@ -446,8 +441,6 @@ else ifneq ($(call find-command,mips-linux-gnu-ld),)
CROSS := mips-linux-gnu-
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
CROSS := mips64-linux-gnu-
else ifneq ($(call find-command,mips64-none-elf-ld),)
CROSS := mips64-none-elf-
else ifneq ($(call find-command,mips-ld),)
CROSS := mips-
else
@@ -508,15 +501,15 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
# C compiler options
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
ifeq ($(COMPILER),gcc)
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else ifeq ($(COMPILER),clang)
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
endif
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
@@ -537,6 +530,7 @@ N64CKSUM := $(TOOLS_DIR)/n64cksum
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
N64GRAPHICS_CI := $(TOOLS_DIR)/n64graphics_ci
BINPNG := $(TOOLS_DIR)/BinPNG.py
TEXTCONV := $(TOOLS_DIR)/textconv
AIFF_EXTRACT_CODEBOOK := $(TOOLS_DIR)/aiff_extract_codebook
VADPCM_ENC := $(TOOLS_DIR)/vadpcm_enc
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
@@ -554,13 +548,7 @@ ifneq (,$(call find-command,armips))
else
RSPASM := $(TOOLS_DIR)/armips
endif
ifneq (,$(call find-command,wslview))
EMULATOR = "/mnt/c/Program Files (x86)/parallel-launcher/parallel-launcher.exe"
else
EMULATOR = parallel-launcher
endif
EMULATOR = mupen64plus
EMU_FLAGS =
ifneq (,$(call find-command,wslview))
@@ -583,7 +571,7 @@ endif
# For non-IDO, use objcopy instead of extract_data_for_mio
ifneq ($(COMPILER),ido)
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data --only-section=.rodata
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
endif
# Common build print status function
@@ -658,6 +646,29 @@ $(BUILD_DIR)/src/libz/%.o: OPT_FLAGS := -Os
$(BUILD_DIR)/src/libz/%.o: CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-pointer-sign
endif
ifeq ($(VERSION),eu)
TEXT_DIRS := text/de text/us text/fr
# EU encoded text inserted into individual segment 0x19 files,
# and course data also duplicated in leveldata.c
$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/us/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/de/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/fr/define_courses.inc.c
else
ifeq ($(VERSION),sh)
TEXT_DIRS := text/jp
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/jp/define_text.inc.c
else
TEXT_DIRS := text/$(VERSION)
# non-EU encoded text inserted into segment 0x02
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
endif
endif
$(BUILD_DIR)/src/usb/usb.o: OPT_FLAGS := -O0
$(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wno-unused-function
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
@@ -675,11 +686,17 @@ $(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAG
# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) $(addprefix actors/vanilla_actors/,$(VNL_ACTRS_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
$(BUILD_DIR)/include/text_strings.h: $(BUILD_DIR)/include/text_menu_strings.h
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
#==============================================================================#
@@ -724,11 +741,6 @@ $(LEVEL_ELF_FILES): $(BUILD_DIR)/levels/%/leveldata.elf: $(BUILD_DIR)/levels/%/l
$(call print,Linking ELF file:,$<,$@)
$(V)$(LD) -e 0 -Ttext=$(SEGMENT_ADDRESS) -Map $@.map --just-symbols=$(BUILD_DIR)/bin/$(TEXTURE_BIN).elf -o $@ $<
.SECONDEXPANSION:
$(VANILLA_ACTORS_ELF_FILES): $(BUILD_DIR)/actors/vanilla_actors/%/data.elf: $(BUILD_DIR)/actors/vanilla_actors/%/data.o $(BUILD_DIR)/bin/$$(TEXTURE_BIN).elf
$(call print,Linking ELF file:,$<,$@)
$(V)$(LD) -e 0 -Ttext=$(SEGMENT_ADDRESS) -Map $@.map --just-symbols=$(BUILD_DIR)/bin/$(TEXTURE_BIN).elf -o $@ $<
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf
$(call print,Extracting compressible data from:,$<,$@)
$(V)$(EXTRACT_DATA_FOR_MIO) $< $@
@@ -757,7 +769,7 @@ endif
$(BUILD_DIR)/%.table: %.aiff
$(call print,Extracting codebook:,$<,$@)
$(V)$(AIFF_EXTRACT_CODEBOOK) $< $@
$(V)$(AIFF_EXTRACT_CODEBOOK) $< >$@
$(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff
$(call print,Encoding ADPCM:,$(word 2,$^),$@)
@@ -811,6 +823,20 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*
@$(PRINT) "$(GREEN)Generating demo data $(NO_COL)\n"
$(V)$(PYTHON) $(TOOLS_DIR)/demo_data_converter.py assets/demo_data.json $(DEF_INC_CFLAGS) > $@
# Encode in-game text strings
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
$(call print,Encoding:,$<,$@)
$(V)$(TEXTCONV) charmap.txt $< $@
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
$(call print,Encoding:,$<,$@)
$(V)$(TEXTCONV) charmap_menu.txt $< $@
$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
# Level headers
$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
$(call print,Preprocessing level headers:,$<,$@)
@@ -887,7 +913,7 @@ $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
# Link SM64 ELF file
$(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc -lrtc
# Build ROM
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))

View File

@@ -41,21 +41,15 @@ LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
VANILLA_ACTORS_FILES := $(addsuffix data,$(VNL_ACTRS_DIRS))
VANILLA_ACTORS_ELF_FILES := $(foreach level_dir,$(VNL_ACTRS_DIRS),$(BUILD_DIR)/actors/vanilla_actors/$(level_dir)data.elf)
SEG_FILES := \
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf) \
$(VANILLA_ACTORS_FILES:%=$(BUILD_DIR)/actors/vanilla_actors/%.elf)
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf)
YAY0_FILES := \
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.szp) \
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.szp) \
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp) \
$(VANILLA_ACTORS_FILES:%=$(BUILD_DIR)/actors/vanilla_actors/%.szp)
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp)
YAY0_OBJ_FILES := $(YAY0_FILES:.szp=.szp.o)
@@ -249,11 +243,9 @@ $(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
# EU segment 19 translations
$(BUILD_DIR)/bin/translation_de.elf: SEGMENT_ADDRESS := 0x1B000000
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x1B000000
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x1B000000
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x1B000000
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x1B000000
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
# --------------------------------------
# Skybox Rules
@@ -278,36 +270,3 @@ IPL3_RAW_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(IP
CRASH_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/crash_custom/*.png)
CRASH_TEXTURE_C_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(CRASH_TEXTURE_FILES)))
# --------------------------------------
# Vanilla Objects Rules
# --------------------------------------
define vanilla_objects_rules =
VANILLA_ACTORS_$(1)_TEXTURE_FILES := $$(patsubst %.png,%.inc.c,$$(wildcard actors/vanilla_actors/$(1)/*.png))
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.o: $$(addprefix $$(BUILD_DIR)/,$$(VANILLA_ACTORS_$(1)_TEXTURE_FILES))
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.elf: SEGMENT_ADDRESS := 0x0e000000
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.elf: TEXTURE_BIN := $(2)
endef
$(eval $(call vanilla_objects_rules,bob,generic))
$(eval $(call vanilla_objects_rules,wf,grass))
$(eval $(call vanilla_objects_rules,jrb,water))
$(eval $(call vanilla_objects_rules,ccm,snow))
$(eval $(call vanilla_objects_rules,bbh,spooky))
$(eval $(call vanilla_objects_rules,hmc,cave))
$(eval $(call vanilla_objects_rules,lll,fire))
$(eval $(call vanilla_objects_rules,ssl,generic))
$(eval $(call vanilla_objects_rules,ddd,water))
$(eval $(call vanilla_objects_rules,sl,snow))
$(eval $(call vanilla_objects_rules,wdw,grass))
$(eval $(call vanilla_objects_rules,ttm,mountain))
$(eval $(call vanilla_objects_rules,thi,grass))
$(eval $(call vanilla_objects_rules,ttc,machine))
$(eval $(call vanilla_objects_rules,rr,sky))
$(eval $(call vanilla_objects_rules,bitdw,sky))
$(eval $(call vanilla_objects_rules,bitfs,sky))
$(eval $(call vanilla_objects_rules,bits,sky))
$(eval $(call vanilla_objects_rules,vcutm,outside))
$(eval $(call vanilla_objects_rules,castle_inside,inside))
$(eval $(call vanilla_objects_rules,castle_grounds,outside))

View File

@@ -17,11 +17,11 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: ASCII / UTF-8 support, Multilang, Platform Displacement 2
- **Arthurtilly**: Platform Displacement 2
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project + widescreen, reonucam, various defines for hacker QoL, and a custom Spanish (Spain) translation of the game.
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
- **JoshDuMan**: Decomp guy, general assistance
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
- **Arceveti**: Silhouette, shadow optimizations, better hanging, breath meter, painting objects, 4 controller support, implementation of frameperfection's rounded corners fix, naming most unknowns, various hacker QOL improvements, and various optimizations/fixes
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
- **Wiseguy**: World scale reimplementation, silhouette, graph node optimisations, instant input patch, cake screen fix, segmented code support, and various optimizations/fixes
- **Kaze**: Graph node optimisations, automatic optimal collision distance
@@ -87,9 +87,9 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
- The clown font includes the entire English alphabet.
- Colored ia4 text support. Format: `"@XXXXXX[YOUR TEXT]@--------"` (By Arthurtilly)
- Example Text: `"@FF0000RED @00FF00GREEN @0000FFBLUE @FFFFFFWHITE"`
- NOTE: Text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset. The text will use gDialogTextAlpha as the alpha value when changing the color.
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *

View File

@@ -1 +1 @@
v2.3.0
v2.2.0

View File

@@ -226,6 +226,9 @@ extern const Gfx mushroom_1up_seg3_dl_0302A660[];
// number
extern const GeoLayout number_geo[];
// painting
extern const GeoLayout painting_geo[];
// pebble
extern const Gfx pebble_seg3_dl_0301CB00[];

View File

@@ -18,6 +18,7 @@
#include "leaves/geo.inc.c"
#include "mario_cap/geo.inc.c"
#include "number/geo.inc.c"
#include "painting/geo.inc.c"
#include "mushroom_1up/geo.inc.c"
#include "star/geo.inc.c"
#include "dirt/geo.inc.c"

View File

@@ -105,7 +105,4 @@ extern const struct Animation *const unagi_seg5_anims_05012824[];
extern const Gfx whirlpool_seg5_dl_05013B58[];
extern const Gfx whirlpool_seg5_dl_05013CB8[];
extern const Trajectory jrb_seg7_trajectory_unagi_1[];
extern const Trajectory jrb_seg7_trajectory_unagi_2[];
#endif

View File

@@ -11,30 +11,3 @@
#include "manta/geo.inc.c"
#include "sushi/geo.inc.c"
#include "unagi/geo.inc.c"
#include "surface_terrains.h"
// 0x0700D20C - 0x0700D23E
const Trajectory jrb_seg7_trajectory_unagi_1[] = {
TRAJECTORY_POS(0, /*pos*/ 5300, -3800, 1200),
TRAJECTORY_POS(1, /*pos*/ 3700, -3600, 1700),
TRAJECTORY_POS(2, /*pos*/ 3400, -3400, 3500),
TRAJECTORY_POS(3, /*pos*/ 3900, -3600, 4400),
TRAJECTORY_POS(4, /*pos*/ 5300, -3800, 4400),
TRAJECTORY_POS(5, /*pos*/ 6200, -4000, 2700),
TRAJECTORY_END(),
};
// 0x0700D240 - 0x0700D28A
const Trajectory jrb_seg7_trajectory_unagi_2[] = {
TRAJECTORY_POS(0, /*pos*/ 5381, 0, 2758),
TRAJECTORY_POS(1, /*pos*/ 5803, -3130, 3036),
TRAJECTORY_POS(2, /*pos*/ 4876, -3045, 2706),
TRAJECTORY_POS(3, /*pos*/ 4313, -3246, 2736),
TRAJECTORY_POS(4, /*pos*/ 3792, -3413, 3668),
TRAJECTORY_POS(5, /*pos*/ 4971, -3130, 3688),
TRAJECTORY_POS(6, /*pos*/ 5392, -3130, 3326),
TRAJECTORY_POS(7, /*pos*/ 6341, -3130, 2450),
TRAJECTORY_POS(8, /*pos*/ 9431, -3130, 1400),
TRAJECTORY_END(),
};

View File

@@ -0,0 +1,9 @@
#include "game/paintings.h"
const GeoLayout painting_geo[] = {
GEO_CULLING_RADIUS(2000),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_painting_draw),
GEO_CLOSE_NODE(),
GEO_END(),
};

View File

@@ -1,27 +0,0 @@
#include <ultra64.h>
#include "sm64.h"
#include "surface_terrains.h"
#include "moving_texture_macros.h"
#include "surface_terrains.h"
#include "textures.h"
#include "dialog_ids.h"
#include "make_const_nonconst.h"
#include "actors/vanilla_actors/bbh/texture.inc.c"
#include "actors/vanilla_actors/bbh/staircase_step/model.inc.c"
#include "actors/vanilla_actors/bbh/tilting_trap_platform/model.inc.c"
#include "actors/vanilla_actors/bbh/tumbling_platform_far/model.inc.c"
#include "actors/vanilla_actors/bbh/tumbling_platform_near/model.inc.c"
#include "actors/vanilla_actors/bbh/moving_bookshelf/model.inc.c"
#include "actors/vanilla_actors/bbh/mesh_elevator/model.inc.c"
#include "actors/vanilla_actors/bbh/merry_go_round/model.inc.c"
#include "actors/vanilla_actors/bbh/coffin/model.inc.c"
#include "actors/vanilla_actors/bbh/staircase_step/collision.inc.c"
#include "actors/vanilla_actors/bbh/tilting_trap_platform/collision.inc.c"
#include "actors/vanilla_actors/bbh/tumbling_platform_near/collision.inc.c"
#include "actors/vanilla_actors/bbh/moving_bookshelf/collision.inc.c"
#include "actors/vanilla_actors/bbh/mesh_elevator/collision.inc.c"
#include "actors/vanilla_actors/bbh/merry_go_round/collision.inc.c"
#include "actors/vanilla_actors/bbh/coffin/collision.inc.c"

View File

@@ -1,37 +0,0 @@
#include <ultra64.h>
#include "sm64.h"
#include "geo_commands.h"
#include "game/level_geo.h"
#include "game/geo_misc.h"
#include "game/camera.h"
#include "game/moving_texture.h"
#include "game/screen_transition.h"
#include "game/paintings.h"
#include "make_const_nonconst.h"
#include "actors/vanilla_actors/bbh/header.h"
#include "actors/vanilla_actors/bbh/staircase_step/geo.inc.c"
#include "actors/vanilla_actors/bbh/tilting_trap_platform/geo.inc.c"
#include "actors/vanilla_actors/bbh/tumbling_platform_far/geo.inc.c"
#include "actors/vanilla_actors/bbh/tumbling_platform_near/geo.inc.c"
#include "actors/vanilla_actors/bbh/moving_bookshelf/geo.inc.c"
#include "actors/vanilla_actors/bbh/mesh_elevator/geo.inc.c"
#include "actors/vanilla_actors/bbh/merry_go_round/geo.inc.c"
#include "actors/vanilla_actors/bbh/coffin/geo.inc.c"
#include "level_commands.h"
const LevelScript script_func_vo_bbh[] = {
LOAD_MODEL_FROM_GEO(MODEL_BBH_STAIRCASE_STEP, geo_bbh_0005B0),
LOAD_MODEL_FROM_GEO(MODEL_BBH_TILTING_FLOOR_PLATFORM, geo_bbh_0005C8),
LOAD_MODEL_FROM_GEO(MODEL_BBH_TUMBLING_PLATFORM, geo_bbh_0005E0),
LOAD_MODEL_FROM_GEO(MODEL_BBH_TUMBLING_PLATFORM_PART, geo_bbh_0005F8),
LOAD_MODEL_FROM_GEO(MODEL_BBH_MOVING_BOOKSHELF, geo_bbh_000610),
LOAD_MODEL_FROM_GEO(MODEL_BBH_MESH_ELEVATOR, geo_bbh_000628),
LOAD_MODEL_FROM_GEO(MODEL_BBH_MERRY_GO_ROUND, geo_bbh_000640),
LOAD_MODEL_FROM_GEO(MODEL_BBH_WOODEN_TOMB, geo_bbh_000658),
RETURN(),
};

View File

@@ -1,29 +0,0 @@
#pragma once
#include "types.h"
extern const GeoLayout geo_bbh_0005B0[];
extern const GeoLayout geo_bbh_0005C8[];
extern const GeoLayout geo_bbh_0005E0[];
extern const GeoLayout geo_bbh_0005F8[];
extern const GeoLayout geo_bbh_000610[];
extern const GeoLayout geo_bbh_000628[];
extern const GeoLayout geo_bbh_000640[];
extern const GeoLayout geo_bbh_000658[];
extern const Gfx bbh_seg7_dl_0701F2E8[];
extern const Gfx bbh_seg7_dl_0701F5F8[];
extern const Gfx bbh_seg7_dl_0701F7E8[];
extern const Gfx bbh_seg7_dl_0701FAB0[];
extern const Gfx bbh_seg7_dl_0701FD28[];
extern const Gfx bbh_seg7_dl_0701FFE8[];
extern const Gfx bbh_seg7_dl_070202F0[];
extern const Gfx bbh_seg7_dl_070206F0[];
extern const Collision bbh_seg7_collision_staircase_step[];
extern const Collision bbh_seg7_collision_tilt_floor_platform[];
extern const Collision bbh_seg7_collision_07026B1C[];
extern const Collision bbh_seg7_collision_haunted_bookshelf[];
extern const Collision bbh_seg7_collision_mesh_elevator[];
extern const Collision bbh_seg7_collision_merry_go_round[];
extern const Collision bbh_seg7_collision_coffin[];

View File

@@ -1,19 +0,0 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture bbh_seg7_texture_07000000[] = {
#include "actors/vanilla_actors/bbh/0.rgba16.inc.c"
};
// 0x07003000 - 0x07003400
ALIGNED8 static const Texture bbh_seg7_texture_07003000[] = {
#include "actors/vanilla_actors/bbh/4.rgba16.inc.c"
};
// 0x07003400 - 0x07004400
ALIGNED8 static const Texture bbh_seg7_texture_07003400[] = {
#include "actors/vanilla_actors/bbh/5.rgba16.inc.c"
};
// 0x07004400 - 0x07004800
ALIGNED8 static const Texture bbh_seg7_texture_07004400[] = {
#include "actors/vanilla_actors/bbh/6.rgba16.inc.c"
};

View File

@@ -1,35 +0,0 @@
#include <PR/ultratypes.h>
#include <PR/gbi.h>
#include "dialog_ids.h"
#include "surface_terrains.h"
#include "macros.h"
#include "moving_texture_macros.h"
#include "surface_terrains.h"
#include "textures.h"
#include "types.h"
#include "make_const_nonconst.h"
#include "actors/vanilla_actors/bitdw/texture.inc.c"
#include "actors/vanilla_actors/bitdw/sliding_platform/model.inc.c"
#include "actors/vanilla_actors/bitdw/seesaw_platform/model.inc.c"
#include "actors/vanilla_actors/bitdw/square_platform/model.inc.c"
#include "actors/vanilla_actors/bitdw/ferris_wheel_axle/model.inc.c"
#include "actors/vanilla_actors/bitdw/ferris_platform/model.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_1/model.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_2/model.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_3/model.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_4/model.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_5/model.inc.c"
#include "actors/vanilla_actors/bitdw/sliding_platform/collision.inc.c"
#include "actors/vanilla_actors/bitdw/seesaw_platform/collision.inc.c"
#include "actors/vanilla_actors/bitdw/square_platform/collision.inc.c"
#include "actors/vanilla_actors/bitdw/ferris_wheel_axle/collision.inc.c"
#include "actors/vanilla_actors/bitdw/ferris_platform/collision.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_1/collision.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_2/collision.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_3/collision.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_4/collision.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_5/collision.inc.c"

View File

@@ -1,41 +0,0 @@
#include <ultra64.h>
#include "sm64.h"
#include "geo_commands.h"
#include "game/level_geo.h"
#include "game/geo_misc.h"
#include "game/camera.h"
#include "game/moving_texture.h"
#include "game/screen_transition.h"
#include "game/paintings.h"
#include "make_const_nonconst.h"
#include "actors/vanilla_actors/bitdw/header.h"
#include "actors/vanilla_actors/bitdw/sliding_platform/geo.inc.c"
#include "actors/vanilla_actors/bitdw/seesaw_platform/geo.inc.c"
#include "actors/vanilla_actors/bitdw/square_platform/geo.inc.c"
#include "actors/vanilla_actors/bitdw/ferris_wheel_axle/geo.inc.c"
#include "actors/vanilla_actors/bitdw/ferris_platform/geo.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_1/geo.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_2/geo.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_3/geo.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_4/geo.inc.c"
#include "actors/vanilla_actors/bitdw/collapsing_stairs_5/geo.inc.c"
#include "level_commands.h"
const LevelScript script_func_vo_bitdw[] = {
LOAD_MODEL_FROM_GEO(MODEL_BITDW_SQUARE_PLATFORM, geo_bitdw_000558),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_SEESAW_PLATFORM, geo_bitdw_000540),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_SLIDING_PLATFORM, geo_bitdw_000528),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_FERRIS_WHEEL_AXLE, geo_bitdw_000570),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_BLUE_PLATFORM, geo_bitdw_000588),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME4, geo_bitdw_0005A0),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME3, geo_bitdw_0005B8),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME2, geo_bitdw_0005D0),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME1, geo_bitdw_0005E8),
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE, geo_bitdw_000600),
RETURN(),
};

View File

@@ -1,36 +0,0 @@
#pragma once
#include "types.h"
extern const GeoLayout geo_bitdw_000528[];
extern const GeoLayout geo_bitdw_000540[];
extern const GeoLayout geo_bitdw_000558[];
extern const GeoLayout geo_bitdw_000570[];
extern const GeoLayout geo_bitdw_000588[];
extern const GeoLayout geo_bitdw_0005A0[];
extern const GeoLayout geo_bitdw_0005B8[];
extern const GeoLayout geo_bitdw_0005D0[];
extern const GeoLayout geo_bitdw_0005E8[];
extern const GeoLayout geo_bitdw_000600[];
extern const Gfx bitdw_seg7_dl_0700AFA0[];
extern const Gfx bitdw_seg7_dl_0700B220[];
extern const Gfx bitdw_seg7_dl_0700B480[];
extern const Gfx bitdw_seg7_dl_0700B8D8[];
extern const Gfx bitdw_seg7_dl_0700BB58[];
extern const Gfx bitdw_seg7_dl_0700C0E0[];
extern const Gfx bitdw_seg7_dl_0700C670[];
extern const Gfx bitdw_seg7_dl_0700CC00[];
extern const Gfx bitdw_seg7_dl_0700D190[];
extern const Gfx bitdw_seg7_dl_0700D3E8[];
extern const Collision bitdw_seg7_collision_0700F688[];
extern const Collision bitdw_seg7_collision_0700F70C[];
extern const Collision bitdw_seg7_collision_moving_pyramid[];
extern const Collision bitdw_seg7_collision_0700F7F0[];
extern const Collision bitdw_seg7_collision_0700F898[];
extern const Collision bitdw_seg7_collision_0700F91C[];
extern const Collision bitdw_seg7_collision_0700FA3C[];
extern const Collision bitdw_seg7_collision_0700FB5C[];
extern const Collision bitdw_seg7_collision_0700FC7C[];
extern const Collision bitdw_seg7_collision_0700FD9C[];

View File

@@ -1,4 +0,0 @@
// 0x07000000 - 0x07000002
ALIGNED8 static const Texture bitdw_seg7_texture_07000000[] = {
#include "actors/vanilla_actors/bitdw/0.rgba16.inc.c"
};

Some files were not shown because too many files have changed in this diff Show More