Compare commits

..

288 Commits

Author SHA1 Message Date
Reonu
ba3717e4a6 remove unnecesary extern 2021-12-24 16:20:55 +00:00
Reonu
7c0582f7ce Update src/game/camera.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-12-24 16:18:54 +00:00
Reonu
37214d6059 readded whitespace 2021-12-23 20:02:32 +00:00
Reonu
30a75bb1d8 fuck it *uncompletes your savefile* 2021-12-23 19:50:53 +00:00
Reonu
ef10d68513 update reonucan description again 2021-12-23 19:41:13 +00:00
Reonu
c187386e57 Better explanation in config_camera.h 2021-12-23 19:38:33 +00:00
Reonu
ef3b7e6347 restored firsty setting 2021-12-23 19:35:56 +00:00
Reonu
931a5fea31 fix clicking sound 2021-12-23 19:34:38 +00:00
thecozies
a0b93715c1 added safeguards to config 2021-12-23 07:23:38 -06:00
thecozies
4ef1d81a2f reonucam: reset 8dir base yaw to 0 when setting to 8dir mode 2021-12-23 07:18:11 -06:00
thecozies
1314fd8607 Only get reonucam speed if reonucam is enabled 2021-12-23 07:15:37 -06:00
thecozies
239b98ba62 Clarify reonucam function name 2021-12-23 07:15:10 -06:00
thecozies
09a69f9186 Fixed airborne reonucam spinning bug 2021-12-23 07:14:39 -06:00
thecozies
b1ac2a174e Fix submerged reonucam spinning bug 2021-12-23 07:14:01 -06:00
Reonu
08614793fd attempt at enabling swimming and flying functionality (it's fucking broken) 2021-12-23 02:44:42 +00:00
Reonu
dd7fdcdfb9 turn on complete savefile 2021-12-23 02:44:23 +00:00
thecozies
e42dfd295c Fixed zooming in with reonu cam and moved ifdef locations 2021-12-22 06:46:01 -06:00
Reonu
a94e58e636 reonucam (broken rn) 2021-12-22 02:45:04 +00:00
thecozies
602b7ee1d9 Merge pull request #219 from Reonu/develop/refactor__FAST_VERTICAL_CAMERA_MOVEMENT
utilize reonucam technique for FAST_VERTICAL_CAMERA_MOVEMENT

Fixes #164
2021-12-21 06:11:35 -06:00
thecozies
072282b68b utilize reonucam technique for FAST_VERTICAL_CAMERA_MOVEMENT 2021-12-21 06:07:14 -06:00
thecozies
9c22158b8e Merge pull request #202 from Reonu/develop/arceveti/refactor/drawing_distance_fix
Fix some drawing distance issues caused by AUTO_COLLISION_DISTANCE

Fixes #173
2021-12-21 05:24:28 -06:00
thecozies
b10d01cf53 Merge pull request #216 from Reonu/develop/refactor__config_doc
Config documentation

Fixes #191
2021-12-21 05:04:26 -06:00
Axollyon
afcc1f28a5 Start level comment & exit course comment/collapse 2021-12-20 15:50:55 -05:00
thecozies
6668ae391a Merge pull request #206 from Reonu/develop/arceveti/refactor/find_ceil_buffer
Re-implement Y buffer for find_ceil

Fixes #200
2021-12-20 06:42:37 -06:00
thecozies
c241f6941f Merge pull request #212 from Reonu/develop/arceveti/refactor/power_stars_heal
Re-implement POWER_STARS_HEAL for normal Power Stars
Fixes #209
2021-12-20 06:09:06 -06:00
Arceveti
102f21d533 Re-implement POWER_STARS_HEAL for normal Power Stars 2021-12-20 00:16:34 -08:00
Arceveti
eadfff013a Re-implement Y buffer for find_ceil 2021-12-19 14:30:47 -08:00
Arceveti
58836138c8 Merge branch 'develop/arceveti/refactor/drawing_distance_fix' of https://github.com/Reonu/HackerSM64 into develop/arceveti/refactor/drawing_distance_fix 2021-12-19 12:05:25 -08:00
Arceveti
94e19d439f Revert formatting changes to match vanilla decomp 2021-12-19 12:05:20 -08:00
Arceveti
63b2838e91 Update data/behavior_data.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-12-19 12:02:49 -08:00
Arceveti
eb0bb591f0 Update data/behavior_data.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-12-19 12:02:46 -08:00
Arceveti
a5033a56c9 Update data/behavior_data.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-12-19 12:02:42 -08:00
Reonu
6e03037f2e Merge pull request #205 from Reonu/better-credits
Update readme with better credits
2021-12-19 18:57:23 +00:00
thecozies
87b66c7400 Merge pull request #204 from Reonu/develop/refactor__spline_fix
Fixed spline poll code using the wrong values for keyframes

Fixes #170
2021-12-19 10:53:11 -06:00
thecozies
5538b207a5 Merge pull request #197 from Reonu/develop/arceveti/refactor__legacy_shadow_ids_fix
Fix LEGACY_SHADOW_IDS id conflict

Fixes #181
2021-12-19 10:44:03 -06:00
thecozies
bbdfcfd0bf Merge pull request #166 from Reonu/object_transparency
Fix some transparent objects rendering behind env boxes.
2021-12-19 10:09:42 -06:00
Reonu
e49bc4273a remove specific callouts + add auto col distance 2021-12-19 11:14:56 +00:00
Reonu
a6c4bfd5d6 silhouette + axo + ratio 2021-12-19 00:16:53 +00:00
Reonu
675977a4d6 added S2DEX engine to credits 2021-12-18 13:43:30 +00:00
Reonu
c5d3cd4f53 le funny typo 2021-12-18 13:35:16 +00:00
Reonu
9141396ec4 add fazana 2021-12-18 11:09:34 +00:00
Reonu
390ce3fdb9 added falco and moose 2021-12-18 11:07:56 +00:00
Reonu
48bea623e4 add arthur 2021-12-18 11:05:57 +00:00
Reonu
33056f6f3c Update readme with better credits
Better credits for individual contributors
2021-12-18 11:03:03 +00:00
Mr-Wiseguy
1c13a86569 Fixed spline poll code using the wrong values for keyframes 2021-12-18 01:35:37 -05:00
Arceveti
75eb23b21f Fix rumble build 2021-12-18 00:14:43 -05:00
Arceveti
5d46bb1f8e Fix some drawing distance issues caused by AUTO_COLLISION_DISTANCE 2021-12-17 13:56:33 -08:00
axollyon
665e5bac05 Merge pull request #199 from Reonu/develop/arceveti/refactor__fire_bars_fix
Use the vanilla default value for rotating fire bars if bparam2 is 0
2021-12-17 15:54:33 -05:00
Axollyon
46cc527da3 START_LEVEL safeguard 2021-12-17 15:48:20 -05:00
Arceveti
1360622242 Use the vanilla default value for rotating fire bars if bparam2 is 0 2021-12-17 12:26:05 -08:00
Arceveti
15a58d4dff Fix LEGACY_SHADOW_IDS id conflict 2021-12-17 11:50:41 -08:00
Arceveti
b5f785d669 Update src/game/object_helpers.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-12-17 10:35:57 -08:00
Arceveti
a2faba2a93 Update src/game/object_helpers.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-12-17 10:35:52 -08:00
thecozies
10dfcd9433 Merge pull request #196 from Reonu/develop/refactor__UNLOCK_FPS_fix
Fixes #196
2021-12-17 09:31:52 -06:00
thecozies
564af66ceb Fixed UNLOCK_FPS strobing 2021-12-17 09:27:19 -06:00
thecozies
dda3ebd29e Merge pull request #161 from Reonu/develop/arceveti/refactor_door_z_fix
Make the door lock a part of the key door model to eliminate z-fighting, also reduce z fighting on numbered doors with AUTO_LOD enabled.

Fixes #163
2021-12-17 08:40:08 -06:00
thecozies
de1decf039 Merge pull request #187 from Reonu/fazana/fix_rumble
Fix rumble build

Fixes #187
2021-12-17 06:51:51 -06:00
Fazana
112761e484 Fix rumble build 2021-12-17 12:45:05 +00:00
axollyon
236498a201 Merge pull request #185 from Reonu/develop/refactor__ukiki_cage_no_auto_coll
Set OBJ_FLAG_DONT_CALC_COLL_DIST on bhvUkikiCage
2021-12-17 02:24:14 -05:00
Axollyon
e7564adfb3 Set OBJ_FLAG_DONT_CALC_COLL_DIST on bhvUkikiCage 2021-12-17 02:19:06 -05:00
Mr-Wiseguy
18103b25f1 Removed superfluous RDP commands when switching microcodes which would override scissor 2021-12-16 22:03:54 -05:00
thecozies
91b59799f9 Merge pull request #177 from Reonu/develop/refactor__geo-billboard-fix
fixed geo_process_billboard floating point exception

Fixes #175
2021-12-16 17:31:13 -06:00
thecozies
6f45ad5eec Merge pull request #178 from Reonu/develop/refactor__allow-more-water-directions
Allow water to face any direction

Fixes #176
2021-12-16 17:00:51 -06:00
axollyon
55bfa653e2 Merge pull request #180 from Reonu/develop/refactor__fix_bbh_focOffset
Initialize focOffset so that BBH doesn't crash
2021-12-16 16:16:02 -05:00
Axollyon
a0d96ee90e Initialize focOffset so that BBH doesn't crash 2021-12-16 16:10:57 -05:00
thecozies
45dccaa1c0 Allow water to face any direction 2021-12-16 09:45:17 -06:00
thecozies
5be59e7970 fixed geo_process_billboard floating point exception 2021-12-16 09:17:58 -06:00
thecozies
61e7e8e506 Merge pull request #160 from Reonu/develop/arceveti/refactor_cap_bounce_fix
Use boolean defines for oCapDoScaleVertically

Fixes #157
2021-12-16 05:16:36 -06:00
Gregory Heskett
6832ebca2c Resolved some compiler warnings and added FALL_THROUGH define (#168)
* Address some more compiler warnings with different define toggles

* Remove unnecessary fallthrough attribute
2021-12-15 22:41:59 -05:00
Arceveti
552b765ed0 Move flames to LAYER_TRANSPARENT_INTER 2021-12-15 17:51:58 -08:00
Arceveti
993e8ec4e2 Make the door lock a part of the key door model to eliminate z-fighting, also reduce z fighting on numbered doors with AUTO_LOD enabled. 2021-12-15 17:30:22 -08:00
Arceveti
2a70709cfa Use boolean defines for oCapDoScaleVertically 2021-12-15 14:29:45 -08:00
thecozies
212e71120f Merge pull request #158 from Reonu/approach_s16_fix
Cast return value of approach_s16 to s16

fixes #138
2021-12-15 16:23:13 -06:00
Arceveti
b5af7fa0e1 Fix approach_s16 return value 2021-12-15 14:19:53 -08:00
thecozies
f50860cf8b Merge pull request #152 from aglab2/int2str
Adjust height value for terrain angle to kick in
2021-12-15 15:25:18 -06:00
thecozies
7c558d73e3 Merge pull request #156 from Reonu/develop/arceveti/refactor_fix_unagi_transparent_star
Add COURSE_NUM_TO_INDEX to the save_file_get_star_flags() check in bhv_unagi_init

fixes #155
2021-12-15 15:24:24 -06:00
thecozies
499eaa20ab Merge pull request #142 from Reonu/develop/arceveti/refactor_fix_build_warnings
Fix two build warnings for unused functions
2021-12-15 15:19:42 -06:00
Arceveti
51a9e18132 Add COURSE_NUM_TO_INDEX to save_file_get_star_flags check in bhv_unagi_init 2021-12-15 13:08:36 -08:00
Arceveti
ed4f8267e0 Fix fread() build warning 2021-12-15 13:00:44 -08:00
thecozies
a2cee228ca Merge pull request #153 from Reonu/develop/refactor__fix-hi-score-flashing
fixed hi score flashing
2021-12-15 13:53:20 -06:00
Fazana
58f3130de6 Remove menudata backup (#131)
Not considered important enough to keep
2021-12-15 14:19:45 -05:00
thecozies
dad1cd742a fixed hi score flashing 2021-12-15 09:57:33 -06:00
aglab2
4c915eb666 Adjust height value for terrain angle to kick in 2021-12-15 22:18:44 +08:00
thecozies
d6d64deb7e Merge pull request #151 from aglab2/int2str
Fixed puppyroll #134
2021-12-15 08:01:49 -06:00
aglab2
a1205e12a1 Fixed puppyroll #134 2021-12-15 21:10:36 +08:00
Reonu
fd043ea324 Merge pull request #150 from Reonu/develop/refactor__groundpound-fix
Change groundpound-fix define and functionality to just disable bonking
2021-12-15 15:05:15 +02:00
thecozies
9e12023873 Change groundpound-fix define and functionality to just disable bonking 2021-12-15 06:51:50 -06:00
thecozies
4fe0f19d0a Merge pull request #149 from aglab2/int2str
Fixed incorrect digit for 100s #145
2021-12-15 05:41:07 -06:00
aglab2
8a5a3a9f29 Fixed incorrect digit for 100s #145 2021-12-15 19:39:52 +08:00
thecozies
a929717881 Merge pull request #144 from Reonu/develop/thecozies/fp-exception-castle-grounds
Fixed stale reference bug from obj_mark_for_deletion change
2021-12-14 09:49:23 -06:00
thecozies
d2d3d60c9f Fixed stale reference bug from obj_mark_for_deletion change 2021-12-14 09:38:52 -06:00
Arceveti
282adb36b5 Fix build warnings for unused functions 2021-12-13 20:00:44 -08:00
thecozies
edc6fe6b57 Merge pull request #125 from Reonu/fix_build_warnings
Fix build warnings
2021-12-13 17:03:27 -06:00
thecozies
50d1b73bac Merge pull request #139 from Reonu/sliding_platform_fix
Fix sliding platforms using the wrong bparams
2021-12-13 17:03:11 -06:00
thecozies
8c110adb36 Merge pull request #140 from Reonu/develop/arceveti/legacy_shadow_ids
Add LEGACY_SHADOW_IDS define for Fast64 compatibility
2021-12-13 17:02:01 -06:00
Arceveti
836c6a4850 Better find_in_bounds_yaw_wdw_bob_thi ifdef 2021-12-13 14:22:16 -08:00
Arceveti
a5fce270ef Apply suggested changes 2021-12-13 14:14:16 -08:00
Arceveti
f2148ce405 Add LEGACY_SHADOW_IDS define for Fast64 compatibility 2021-12-13 14:09:52 -08:00
Arceveti
19c79e95fe Fix sliding platform bparams 2021-12-13 14:00:14 -08:00
thecozies
a2c4243600 Merge pull request #137 from Reonu/Reonu-patch-1
Fix BUGFIX_DIALOG_TIME_STOP
2021-12-13 13:43:31 -06:00
Reonu
d92ddeecd8 Fix BUGFIX_DIALOG_TIME_STOP
Fixes #136
2021-12-13 21:42:17 +02:00
thecozies
97eebacb1e Merge pull request #117 from Reonu/geo_process_master_list_sub_fix
Fix SILHOUETTE, OBJECTS_REJ, and ucode loading, also clean up render phase system and OBJECTS_REJ ifdefs a bit.
2021-12-13 07:13:55 -06:00
thecozies
913ea2dfdd Merge pull request #129 from Reonu/fazana/refactorfix (Puppycamera fixes)
Puppycamera fixes
2021-12-13 06:54:32 -06:00
Fazana
a5a826052e Further Puppycamera fixes 2021-12-13 06:52:42 -06:00
Fazana
9f538f8e7d Some puppytech fixes 2021-12-13 06:52:42 -06:00
thecozies
f7b79d132d Merge pull request #126 from Reonu/develop/bugfix/object-y-pos
bugfix: miscalculation in obj_turn_toward_object
2021-12-13 06:00:42 -06:00
thecozies
933b3d3ec4 Merge pull request #122 from aglab2/develop-fixup
Fixed clang compilation issues
2021-12-13 05:39:38 -06:00
thecozies
639e2e2898 Merge pull request #120 from Reonu/goddard-build-errors-fix
Goddard build errors fix
2021-12-13 05:35:53 -06:00
thecozies
ee60c7a2a5 Merge pull request #119 from Reonu/fix_fast64_import
Fix Fast64 importing by reverting sSegmentTable change
2021-12-13 05:34:14 -06:00
gheskett
460b45d8b0 bugfix: miscalculation in obj_turn_toward_object 2021-12-12 14:33:00 -05:00
Arceveti
8455f92421 Fix build warnings 2021-12-11 20:58:09 -08:00
Arceveti
81ff820c05 Add INTER mode for geo_update_layer_transparency 2021-12-11 20:31:50 -08:00
aglab2
f4f2a502c3 Fixed clang compilation issues 2021-12-12 12:22:13 +08:00
Mr-Wiseguy
ad23ec4ca6 Readded missing functions that caused build errors with Mario head enabled 2021-12-11 23:14:43 -05:00
Arceveti
ae0ba99459 Fix Fast64 importing by reverting sSegmentTable change 2021-12-11 20:13:39 -08:00
Mr-Wiseguy
19657d25b0 Fixed build with BETTER_HANGING off 2021-12-11 23:00:24 -05:00
Arceveti
3f0206bb1f Merge branch 'develop/refactor' of https://github.com/Reonu/HackerSM64 into geo_process_master_list_sub_fix 2021-12-11 19:55:34 -08:00
Arceveti
1f6d00e316 Fix duplicate comment & graph render layers/flags bitmask 2021-12-11 19:51:53 -08:00
Arceveti
50eb8a8473 Clean up OBJECTS_REJ ifdefs 2021-12-11 19:47:15 -08:00
Mr-Wiseguy
bdf489067b Fixed build with BETTER_HANGING off 2021-12-11 22:21:30 -05:00
Arceveti
958ae2b987 Fix SILHOUETTE, OBJECTS_REJ, and ucode loading, also clean up render phase system a bit. 2021-12-11 16:04:14 -08:00
thecozies
0812acc11b Merge pull request #111 from Reonu/develop/refactor__puppyprint-combo
Allow easier command for opening puppyprint debug
2021-12-11 17:26:34 -06:00
thecozies
94bbcc2d2a Merge pull request #114 from Reonu/develop/arceveti/refactor_fix
Fix shadow scaling and shifting
2021-12-11 17:26:07 -06:00
Arceveti
05d4be8fdf Fix shadow scaling and shifting 2021-12-11 15:13:05 -08:00
Fazana
141042c59a Rearranged framebuffers & fixed puppyprint console printing 2021-12-11 17:08:55 -06:00
thecozies
03014f34cb Allow easier command for opening puppyprint debug 2021-12-11 16:48:04 -06:00
thecozies
81f642aba4 camera conf documentation 2021-12-11 15:58:46 -06:00
thecozies
f740731fd6 surface load optimizations 2021-12-11 15:58:27 -06:00
thecozies
b529941cbb surface collision performance improvements 2021-12-11 15:55:42 -06:00
thecozies
9ddaf82c82 optimized file positions + support function/data sections 2021-12-11 15:40:22 -06:00
thecozies
b803b7f350 compilation flags 2021-12-11 15:39:33 -06:00
thecozies
2f5cec36a7 updated README 2021-12-11 15:37:43 -06:00
thecozies
e2ab5b3f90 stomp smoke -> small water splash 2021-12-11 15:37:17 -06:00
thecozies
75a188c7d9 rename stomp smoke 2021-12-11 15:36:36 -06:00
thecozies
fe8e30296d dialogs / text 2021-12-11 15:36:04 -06:00
thecozies
e966fe76ee title screen cleanup 2021-12-11 15:35:29 -06:00
thecozies
daa28cf98a star select cleanup 2021-12-11 15:34:33 -06:00
thecozies
1b1724b557 sram to ultrasm64 2021-12-11 15:32:49 -06:00
thecozies
9b13050d01 spawn sound cleanup 2021-12-11 15:32:29 -06:00
thecozies
b1dbbf0e05 spawn object optimizations and documentation 2021-12-11 15:32:09 -06:00
thecozies
6da4ca07f6 sound init: clean up define usage + documentation 2021-12-11 15:29:46 -06:00
thecozies
f28fc49027 skybox refactor 2021-12-11 15:26:32 -06:00
thecozies
ec042fc2eb shadow overhaul 2021-12-11 15:25:05 -06:00
thecozies
c2655c8bb7 segment2.h 2021-12-11 15:24:46 -06:00
thecozies
e538c669c1 screen transition documentation 2021-12-11 15:24:29 -06:00
thecozies
990757ef62 intro geo documentation 2021-12-11 15:23:17 -06:00
thecozies
9ec1709032 file select 2021-12-11 15:21:07 -06:00
thecozies
7ed9933735 reset various files to ultrasm64 2021-12-11 15:18:50 -06:00
thecozies
25dc528e18 s2d engine 2021-12-11 15:17:42 -06:00
thecozies
44982fdf74 save file documentation and unlock defines 2021-12-11 15:17:08 -06:00
thecozies
a7a7fb1140 hqvm back to ultrasm64 2021-12-11 15:12:33 -06:00
thecozies
a3622efc15 rumble opt and doc 2021-12-11 15:12:10 -06:00
thecozies
e18131a846 rendering graph node performance optimizations 2021-12-11 15:11:01 -06:00
thecozies
4d98245769 puppyprint updates and formatting changes 2021-12-11 14:31:19 -06:00
thecozies
b858817530 puppycam absf 2021-12-11 14:29:15 -06:00
thecozies
8303bc66f1 print / printf 2021-12-11 14:27:21 -06:00
thecozies
b6cc6ce79a platform displacement 2021-12-11 14:25:59 -06:00
thecozies
f5acebbaec paintings 2021-12-11 14:25:02 -06:00
thecozies
221c3b9ec5 object list processor documentation 2021-12-11 14:23:02 -06:00
thecozies
5778ec7e38 object helpers 2021-12-11 13:09:59 -06:00
thecozies
2c362ebb7c fix flamethrower bug 2021-12-11 12:51:44 -06:00
thecozies
fffa0db0bc object collision 2021-12-11 12:06:48 -06:00
thecozies
9a4c45e4ab object behaviors 2021-12-11 12:03:55 -06:00
thecozies
f1f0a0d1e8 moving textures 2021-12-11 11:55:01 -06:00
thecozies
97eb2ee23a memory.h documentation 2021-12-11 11:51:55 -06:00
thecozies
c33b3e3b69 mario documentation 2021-12-11 11:51:37 -06:00
thecozies
9fdae48a76 mario step: ledge grab fixes and documentation 2021-12-11 11:40:12 -06:00
thecozies
941f4b2f39 mario misc documentation 2021-12-11 11:28:17 -06:00
thecozies
61dc565c07 mario submerged documentation 2021-12-11 11:25:54 -06:00
thecozies
b274fc1afb mario stationary documentation 2021-12-11 11:21:36 -06:00
thecozies
d118f84e71 mario actions object documentation and options 2021-12-11 11:19:12 -06:00
thecozies
56d10de4fd mario actions moving documentation and options 2021-12-11 11:17:53 -06:00
thecozies
6ab783554f mario actions cutscene documentation 2021-12-11 11:03:23 -06:00
thecozies
43eba6e35e mario actions automatic documentation 2021-12-11 10:51:58 -06:00
thecozies
59bb53086f airborne documentation 2021-12-11 10:28:17 -06:00
thecozies
07e8a24d34 map parser documentation & formatting 2021-12-11 10:18:31 -06:00
thecozies
faf6929503 main.h documentation 2021-12-11 10:16:53 -06:00
thecozies
4ac365f34b macro special objects formatting changes 2021-12-11 10:16:06 -06:00
thecozies
7b3ad36cb0 level update defines 2021-12-11 10:14:05 -06:00
thecozies
fb40ca64d0 level geo 2021-12-11 10:06:39 -06:00
thecozies
e067673c51 interaction documentation 2021-12-11 10:05:08 -06:00
thecozies
0398a73f9b insn disasm 2021-12-11 09:52:32 -06:00
thecozies
771fd915af revert goddard to base decomp 2021-12-11 09:51:37 -06:00
thecozies
8f11b9de6a ingame menu 2021-12-11 09:49:52 -06:00
thecozies
13c10a047c only check if VC on render init 2021-12-11 09:49:10 -06:00
thecozies
8946885a22 hud 2021-12-11 09:34:49 -06:00
thecozies
295e535899 geo misc 2021-12-11 09:32:28 -06:00
thecozies
56da90ef85 game init 2021-12-11 09:23:55 -06:00
thecozies
5f8b0209a5 farcall helpers 2021-12-11 09:13:11 -06:00
thecozies
7227eb31fa envfx snow 2021-12-11 09:12:47 -06:00
thecozies
56e29c1dde bubbles 2021-12-11 09:12:10 -06:00
thecozies
6f43aa7032 debug updates 2021-12-11 09:11:14 -06:00
thecozies
679ae324b0 camera 2021-12-11 09:08:57 -06:00
thecozies
0e1a68bb65 behavior actions 2021-12-11 07:27:14 -06:00
thecozies
819c60a717 area 2021-12-11 07:25:22 -06:00
thecozies
76cafa71df _Putfld labeling 2021-12-11 07:22:40 -06:00
thecozies
ee81099336 Ldtob documentation 2021-12-11 07:22:17 -06:00
thecozies
e6d031c4c4 removed behaviors 2021-12-11 07:21:47 -06:00
thecozies
f86fa7fb3b graph node and mathutil 2021-12-11 07:21:09 -06:00
CrashOveride95
ad691a34c6 Fix crash with rumble + custom mario model 2021-12-10 08:34:07 -06:00
CrashOveride95
24687da134 Make ucode load from .o's (and also fix Super3D) 2021-12-10 08:33:21 -06:00
CrashOveride95
e7f6186580 Update UNF to latest master 2021-12-10 08:32:26 -06:00
CrashOveride95
4c779bdfed Fix console (lol) 2021-12-10 08:30:43 -06:00
CrashOveride95
2dc9446d4a Make ROM name smaller and change messages printed on build a bit 2021-12-10 08:30:19 -06:00
CrashOveride95
83ad6aec22 extra 2021-12-10 08:29:24 -06:00
n64
f2a8cf49de Refresh 15 2021-12-10 08:26:59 -06:00
Arceveti
9c6764ba1d Move GRUCODE define to proper location in makefile 2021-12-10 08:04:37 -06:00
CrashOveride95
baf071e527 Add librtc and fix some data declarations 2021-12-10 08:04:34 -06:00
thecozies
eee8af463d behaviors a - beta_fish 2021-12-10 05:41:59 -06:00
thecozies
ded4e11fbd mathutil updates (allow unused funcs) 2021-12-10 05:00:41 -06:00
thecozies
e535b4bdc1 mathutil updates 2021-12-09 12:59:29 -06:00
thecozies
3f5cf00f74 level script 2021-12-09 08:28:17 -06:00
thecozies
8f13447642 graph node 2021-12-09 07:57:58 -06:00
thecozies
719f5afdf9 message panel ucode small 2021-12-09 07:52:44 -06:00
thecozies
df88bb78f1 camera conf improved 2021-12-09 07:52:03 -06:00
thecozies
2df0dcfdde fixed model ids 2021-12-08 09:53:48 -06:00
thecozies
afa381564e egeo_layout 2021-12-08 09:48:33 -06:00
thecozies
d88a5b82b4 extended bounds 2021-12-08 09:39:09 -06:00
thecozies
a9796a7490 color helper functions 2021-12-08 09:38:29 -06:00
thecozies
c5c5d2c79b behavior script 2021-12-08 09:38:01 -06:00
thecozies
cd37e655f3 buffers: refresh 15 and revert to base decomp 2021-12-08 09:35:43 -06:00
thecozies
615d9abca3 book: slidec documentation 2021-12-08 09:34:41 -06:00
thecozies
e840d74b93 boot/memory.c reduced change load and added documentation 2021-12-08 09:34:12 -06:00
thecozies
e49404014d boot/main.c 2021-12-08 09:31:58 -06:00
thecozies
9ee39666d6 audio changes 2021-12-08 09:28:35 -06:00
thecozies
30bcccb686 sound player 2021-12-08 09:28:17 -06:00
thecozies
fd3de66b9f lib updates - rtc and rsp.s 2021-12-08 09:27:35 -06:00
thecozies
487187e3c6 includes: types.h 2021-12-08 09:26:57 -06:00
thecozies
624801a288 includes: surface type enums 2021-12-08 09:24:39 -06:00
thecozies
cefdec7023 includes: special presets 2021-12-08 09:24:10 -06:00
thecozies
d0382cd1be includes: sounds documentation 2021-12-08 09:23:49 -06:00
thecozies
e216b42f53 includes: sm64 types 2021-12-08 09:23:25 -06:00
thecozies
fad3406ab5 includes: segments and seq ids 2021-12-08 09:23:12 -06:00
thecozies
581b0cafc9 includes: rtc 2021-12-08 09:20:30 -06:00
thecozies
b384fb1b7b includes: object fields formatted to base decomp 2021-12-08 09:20:06 -06:00
thecozies
9c0878319f includes: object constants 2021-12-08 09:19:04 -06:00
thecozies
36c7c622e3 includes: movtex macros 2021-12-08 09:18:42 -06:00
thecozies
ac2852ba47 includes: model ids 2021-12-08 09:18:16 -06:00
thecozies
36001f7fd3 includes: mario geo switch case 2021-12-08 09:16:40 -06:00
thecozies
b6e18a95bf includes: mario anims 2021-12-08 09:16:23 -06:00
thecozies
142b79e310 includes level commands - macros 2021-12-08 09:16:00 -06:00
thecozies
d334579ad4 gfx dimensions 2021-12-08 09:14:50 -06:00
thecozies
381a0aed7c geo command enum 2021-12-08 09:12:55 -06:00
thecozies
984b117e77 farcall documentation 2021-12-08 09:12:28 -06:00
thecozies
4467ff1ed1 course table 2021-12-08 09:11:59 -06:00
thecozies
664fe248e1 colors 2021-12-08 09:11:30 -06:00
thecozies
26a064faa1 OS documentation 2021-12-08 09:10:51 -06:00
thecozies
37ca9f03b1 enhancement updates/removals 2021-12-08 09:10:27 -06:00
thecozies
bff61ca5ba separated config.h into multiple files 2021-12-08 09:09:40 -06:00
thecozies
91c169e693 behavior data documentation updates 2021-12-08 09:08:54 -06:00
thecozies
7741e5123e title screen bin id 2021-12-08 09:01:14 -06:00
thecozies
e9b2562694 segment2.c 2021-12-08 09:00:59 -06:00
thecozies
e4e8bc2d9a effect bin id 2021-12-08 08:44:53 -06:00
thecozies
e97695d3d8 vanilla demo data 2021-12-08 08:44:33 -06:00
thecozies
1e8a960a17 actor documentation: group headers 2021-12-08 08:44:10 -06:00
thecozies
455da1c3a8 actor documentation: whomp 2021-12-08 08:43:00 -06:00
thecozies
c24ef6562f actor documentation: water ring 2021-12-08 08:42:44 -06:00
thecozies
4b20d19989 actor documentation: unagi transparent star 2021-12-08 08:41:57 -06:00
thecozies
a091678009 actor documentation: ukiki 2021-12-08 08:41:42 -06:00
thecozies
b9773ffae3 actor documentation: tree + cam dist change 2021-12-08 08:41:18 -06:00
thecozies
80641a82c4 actor documentation: star 2021-12-08 08:40:26 -06:00
thecozies
2a87631629 actor documentation: rename stomp smoke 2021-12-08 08:40:08 -06:00
thecozies
1221e2944b actor documentation: transparent star 2021-12-08 08:39:51 -06:00
thecozies
0c83e15d04 actor documentation: sand 2021-12-08 08:39:24 -06:00
thecozies
63b9e771d7 actor documentation: poundable pole 2021-12-08 08:39:03 -06:00
thecozies
34cf317fc4 actor documentation: penguin 2021-12-08 08:38:48 -06:00
thecozies
e5ee3e89b2 actos DIALOG_INDICATOR 2021-12-08 08:38:02 -06:00
thecozies
aab3b8ecb0 actor documentation: h - m 2021-12-08 08:37:42 -06:00
thecozies
1080fc90e1 floomba 2021-12-08 08:35:47 -06:00
thecozies
1c11bb7ddc actor documentation: exclamation_box_outline 2021-12-08 08:35:29 -06:00
thecozies
2caed65be9 .gitignore + clownfont textures 2021-12-08 08:10:58 -06:00
thecozies
409bce0eca tools reset to base ultrasm64 2021-12-08 08:10:25 -06:00
thecozies
8d6d3ca69a actor documentation: door 2021-12-08 06:41:05 -06:00
thecozies
571388c821 actor documentation: dirt 2021-12-08 06:40:47 -06:00
thecozies
f5e9c0d710 acts: coin updates 2021-12-08 06:40:26 -06:00
thecozies
91b77c05dd actor documentation: checkboard platform 2021-12-08 06:39:52 -06:00
thecozies
8514254fd3 actor documentation: burn smoke 2021-12-08 06:39:08 -06:00
thecozies
4ed3975973 actors: replaced bin ids 2021-12-08 06:38:44 -06:00
thecozies
ddfc2f6609 actor documentation: breakable box 2021-12-08 06:33:24 -06:00
thecozies
5ae11f3bab actor documentation: bowser 2021-12-08 06:32:47 -06:00
thecozies
830e2ea81c actor documentation: boo castle 2021-12-08 06:32:18 -06:00
thecozies
0a5659ed09 actor documentation: boo 2021-12-08 06:32:04 -06:00
thecozies
e607106cd5 level documentation jrb - wf + entry/scripts 2021-12-08 06:30:57 -06:00
thecozies
7a54020fef level documentation hmc and intro 2021-12-08 06:12:32 -06:00
thecozies
72d0d35274 level documentation a - e 2021-12-08 06:03:40 -06:00
thecozies
696a87c9b0 n64_assert.s 2021-12-07 14:03:15 -06:00
thecozies
1e0db61191 Remove unneeded instructions in math.s 2021-12-07 14:02:50 -06:00
thecozies
6a1d1c489b Updated vscode settings 2021-12-07 14:01:47 -06:00
845 changed files with 38757 additions and 34513 deletions

26
.gitattributes vendored
View File

@@ -2,19 +2,19 @@
* text=auto
# List text files in case git doesn't characterize correctly
*.c text eol=lf
*.h text eol=lf
*.s text eol=lf
*.in text eol=lf
*.js text eol=lf
*.md text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.ld text eol=lf
*.inc text eol=lf
*.txt text eol=lf
*.json text eol=lf
*.yaml text eol=lf
*.c text
*.h text
*.s text
*.in text
*.js text
*.md text
*.py text
*.sh text
*.ld text
*.inc text
*.txt text
*.json text
*.yaml text
# Same for binary
*.bin binary

2132
.gitignore vendored

File diff suppressed because it is too large Load Diff

3
.gitmodules vendored
View File

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

View File

@@ -6,7 +6,6 @@
"${workspaceFolder}/include/n64/**",
"${workspaceFolder}/include/**",
"${workspaceFolder}/textures/**",
"${workspaceFolder}/build/us_n64/**",
"${workspaceFolder}/**"
],
"forcedInclude": [
@@ -25,14 +24,15 @@
"TARGET_N64=1",
"VERSION_US=1",
"F3DEX_GBI_2=1",
"F3DZEX_NON_GBI_2=1",
"F3DZEX_GBI_2=1",
"F3DEX_GBI_SHARED=1",
"LIBPL=1"
"NON_MATCHING=1",
"AVOID_UB=1"
],
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x86"
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4

416
CHANGES Normal file
View File

@@ -0,0 +1,416 @@
Refresh 15 (mostly a hotfix for RSP microcode selection)
1.) Renamed frame_buffer funcs and _ZBUFFER (#1184)
2.) RSP Microcode Hotfix (#1183)
3.) Label osSetTimer.c (#1182)
4.) Fix styling (#1177)
5.) Rename all `FrameBuffer` variants to `Framebuffer` (#1176)
6.) Remove (WIP) from sh.
7.) Allow both archives and ELF objects to be patched (#1127)
Refresh 14
1.) Label whomp and some object fields (#1174)
2.) Generate MIO0 object files using binutils `ld` instead of `as` (#1173)
3.) Bowser documentation (#1166)
4.) Fix comment syntax in 00_sound_player.0 (#1172)
5.) Rename in-game menu variables (#1163)
6.) Document double red coin sound and JP sound glitch (#1170)
7.) Document different bug in external.c (#1168)
8.) updated names/types of octagonal platform data (#1164)
9.) Label a number of unnamed variables. (#1169)
10.) Document JP PU sound glitch (#1167)
11.) Set model ids to spawn_triangle_break_particles (#1165)
12.) Fix borders in clear_frame_buffer (#1162)
13.) Fix seq header files for 64-bit (#1161)
14.) Game_init.c remaining doc (#1158)
15.) Label a couple static variables in sound_init.c (#1159)
16.) Properly define dialog values (status, flags, cutscenes) (#1153)
17.) Label all of amp's assets. (#1018)
18.) Split audio/synthesis.c into Shindou/non-Shindou files (#1144)
19.) Avoid CC_CHECK warnings when using gcc (#1157)
20.) level_select_menu.c => title_screen.c (#1152)
21.) Use C preprocessor on assembly files (#1126)
22.) Replace output_level_headers.py with sed equivalent (#1109)
23.) Fix CC_CHECK warnings related to unused symbols and UB (#1155)
24.) Define remaining floor lower limit values (#1147)
25.) use r+b mode for libultra.a patch tool (#1148)
26.) Use proper values for gPrevFrameObjectCount ifs (#1146)
27.) Some minor bowser.inc.c labelling. (#1150)
28.) fix king bob-omb texture pointers (#1145)
29.) Split audio/load.c into Shindou/non-Shindou files (#1143)
30.) Small Shindou audio cleanups (#1142)
31.) Fix endians in ALSeqData (#1141)
32.) Document S8 decoder rsp operation and some more (#1139)
33.) Fix Shindou synthesis_process_note fake match (#1140)
34.) More audio documentation, for the new rsp code and other fixes (#1138)
35.) Build fixes for macOS: cpp, clang, recomp, aiff_extract_codebook (#1135)
36.) Add ENABLE_RUMBLE to config.h (#1122)
37.) Reduce recomp memory consumption by using smaller disassembly blocks (#1128)
38.) Makefile fixes (#1123)
39.) Update README.md
40.) Update README.md
41.) Reflect current decompilation status
42.) Allow both archives and ELF objects to be patched (#1127)
43.) Remove WIP mention in README for sh version.
Refresh 13 2
- No more nonmatchings remain for all builds including Shindou.
1.) Shindou OK (#1118)
2.) Match shindou sequence_player_process_sequence (#1117)
3.) Match func_sh_802f4e50 (#1116)
Refresh 13
- No more nonmatchings remain for US, JP, or EU builds. Three(!!!) remain for Shindou (SH).
*) SHINDOU MATCHING (#1081)
*) Makefile gcc fixes (#1114)
1.) Update diff.py (#1113)
2.) Add support for generating C arrays from n64graphics and add Texture typedef (#1032)
3.) Update README and Dockerfile with recomp info (#1105)
4.) Support building tools with MSYS2 (#1112)
5.) Support building tools with clang and macOS (#1106)
6.) Clean tools directory when running distclean target (#1104)
7.) Make build output cleaner (#1095)
8.) Added 2 surface defines to bowser.inc.c (#1111)
9.) fix fake matchings (#1108)
10.) Use statically recompiled IDO instead of qemu-irix (#1099)
11.) Add VERBOSE=1 to Jenkinsfile
12.) updated intro_geo to use layer defines for geo flags (#1090)
13.) Fix F3DZEX (#1097)
14.) layer_transpose should take an s8 (#1093)
15.) Fix tools/ build (#1082)
16.) Relabel and document fish.inc.c (#1077)
17.) Ensure all calls to .py files use $(PYTHON) (#1080)
18.) Name Mario, Peach, and instrument sound files (#1078)
19.) Goddard labeling, part 2 (#1076)
20.) Fix envfx_snow and envfx_bubbles fake matches (#1075)
21.) Use array subscripts instead of pointer math in 2 files (#1074)
22.) refactor Makefile a bit (#1068)
23.) Further improvements on field names (#1059)
24.) Label and document manta_ray.inc.c (#1073)
25.) Fix level_script and behavior fake matches (#1072)
26.) Proper cell defines and more floor lower limit values. (#1065)
27.) Document and re-label some goddard/intro code (#1069)
28.) Match remaining functions (#1070)
29.) match 'spawn_special_objects' (#1071)
30.) Document parts of external.c and format sound defines (#1067)
Refresh 12
1.) Debug box improvements (#1066)
2.) Improve 'geo_render_mirror_mario' (#1064)
3.) Cleanup and small labeling (#1063)
4.) Anim renames and other related renames (#1062)
5.) remove do while 0 and make one line comments consistent (#1061)
6.) fixed typo in segments.h (#1060)
7.) Name unknown fields (from public repo) (#1058)
8.) Change 'void *' to 'struct MainPoolState *' (#1057)
9.) Fix type of freeList (#1056)
10.) Newer version of diff script (#1055)
11.) Add stubbed_printfs based on unused audio strings (#1054)
12.) Fix comment in paintings.c (#1053)
13.) Add defines for hardcoded cell/floor height values (#1051)
14.) Update README.md: Remove GitHub specific Markdown syntax (#1052)
15.) Properly label interation status that handle's Bowser's shockwave attack (#1050)
Refresh 11
1.) Make geo_process_level_of_detail endian-independent (#1049)
2.) Label oMoveFlags and slight cleanup. (#1046)
3.) Avoid UB in synthesis_resample_and_mix_reverb (#1048)
4.) Change some void * to correct type (#1047)
5.) Remove oPathedWaypointsS16 and convert all paths to Trajectory struct. (#1045)
6.) Mr Blizzard documentation, Tox Box Unks (#1042)
7.) Pipe input to textconv. (#1041)
8.) Remove erroneous long double casts from audiofile.cpp (#1039)
9.) Replace fixed dialogID in play_dialog_sound to DIALOG_COUNT (#1040)
Refresh #10.1
1.) Diff update (#1033)
2.) Fix texture dimensions for exclamation boxes (#1034)
3.) Fix armips compilation on Windows by changing order of inclusion files (#1035)
4.) Embed libaudiofile into the repo as a single file (#1036)
5.) Fix some tools issues found while compiling on MSYS2 (#1037)
Refresh #10
1.) GCC 9 noreturn UB fixes (#961)
2.) List supported binutils variants in README.md (#960)
3.) fix fly guy's possible values for target roll
4.) clarify that 1 is an exclusive bound in random_float (#962)
5.) replace unkB8 with prevNumStarsForDialog (#963)
6.) Replace "BulletBillUnkF8" with "BulletBillInitialMoveYaw" (#966)
7.) Renamed more warp behaviors and spawn types (#949)
8.) EU bss cleanups (#965)
9.) Add -fno-zero-initialized-in-bss to GCC CFLAGS (#968)
10.) Use empty .SECONDARY target instead of .PRECIOUS (#964)
11.) Match EU seq_channel_layer_process_script (#969)
12.) Fix version variable overwriting bug for non-matching compilations (#974)
13.) small bhv_collect_star_init labeling (#972)
14.) Align SI DMA command buffers, add more names to osCont code (#973)
15.) Minor for loop fix in playback.c (#976)
16.) Add Docker config (Public #36)
17.) Fix usage output crash for skyconv (#977)
18.) Cleanup tools and their build flags (#978)
19.) Print more detailed file reading error messages in extract_assets (#982)
20.) Remove asmdiff (#983)
21.) Fixed tabledesign makefile bug (#985)
22.) Improve first-diff.py (#987)
23.) Bring in some enhancements such as widescreen enhancements (#981)
24.) Fix background shadow border if widescreen in shade_screen (#988)
25.) Merge common EU sections in osExceptionPreamble (#990)
26.) Introduce the NO_SEGMENTED_MEMORY define (#989)
27.) NO_SEGMENTED_MEMORY comments (#992)
28.) Introduce f3dex2e and a GBI_FLOATS setting (#993)
29.) Audio uses signed 16-bit integers as samples, not unsigned (#995)
30.) Assemble RSP ucode with armips (#970)
31.) Label Mr. Blizzard, Yoshi, Whomp, Wiggler, Wood Piece oFields. (#996)
32.) update crash enhancement (#1003)
33.) Update README.md to use new public Discord server invite
34.) Label variables in act_idle. (#1005)
35.) Fix a typo in camera.h (#1009)
36.) Fixed up profiler.c (#1010)
37.) Add -d to first-diff.py (#1012)
38.) Fix typo in first-diff.py (#1013)
39.) Remove binutils 2.27 dependency check (#1015)
40.) Update armips to v0.11.0 tag and add generator script (#1004)
41.) Extract IPL3 font from ROM (#1011)
42.) Documented audio playback flags (#1021)
43.) Change RSP register notation to dollar-prefixed numbers (#1022)
44.) Only check for QEMU_IRIX in Makefile when compiling with IDO (#1023)
45.) Clean up header files and update function prototypes (#1000)
46.) Named local variables in geo_update_layer_transparency (#1019)
47.) Extract crash screen font textures from EU and SH ROMs (#1025)
48.) Use ACTIVE_FLAG defines where appropriate (#1026)
49.) Changed type of actor collision from s16 to Collision (#1024)
50.) Implement sqrtf in assembly file (#1028)
51.) Rename Struct8032FCE8 as OpenableGrill and identify data members (#1029)
52.) Fix some mistakes in the abi doc (#1031)
53.) The README.md PR (#979)
Refresh #8
1.) Use INT_STATUS_ macros for oInteractStatus (#911)
2.) Update bullet_bill.inc.c (#912)
3.) Make geo.c in levels nonconst to reduce diffs with gcc enhancement patch in future (#913)
4.) Improve process_level_music_dynamics (#915)
5.) add AVOID_UB define for fixing libultra aliasing. (#916)
6.) const hack to TARGET_N64 and tweak ld script (#918)
7.) Replace raw level/course numbers with defines (#919)
8.) Label all graph node flags. (#920)
9.) readme.md capitalization
10.) The Big Function PR (Part 5) (#910)
11.) Label hardware registers (#922)
12.) Match EU synthesis_process_note (#923)
13.) Some quick value changes (#909)
14.) Added sequence player defines (#926)
15.) Shindou diffs 2 [merge game.c and display.c, required for SH] (#927)
16.) Match synthesis_process_notes and use -sopt for synthesis.c (#928)
17.) Fix mips64-binutils for Fedora 31 and similar Linux distros (#931)
18.) Update first-diff.py to work with Shindou (#933)
19.) Labelled behavior_script.c (#929)
20.) shindou diffs up to level_update (#932)
21.) Update diff.py and diff_settings.py to work with SH (#936)
22.) Add some Shindou resources to extract_assets.py (#939)
23.) Label and document gd_math.c (#930)
24.) Label all of Mario's actions. (#941)
25.) Label all particles. (#940)
26.) Renamed death related warpBhvs (#942)
27.) Small Shindou differences (#945)
28.) match player_performed_grab_escape_action in all versions (#943)
29.) add main alignment (aglab2, #947)
30.) Match a bunch of fake EU matchings (#944)
31.) Shindou diffs round 4 (#937)
32.) Easy PAL fake matchings (#946)
33.) Merge object_helpers and object_helpers2 headers (#948)
34.) match cap_check_quicksand (#950)
35.) Shindou crash screen diffs (#938)
36.) Thread6 (#951)
37.) Correct IPL3 function and label addresses (#952)
38.) Add COMPILER flag for Makefile and add official mips gcc support. (#953)
39.) add align to sequence_00 (fixes gcc build) (#957)
40.) Fixed itty bitty typo (#959)
Refresh #7
1.) update README.md (#861)
2.) [eu] fix decompilation bugs in synthesis_process_note (#862)
3.) Label and document Snufit.inc.c (#863)
4.) Label and document Snufit.inc.c (#863)
5.) Match append_bubble_vertex_buffer, append_snowflake_vertex_buffer (#860)
6.) Compile audio/effects.c with -sopt (#870)
7.) Match handle_dialog_text_and_pages (#872)
8.) Remove improperly used LEVEL_SA define. (#875)
9.) Remove unused EU ASM files (#873)
10.) Shindou build flag support (#876)
11.) The Big Function PR (Part 1) (#864)
12.) "Re-document" file_select and star_select for EU (#877)
13.) Document paintings.c (#868)
14.) Minor interaction.c labelling/documentation. (#882)
15.) Match synthesis_execute, prepare_reverb_ring_buffer, func_eu_802e00d8 (#886)
16.) The Big Function PR (Part 2) (#874)
17.) Additional painting documentation (#883)
18.) Some EU audio labelling (#885)
19.) Bring synthesis_do_one_audio_update a bit closer to matching (#887)
20.) Misleading comment, this actually contols Bowser's init action (#889)
21.) Match synthesis_do_one_audio_update (#890)
22.) Remove unneeded if(1) in synthesis_do_one_audio_update (#891)
23.) Match synthesis_resample_and_mix_reverb (#893)
24.) Set LANG=C (#896)
25.) Match note_apply_headset_pan_effects (#897)
26.) Match play_sequence (#898)
27.) Match sequence_channel_enable (#899)
28.) Match sequence_player_process_sequence (#900)
29.) Match (eu) alloc_bank_or_seq (#901)
30.) Match alloc_bank_or_seq (#903)
31.) Update README.md (again)
32.) Documented behaviour/fish.inc.c & blue_fish.inc.c (#894)
33.) Labelled 4 behavior files, made object_helper functions consistent (#881)
34.) Add a make target for .copt (#902)
35.) The Big Function PR (Part 3) (#888)
36.) The Big Function PR (Part 4) (#906)
37.) Rename src/audio/memory.c -> heap.c (#907)
38.) Fix BBH texture (#908)
Refresh #6
1.) Make tools work on MinGW (#804)
2.) Document mario_misc (#628)
3.) add patch_libmalloc.py script to work around compiler crashes (#811)
4.) Label the coffins file. (#829)
5.) Convert enhancements into patches (#827)
6.) Document Tweester.inc.c (#840)
7.) EU OK and cleanup EU (#782)
Refresh #5
1.) mem_error_screen.inc.c updated for C (#775)
2.) updated patch_libultra_math to work directly on libultra.a (#781)
3.) Enhancement: Debug boxes (#783)
4.) Label effects MemoryPool (#784)
5.) Use full-width characters for JP text and rename mislabeled stuff (#772)
6.) Small asset extraction fixes (#785)
7.) Fix incremental asset extraction after the last PR (#790)
8.) Labelled behavior script commands, tidied up behavior scripts and ren…
9.) Document camera.c (#741)
10.) Fix a HMC texture asset (#795)
11.) Fix UB in angle conversion for paintings. Needed for pc-port. (#796)
12.) Fix PSS texture assets (#801)
13.) Fix some camera typos (#802)
Refresh #4
1.) Label screen_transition.c (#737)
2.) Revamp macros (#738)
3.) Simplify the cake makefile logic (#739)
4.) Move zbuffer to C (#742)
5.) Audio blob endian/64-bit fixes (#740)
6.) Ub fixes (#745)
7.) process_level_music_dynamics: slightly better stack and regalloc (#746)
8.) move level order specific definitions out to levels/level_defines.h (#743)
9.) Renamed some mislabelled sound effects (#748)
10.) Very minor white space fixes in Mario.c (#752)
11.) Renamed GRAVITY to OBJ_PHYSICS (#755)
12.) Use defined macros instead of literal values for interactions in behavior_data.c (#754)
13.) iQue Player console detection + full support (#756)
14.) Fix Goddard Mario head for little endian etc. (#757)
15.) Small bits of audio doc (#749)
16.) Update diff script (#750)
17.) Nicer format for course/dialog text, enum for dialog IDs (#753)
18.) first-diff: store most recent mtime during check (#759)
19.) Use Lights1 struct for light values (#760)
20.) Detect mips64-elf in diff.py (#761)
21.) Name display lists in gd renderer.c (#764)
22.) Document a variety of PU type crashes. (#765)
23.) Label object_behaviors. (#716)
24.) Update swoop.inc.c (#767)
25.) Label tilting_pyramid.inc.c (#768)
26.) Label red_coin.inc.c (#770)
27.) Use more level defines (#758)
28.) Named Mario actions 6, 7, and 8 and noted causes of hands-free holding glitch (#769)
Refresh #3
1.) Small bits of sound sample labelling
2.) Append 'b' to fopen calls in n64graphics to satisfy Windows
3.) Document synthesis.c and abi.h
4.) Remove gbi_old.h and use gbi.h instead for F3D_OLD
5.) Fix and change most values used by f3d commands
6.) Convert actors to C
7.) Make extract_assets.py fail on bad baserom
8.) Fix some (pragma-ignored) warnings
9.) Convert trig tables and data/ buffers into C
10.) Document intro behaviors and some of camera.c
11.) Match dma_sample_data
12.) Convert levels, bin, text, goddard_tex_dl to C
13.) Remove .bss size hardcoding
14.) Add mips64 fallback and alt dump option to diff.sh
15.) Convert behavior_data to C
16.) Get rid of the enum in behavior_data.
17.) Change more values used by f3d commands
18.) Document game/skybox.c
19.) Actors levels fixup
20.) Convert Mario animations to C (kind of)
22.) generate skybox data from 248x248 images
23.) 64-bit fixes
24.) Move demo data to C
25.) Change uintptr_t to GeoLayout for actors
26.) Move libc includes to include/libc/
Refresh #2a (hotfix)
Changes from Refresh #2:
1.) Fixed text Makefile dependencies"
Refresh #2
Changes from Refresh #1:
1.) Label src/game/behaviors/boo.inc.c
2.) Verify half of audio_defines.h
3.) Label ingame_menu.c and some dialog stuff
4.) Improve handle_dialog_text_and_pages EU non-matching
5.) Fix texture format for water splash/sparkle
6.) Merge ucode.bin and ucode_unk.bin
7.) 64-bit fixes
8.) [AUDIO] Match func_80316928
9.) Documented bug in Tuxie's mother's code
10.) [AUDIO] Slightly closer matching for process_level_music_dynamics
11.) Name channel scripts in sequence 0
12.) Nicer error message when sha1sum doesn't match
13.) Refactor object fields
14.) Document file_select.c
15.) Document star_select.c
16.) Add uncompressed string support to textconv
17.) Document main_menu geo and leveldata
18.) Document hud.c and rename char textures
19.) Correct gSPTextureRectangle values
20.) Linker script wildcard
- Fixes "undefined reference to x in discarded section y" linker errors.
- Also means that you no longer have to add linker script entries for source files.
21.) Reference qemu-irix package and add project structure
- Installing qemu-irix is as simple as installing the provided Debian package on the GitHub "Releases" tab
(https://github.com/n64decomp/qemu-irix).
- Old qemu-irix installs are unaffected by this change, and it is still possible to install qemu-irix with the older method.
Refresh #1
Changes from initial release:
1.) More README cleanups and documentation
2.) Fix .gitignore in tools/
3.) More README cleanups and corrections
4.) oUnk190 -> oInteractionSubtype
5.) Normalize line endings
6.) Replace bank_sets.s by sequences.json + build magic
7.) Fix tabledesign in .gitignore
8.) Cleaned and documented arrays in audio/
9.) Change minimum Python 3 requirement in README.md to 3.6
10.) Remove whitespace in ingame_menu.c, save_file.c, and star_select.c
11.) Documentation comment style fixed
12.) sm64.map -> sm64.version.map (ex: sm64.us.map)
13.) Decompile EU versions of HUD and obj behaviors
14.) Label ukiki.inc.c and ukiki_cage.inc.c
15.) Add missing OS header includes
16.) Fix alignment issue in model_ids.h
17.) A bunch of behavior changes:
a.) Made styles consistent with function names (ex: BehBehaviorLoop -> beh_behavior_loop)
b.) Split obj_behaviors_2.c into multiple .inc.c files in behaviors/
c.) bhvHauntedRoomCheck -> bhvCoffinManager
18.) Update README.md notes on WSL and add links
19.) Added tidy.sh and also bracing around single-line ifs and loops

View File

@@ -2,7 +2,8 @@
# 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
# 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

@@ -1,18 +1,17 @@
FROM ubuntu:22.04 as build
FROM ubuntu:18.04 as build
RUN apt-get update && \
apt-get install -y \
binutils-mips-linux-gnu \
bsdextrautils \
bsdmainutils \
build-essential \
gcc-mips-linux-gnu \
libcapstone-dev \
pkgconf \
python3
RUN mkdir /hackersm64
WORKDIR /hackersm64
ENV PATH="/hackersm64/tools:${PATH}"
RUN mkdir /sm64
WORKDIR /sm64
ENV PATH="/sm64/tools:${PATH}"
CMD echo 'Usage: docker run --rm -v ${PWD}:/hackersm64 hackersm64 make VERSION=us -j4\n' \
'See https://github.com/HackerN64/HackerSM64/blob/master/README.md for more information'
CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=us -j4\n' \
'see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage'

2482
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

60
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,60 @@
pipeline {
agent any
stages {
stage('Build Tools') {
steps {
sh 'make -j4 -C tools/'
}
}
stage('Extract Assets') {
steps {
sh 'ln -s "$ROMS_DIR/Super Mario 64 (J) [!].z64" baserom.jp.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 - Shindou Edition (J) [!].z64" baserom.sh.z64'
// verify no assets were committed to repo
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
sh './extract_assets.py jp us eu sh'
}
}
stage('Build U Source') {
steps {
sh 'make -j4 VERSION=us VERBOSE=1 COLOR=0'
}
}
stage('Build S Source') {
steps {
sh 'make -j4 VERSION=sh VERBOSE=1 COLOR=0'
}
}
stage('Build E Source') {
steps {
sh 'make -j4 VERSION=eu VERBOSE=1 COLOR=0'
}
}
stage('Build J Source') {
steps {
sh 'make -j4 VERSION=jp VERBOSE=1 COLOR=0'
}
}
stage('Test Enhancements') {
steps {
sh '''
set -e
for f in enhancements/*.patch
do
git clean -fd .
git checkout -- .
echo 'y' | tools/apply_patch.sh "$f"
make -j4 VERSION=us COMPARE=0 VERBOSE=1
done
'''
}
}
}
environment {
QEMU_IRIX = credentials('qemu-irix')
ROMS_DIR = credentials('roms')
}
}

270
Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -39,8 +39,6 @@ ACTOR_GROUPS := \
LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
SEG_FILES := \
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \

View File

@@ -1,44 +1,43 @@
# ![](https://i.imgur.com/CeOukzk.gif) HackerSM64 ![](https://i.imgur.com/s0LUbTo.gif)
**AFTER CLONING THE REPO, CHECK OUT THE `include/config` FOLDER BEFORE ANYTHING ELSE! THERE'S A LOT OF STUFF IN THIS REPO THAT CAN BE TOGGLED THERE.**
**AFTER CLONING THE REPO, CHECK OUT THE `include/config.h` FILE BEFORE ANYTHING ELSE! IT THERE'S A LOT OF STUFF IN THIS REPO THAT CAN BE TOGGLED THERE.**
HackerSM64 now has a discord server! https://discord.gg/brETAakcXr
This repo requires BOTH a US ROM and a JP ROM in order to build. Place baserom.us.z64 in the repo as usual and ALSO include baserom.jp.z64.
This repo needs BOTH an US ROM and a JP ROM in order to build. Place baserom.us.z64 in the repo as usual and ALSO place baserom.jp.z64
This repo needs gcc in order to be able to build it. To install it, run `sudo apt install gcc-mips-linux-gnu`
This is a fork of the ultrasm64 repo by CrashOveride which includes the following commonly used patches (patches marked with `*` are toggleable in the config files):
This is a fork of the ultrasm64 repo by CrashOveride which includes the following commonly used patches (patches marked with `*` are toggleable in `config.h`):
**Credits**
- **ArcticJaguar725**: Most audio configuration and layout changes, colored ia4 text, floombas, various bugfixes, and more
- **ArcticJaguar725**: Most audio configuration and layout changes, colored ia4 text, floombas, a bunch of random bugfixes, and more
- **CowQuack**: Adjustable skybox sizes, area-specific skybox function
- **thecozies**: Water surface types, general maintenance, and time
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **MrComit**: General use object defines, JUMP_KICK_FIX, LEDGE_GRABS_CHECK_SLOPE_ANGLE
- **aglab2**: bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: Platform Displacement 2
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **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
- **Fazana**: PuppyLib, ucode swapping, Audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project/repo, widescreen, various defines for hacker QoL
- **JoshDuMan**: decomp guy, general assistance
- **Arceveti**: silhouette, shadow optimisation, better hanging, breath meter
- **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
- **Wiseguy**: 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
- **Pyro Jay**: Texture improvements, repo banner art, some QoL stuff
- **CrashOveride**: creating the [ultrasm64](https://github.com/CrashOveride95/ultrasm64) repo
- **falcobuster**: Original coordinate overflow fix (world scale), ASM version of extended bounds, emulator detector
- **CrashOveride**: creating the `ultrasm64` repo
- **falcobuster**: coordinate overflow fix (world scale), ASM version of extended bounds
- **anonymous_moose**: porting falco's extended bounds to decomp
- **tuxlovesyou**: `LOAD_MIO0_TEXTURE` macro and moral support
- **devwizard**: the PJ64 pre-v3.0 detection part of the emulator detector
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
**Lighting Engine by Wiseguy**
- Lighting Engine is available on a separate branch ([base/lighting-engine](https://github.com/Reonu/HackerSM64/tree/base/lighting-engine)). Instructions on how to use it are in the readme of that branch.
- Lighting Engine is available on a separate branch `(lighting-engine)`. Instructions on how to use it are in the readme of that branch.
- Alternatively, the main repo has `Puppylights` available, which is a more lightweight, but limited lighting library intended to be used to modify existing light properties. You can look at `puppylights.c` to find out how to use it.
**Puppycam**
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
- Puppycam is available on the master branch now, you can toogle it in config.h. *
**Collision:**
- Slope fix and exposed ceilings fix
@@ -46,11 +45,11 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- Jump kick fix *
- Configurable wallkick angle, in degrees *
- Possibility of disabling BLJs *
- Hanging fix (Mario can grab hangable ceilings from any state, instead of only jump or double jump) *
- Hanging fix (mario can grab hangable ceilings from any state, instead of only jump or double jump) *
- Increased maximum pole length (The game will read bparam1 and bparam2 together as a single value, so you can have a very long pole) *
- Platform Displacement 2 by Arthurtilly *
- Water Surface Type patch by thecozies
- Better wall collision with rounded corners by FramePerfection, merged by Cheezepin & Arceveti
- Better Wall Collision With Rounded Corners by FramePerfection, merged by Cheezepin & Arceveti
- Automatically calculate the optimal collision distance for an object based on its vertices, by Kaze *
**Common Hack Changes:**
@@ -61,9 +60,10 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- Toggle to disable fall damage and the fall damage sound *
- Nonstop stars *
- Removed course-specific camera processing *
- You can increase the number of frames that you have to perform a firsty *
- Ability to set Mario's movement speed when hanging from a ceiling *
- Tighter hanging controls (Mario will face the direction of the analog stick directly while hanging from a ceiling) *
- reonucam3: custom camera by Reonu. This is included as a .patch file in the enhancements folder, you need to apply it if you want this camera.
- Tighter hanging controls (mario will face the direction of the analog stick directly while hanging from a ceiling) *
- reonucam3: custom camera by me. This is included as a .patch file in the enhancements folder, you need to apply it if you want this camera.
This video shows a rundown of the features: https://youtu.be/TQNkznX9Z3k
- Ability to disable Mario getting suck in snow or sand
@@ -72,56 +72,56 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- Debug mode: prints mario's coordinates, angle and speed, and a FPS counter.
- Automatic console/emulator detection. If emulator is detected, LODs are disabled. *
- Ability to configure whether there's a 100 coin star at all and how many coins are required to spawn it *
- Ability to easily change the warp that EXIT COURSE takes you to via `config/config_menu.h`, or disable it entirely. *
- 16 bit model IDs by someone2639. This means you can have up to 65536 models (lol). You can set the maximum number of model IDs in `config/config_game.h`.
- Ability to easily change the warp that EXIT COURSE takes you to via config.h, or disable it entirely. *
- 16 bit model IDs by someone2639. This means you can have up to 65536 models (lol). You can set the maximum number of model IDs in `config.h`.
- Apply_patch.sh improved
- Removed the ifdef hell in `file_select.c` and `ingame_menu.c`
- Added Blake's custom function for object model stuff: `obj_set_model` and `obj_has_model`
- Added function to get the model ID from an object: `obj_get_model_id` (by Arceveti)
- The "far" variable is now u16, allowing you to increase the farclip (the max distance at which geometry is rendered). However, when increasing the farclip, make sure to increase the nearclip by the same ratio, or rendering will break on console and LLE plugins.
- Many general use defines for object struct members, meant for use in custom object behaviors. Check `include/object_fields.h` for more info on this. (By MrComit)
- Many general use defines for object struct members, meant for use in custom object behaviors. Check `object_fields.h` for more info on this. (By MrComit)
- Included `actors/group0.c` in `behavior_data.c`
- The internal ROM name is now set with a define in `config/config_rom.h` to make it simpler
- There is a `gEmulator` variable to detect console or specific emulators and emulator versions
- The internal ROM name is now set with a define in `config.h` to make it simpler
- There is a `gIsConsole` variable that is 1 when running on console and 0 when running on emulator. This way you can wrap your code in a console check.
- Expanded audio heap allows for a larger concurrent note count and the importing of more m64 sequences and sound banks (By ArcticJaguar725) *
- 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. *
- You can set a test level in config.h in order to boot straight into it, so you can quickly test the level you're working on. *
- Allows 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: `"@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.
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config.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. *
**Other Bugfixes:**
- Castle music fix (fixes the castle music sometimes triggering after getting a dialog) *
- bparam4 fix (the game no longer uses bparam4 to check if an object is Mario and therefore you can safely use it)
- Castle music fix (Fixes the castle music sometimes triggering after getting a dialog) *
- bparam4 fix (the game no longer uses bparam4 to check if an object is mario and therefore you can safely use it)
- Instant warp offset fix (makes the instant warp offset work even when warping to a different area) *
- haveyourcake, also known as cake screen fix. Made by Wiseguy and ported/PR'd by Cheezepin
- Tree particle fix (Whether a tree uses snow particles or not is decided via the model IDs instead of the course number) *
- Adjustable world scale. You can change the geometry scaling of your level, which allow large levels to render correctly on console and LLE emulators while not hurting anything on HLE plugins.
- Coordinate overflow fix by falcobuster. Your levels will render correctly on console and LLE emulators even when using 2x or 4x bounds, while not hurting anything on HLE plugins. *This is automatic now, you don't have to set WORLD_SCALE manually.*
- A couple vanilla texture fixes
- Smoke fix (the smoke texture uses the correct texture format)
**Neat Misc. Changes:**
- Instant Input patch by Wiseguy (Removes all input lag caused by plugins supporting framebuffer)
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gEmulator` variable to check for console when doing your framebuffer effects.
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gIsConsole` variable to check for console when doing your framebuffer effects.
- Widescreen (16:9) support toggleable by pressing `L` in the pause menu. *
- S2DEX engine by someone2639! To use it, compile with `make TEXT_ENGINE=s2dex_text_engine` or just set `TEXT_ENGINE` to `s2dex_text_engine` in the makefile.
- ia8 (64x64) coins, the vanilla coin texture is upgraded to accomodate. *
- ia8 (64x64) 30 FPS coins (Textures by InTheBeef, cleaned up by Arceveti). *
- Floombas! Simply just retextured goombas with customizable behaviors (does not overwrite standard goombas). *
- ia8 coins (64x64), the vanilla coin texture is upgraded to accomodate. *
- ia8 30 FPS (64x64) coins (Textures by InTheBeef, cleaned up by Arceveti). *
- Floombas! Simply just retextured goombas with custom behaviors (does not overwrite standard goombas). *
- HD texture support for intro splash screen (with floombas if enabled). *
- Mario's silhouette is shown when behind most surfaces (By Frame#5375, Axollyon, AloXado320, Wiseguy, Arceveti) *
- Skybox size modifier. You can have 2x, 3x and 4x size skyboxes (you can select the skybox size in `config/config_graphics.h`.) Please note that this might affect console performance, especially 4x mode. 2x or 3x mode is recommended if aiming for console. By CowQuack *
- Skybox size modifier. You can have 2x, 3x and 4x size skyboxes (you can select the skybox size in `config.h`.) Please note that this might affect console performance, especially 4x mode. 2x or 3x mode is recommended if aiming for console. By CowQuack *
- You can set the black border size to different values for console and emulator. It's set to 0 by default for both. *
- This repo supports a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. See `audio/synthesis.c` for more details and configuration info. (By ArcticJaguar725) *
- This repo supports much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. See `audio/synthesis.c` for more configuration info. (By ArcticJaguar725) *
- Fazana's "puppyprint" text engine. *
- Use `print_small_text` to print normal text. The two last params are aligment and how many characters to print (-1 means PRINT_ALL).
- Use `render_multi_image` to draw large texture rectangles consisting of multiple images on the screen.
- More info in `puppyprint.c`
- Wiseguy's Farcall TLB mapping allows to store executable code inside uncompressed segments, that can be loaded and ran as needed, instead of it having to be loaded at all times. See `farcall.h` in the include folder for instructions and details.
- Red Coin Stars now support up to 99 red coins! In addition, multi-area red coin missions can now be created by setting the 2nd behavior paramater of the red coin star to the number of reds required for the star to spawn.
# UltraSM64
- This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH).
@@ -135,7 +135,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- It has been patched with someone2639's shiftable segments patch
- Wiseguy's instant input patch has been added to allow for less input lag on emulation (Does not affect console)
This does mean that any framebuffer effects will have to be done on buffer 0 if targeting emulators
- Automatic console and emulator detection: Use the `gEmulator` variable to wrap your code in an emulator check.
- Automatic console and emulator detection: Use the `gIsConsole` variable to wrap your code in an emulator check.
- Separate defines for emulator and console black border height.
- Getting HVQM FMV support to work with the game is WIP.

View File

@@ -1 +0,0 @@
v2.3.0

View File

@@ -1,10 +1,22 @@
// Birds
// 0x05000000
static const Lights1 birds_seg5_lights_05000000 = gdSPDefLights1(
0x07, 0x24, 0x2c,
0x1d, 0x91, 0xb0, 0x28, 0x28, 0x28
);
// 0x05000018
static const Lights1 birds_seg5_lights_05000018 = gdSPDefLights1(
0x33, 0x27, 0x0d,
0xce, 0x9d, 0x34, 0x28, 0x28, 0x28
);
// 0x05000030
static const Lights1 birds_seg5_lights_05000030 = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x05000048
static const Vtx birds_seg5_vertex_05000048[] = {
@@ -126,8 +138,8 @@ static const Vtx birds_seg5_vertex_050004C8[] = {
// 0x05000528 - 0x05000598
const Gfx birds_seg5_dl_05000528[] = {
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
gsSPLightColor(LIGHT_2, 0x7242cff),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000048, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 4, 3, 2, 0x0, 5, 3, 6, 0x0),
@@ -139,16 +151,16 @@ const Gfx birds_seg5_dl_05000528[] = {
// 0x05000598 - 0x05000600
const Gfx birds_seg5_dl_05000598[] = {
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
gsSPLightColor(LIGHT_2, 0x7242cff),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_050000D8, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
gsSPLightColor(LIGHT_2, 0x7242cff),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000108, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
gsSPLightColor(LIGHT_2, 0x7242cff),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000138, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPEndDisplayList(),
@@ -156,8 +168,8 @@ const Gfx birds_seg5_dl_05000598[] = {
// 0x05000600 - 0x05000670
const Gfx birds_seg5_dl_05000600[] = {
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
gsSPLightColor(LIGHT_2, 0x7242cff),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_05000168, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 0, 3, 4, 0x0, 5, 3, 6, 0x0),
@@ -169,8 +181,8 @@ const Gfx birds_seg5_dl_05000600[] = {
// 0x05000670 - 0x050007E0
const Gfx birds_seg5_dl_05000670[] = {
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
gsSPLightColor(LIGHT_2, 0x7242cff),
gsSPLight(&birds_seg5_lights_05000000.l, 1),
gsSPLight(&birds_seg5_lights_05000000.a, 2),
gsSPVertex(birds_seg5_vertex_050001F8, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 1, 9, 10, 0x0),
@@ -186,16 +198,16 @@ const Gfx birds_seg5_dl_05000670[] = {
gsSP1Triangle( 7, 6, 15, 0x0),
gsSPVertex(birds_seg5_vertex_050003F8, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPLight(&birds_seg5_lights_05000030.l, 1),
gsSPLight(&birds_seg5_lights_05000030.a, 2),
gsSPVertex(birds_seg5_vertex_05000428, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 0, 7, 0x0, 7, 8, 6, 0x0),
gsSP2Triangles( 9, 7, 2, 0x0, 2, 7, 0, 0x0),
gsSP2Triangles( 2, 3, 9, 0x0, 7, 9, 8, 0x0),
gsSP1Triangle( 5, 4, 1, 0x0),
gsSPLightColor(LIGHT_1, 0xce9d34ff),
gsSPLightColor(LIGHT_2, 0x33270dff),
gsSPLight(&birds_seg5_lights_05000018.l, 1),
gsSPLight(&birds_seg5_lights_05000018.a, 2),
gsSPVertex(birds_seg5_vertex_050004C8, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
gsSP1Triangle( 1, 3, 5, 0x0),

View File

@@ -1,14 +1,34 @@
// Blargg (Unused)
// Unreferenced light group
UNUSED static const Lights1 blargg_lights_unused = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x05004740
static const Lights1 blargg_seg5_lights_05004740 = gdSPDefLights1(
0x3f, 0x0d, 0x05,
0xff, 0x36, 0x16, 0x28, 0x28, 0x28
);
// 0x05004758
static const Lights1 blargg_seg5_lights_05004758 = gdSPDefLights1(
0x2c, 0x2c, 0x2c,
0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28
);
// 0x05004770
static const Lights1 blargg_seg5_lights_05004770 = gdSPDefLights1(
0x3f, 0x0a, 0x06,
0xff, 0x2a, 0x1a, 0x28, 0x28, 0x28
);
// 0x05004788
static const Lights1 blargg_seg5_lights_05004788 = gdSPDefLights1(
0x3f, 0x0b, 0x07,
0xff, 0x2e, 0x1f, 0x28, 0x28, 0x28
);
// 0x050047A0
static const Vtx blargg_seg5_vertex_050047A0[] = {
@@ -363,8 +383,8 @@ static const Vtx blargg_seg5_vertex_050057E0[] = {
// 0x050058D0 - 0x05005A60
const Gfx blargg_seg5_dl_050058D0[] = {
gsSPLightColor(LIGHT_1, 0xb2b2b2ff),
gsSPLightColor(LIGHT_2, 0x2c2c2cff),
gsSPLight(&blargg_seg5_lights_05004758.l, 1),
gsSPLight(&blargg_seg5_lights_05004758.a, 2),
gsSPVertex(blargg_seg5_vertex_050047A0, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
@@ -378,8 +398,8 @@ const Gfx blargg_seg5_dl_050058D0[] = {
gsSPVertex(blargg_seg5_vertex_050049A0, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPLightColor(LIGHT_1, 0xff3616ff),
gsSPLightColor(LIGHT_2, 0x3f0d05ff),
gsSPLight(&blargg_seg5_lights_05004740.l, 1),
gsSPLight(&blargg_seg5_lights_05004740.a, 2),
gsSPVertex(blargg_seg5_vertex_05004A20, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
@@ -398,8 +418,8 @@ const Gfx blargg_seg5_dl_050058D0[] = {
// 0x05005A60 - 0x05005D00
const Gfx blargg_seg5_dl_05005A60[] = {
gsSPLightColor(LIGHT_1, 0xb2b2b2ff),
gsSPLightColor(LIGHT_2, 0x2c2c2cff),
gsSPLight(&blargg_seg5_lights_05004758.l, 1),
gsSPLight(&blargg_seg5_lights_05004758.a, 2),
gsSPVertex(blargg_seg5_vertex_05004BE0, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
@@ -413,8 +433,8 @@ const Gfx blargg_seg5_dl_05005A60[] = {
gsSPVertex(blargg_seg5_vertex_05004DE0, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPLightColor(LIGHT_1, 0xff2a1aff),
gsSPLightColor(LIGHT_2, 0x3f0a06ff),
gsSPLight(&blargg_seg5_lights_05004770.l, 1),
gsSPLight(&blargg_seg5_lights_05004770.a, 2),
gsSPVertex(blargg_seg5_vertex_05004E60, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 2, 6, 7, 0x0, 2, 7, 8, 0x0),
@@ -452,8 +472,8 @@ const Gfx blargg_seg5_dl_05005A60[] = {
// 0x05005D00 - 0x05005EB8
const Gfx blargg_seg5_dl_05005D00[] = {
gsSPLightColor(LIGHT_1, 0xff2e1fff),
gsSPLightColor(LIGHT_2, 0x3f0b07ff),
gsSPLight(&blargg_seg5_lights_05004788.l, 1),
gsSPLight(&blargg_seg5_lights_05004788.a, 2),
gsSPVertex(blargg_seg5_vertex_050053E0, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),

View File

@@ -1,6 +1,10 @@
// Blue Coin Switch
// 0x08000000
static const Lights1 blue_coin_switch_seg8_lights_08000000 = gdSPDefLights1(
0x7f, 0x7f, 0x7f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x08000018
ALIGNED8 static const Texture blue_coin_switch_seg8_texture_08000018[] = {
@@ -45,8 +49,8 @@ const Gfx blue_coin_switch_seg8_dl_08000D58[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000018),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x7f7f7fff),
gsSPLight(&blue_coin_switch_seg8_lights_08000000.l, 1),
gsSPLight(&blue_coin_switch_seg8_lights_08000000.a, 2),
gsSPVertex(blue_coin_switch_seg8_vertex_08000C18, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0),

View File

@@ -1,6 +1,10 @@
// Blue Fish
// 0x0301B5C8
static const Lights1 blue_fish_seg3_lights_0301B5C8 = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x0301B5E0
ALIGNED8 static const Texture blue_fish_seg3_texture_0301B5E0[] = {
@@ -30,8 +34,8 @@ const Gfx blue_fish_seg3_dl_0301BEC0[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1),
gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2),
gsSPVertex(blue_fish_seg3_vertex_0301BDE0, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
gsSP2Triangles( 5, 0, 3, 0x0, 2, 6, 0, 0x0),
@@ -82,8 +86,8 @@ const Gfx blue_fish_seg3_dl_0301C0A8[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1),
gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2),
gsSPVertex(blue_fish_seg3_vertex_0301C018, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
gsSP2Triangles( 4, 5, 2, 0x0, 2, 5, 6, 0x0),

View File

@@ -168,10 +168,22 @@ const Gfx bobomb_seg8_dl_08022D78[] = {
};
// 0x08022DE8
static const Lights1 bobomb_seg8_lights_08022DE8 = gdSPDefLights1(
0x3f, 0x26, 0x04,
0xff, 0x99, 0x12, 0x28, 0x28, 0x28
);
// 0x08022E00
static const Lights1 bobomb_seg8_lights_08022E00 = gdSPDefLights1(
0x2c, 0x2c, 0x2c,
0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28
);
// Unreferenced light group
UNUSED static const Lights1 bobomb_lights_unused = gdSPDefLights1(
0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
);
// 0x08022E30
static const Vtx bobomb_seg8_vertex_08022E30[] = {
@@ -267,8 +279,8 @@ static const Vtx bobomb_seg8_vertex_08023190[] = {
// 0x08023270 - 0x08023378
const Gfx bobomb_seg8_dl_08023270[] = {
gsSPLightColor(LIGHT_1, 0xff9912ff),
gsSPLightColor(LIGHT_2, 0x3f2604ff),
gsSPLight(&bobomb_seg8_lights_08022DE8.l, 1),
gsSPLight(&bobomb_seg8_lights_08022DE8.a, 2),
gsSPVertex(bobomb_seg8_vertex_08022E30, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
@@ -290,8 +302,8 @@ const Gfx bobomb_seg8_dl_08023270[] = {
// 0x08023378 - 0x08023480
const Gfx bobomb_seg8_dl_08023378[] = {
gsSPLightColor(LIGHT_1, 0xff9912ff),
gsSPLightColor(LIGHT_2, 0x3f2604ff),
gsSPLight(&bobomb_seg8_lights_08022DE8.l, 1),
gsSPLight(&bobomb_seg8_lights_08022DE8.a, 2),
gsSPVertex(bobomb_seg8_vertex_08022F70, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
@@ -313,8 +325,8 @@ const Gfx bobomb_seg8_dl_08023378[] = {
// 0x08023480 - 0x08023528
const Gfx bobomb_seg8_dl_08023480[] = {
gsSPLightColor(LIGHT_1, 0xb2b2b2ff),
gsSPLightColor(LIGHT_2, 0x2c2c2cff),
gsSPLight(&bobomb_seg8_lights_08022E00.l, 1),
gsSPLight(&bobomb_seg8_lights_08022E00.a, 2),
gsSPVertex(bobomb_seg8_vertex_080230B0, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 0, 3, 0x0, 4, 3, 5, 0x0),

View File

@@ -1,6 +1,10 @@
// Bomb
// 0x06057AA8
static const Lights1 bomb_seg6_lights_06057AA8 = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x06057AC0
ALIGNED8 static const Texture bomb_seg6_texture_06057AC0[] = {
@@ -169,8 +173,8 @@ const Gfx bomb_seg6_dl_0605A8A8[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bomb_seg6_texture_06059AC0),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPLight(&bomb_seg6_lights_06057AA8.l, 1),
gsSPLight(&bomb_seg6_lights_06057AA8.a, 2),
gsSPVertex(bomb_seg6_vertex_0605A340, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),

View File

@@ -1,6 +1,10 @@
// Boo
// 0x05009B28
static const Lights1 boo_seg5_lights_05009B28 = gdSPDefLights1(
0x97, 0x9a, 0xff,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x05009B40
ALIGNED8 static const Texture boo_seg5_texture_05009B40[] = {
@@ -257,8 +261,8 @@ const Gfx boo_seg5_dl_0500BEE0[] = {
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),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x979affff),
gsSPLight(&boo_seg5_lights_05009B28.l, 1),
gsSPLight(&boo_seg5_lights_05009B28.a, 2),
gsSPVertex(boo_seg5_vertex_0500B340, 12, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),

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