Compare commits

..

322 Commits

Author SHA1 Message Date
Fazana
9a4446d377 Update puppyprint.c 2021-10-27 21:53:39 +01:00
Fazana
316357fbe8 Puppyprint Page overhaul 2021-10-27 18:31:39 +01:00
Arceveti
c79cc991b3 Merge pull request #91 from Reonu/merge_ultrasm64
Merge ultrasm64
2021-10-20 17:15:59 -07:00
Arceveti
d1c87d9bd0 Merge https://github.com/CrashOveride95/ultrasm64 into merge_ultrasm64 2021-10-20 16:46:05 -07:00
Arceveti
854af8cf7b Merge pull request #86 from Reonu/course_complete_1ups
Make course complete 1-Ups from coins work past 150 coins
2021-10-20 15:08:32 -07:00
Arceveti
325b7d9a0d Update src/game/ingame_menu.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-10-20 15:01:45 -07:00
Arceveti
82aa19e4cc Merge pull request #88 from Reonu/fix_redundant_geo_process_animated_part_translation_set
Fix geo_process_animated_part setting translation twice
2021-10-20 15:01:29 -07:00
Arceveti
110efebb24 Make PAINTING_SIZE a float 2021-10-20 14:38:36 -07:00
Arceveti
f6a2999134 Fix geo_process_animated_part setting translation twice 2021-10-20 12:24:39 -07:00
Arceveti
1a43df6bf2 Make course complete 1-Ups from coins work past 150 coins 2021-10-20 12:09:39 -07:00
CrashOveride95
208d526bb6 Make ROM name smaller and change messages printed on build a bit 2021-10-19 22:11:42 -04:00
CrashOveride95
d8c7afebc2 extra 2021-10-19 21:58:26 -04:00
CrashOveride95
eb466b2caf Merge branch 'master' of https://github.com/n64decomp/sm64 2021-10-19 21:58:19 -04:00
Arceveti
4b6d9609a1 Remove GET_BPARAM1234 define 2021-10-19 18:51:57 -07:00
Arceveti
12afa0148f Merge pull request #80 from Reonu/set_get_bparam_changes
Set_get_bparam_changes
2021-10-19 18:49:48 -07:00
Arceveti
c0941c73ba Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into set_get_bparam_changes 2021-10-19 18:43:26 -07:00
Arceveti
2d507c4fc5 Merge pull request #79 from Reonu/goomba_changes
goomba.inc.c improvements
2021-10-19 18:40:11 -07:00
Arceveti
3bf97d6c9c Add ifdef guard to GOOMBA_BP3_FLOOMBA_MIRRORED_STARTUP_ANIM define 2021-10-19 18:16:17 -07:00
Arceveti
432c2904cb Rename GOOMBA_BP3_IS_FLOOMBA to GOOMBA_BP3_FLOOMBA_MIRRORED_STARTUP_ANIM and add it to object_constants.h 2021-10-19 18:15:20 -07:00
Arceveti
8d2dcddfd8 Improve/document GET/SET/etc._BPARAM macros 2021-10-19 17:40:43 -07:00
Arceveti
efaf11b33c Goomba improvements 2021-10-19 17:25:17 -07:00
Arceveti
d46eac0b84 Merge pull request #78 from Reonu/merge_refresh_15
Merge refresh 15
2021-10-19 14:01:14 -07:00
Arceveti
c688de670a Merge https://github.com/n64decomp/sm64 into merge_refresh_15 2021-10-18 21:20:53 -07:00
Arceveti
536e2077dd Make bowser puzzle seamless 2021-10-18 11:46:07 -07:00
Arceveti
b3dc29b538 ModelID typedef usage 2021-10-18 11:30:03 -07:00
Arceveti
dab7b06858 Make coin type inside boo a param1 2021-10-18 11:18:56 -07:00
Arceveti
dc65782309 object_helpers.c cleanup 2021-10-18 10:59:31 -07:00
Arceveti
35969689e6 typedef ObjActionFunc 2021-10-18 10:04:52 -07:00
Arceveti
46579b479d Rename DISABLE_LEVEL_SPECIFIC_CHECKS to DISABLE_VANILLA_LEVEL_SPECIFIC_CHECKS 2021-10-18 09:52:40 -07:00
Arceveti
6418657eea Add FIX_REFLECT_MTX 2021-10-17 22:53:33 -07:00
Arceveti
c6cfb15237 Some GET_BPARAM usage 2021-10-17 22:48:44 -07:00
Arceveti
2a8bf9948b Various object improvements 2021-10-17 22:12:20 -07:00
Arceveti
dad0b74a2e Initialize the correct number of object fields in allocate_object 2021-10-17 21:45:49 -07:00
Arceveti
fe12d438b7 Some enums 2021-10-17 20:48:56 -07:00
Arceveti
7b24734619 v 2021-10-17 20:35:18 -07:00
Arceveti
38df06eefd Merge branch 'master' of https://github.com/Reonu/HackerSM64 into nightly 2021-10-17 20:32:16 -07:00
Arceveti
118c5d88ff Some envfx_bubbles.c cleanup 2021-10-17 20:30:42 -07:00
Arceveti
7fba760389 Puppyprint color presets 2021-10-17 20:29:28 -07:00
Arceveti
1e52ffce78 SCREEN_CENTER_X/Y usage 2021-10-17 20:17:07 -07:00
Arceveti
ee19c27c95 Clean up warp transition type defines 2021-10-17 20:06:13 -07:00
Arceveti
ea421431a7 WOODEN_POST_BP_NO_COINS_MASK -> BPARAM3 2021-10-17 20:01:49 -07:00
Arceveti
390e12b3f9 Various small fixes 2021-10-17 19:27:01 -07:00
Arceveti
d2ebd86d0e Remove some redundant file select checks 2021-10-17 19:26:44 -07:00
Arceveti
4d0bcb9e15 Define INT_STATUS_NONE in behavior_data.c 2021-10-17 19:24:24 -07:00
Arceveti
7abf79d071 Move FLT_NONZERO to math_util.h 2021-10-17 18:21:02 -07:00
Arceveti
f9f0dc9acc Fix build warning 2021-10-17 18:19:27 -07:00
Arceveti
566caeb115 Add BPARAM mask defines 2021-10-17 18:13:12 -07:00
Arceveti
96a0145984 Add defines for unused surface types 2021-10-17 17:55:23 -07:00
Arceveti
35cb5517a6 Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into nightly 2021-10-17 17:40:21 -07:00
Arceveti
d1855662fd Merge pull request #76 from someone2639/syscall_asserts
runtime assert hotfix
2021-10-17 17:40:09 -07:00
Arceveti
ed981e2934 Attempt 2 to fix console find_wall_collisions_from_list div0 crash 2021-10-17 17:40:00 -07:00
someone2639
67ae0e946a [crash_screen.c] add null check in case the exception wasnt an assert 2021-10-17 20:26:59 -04:00
Arceveti
f7981ac804 Fix build 2021-10-17 17:24:38 -07:00
Arceveti
bdfaf2c2f9 Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into nightly 2021-10-17 17:23:01 -07:00
Arceveti
0547be4e0b Merge pull request #75 from someone2639/syscall_asserts
Add runtime asserts
2021-10-17 17:22:49 -07:00
Arceveti
fa04781025 Improve some more behavior files 2021-10-17 17:21:10 -07:00
Arceveti
f0d3d5a538 Remove some unused debug text 2021-10-17 17:20:56 -07:00
someone2639
c86afcae03 [crash_screen.c] moved around print statements to be both clear and not overlapping 2021-10-17 20:07:41 -04:00
someone2639
52b076c5cc [sm64.ld] add n64_assert.s to final game 2021-10-17 20:07:10 -04:00
someone2639
45fa72e836 [crash_screen.c] add debug.h to includes; fix compile error in draw_asserts 2021-10-17 20:03:24 -04:00
someone2639
cc3db36061 [debug.h] add assert define; ready to test 2021-10-17 20:01:49 -04:00
someone2639
bd23a46acd [crash_screen.c] actually add assert draw function, with new symbols 2021-10-17 19:59:51 -04:00
someone2639
5e151260e8 [n64_assert.s] add assert exception assembly code 2021-10-17 19:58:47 -04:00
someone2639
d49a16342d [debug.h] add externs for global assert symbols 2021-10-17 19:58:16 -04:00
someone2639
0dd70bfc21 [crash_screen.c] add logic to draw asserts page 2021-10-17 19:54:10 -04:00
someone2639
c03873c646 [ccrash_screen.c] add instructions to assert message 2021-10-17 19:48:46 -04:00
someone2639
989a499aeb [crash_screen.c] renamed syscall exception to failed assert 2021-10-17 19:47:21 -04:00
Arceveti
c290770516 Some camera cleanup 2021-10-17 16:25:00 -07:00
Arceveti
671a6acb34 Fix build 2021-10-17 16:24:36 -07:00
Arceveti
20feb3e7e6 Improve some behavior files 2021-10-17 16:22:13 -07:00
Arceveti
20ad6f619a document goto offsets in ending/menu scripts 2021-10-17 16:16:55 -07:00
Arceveti
856760befb Might be a better fix 2021-10-17 15:46:54 -07:00
Arceveti
b54f81ad38 Prevent division by zero in find_wall_collisions_from_list 2021-10-17 15:42:55 -07:00
Arceveti
c28919e41a Improve dialog input 2021-10-17 11:35:40 -07:00
Arceveti
0532936b19 A few config.h fixes 2021-10-17 11:02:43 -07:00
Arceveti
23c898667a Add spaces to INTERNAL_ROM_NAME 2021-10-17 10:44:35 -07:00
Arceveti
b1798cb32e remove prevent_bss_reordering includes 2021-10-17 10:42:32 -07:00
Arceveti
5c7882f649 Clean up a bunch of version ifdefs 2021-10-17 10:39:50 -07:00
Arceveti
5af1a4dceb Fix whirlpool distance 2021-10-15 17:12:55 -07:00
Arceveti
4167068dc5 butterfly.inc.c improvements 2021-10-15 12:20:12 -07:00
Arceveti
cc48698193 Check for COLLISION_FLAG_EXCLUDE_DYNAMIC in find_ceil and find_wall_collisions 2021-10-15 12:06:14 -07:00
Arceveti
5fe1a69f51 Slight find_floor/ceil optimization 2021-10-15 11:53:35 -07:00
Arceveti
b02ab02c17 Fix find_floor_from_list + some optimization 2021-10-15 11:28:54 -07:00
Arceveti
a8283a20a9 Add gCollisionFlags 2021-10-15 11:15:27 -07:00
Arceveti
5de970a754 Some surface_collision.c cleanup 2021-10-15 10:56:40 -07:00
Arceveti
c6b0a16c88 Replace puppylights goto's 2021-10-15 10:56:28 -07:00
Arceveti
9438ab2ab6 Make render phases a for loop instead of a goto 2021-10-15 10:13:56 -07:00
Arceveti
064d09753a Make Painting->pos a Vec3f 2021-10-15 10:08:40 -07:00
Arceveti
dbf0cd777b Clean up painting ripple flags 2021-10-15 10:03:38 -07:00
Arceveti
43b1b48e22 Fix CAMERA_FIX after painting exit cutscene 2021-10-14 19:19:18 -07:00
Arceveti
e672193e67 Add START_LEVEL define + some cleanup 2021-10-14 18:48:16 -07:00
Arceveti
22dae4a7eb Small formatting fix 2021-10-14 12:26:49 -07:00
n64
1372ae1bb7 Refresh 15 2021-10-14 15:25:30 -04:00
Arceveti
f66248257f Use m->heldObj instead of m->usedObj for GROUND_TURN_FIX check 2021-10-14 12:01:49 -07:00
Arceveti
812a8247e9 Improve EXIT_COURSE_WHILE_MOVING 2021-10-14 11:43:47 -07:00
Arceveti
b38cf7c377 Add HOOT_TREE_PARTICLES 2021-10-14 11:35:03 -07:00
Arceveti
4f6a7f9545 Add GROUND_POUND_WALL_FIX 2021-10-14 11:26:06 -07:00
Arceveti
326eca4dd2 Improve GROUND_TURN_FIX 2021-10-14 11:23:04 -07:00
Arceveti
2cc01ce3a5 Clean up a bunch of ifdefs 2021-10-13 20:25:45 -07:00
Arceveti
024fb35a92 rename stomp_smoke to small_water_splash 2021-10-13 18:00:16 -07:00
Arceveti
442f03d52c Fix obj_turn_toward_object calls 2021-10-13 17:42:36 -07:00
Arceveti
53f312e37c Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into nightly 2021-10-13 17:36:32 -07:00
Arceveti
da1f048024 Clean up some ifdefs 2021-10-13 17:21:12 -07:00
Arceveti
ba49c72969 Clean up a few switch statements 2021-10-13 17:12:46 -07:00
Arceveti
9d2877f28a Name SOUND_MENU_FLAG_EXTRA 2021-10-13 17:12:03 -07:00
Arceveti
8ad13228f5 Some Puppycam formatting fixes 2021-10-13 16:57:53 -07:00
Arceveti
37023ed99d some small object_list_processor.c fixes 2021-10-13 16:27:55 -07:00
Arceveti
feb3a2a61c Define unused actions and custom action group 2021-10-13 16:05:39 -07:00
Arceveti
b790a5e083 gMarioState -> m in queue_rumble_particles 2021-10-13 16:05:21 -07:00
Arceveti
1963595cbf Make BETTER_BOUNCE height more reasonable 2021-10-13 15:46:36 -07:00
Arceveti
b3418e3eb0 HUDFlashModes enum 2021-10-13 15:21:29 -07:00
Arceveti
06f65d396c Some patch_audio_bank fixes 2021-10-13 15:20:54 -07:00
Arceveti
7581dfccf5 intro_scene.inc.c cleanup 2021-10-13 14:59:14 -07:00
Arceveti
a827d7b9c9 intro_peach.inc.c cleanup 2021-10-13 14:59:04 -07:00
Arceveti
085af99845 intro_lakitu.inc.c cleanup 2021-10-13 14:58:38 -07:00
Arceveti
2cf33a2f33 bhvDoor and bhvStarDoor cleanup 2021-10-13 14:38:39 -07:00
Arceveti
33a0a59774 Convert sDonutPlatformPositions from hexadecimal to decimal 2021-10-13 14:27:09 -07:00
Arceveti
6ad4d7917b bhvChirpChirp to bhvBubSpawner 2021-10-13 14:24:45 -07:00
Arceveti
d908c22697 Some audio formatting 2021-10-13 14:21:53 -07:00
Arceveti
bf98a51263 Add FAST_VERTICAL_CAMERA_MOVEMENT 2021-10-13 14:02:53 -07:00
Arceveti
1f4949bd8a Fix asm_abs defines 2021-10-13 14:02:49 -07:00
Arceveti
8ef227890a Some camera.c formatting 2021-10-13 13:19:54 -07:00
gheskett
e72dbfb3e3 Bugfix: divide by zero for floomba startup 2021-10-13 01:02:53 -04:00
gheskett
693d5d5cb4 Some reformatting of audio system + puppyprint for dynamic audio buffers 2021-10-13 00:41:21 -04:00
Arceveti
7b26bf06eb Some small formatting fixes 2021-10-12 20:08:25 -07:00
Arceveti
9391eefd05 Revert a Puppyprint debug info input change 2021-10-12 19:47:47 -07:00
Arceveti
e12e1c2f17 Some level_update.c cleanup 2021-10-12 19:22:14 -07:00
Arceveti
319be3a796 gMarioState -> m in init_mario, init_mario_from_save_file, and init_mario_after_warp 2021-10-12 19:01:58 -07:00
Arceveti
09cf9adc13 gMarioState -> m in execute_mario_action 2021-10-12 18:57:14 -07:00
Arceveti
a6492a2170 Some more cleanup 2021-10-12 18:53:59 -07:00
Arceveti
045c68f153 Convert a few object_constatnts.h defines to enums 2021-10-12 18:53:52 -07:00
Arceveti
f807000145 macro_presets.h documentation 2021-10-12 18:52:43 -07:00
Arceveti
c4b6ab2da0 Small cleanup 2021-10-12 18:04:08 -07:00
Arceveti
328317605e Convert a couple more doubles to floats 2021-10-11 21:33:52 -07:00
Arceveti
7c27196416 Some Puppyprint cleanup 2021-10-11 21:28:15 -07:00
Arceveti
a2500da83e Fix OOB death on BBH exit 2021-10-11 21:11:19 -07:00
Arceveti
fb266ee482 Fix update_mario_platform crash 2021-10-11 20:51:47 -07:00
Arceveti
848a8dd3a0 Some cleanup 2021-10-11 20:46:39 -07:00
Arceveti
210e708c8e Fix doors with CAMERA_FIX (part 3) 2021-10-11 20:46:02 -07:00
Arceveti
24a2905fc3 Remove some unused functions 2021-10-11 20:25:35 -07:00
Arceveti
8dda45abb6 Remove some unecessary externs 2021-10-11 20:00:45 -07:00
Arceveti
8d51484510 Fix Mario entering pushing animation when facing away from a wall 2021-10-11 17:54:37 -07:00
Arceveti
ca13a8d839 Fix doors with CAMERA_FIX 2021-10-11 17:38:16 -07:00
Arceveti
b4f4df2fdc Fix sign reading 2021-10-11 17:38:05 -07:00
Arceveti
3853714f56 fix perspective matrix being divided by 4 2021-10-11 16:58:22 -07:00
Arceveti
bb54f9e4e7 Fix door camera 2021-10-11 15:00:38 -07:00
Arceveti
17bc64760d Fix hanging height 2021-10-11 14:08:05 -07:00
Arceveti
c31d9b9e2a End cake screen dl names 2021-10-11 13:54:04 -07:00
Arceveti
1203b35b81 Convert some doubles to floats 2021-10-11 13:43:54 -07:00
Arceveti
d107d7f146 Fix dropping from hanging on a downward sloped ceiling 2021-10-11 13:16:14 -07:00
Arceveti
9b5f38491b Make WATER_STEP_HIT_FLOOR pitch change smooth 2021-10-09 00:11:12 -07:00
Arceveti
2275b4ff44 Fix some upwarps/downwarps 2021-10-09 00:10:12 -07:00
Arceveti
1bc367c6e0 node->near usage 2021-10-08 19:07:36 -07:00
Arceveti
c93df2b82e game_init.c cleanup 2021-10-08 15:09:03 -07:00
Arceveti
3f1fb6ec05 Use mtxf_rotate_xy for camera roll 2021-10-08 15:08:54 -07:00
Arceveti
1f1a6c2227 Improve obj_turn_toward_object 2021-10-08 13:59:04 -07:00
Arceveti
f290437f3f ActionState enums 2021-10-08 13:44:48 -07:00
Arceveti
86a62a5936 Fix Hands-free holding 2021-10-08 11:50:16 -07:00
Arceveti
a7d9c8d9e9 Convert some more define lists to enums 2021-10-08 11:47:15 -07:00
Fazana
6eb93bc095 Update puppycam2.h 2021-10-08 14:22:35 +01:00
gheskett
cd66903441 Merge branch 'dev' into floomba 2021-10-08 03:18:30 -04:00
gheskett
95e7d17d06 Math error 2021-10-08 03:16:44 -04:00
Arceveti
961b8b5f38 Small camera fixes 2021-10-07 23:53:35 -07:00
Arceveti
43e6997bab Door DL names 2021-10-07 23:39:01 -07:00
gheskett
a7ae3aae4e Remove useless commented code 2021-10-08 01:50:55 -04:00
gheskett
5e2ddf3f42 Title screen floomba works! 2021-10-08 01:35:23 -04:00
Arceveti
9c66d6b6eb Fix most RSP microcodes (turbo3d still freezes) 2021-10-07 21:56:15 -07:00
gheskett
551e495dd2 Call area_update_objects instead for proper animation loading 2021-10-07 23:22:49 -04:00
gheskett
1c3242b25c Floomba now renders on title screen, does not animate properly 2021-10-07 23:01:35 -04:00
Arceveti
86d8da2b5c Disable DEBUG_LEVEL_SELECT and ENABLE_DEBUG_FREE_MOVE by default 2021-10-07 19:51:19 -07:00
Arceveti
84df7bcc19 Crash screen no longer requires Puppyprint 2021-10-07 19:50:13 -07:00
Arceveti
799c1de736 Revert REVERB_WINDOW_SIZE_MAX change 2021-10-07 19:30:49 -07:00
Arceveti
5abcae64e5 Add FORCE_CRASH macro 2021-10-07 19:29:02 -07:00
Arceveti
07d90becfa Add DEBUG_FORCE_CRASH 2021-10-07 19:21:51 -07:00
Arceveti
90719c1338 SURFACE_IS_UNSAFE includes warp floors 2021-10-07 17:15:25 -07:00
Reonu
35908d96a3 Merge pull request #73 from Reonu/dev
Merged dev into nightly
2021-10-08 02:41:24 +03:00
Arceveti
9c181bf071 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into dev 2021-10-07 16:40:15 -07:00
Arceveti
683db16175 Add CONTROLLABLE_PLATFORM_SPEED + platform_on_track.inc.c cleanup 2021-10-07 16:38:58 -07:00
Arceveti
6907208052 surface_load.c improvements 2021-10-07 16:01:15 -07:00
Arceveti
4ac6472d76 OBJ_FLAG_UCODE_LARGE for bhvWoodenPost 2021-10-07 15:41:56 -07:00
Arceveti
cba10ea64a Convert more define lists into enums 2021-10-07 15:26:51 -07:00
Arceveti
9346c06206 Convert some define lists to enums 2021-10-07 14:24:54 -07:00
Arceveti
574ffcef06 Sound names 2021-10-07 14:11:52 -07:00
Arceveti
05ca5f6c95 King Bobomb improvements 2021-10-07 13:41:53 -07:00
gheskett
6fd0a96e55 Update README with floomba info 2021-10-07 01:19:23 -04:00
gheskett
6228fb8020 Still can't figure out how to draw floomba on splash screen; every other piece of code here is fully functional now 2021-10-07 00:14:51 -04:00
Arceveti
a7f4de0f27 sCreditsSequence formatting 2021-10-06 19:45:28 -07:00
Arceveti
bd70dd6e78 typedef usage 2021-10-06 19:45:21 -07:00
Arceveti
a69913e3e0 Make some functions 32 bit 2021-10-06 19:44:57 -07:00
Arceveti
67be3bbfb8 Remove a few more unecessary find_floor callse 2021-10-06 19:13:08 -07:00
Arceveti
d40e89cbeb Mark light quarter circle texture as unused 2021-10-06 18:32:34 -07:00
Arceveti
3a0caecb22 Platform displacement cleanup/fixes 2021-10-06 18:31:48 -07:00
Arceveti
ec337a4206 Some audio bugfixes 2021-10-06 18:12:49 -07:00
Arceveti
3a471f4786 Fix most vanilla cutscene softlocks 2021-10-06 18:08:33 -07:00
Arceveti
cab8944416 Remove unused function 2021-10-06 18:06:41 -07:00
Arceveti
3ea0e7ea22 star dl names 2021-10-06 18:04:12 -07:00
Arceveti
b2da8d176b Add radial light texture 2021-10-06 18:04:01 -07:00
Arceveti
c3df118002 Remove extra extern 2021-10-06 17:44:08 -07:00
Arceveti
9eefb25da2 enum RenderPhase 2021-10-06 17:42:17 -07:00
Arceveti
80814c78c5 Simplify GROUND_TURN_FIX 2021-10-06 15:00:37 -07:00
Arceveti
65ef3697be Number of flames on fire bars can be set with oBehParams2ndByte 2021-10-06 11:25:54 -07:00
Arceveti
ea1fc2b49f Add DIALOG_INDICATOR 2021-10-06 10:44:17 -07:00
Arceveti
413602f37e Add EASIER_DIALOG_TRIGGER 2021-10-06 10:37:47 -07:00
Fazana
3ed6c652f0 Update puppycam2.c 2021-10-06 12:01:32 +01:00
gheskett
a6d62b5734 Game now boots, Floomba still not visible 2021-10-06 02:18:25 -04:00
someone2639
c425f8e51b actually add test-pj64 rule 2021-10-05 23:25:56 -04:00
someone2639
3144dcf171 add test-pj64 rule i need it i swear 2021-10-05 22:56:27 -04:00
gheskett
7cf7b4c33b Broke the splash screen :D 2021-10-05 22:50:38 -04:00
gheskett
3d9e855246 Forget to revert BOB goombas 2021-10-05 21:42:43 -04:00
gheskett
47c70a6b9a Merge branch 'dev' into floomba 2021-10-05 21:40:41 -04:00
gheskett
c0a0f54819 Basic support for floombas, currently just goombas in a different animation state 2021-10-05 21:40:05 -04:00
Arceveti
e1ef700b28 Fix mega punch + punch actions cleanup 2021-10-05 18:23:45 -07:00
Reonu
20c6041682 Disabled OMPLETE_EN_US_SEGMENT2 by default 2021-10-06 02:10:36 +03:00
Arceveti
af285bbf47 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into dev 2021-10-05 15:26:43 -07:00
Arceveti
4723a03be4 Fix surface node pool size 2021-10-05 15:16:37 -07:00
Arceveti
b95eb762ce Fix forcedInclude 2021-10-05 14:55:04 -07:00
Arceveti
df8129a2ea HD Intro textures 2021-10-05 14:17:10 -07:00
Arceveti
0101f2fc27 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into dev 2021-10-05 11:43:14 -07:00
Arceveti
3dadc71acf Name copyright dl's 2021-10-05 11:36:39 -07:00
Arceveti
1e082a5a59 Add Z_TWIRL 2021-10-05 10:59:32 -07:00
Arceveti
bf4c068e6f Add BETTER_BOUNCE 2021-10-05 10:53:36 -07:00
Arceveti
9470c8fee5 Coins are bouncy again 2021-10-05 10:47:48 -07:00
Arceveti
ac1e9adc99 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into dev 2021-10-05 10:13:36 -07:00
Arceveti
f5bedc0e55 Use some name defines 2021-10-05 00:20:15 -07:00
Arceveti
9b609a4860 Name some args 2021-10-05 00:15:05 -07:00
Arceveti
c58f61331a Fix build 2 2021-10-04 22:29:20 -07:00
Arceveti
caf47c35f4 Fix camera mode resetting 2021-10-04 22:26:46 -07:00
Arceveti
a30ca2df7a Fix bowling ball crash 2021-10-04 22:25:26 -07:00
Arceveti
8cbb532736 Fix build 2021-10-04 13:21:50 -07:00
Arceveti
4b082481b0 Various object behavior fixes 2021-10-04 13:18:25 -07:00
Arceveti
40420c7249 Paintings use gMarioState floor instead of doing find_floor again 2021-10-04 13:18:07 -07:00
Arceveti
6a7cbbdd4d Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-10-04 12:06:58 -07:00
Fazana
bc3558cebe Make the game render layer 0 of ZEX first 2021-10-04 18:34:38 +01:00
Fazana
99c76db4d0 Puppyprint improvements
(citation needed on the improvements part)
2021-10-04 15:46:35 +01:00
Fazana
5ab7140389 Improve Puppyprint accuracy 2021-10-04 12:18:45 +01:00
Arceveti
323fd02f2e Name some function arguments 2021-10-03 21:40:57 -07:00
Arceveti
a6ee4b849e Fix goomba jump and pokey offset 2021-10-03 17:40:00 -07:00
Arceveti
087fc59488 Implement backup segment2 characters 2021-10-03 17:39:26 -07:00
Arceveti
c6e588fccd Add interaction.h and object_constants.h to forcedInclude 2021-10-03 16:47:43 -07:00
Arceveti
8a3a8a1e33 Add backup segment2 assets 2021-10-03 16:47:09 -07:00
Arceveti
b0f48b4988 Fix water rings 2021-10-03 16:22:16 -07:00
Arceveti
eb77196b6f Improve coin textures 2021-10-03 15:54:26 -07:00
Arceveti
74d85bf00b Remove some unused arguments 2021-10-03 14:22:59 -07:00
Arceveti
4c80f9e811 Remove unused arg from cur_obj_follow_path 2021-10-03 13:55:57 -07:00
Arceveti
e46db0cbc8 Use MarioState surface yaw instead of recalculating the surface yaw again 2021-10-03 13:41:02 -07:00
Arceveti
22a17bdb15 Add fall damage height defines 2021-10-03 13:15:03 -07:00
Arceveti
a9fbc3a907 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into dev 2021-10-03 13:11:24 -07:00
Arceveti
8e62615e5d Merge branch 'merge_nightly_fixes' of https://github.com/Reonu/HackerSM64 into dev 2021-10-03 13:05:20 -07:00
Arceveti
64b809dd9f Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into dev 2021-10-03 13:03:14 -07:00
Arceveti
a3c786b71b Requested changes 2021-10-03 11:55:52 -07:00
Arceveti
07232805ae Add COIN_LAVA_FLICKER 2021-10-03 10:59:03 -07:00
Arceveti
b560ef1bb4 Add TINY_GOOMBA_ALWAYS_DROPS_COIN 2021-10-03 10:49:03 -07:00
Arceveti
a2ca71dc0f Add HOOT_YAW_FIX 2021-10-03 10:47:41 -07:00
Arceveti
6c5ed41072 Rename FIX_LAVA_INTERACTION to LAVA_INTERACTION_FIX 2021-10-03 10:47:23 -07:00
Arceveti
680ab6bdf7 Add FIX_LAVA_INTERACTION 2021-10-03 10:43:47 -07:00
Arceveti
3428ea17c2 Don't fall after star grab if high enough in the air 2021-10-03 10:40:23 -07:00
Arceveti
52dfb8ccb7 King Bobomb improvements 2021-10-03 10:35:10 -07:00
Arceveti
83e3e21eb8 Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-10-03 10:23:43 -07:00
Arceveti
3edbc14cf1 Klepto and Unagi have transparent stars after they are collected 2021-10-03 10:23:36 -07:00
Arceveti
fe4dd440f6 Used the passed in MarioState instead of the global one for PREVENT_DEATH_LOOP 2021-10-03 10:12:27 -07:00
Arceveti
41ef8308c1 Add comment to distinguish new MarioState fields 2021-10-03 10:10:15 -07:00
Reonu
e92abdb242 merged nightly's revert commit 2021-10-03 19:37:48 +03:00
Fazana
28c89246fd Merge branch 'nightly' into dev 2021-10-03 14:58:05 +01:00
Fazana
5c639aab8d Puppyprint fixes 2021-10-03 13:08:36 +01:00
Arceveti
3df4adb01a Add EASIER_LONG_JUMPS 2021-10-02 22:23:13 -07:00
Arceveti
ec1694dfdd Improvements to OBJ_OPACITY_BY_CAM_DIST 2021-10-02 22:16:02 -07:00
Arceveti
60a7c34622 Remove some unused functions + ifdefs 2021-10-02 21:38:01 -07:00
Arceveti
b4ce1b5822 Add pointer null check in check_ledge_grab 2021-10-02 20:59:52 -07:00
Arceveti
56f2f9a64b Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-10-02 20:53:54 -07:00
Arceveti
b256986f81 Add POWER_STARS_HEAL 2021-10-02 20:53:46 -07:00
someone2639
3df30561be Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-10-02 23:52:18 -04:00
someone2639
8fad4b6ec6 dont need this line either [math.s] 2021-10-02 23:52:16 -04:00
Arceveti
ee2a1f83d1 Add MUSHROOMS_HEAL 2021-10-02 20:49:06 -07:00
Arceveti
6ea685d7a6 Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-10-02 20:32:31 -07:00
Arceveti
4b1c3fd7e8 Make fixed ledge grabs default + Fix crash 2021-10-02 20:32:19 -07:00
someone2639
30f65bf03c changed div to mul, it always runs now 2021-10-02 23:26:21 -04:00
Arceveti
81b338b340 Save number of lives to save file 2021-10-02 19:26:04 -07:00
Arceveti
8993e51f75 Various tiny fixes 2021-10-02 18:56:58 -07:00
Arceveti
2c1d08a835 Small cleanup 2021-10-02 17:40:06 -07:00
Arceveti
a277a3947c Add color_presets and colors.c 2021-10-02 17:38:18 -07:00
Arceveti
c16a43a071 Merge https://github.com/CrashOveride95/ultrasm64 into dev 2021-10-02 16:34:05 -07:00
Arceveti
9423a32111 Make some functions s32/u32 2021-10-02 16:28:02 -07:00
Arceveti
d2d60c90ba Make gbi.h readable 2021-10-02 16:27:04 -07:00
Arceveti
eae2feb3a0 Doors no longer need OBJ_FLAG_UCODE_LARGE 2021-10-02 16:13:46 -07:00
Arceveti
fb1db7541d Fix build warnings 2021-10-02 16:07:52 -07:00
Fazana
c01386a6c5 iQue supports AA stripping 2021-10-02 22:42:24 +01:00
Fazana
c75fe65125 Update puppyprint.c 2021-10-02 19:43:45 +01:00
Fazana
953a7270f2 Fix building on iQue 2021-10-02 17:58:11 +01:00
Fazana
f6ee66df28 gWorldScalen't 2021-10-02 17:37:12 +01:00
CrashOveride95
0d56896e75 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-10-02 10:27:47 -04:00
CrashOveride95
3a627e6311 Add librtc and fix some data declarations 2021-10-02 10:27:43 -04:00
someone2639
dbb1b892ee let the scheduler handle the bc1f 2021-10-02 09:54:11 -04:00
someone2639
1dbbd25253 i hate the c preprocessor 2021-10-02 09:32:16 -04:00
someone2639
134aeb74cc big brain optimization 2021-10-02 09:30:29 -04:00
someone2639
57c10feb14 add some logic for gWorldScale; only div on scales higher than 1 2021-10-02 09:26:18 -04:00
someone2639
474145222d make this asm file a lot easier to read (not documented though) 2021-10-02 09:12:47 -04:00
someone2639
a973d274b0 make mtf_to_mtx inline 2021-10-02 09:12:31 -04:00
Arceveti
4464eb96de Various small bugfixes 2021-10-01 21:47:36 -07:00
Arceveti
2ab3c85d13 Clean up tilting_inverted_pyramid.inc.c 2021-10-01 21:37:47 -07:00
Arceveti
89fb6b75a9 Tuxie fixes 2021-10-01 20:46:33 -07:00
Arceveti
85a31ccec0 Add POLE_SWING 2021-10-01 19:40:29 -07:00
Arceveti
c586faea96 math_util improvements 2021-10-01 19:39:43 -07:00
Arceveti
d17c9247a1 Surface load optimizations 2021-10-01 18:04:12 -07:00
Arceveti
0af6087f81 Add 30FPS coins 2021-10-01 13:47:04 -07:00
Arceveti
0393a5e885 Name coin dl's 2021-10-01 13:08:05 -07:00
Arceveti
5662b8de3a Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-10-01 12:58:45 -07:00
Arceveti
9ad62c9eab Proper false ledge grab fix 2021-10-01 12:57:07 -07:00
Fazana
4346d5ff9f semi colon 2021-10-01 22:21:23 +03:00
Arceveti
efa3e6461a Fix some vector functions 2021-10-01 11:01:57 -07:00
Reonu
209ce5a90c fixed camera memes 2021-10-01 16:47:18 +03:00
Arceveti
bd6eb1fd87 Disable HD_SHADOWS by default 2021-09-30 20:58:15 -07:00
Arceveti
1860ece52e Breakable box improvements 2021-09-30 20:57:54 -07:00
Arceveti
45d4e3c15a Fix held object shadow scaling 2021-09-30 20:02:43 -07:00
CrashOveride95
6218abafff Merge pull request #24 from Arceveti/patch-1
Move GRUCODE define to proper location in makefile
2021-09-30 22:13:33 -04:00
Arceveti
4efbfc4da0 Option for 64x64 quarter shadow textures 2021-09-30 18:26:19 -07:00
Arceveti
d51129c6b6 Move GRUCODE define to proper location in makefile 2021-09-30 17:52:40 -07:00
Arceveti
483005edf5 Move GRUCODE define to proper location in makefile 2021-09-30 17:34:06 -07:00
Arceveti
57531f5d81 Merge branch 'dev' of https://github.com/Reonu/HackerSM64 into dev 2021-09-30 17:26:11 -07:00
Arceveti
a5cb4481f7 Optimize tree transparency distance calculation 2021-09-30 17:25:21 -07:00
Reonu
e6d0d4b8d2 improved death loop failsafe 2021-10-01 02:44:13 +03:00
Reonu
8186517460 added PREVENT_DEATH_LOOP define 2021-10-01 02:36:26 +03:00
Arceveti
76bdc4ca2b Pokey load distance uses o->oDrawingDistance 2021-09-30 16:21:06 -07:00
734 changed files with 26894 additions and 42315 deletions

1
.gitignore vendored
View File

@@ -102,7 +102,6 @@ build/*
# libultra
!/lib/**/*.o
!/lib/*.a
lib/libs2d_engine.a
!/lib/gcclib/*.a

146
Makefile
View File

@@ -67,6 +67,25 @@ endif
DEFINES += NO_ERRNO_H=1 NO_GZIP=1
COMPRESS ?= rnc1
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
ifeq ($(COMPRESS),gzip)
DEFINES += GZIP=1
else ifeq ($(COMPRESS),rnc1)
DEFINES += RNC1=1
else ifeq ($(COMPRESS),rnc2)
DEFINES += RNC2=1
else ifeq ($(COMPRESS),yay0)
DEFINES += YAY0=1
else ifeq ($(COMPRESS),mio0)
DEFINES += MIO0=1
else ifeq ($(COMPRESS),uncomp)
DEFINES += UNCOMPRESSED=1
endif
GZIPVER ?= std
$(eval $(call validate-option,GZIPVER,std libdef))
# VERSION - selects the version of the game to build
# jp - builds the 1996 Japanese version
# us - builds the 1996 North American version
@@ -128,78 +147,15 @@ endif
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
#==============================================================================#
# Optimization flags #
#==============================================================================#
# Default non-gcc opt flags
DEFAULT_OPT_FLAGS = -Ofast
# Main opt flags
GCC_MAIN_OPT_FLAGS = \
-Ofast \
--param case-values-threshold=20 \
--param max-completely-peeled-insns=10 \
--param max-unrolled-insns=10 \
-finline-limit=1 \
-freorder-blocks-algorithm=simple \
-ffunction-sections \
-fdata-sections
# Surface Collision
GCC_COLLISION_OPT_FLAGS = \
-Ofast \
--param case-values-threshold=20 \
--param max-completely-peeled-insns=100 \
--param max-unrolled-insns=100 \
-finline-limit=0 \
-fno-inline \
-freorder-blocks-algorithm=simple \
-ffunction-sections \
-fdata-sections \
-falign-functions=32
# Math Util
GCC_MATH_UTIL_OPT_FLAGS = \
-Ofast \
-fno-unroll-loops \
-fno-peel-loops \
--param case-values-threshold=20 \
-ffunction-sections \
-fdata-sections \
-falign-functions=32
# - setting any sort of -finline-limit has shown to worsen performance with math_util.c,
# lower values were the worst, the higher you go - the closer performance gets to not setting it at all
# Rendering graph node
GCC_GRAPH_NODE_OPT_FLAGS = \
-Ofast \
--param case-values-threshold=20 \
--param max-completely-peeled-insns=100 \
--param max-unrolled-insns=100 \
-finline-limit=0 \
-freorder-blocks-algorithm=simple \
-ffunction-sections \
-fdata-sections \
-falign-functions=32
#==============================================================================#
ifeq ($(COMPILER),gcc)
NON_MATCHING := 1
MIPSISET := -mips3
OPT_FLAGS := $(GCC_MAIN_OPT_FLAGS)
COLLISION_OPT_FLAGS = $(GCC_COLLISION_OPT_FLAGS)
MATH_UTIL_OPT_FLAGS = $(GCC_MATH_UTIL_OPT_FLAGS)
GRAPH_NODE_OPT_FLAGS = $(GCC_GRAPH_NODE_OPT_FLAGS)
OPT_FLAGS := -Ofast
else ifeq ($(COMPILER),clang)
NON_MATCHING := 1
# clang doesn't support ABI 'o32' for 'mips3'
MIPSISET := -mips2
OPT_FLAGS := $(DEFAULT_OPT_FLAGS)
COLLISION_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
MATH_UTIL_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
GRAPH_NODE_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
OPT_FLAGS := -Ofast
endif
@@ -222,7 +178,7 @@ TARGET_STRING := sm64
# UNF - whether to use UNFLoader flashcart library
# 1 - includes code in ROM
# 0 - does not
# 0 - does not
UNF ?= 0
$(eval $(call validate-option,UNF,0 1))
ifeq ($(UNF),1)
@@ -234,7 +190,7 @@ endif
# ISVPRINT - whether to fake IS-Viewer presence,
# allowing for usage of CEN64 (and possibly Project64) to print messages to terminal.
# 1 - includes code in ROM
# 0 - does not
# 0 - does not
ISVPRINT ?= 0
$(eval $(call validate-option,ISVPRINT,0 1))
ifeq ($(ISVPRINT),1)
@@ -252,7 +208,7 @@ endif
# HVQM - whether to use HVQM fmv library
# 1 - includes code in ROM
# 0 - does not
# 0 - does not
HVQM ?= 0
$(eval $(call validate-option,HVQM,0 1))
ifeq ($(HVQM),1)
@@ -260,34 +216,9 @@ ifeq ($(HVQM),1)
SRC_DIRS += src/hvqm
endif
BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
COMPRESS ?= rnc1
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
ifeq ($(COMPRESS),gzip)
DEFINES += GZIP=1
LIBZRULE := $(BUILD_DIR)/libz.a
LIBZLINK := -lz
else ifeq ($(COMPRESS),rnc1)
DEFINES += RNC1=1
else ifeq ($(COMPRESS),rnc2)
DEFINES += RNC2=1
else ifeq ($(COMPRESS),yay0)
DEFINES += YAY0=1
else ifeq ($(COMPRESS),mio0)
DEFINES += MIO0=1
else ifeq ($(COMPRESS),uncomp)
DEFINES += UNCOMPRESSED=1
endif
GZIPVER ?= std
$(eval $(call validate-option,GZIPVER,std libdef))
# GODDARD - whether to use libgoddard (Mario Head)
# 1 - includes code in ROM
# 0 - does not
# 0 - does not
GODDARD ?= 0
$(eval $(call validate-option,GODDARD,0 1))
ifeq ($(GODDARD),1)
@@ -464,11 +395,9 @@ 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
CFLAGS += -Wno-missing-braces
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-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
CFLAGS += -Wno-missing-braces
CFLAGS += -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-missing-braces -fno-jump-tables
else
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
endif
@@ -511,7 +440,7 @@ else
RSPASM := $(TOOLS_DIR)/armips
endif
ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
EMULATOR = mupen64plus
EMULATOR = ~/Downloads/mupen64plus/mupen64plus-gui
EMU_FLAGS =
LOADER = loader64
LOADER_FLAGS = -vwf
@@ -562,7 +491,6 @@ test: $(ROM)
test-pj64: $(ROM)
wine ~/Desktop/new64/Project64.exe $<
# someone2639
load: $(ROM)
$(LOADER) $(LOADER_FLAGS) $<
@@ -573,7 +501,7 @@ libultra: $(BUILD_DIR)/libultra.a
$(BUILD_DIR)/asm/boot.o: $(IPL3_RAW_FILES)
$(BUILD_DIR)/src/game/crash_screen.o: $(CRASH_TEXTURE_C_FILES)
$(BUILD_DIR)/src/game/version.o: $(BUILD_DIR)/src/game/version_data.h
$(BUILD_DIR)/lib/aspMain.o: $(BUILD_DIR)/rsp/audio.bin
$(BUILD_DIR)/lib/rsp.o: $(BUILD_DIR)/rsp/rspboot.bin $(BUILD_DIR)/rsp/audio.bin
$(SOUND_BIN_DIR)/sound_data.o: $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/sound_data.tbl $(SOUND_BIN_DIR)/sequences.bin $(SOUND_BIN_DIR)/bank_sets
$(BUILD_DIR)/levels/scripts.o: $(BUILD_DIR)/include/level_headers.h
@@ -615,17 +543,9 @@ $(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
$(BUILD_DIR)/src/usb/debug.o: CFLAGS += -Wno-unused-parameter -Wno-maybe-uninitialized
# File specific opt flags
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
$(BUILD_DIR)/src/engine/surface_collision.o: OPT_FLAGS := $(COLLISION_OPT_FLAGS)
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := $(MATH_UTIL_OPT_FLAGS)
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAGS)
# $(info OPT_FLAGS: $(OPT_FLAGS))
# $(info COLLISION_OPT_FLAGS: $(COLLISION_OPT_FLAGS))
# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := -Ofast -fno-unroll-loops -fno-peel-loops --param case-values-threshold=20
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := -Ofast --param case-values-threshold=20
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)
@@ -636,7 +556,7 @@ $(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
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h

View File

@@ -1,5 +1,7 @@
# ![](https://i.imgur.com/CeOukzk.gif) HackerSM64 ![](https://i.imgur.com/s0LUbTo.gif)
**[Thank you to Kaze Emanuar for these major optimizations!](https://www.youtube.com/watch?v=uYPH-NH3B6k)
**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
@@ -10,28 +12,6 @@ This repo needs gcc in order to be able to build it. To install it, run `sudo ap
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, 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, 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, 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**: 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` repo
- **falcobuster**: coordinate overflow fix (world scale), ASM version of extended bounds
- **anonymous_moose**: porting falco's extended bounds to decomp
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
**Lighting Engine by Wiseguy**
- 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.

View File

@@ -1,4 +1,4 @@
// unreferenced
// unreferenced animation
// 0x0500616C
const struct Animation *const blargg_seg5_anims_0500616C[] = {
&blargg_seg5_anim_05006154,

View File

@@ -4,7 +4,7 @@ const GeoLayout boo_geo[] = {
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 26214),
GEO_OPEN_NODE(),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
GEO_ASM(0, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, boo_seg5_dl_0500C1B0),

View File

@@ -4,7 +4,7 @@ const GeoLayout boo_castle_geo[] = {
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 26214),
GEO_OPEN_NODE(),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
GEO_ASM(0, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, boo_castle_seg6_dl_06017CE0),

View File

@@ -332,7 +332,7 @@ const GeoLayout bowser_shadow_geo[] = {
const GeoLayout bowser_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
GEO_ASM(0, geo_update_layer_transparency),
GEO_SWITCH_CASE(3, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),
@@ -362,7 +362,7 @@ const GeoLayout bowser_geo[] = {
const GeoLayout bowser_geo_no_shadow[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
GEO_ASM(0, geo_update_layer_transparency),
GEO_SWITCH_CASE(3, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),

View File

@@ -4,13 +4,13 @@
const Collision breakable_box_seg8_collision[] = {
COL_INIT(),
COL_VERTEX_INIT(0x8),
COL_VERTEX(-100, 0, -100),
COL_VERTEX(-100, 0, 100),
COL_VERTEX(-100, 200, 100),
COL_VERTEX(100, 0, 100),
COL_VERTEX(100, 200, 100),
COL_VERTEX(100, 0, -100),
COL_VERTEX(100, 200, -100),
COL_VERTEX(-100, 0, -100),
COL_VERTEX(-100, 0, 100),
COL_VERTEX(-100, 200, 100),
COL_VERTEX( 100, 0, 100),
COL_VERTEX( 100, 200, 100),
COL_VERTEX( 100, 0, -100),
COL_VERTEX( 100, 200, -100),
COL_VERTEX(-100, 200, -100),
COL_TRI_INIT(SURFACE_NO_CAM_COLLISION, 12),
@@ -29,6 +29,3 @@ const Collision breakable_box_seg8_collision[] = {
COL_TRI_STOP(),
COL_END(),
};
UNUSED static const u32 breakable_box_unused_1 = 0;
UNUSED static const u64 breakable_box_unused_2 = 0;

View File

@@ -67,7 +67,7 @@ const Gfx breakable_box_seg8_sub_dl_end[] = {
// 0x08012CD8 - 0x08012D20
const Gfx breakable_box_seg8_sub_dl_begin[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
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),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View File

@@ -2,9 +2,6 @@
// It's possible that bubba and bub used to be 2 "actors" in
// one actor file.
// Bin ID? What is this?
UNUSED static const u64 bubba_unused_1 = 0;
// Bubba
// 0x05000008

View File

@@ -2,10 +2,7 @@
const GeoLayout burn_smoke_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
#ifdef BURN_SMOKE_FIX
GEO_ASM(GEO_TRANSPARENCY_MODE_INTER, geo_update_layer_transparency),
#endif
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, burn_smoke_seg4_dl),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, burn_smoke_seg4_dl_04022070),
GEO_CLOSE_NODE(),
GEO_END(),
};

View File

@@ -1,7 +1,7 @@
// Burn Smoke
// 0x040217C0
static const Vtx burn_smoke_seg4_vertex[] = {
static const Vtx burn_smoke_seg4_vertex_040217C0[] = {
{{{ -50, -50, 0}, 0, { 0, 992}, {0x14, 0x0a, 0x0a, 0xff}}},
{{{ 50, -50, 0}, 0, { 992, 992}, {0x14, 0x0a, 0x0a, 0xff}}},
{{{ 50, 50, 0}, 0, { 992, 0}, {0x14, 0x0a, 0x0a, 0xff}}},
@@ -12,15 +12,15 @@ static const Vtx burn_smoke_seg4_vertex[] = {
// as a transparent black burn smoke. Probably meant to show up as white-ish
// burn smoke, but mistakened for being intended as black smoke.
// 0x04021800
ALIGNED8 static const Texture burn_smoke_seg4_sub_dl_texture[] = {
ALIGNED8 static const Texture burn_smoke_seg4_texture_04021800[] = {
#include "actors/burn_smoke/burn_smoke.ia16.inc.c"
};
// 0x04022000 - 0x04022028
const Gfx burn_smoke_seg4_sub_dl_begin[] = {
const Gfx burn_smoke_seg4_dl_04022000[] = {
gsDPPipeSync(),
#ifdef BURN_SMOKE_FIX
gsDPSetCombineMode(G_CC_MODULATEIFADEA, G_CC_MODULATEIFADEA),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
#else
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
#endif
@@ -30,14 +30,14 @@ const Gfx burn_smoke_seg4_sub_dl_begin[] = {
};
// 0x04022028 - 0x04022048
const Gfx burn_smoke_seg4_sub_dl_model[] = {
gsSPVertex(burn_smoke_seg4_vertex, 4, 0),
const Gfx burn_smoke_seg4_dl_04022028[] = {
gsSPVertex(burn_smoke_seg4_vertex_040217C0, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPEndDisplayList(),
};
// 0x04022048 - 0x04022070
const Gfx burn_smoke_seg4_sub_dl_end[] = {
const Gfx burn_smoke_seg4_dl_04022048[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
@@ -46,14 +46,14 @@ const Gfx burn_smoke_seg4_sub_dl_end[] = {
};
// 0x04022070 - 0x040220C8
const Gfx burn_smoke_seg4_dl[] = {
gsSPDisplayList(burn_smoke_seg4_sub_dl_begin),
const Gfx burn_smoke_seg4_dl_04022070[] = {
gsSPDisplayList(burn_smoke_seg4_dl_04022000),
#ifdef BURN_SMOKE_FIX
gsDPLoadTextureBlock(burn_smoke_seg4_sub_dl_texture, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
#else
gsDPLoadTextureBlock(burn_smoke_seg4_sub_dl_texture, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
#endif
gsSPDisplayList(burn_smoke_seg4_sub_dl_model),
gsSPDisplayList(burn_smoke_seg4_sub_dl_end),
gsSPDisplayList(burn_smoke_seg4_dl_04022028),
gsSPDisplayList(burn_smoke_seg4_dl_04022048),
gsSPEndDisplayList(),
};

View File

@@ -1,2 +1 @@
// Empty geo script
UNUSED static const u64 cannon_lid_unused_1 = 0;

View File

@@ -9,9 +9,6 @@ static const Vtx chain_ball_seg6_vertex_06020AA0[] = {
{{{ -26, 26, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
};
// align? binid?
UNUSED static const u64 chain_ball_unused_1 = 0;
// 0x06020AE8
ALIGNED8 static const Texture chain_ball_seg6_texture_06020AE8[] = {
#include "actors/chain_ball/chain_ball.rgba16.inc.c"

View File

@@ -21,7 +21,7 @@ ALIGNED8 static const Texture chair_seg5_texture_05004060[] = {
#include "actors/chair/chair_bottom.rgba16.inc.c"
};
// unreferenced
// unreferenced texture
// 0x05004460
UNUSED ALIGNED8 static const Texture chair_seg5_texture_05004460[] = {
#include "actors/chair/chair_surface_unused.rgba16.inc.c"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -165,8 +165,8 @@ extern const Gfx heart_seg8_dl_0800DFE0[];
// koopa_shell
extern const GeoLayout koopa_shell_geo[];
// extern const GeoLayout koopa_shell2_geo[];
// extern const GeoLayout koopa_shell3_geo[];
extern const GeoLayout koopa_shell2_geo[];
extern const GeoLayout koopa_shell3_geo[];
extern const Gfx koopa_shell_seg8_dl_08027108[];
extern const Gfx koopa_shell_seg8_dl_08027170[];
extern const Gfx koopa_shell_seg8_dl_08027258[];

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