Compare commits

...

166 Commits

Author SHA1 Message Date
Reonu
35e75ade73 Add VERTICAL_ROOMS define 2022-06-29 02:31:13 +01:00
Mr-Wiseguy
1166d7441d Merge branch 'master' into develop/2.1.0 2022-06-17 01:08:18 -04:00
Gregory Heskett
5ef0e8c9f6 Bugfix, refactor, and slightly improve BETTER_REVERB runtime (#391)
* Buxfix, refactor, and slightly improve BETTER_REVERB runtime

* Update BETTER_REVERB defaults and add some more customizability

* Improve BETTER_REVERB runtime even further

* Rename some reverb variables to make more sense in context
2022-06-17 00:05:40 -05:00
axollyon
25b421aaae Added buttonReleased member in the controller struct (#421) 2022-06-17 00:48:20 -04:00
Denis Kopyrin
4a3ef802d5 Fixed eeprom saving on VC (#334)
* Fixed eeprom saving on VC

* Specify SM for EEP4K, for any other savetype use ED

* Moved IS_VC() check to an earlier point, switch IS_VC()->gIsVC

* Moved binary VC files to bin folder, added checks for EEP

* Do not keep vc_bin if EEP is not set
2022-03-26 22:39:44 -04:00
Fazana
4b9a0b89a0 Add missing syncs for G_PM_NPRIMITIVE (#345) 2022-03-25 13:08:09 -04:00
Denis Kopyrin
3ac257e6fb Added no cap music restarts define (#335) 2022-03-20 08:48:40 -05:00
Gregory Heskett
cc92b33676 Merge pull request #338 from Reonu/develop/gheskett/audio-changes
Develop/gheskett/audio changes
2022-03-08 08:21:55 -06:00
gheskett
8163bc4837 sAudioFirstBoot renamed to sAudioIsInitialized 2022-03-08 01:03:54 -05:00
gheskett
9f2f4a27b6 Whoops 2022-03-08 00:51:22 -05:00
gheskett
448d18de2b Bugfixes, sound bank heap defines, BETTER_REVERB improvements 2022-03-08 00:49:13 -05:00
gheskett
c4a23d0036 Bugfix: the smaller MAX_SIMULTANEOUS_NOTES define, when used, can lead to silence on audio init 2022-02-27 00:20:52 -05:00
gheskett
f061076a4f Audio safeguard error 2022-02-26 03:01:08 -05:00
gheskett
8f2b9c8979 Pointless memory allocation 2022-02-26 02:52:40 -05:00
gheskett
056e319105 Some formatting changes :( (But also some safeguards and updated documentation) 2022-02-26 01:56:07 -05:00
gheskett
6bd3988dd8 Add MAX_SIMULTANEOUS_NOTES defines and better document audio allocations for audio heap (looks kinda awful still) 2022-02-25 05:11:16 -05:00
gheskett
fe8384a440 Deprecate sBackgroundMusicDefaultVolume 2022-02-24 02:07:39 -05:00
Reonu
ad91c636ad Update name of lighting engine branch in readme
sorry for pushing to master :(((((((((((((
2022-01-22 11:11:51 +02:00
Mr-Wiseguy
475e039f8a Fixed hackersm64 using a ucode that never existed (#309) 2022-01-15 03:13:40 +00:00
Mr-Wiseguy
25951363b7 Increment version hotfix 2022-01-07 14:14:47 -05:00
Mr-Wiseguy
797f9fa223 Reverted moving the buffers to fix pool issues 2022-01-07 13:54:04 -05:00
Reonu
9d7d56989e New lighting engine branch name in readme 2022-01-01 23:47:08 +00:00
thecozies
f3e61a31aa HackerSM64 v2.0.0
* buffers: refresh 15 and revert to base decomp

* behavior script

* color helper functions

* extended bounds

* egeo_layout

* fixed model ids

* camera conf improved

* message panel ucode small

* graph node

* level script

* mathutil updates

* mathutil updates (allow unused funcs)

* behaviors a - beta_fish

* Add librtc and fix some data declarations

* Move GRUCODE define to proper location in makefile

* Refresh 15

* extra

* Make ROM name smaller and change messages printed on build a bit

* Fix console (lol)

* Update UNF to latest master

* Make ucode load from .o's (and also fix Super3D)

* Fix crash with rumble + custom mario model

* graph node and mathutil

* removed behaviors

* Ldtob documentation

* _Putfld labeling

* area

* behavior actions

* camera

* debug updates

* bubbles

* envfx snow

* farcall helpers

* game init

* geo misc

* hud

* only check if VC on render init

* ingame menu

* revert goddard to base decomp

* insn disasm

* interaction documentation

* level geo

* level update defines

* macro special objects formatting changes

* main.h documentation

* map parser documentation & formatting

* airborne documentation

* mario actions automatic documentation

* mario actions cutscene documentation

* mario actions moving documentation and options

* mario actions object documentation and options

* mario stationary documentation

* mario submerged documentation

* mario misc documentation

* mario step: ledge grab fixes and documentation

* mario documentation

* memory.h documentation

* moving textures

* object behaviors

* object collision

* fix flamethrower bug

* object helpers

* object list processor documentation

* paintings

* platform displacement

* print / printf

* puppycam absf

* puppyprint updates and formatting changes

* rendering graph node performance optimizations

* rumble opt and doc

* hqvm back to ultrasm64

* save file documentation and unlock defines

* s2d engine

* reset various files to ultrasm64

* file select

* intro geo documentation

* screen transition documentation

* segment2.h

* shadow overhaul

* skybox refactor

* sound init: clean up define usage + documentation

* spawn object optimizations and documentation

* spawn sound cleanup

* sram to ultrasm64

* star select cleanup

* title screen cleanup

* dialogs / text

* rename stomp smoke

* stomp smoke -> small water splash

* updated README

* compilation flags

* optimized file positions + support function/data sections

* surface collision performance improvements

* surface load optimizations

* camera conf documentation

* Allow easier command for opening puppyprint debug

* Rearranged framebuffers & fixed puppyprint console printing

* Fix shadow scaling and shifting

* Fix SILHOUETTE, OBJECTS_REJ, and ucode loading, also clean up render phase system a bit.

* Fixed build with BETTER_HANGING off

* Clean up OBJECTS_REJ ifdefs

* Fix duplicate comment & graph render layers/flags bitmask

* Fixed build with BETTER_HANGING off

* Fix Fast64 importing by reverting sSegmentTable change

* Readded missing functions that caused build errors with Mario head enabled

* Fixed clang compilation issues

* Add INTER mode for geo_update_layer_transparency

* Fix build warnings

* bugfix: miscalculation in obj_turn_toward_object

* Some puppytech fixes

* Further Puppycamera fixes

* Fix BUGFIX_DIALOG_TIME_STOP

Fixes #136

* Fix sliding platform bparams

* Add LEGACY_SHADOW_IDS define for Fast64 compatibility

* Apply suggested changes

* Better find_in_bounds_yaw_wdw_bob_thi ifdef

* Fix build warnings for unused functions

* Fixed stale reference bug from obj_mark_for_deletion change

* Fixed incorrect digit for 100s #145

* Change groundpound-fix define and functionality to just disable bonking

* Fixed puppyroll #134

* Adjust height value for terrain angle to kick in

* fixed hi score flashing

* Remove menudata backup (#131)

Not considered important enough to keep

* Fix fread() build warning

* Add COURSE_NUM_TO_INDEX to save_file_get_star_flags check in bhv_unagi_init

* Fix approach_s16 return value

* Use boolean defines for oCapDoScaleVertically

* 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.

* Move flames to LAYER_TRANSPARENT_INTER

* Resolved some compiler warnings and added FALL_THROUGH define (#168)

* Address some more compiler warnings with different define toggles

* Remove unnecessary fallthrough attribute

* fixed geo_process_billboard floating point exception

* Allow water to face any direction

* Initialize focOffset so that BBH doesn't crash

* Removed superfluous RDP commands when switching microcodes which would override scissor

* Set OBJ_FLAG_DONT_CALC_COLL_DIST on bhvUkikiCage

* Fix rumble build

* Fixed UNLOCK_FPS strobing

* Update src/game/object_helpers.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update src/game/object_helpers.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Fix LEGACY_SHADOW_IDS id conflict

* Use the vanilla default value for rotating fire bars if bparam2 is 0

* START_LEVEL safeguard

* Fix some drawing distance issues caused by AUTO_COLLISION_DISTANCE

* Fix rumble build

* Fixed spline poll code using the wrong values for keyframes

* Update readme with better credits

Better credits for individual contributors

* add arthur

* added falco and moose

* add fazana

* le funny typo

* added S2DEX engine to credits

* silhouette + axo + ratio

* remove specific callouts + add auto col distance

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Revert formatting changes to match vanilla decomp

* Re-implement Y buffer for find_ceil

* Re-implement POWER_STARS_HEAL for normal Power Stars

* Start level comment & exit course comment/collapse

* utilize reonucam technique for FAST_VERTICAL_CAMERA_MOVEMENT

* Fix "MAX_REFERENCED_WALLS" typo

* Allow stop_and_set_height_to_floor to work at any height if Mario is teleporting (#213)

* Revert stop_and_set_height_to_floor to vanilla

Fixes #208

* Fixed sAudioEnabled so that it disables audio CPU processing as well

* Fixed puppyprint debug RDP us calculations

* Renamed sAudioEnabled to gAudioEnabled

* Replaced mtxf_to_mtx_asm with an equivalent implementation that supports WORLD_SCALE

* Moved extended bounds and world scale configuration to a new config_world.h file

* Default all objects to non-rej (#227)

Fixes #221 (Default all objects to non-rej)

* Fix #221

* Fix VISUAL_DEBUG breaking/crashing when OBJECTS_REJ is disabled (#211)

* Fix VISUAL_DEBUG breaking/crashing when OBJECTS_REJ is disabled

* Change vtl decrement in visual_surface_display from 6 to 3

Fixes #207

* Make area in SL igloo wider to prevent a softlock (#233)

Fixes #210

* Fix coin formation coins being deleted if they spawn in the middle of a floor, also fix TTM slide coin position (#232)

Fixes #201

* Make UNLOCK_ALL apply to more things

* Fix wrong ifdef/ifndef in bhv_invisible_objects_under_bridge_init

* Change chain chomp load/unload distances depending on number of segments (#237)

Fixes #192

* added WATER_PLUNGE_UPWARP define

* Add reonucam patch (#239)

* added reonucam patch
Fixes #218

* Fix how shadows handle water/transparency/height (#228)

* Fix how shadows handle water/transparency/height

* Change shadow check for flying carpets from a level specific check to a oPlatformOnTrackType check

Fixes #179

* added reonucam credit

* delete unnecesary patches

* Apply suggested changes

* murdered more patches

* UNLOCK_ALL unlocks the cap boxes

* UNLOCK_ALL unlocks cap boxes (slightly more epic edition)

* revert ceil buffer

* Renamed HD_INTRO_TEXTURES define, separated intro floombas

* prevent double definition of floombas

* actually prevent floomba redefinition

* Develop/refactor  default defines (#242)

* Changed default config options

* Added build dir to includePaths for pngs

* disable NO_SLEEP by default

* Disable puppyprint by default

Sorry fazana 😔

* fix typos

* add comment about BETTER_REVERB console perf

* disable blue coin switch retry by default

* Update config_audio.h

Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com>

* revert air step line to vanilla to fix bitfs scaling platform issue (#247)

Fixes #200

* Fix stuttering on thin slopes (#248)

* Fix stuttering on thin slopes

* Revert vec3f_find_ceil calls to vanilla

* Rename vec3f_find_ceil to find_mario_ceil

* Update src/engine/surface_collision.h

Fixes #249

* Swap static and dynamic surface checks back to vanilla order (#253)

* Swap static and dynamic surface checks back to vanilla order

* re-enable DISABLE_ALL config

Fixes #251 #252

* Fixed save and quitting while in widescreen (#257)

* Fixed save and quitting while in widescreen

* use define for the level

* all my homies hate ifdefs

* skip wall offsets < 0 (#255)

Fixes #255

* #264: Document non-stop stars' issues (#267)

* #264: Document non-stop stars' issues

* Update include/config/config_game.h

* nonstop vanilla comment

* derive margin_radius from radius after capping at 200 (#266)

Fixes #259

* Config cleanup/refactor (#269)

* Moved puppyprint define to graphics / rearranged some debug defines for ease of access

* Moved compatibility safeguards to config_safeguards.h

* spacing and comment formatting

* #272 Move GFX_POOL_SIZE to config_graphics.h

* disable EASIER_DIALOG_TRIGGER by default

* prevent redefining warnings

* small ifdef typo

* changed ifndef to undefs

Fixes #262
Fixes #272

* Improved movement config documentation related to turning around (#271)

Fixes #270

* rename CUSTOM_DEBUG, add comments (#275)

* Update README.md (#277)

* v2.0.0

Co-authored-by: CrashOveride95 <crashoveride953@gmail.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: n64 <n64>
Co-authored-by: Fazana <52551480+FazanaJ@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
Co-authored-by: aglab2 <aglab3@gmail.com>
Co-authored-by: gheskett <gheskett@gmail.com>
Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Axollyon <20480418+Axollyon@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com>
2021-12-30 16:57:51 +00:00
Reonu
3a558060ab Add Wiseguy as a code owner
*flexes pushing to master privileges*
2021-12-19 19:11:17 +00:00
Gregory Heskett
79db39b06b Merge pull request #104 from PyroJay4/master
NOW its fixed :)
2021-11-16 18:25:29 -05:00
PyroJay4
2e619e5aff Add files via upload 2021-11-16 18:10:44 -05:00
PyroJay4
fa9ff4f9d5 Delete coin_tilt_right.ia8.png 2021-11-16 18:10:27 -05:00
PyroJay4
0aa9d73e8d Delete coin_tilt_left.ia8.png 2021-11-16 18:10:23 -05:00
PyroJay4
be9319e5c4 Delete coin_side.ia8.png 2021-11-16 18:10:19 -05:00
PyroJay4
f3e6641029 Delete coin_front.ia8.png 2021-11-16 18:10:14 -05:00
thecozies
23d34210dd Merge pull request #103 from PyroJay4/master
fix these to have outlines (sorry) (hopefully these will work now)
2021-11-15 20:02:52 -06:00
PyroJay4
9d9ac8eea1 Add files via upload 2021-11-15 20:39:16 -05:00
PyroJay4
734982d608 Delete coin_tilt_right.ia8.png 2021-11-15 20:38:55 -05:00
PyroJay4
1fee018a7f Delete coin_front.ia8.png 2021-11-15 20:38:44 -05:00
Reonu
9601207aa4 Merge pull request #98 from PyroJay4/patch-10
Update spawn_star.inc.c
2021-11-03 17:19:49 +02:00
PyroJay4
d1f6aa63b0 Update spawn_star.inc.c
ahahahahahahahahahahahahahahahahahahaha
2021-11-02 20:17:04 -04:00
Reonu
8147d08727 Merge pull request #65 from Reonu/nightly
Merge Nightly (ay lmao)
2021-10-08 02:24:02 +03:00
thecozies
a20e9210f9 Merge pull request #72 from Reonu/fix_geo_bone
Fixed geo_bone
2021-10-06 13:51:47 -05:00
thecozies
8601d3f516 Merge pull request #71 from Reonu/revert_execute_mario_action_for_merge_nightly
Revert execute_mario_action
2021-10-06 10:28:26 -05:00
thecozies
d2590352af Fixed geo_bone 2021-10-06 10:24:07 -05:00
Reonu
a3c233004f dpad down in aglabcam snaps to nearest axis instead of always going left 2021-10-05 21:55:24 +03:00
Reonu
2879456dbd Added Made with HackerSM64 msg (thanks to PyroJay) 2021-10-05 21:34:34 +03:00
Arceveti
708980de21 Revert execute_mario_action 2021-10-05 10:24:37 -07:00
Arceveti
24bbeaabf1 Merge pull request #70 from Reonu/revert_levelscript_changes
Revert "Name some HMC geolayouts + some demo fixes"
2021-10-05 10:12:52 -07:00
thecozies
fec149b238 Revert "Name some HMC geolayouts + some demo fixes"
This reverts commit 72be706ec7.
2021-10-05 09:23:52 -05:00
thecozies
febc16cacb Merge pull request #69 from Reonu/merge_nightly_fixes
Fixes for merging nightly
2021-10-05 06:47:17 -05:00
Arceveti
da285a1457 Fix pokey distance 2021-10-04 12:14:02 -07:00
Fazana
77bf073449 Make layer 0 zex render first 2021-10-04 18:37:19 +01:00
Fazana
ea32e1ea70 Moved hitbox visualisation into its own func
Saves around 500us in the graph
2021-10-03 21:05:46 +01:00
Arceveti
9721960d80 Fixes for merging nightly 2021-10-03 12:56:45 -07:00
Arceveti
d76ca3ac71 Some requested changes + fix build 2021-10-03 11:37:44 -07:00
someone2639
51bced5d3c dont need this line either [math.s] 2021-10-03 13:24:07 -05:00
someone2639
2d7aa1e514 changed div to mul, it always runs now 2021-10-03 13:24:07 -05:00
Fazana
ab67e9be4d gWorldScalen't 2021-10-03 13:24:05 -05:00
someone2639
3cc9fe8633 let the scheduler handle the bc1f 2021-10-03 13:21:58 -05:00
someone2639
a4f6151364 i hate the c preprocessor 2021-10-03 13:21:58 -05:00
someone2639
3887ac46e0 big brain optimization 2021-10-03 13:21:58 -05:00
someone2639
697492d1e1 add some logic for gWorldScale; only div on scales higher than 1 2021-10-03 13:21:58 -05:00
someone2639
f4ffcc3ea1 make this asm file a lot easier to read (not documented though) 2021-10-03 13:21:58 -05:00
Reonu
5f744d94ad Merge pull request #68 from Reonu/revert_plus_plus
Revert "Some more cleanup"
2021-10-03 19:02:18 +03:00
thecozies
1e1aa3754f Revert "Some more cleanup"
This reverts commit ea0fd25a73.
2021-10-03 10:34:42 -05:00
Fazana
6052ed8cdf Revert some camera "optimisations" 2021-10-03 14:56:16 +01:00
Fazana
6dde1e9026 semi colon 2021-10-01 17:58:39 +01:00
Reonu
2daf766901 fixed camera memes 2021-10-01 16:57:45 +03:00
Fazana
39318ec6a2 Further makerule tweaks 2021-10-01 11:32:58 +01:00
Fazana
5206fdbe2e Revert macros struct funnies
sausage
2021-10-01 11:02:29 +01:00
Arceveti
50941e0559 math_util.c optimizations by Kaze Emanuar 2021-09-30 15:42:36 -07:00
Arceveti
df14e88d37 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-30 15:09:31 -07:00
Arceveti
ff43340b0b Configurable number of segments for Chain Chomp, Pokey, and Wiggler 2021-09-30 15:09:01 -07:00
Arceveti
3a3637723d macro_special_objects.c improvements 2021-09-30 15:07:18 -07:00
Fazana
02aa70559a Further make flag tweaks
Performance go wheeee
2021-09-30 23:04:43 +01:00
Arceveti
362a46479e spawn_star.inc.c improvements 2021-09-30 14:43:10 -07:00
Arceveti
9e2726606b fix funny typo 2021-09-30 14:04:09 -07:00
Arceveti
0d427d3f25 Initialize objListIndex 2021-09-30 12:52:48 -07:00
Arceveti
60392fb4ef Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-30 12:37:39 -07:00
Arceveti
4f3e84c2ad Update play_mode_change_area 2021-09-30 12:37:25 -07:00
Arceveti
83e727400e Update src/game/behaviors/king_bobomb.inc.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-09-30 12:35:46 -07:00
Fazana
a8fd8c5172 fix memory.c and add ucode_small flag 2021-09-30 15:24:44 +01:00
Fazana
d79dd5a51f Make collision build with Ofast
😔

nothing makes sense anymore.
2021-09-30 12:17:54 +01:00
Fazana
4448273b14 Move raycasts back to math_util 2021-09-30 10:40:37 +01:00
Fazana
be79ded91e Fix build error with debug_box.c 2021-09-30 10:31:31 +01:00
Arceveti
fdd81f5e14 Fix rotate_in_xz 2021-09-30 00:21:58 -07:00
Arceveti
cfa6e6dc9f Fix squishy doors on LLE 2021-09-29 23:43:14 -07:00
Arceveti
b8804bba87 Fix teleporting on poles 2021-09-29 21:25:36 -07:00
Arceveti
4fe6b323e7 Automatically calculate SURFACE_POOL_SIZE and SURFACE_NODE_POOL_SIZE 2021-09-29 16:38:36 -07:00
Arceveti
d1ed598480 Whoops, lowercase absf already exists 2021-09-29 16:37:20 -07:00
Arceveti
ef4ffdc71f #define floorAngle floorYaw for compatibility 2021-09-29 16:32:23 -07:00
Arceveti
824056390f Lowercase abs and signum_positive defines 2021-09-29 16:22:34 -07:00
Arceveti
50d180134f ok 2021-09-29 15:18:28 -07:00
Arceveti
3bfb394b70 Fix compiler warnings 2021-09-29 13:28:49 -07:00
Arceveti
a8afa914cd some surface_terrains.h defines 2021-09-29 12:59:49 -07:00
Arceveti
9b4b9d9c03 Add ENABLE_DEBUG_FREE_MOVE + improve debug free move controls 2021-09-29 12:35:46 -07:00
Arceveti
f68c63703e Improve debug level select controls 2021-09-29 12:00:37 -07:00
Arceveti
911246541e Merge https://github.com/CrashOveride95/ultrasm64 into nightly 2021-09-29 11:51:43 -07:00
Arceveti
66932d84a4 Add DISABLE_LEVEL_SPECIFIC_CHECKS 2021-09-29 11:30:07 -07:00
Arceveti
c203e8a17d Add find_room_floor 2021-09-29 10:35:27 -07:00
Arceveti
c9d48d3c43 Fix BBH crash 2021-09-29 10:19:34 -07:00
Arceveti
f10955b785 Move some structs/data into proper behavior files 2021-09-29 10:10:14 -07:00
Fazana
510e5c137f Revert some changes
Something amongst these remaining changes is a substantial decrease in game performance. I've taken out stuff that's confirmed not to, whilst something left is part of the problem.
2021-09-29 11:59:19 +01:00
Arceveti
67ee6b395b callContext arg name in geo functions 2021-09-29 00:09:11 -07:00
Arceveti
565af70485 Fix alloc_display_list in intro_draw_face 2021-09-28 23:55:49 -07:00
Arceveti
f8a9eaea4b Fix GRAPH_RENDER_FLAGS_SIZE + Add OBJ_FLAG_OCCLUDE_SILHOUETTE + name Bowser 1 painting dl's 2021-09-28 23:43:44 -07:00
Arceveti
3af946e2bd Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 22:43:48 -07:00
Arceveti
8e398008d8 Optimize out a bunch of sqrtf 2021-09-28 22:43:29 -07:00
Arceveti
28e8d99707 Some optimizations + cleanup 2021-09-28 21:13:26 -07:00
gheskett
705d44e034 Fix WDW cannon bob-omb placement 2021-09-29 00:00:00 -04:00
Arceveti
868dd8f97b Some small fixes + cleanup 2021-09-28 19:08:34 -07:00
Arceveti
82edc20696 Fix insn_disasm build warnings 2021-09-28 17:35:12 -07:00
Arceveti
4adf87f622 Some cleanup/fixes 2021-09-28 17:33:18 -07:00
Arceveti
4ec50b8123 #define o gCurrentObject in object_list_processor.h 2021-09-28 15:42:41 -07:00
Fazana
51f7679208 pragma'd 2021-09-28 22:57:37 +01:00
Arceveti
f03d21fd04 Fix png formats 2021-09-28 14:36:54 -07:00
Arceveti
6e2c13459b Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 14:28:22 -07:00
Arceveti
65e8369d1c Puppyprint debug font improvements 2021-09-28 14:28:14 -07:00
Fazana
beee3c0562 Puppyprint debugging now supports nonstandard resolutions
Isn't that nice?
2021-09-28 22:26:14 +01:00
Arceveti
04b6089d72 Fix puppyprint font kerning 2021-09-28 14:14:48 -07:00
Arceveti
5b43bc3b03 Fix typo 2021-09-28 14:04:26 -07:00
Arceveti
baceb79c89 Dirt particle & cartoon star particle dl names 2021-09-28 14:02:13 -07:00
Arceveti
3e8aa7fada Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 13:57:00 -07:00
Arceveti
81a64e59d7 Fix held objects + some cleanup 2021-09-28 13:54:34 -07:00
Fazana
cefd4b62ab Held object fix 2021-09-28 21:52:00 +01:00
Arceveti
79d7b7e4b9 Add COS defines 2021-09-28 12:36:26 -07:00
Arceveti
92ae326cf6 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 12:18:04 -07:00
Arceveti
c89858ebd2 Make obj_set_opacity_from_cam_dist its own function 2021-09-28 12:17:53 -07:00
Fazana
6bad22d98c Specific cflags 2021-09-28 18:44:57 +01:00
Fazana
501a0caec0 Update Makefile 2021-09-28 18:03:24 +01:00
Fazana
e562c6543b Remove profiler.c
It's in its own commit, so if you for some reason disagree with this, reverting it is super easy.
2021-09-28 17:52:42 +01:00
Fazana
4ba2285969 Graph optimisations
that actually work now
2021-09-28 17:39:49 +01:00
Fazana
997d481e3a Update rendering_graph_node.c 2021-09-28 13:50:40 +01:00
Fazana
102e49b5e7 Puppytext font support + visual debug colour tweak 2021-09-28 12:41:27 +01:00
Arceveti
5b198635ad Improve puppyprint font a bit more 2021-09-27 22:33:00 -07:00
Arceveti
ec31997ba0 Improved puppyprint font 2021-09-27 21:39:45 -07:00
Arceveti
56fa02ec87 COND_BIT + fix transparent tree layer + asymptitic turn 2021-09-27 18:03:06 -07:00
Arceveti
87cdbc8ceb Merge https://github.com/Reonu/HackerSM64 into nightly 2021-09-27 16:43:42 -07:00
Arceveti
62cc178545 Object constants and new typedefs 2021-09-27 16:41:43 -07:00
Reonu
7c8a876890 Merge pull request #64 from thecozies/fix_broken_water
fixed find_water_floor height variable
2021-09-28 02:07:18 +03:00
thecozies
2ac47bd4f1 fixed find_water_floor height variable 2021-09-27 17:56:28 -05:00
Arceveti
1e81412c4b Combine shadow flags into gShadowFlags 2021-09-27 15:45:28 -07:00
Arceveti
a5c1aef42b Convert some doubles to floats + remove some unused Goddard functions 2021-09-27 15:01:44 -07:00
Arceveti
3f4728e337 Configurable wall kick angle in degrees 2021-09-27 14:00:10 -07:00
Arceveti
ae91a98422 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-27 13:36:05 -07:00
Arceveti
ea0fd25a73 Some more cleanup 2021-09-27 13:35:55 -07:00
Fazana
f0bd8a1fa5 I hate github I hate github I hate github I hate github I hate github I hate github 2021-09-27 21:21:20 +01:00
Fazana
d0a9834f39 E 2021-09-27 21:17:10 +01:00
Arceveti
6155b6416a Some cleanup & fixes 2021-09-27 12:28:47 -07:00
Arceveti
e71ba07b22 Add some fields to MarioState 2021-09-27 10:21:25 -07:00
Fazana
abb6fd286d Farclip failsafe 2021-09-27 17:21:23 +01:00
Fazana
c69a7e1233 shadow 2021-09-27 14:14:23 +01:00
Fazana
39f92391f8 Matrix optimisation
Courtesy of Kaze, creator of all existing romhacks
2021-09-27 13:16:04 +01:00
Reonu
04702ff466 Create CODEOWNERS 2021-09-27 13:49:30 +03:00
Arceveti
00ae43cc99 Get world scale by distance to origin on one axis 2021-09-27 02:32:41 -07:00
Arceveti
c3a68d48a7 Some refactoring 2021-09-26 20:47:23 -07:00
Arceveti
7da55b1456 Fix build 2021-09-26 17:36:12 -07:00
Arceveti
13d7d2caff Whoops left debug level select on 2021-09-26 17:13:33 -07:00
Arceveti
76d049d8ee Merge pull request #63 from someone2639/master
Crash Screen has disasm view now
2021-09-26 17:10:53 -07:00
Arceveti
72be706ec7 Name some HMC geolayouts + some demo fixes 2021-09-26 17:10:10 -07:00
Arceveti
be8a27f79f Some optimizations 2021-09-26 16:43:55 -07:00
someone2639
72d03f27c0 Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-26 18:02:52 -04:00
Arceveti
419c88d615 OBJ_FLAG_UCODE_LARGE for JRB rocks 2021-09-26 14:52:55 -07:00
Arceveti
1110c281bb Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-26 14:51:33 -07:00
Arceveti
833cc9082c Add breath meter 2021-09-26 14:49:21 -07:00
someone2639
2d729ea42f idk what i changed but it should be ready now 2021-09-26 16:01:08 -04:00
Arceveti
f0e4dd964b Add option to display puppyprint debug values as cycles 2021-09-26 12:33:02 -07:00
Arceveti
499fc33d7e Fix spindrift actor model file 2021-09-26 12:02:26 -07:00
CrashOveride95
f8ab64a71a Merge pull request #23 from thecozies/new_GEO_BONE
Added GEO_BONE geolayout command
2021-09-20 11:11:12 -04:00
thecozies
808106ae2f Added GEO_BONE geolayout command 2021-09-20 10:06:33 -05:00
986 changed files with 49124 additions and 36458 deletions

30
.gitignore vendored
View File

@@ -71,8 +71,38 @@ build/*
!/assets/**/*custom*.bin
!/assets/**/*custom*/**/*.bin
!/textures/crash_custom/*.png
# Specific assets
!/actors/breath_meter/breath_meter_*.png
!/actors/coin/coin_*.ia8.png
!/textures/segment2/light_quarter_circle.ia16.png
!/textures/segment2/segment2.hud_char_j.rgba16.png
!/textures/segment2/segment2.hud_char_q.rgba16.png
!/textures/segment2/segment2.hud_char_v.rgba16.png
!/textures/segment2/segment2.hud_char_x.rgba16.png
!/textures/segment2/segment2.hud_char_z.rgba16.png
!/textures/segment2/segment2.umlaut_us.rgba16.png
!/textures/segment2/segment2.beta_key.rgba16.png
!/textures/segment2/segment2.decimal_point.rgba16.png
!/textures/segment2/segment2.exclamation.rgba16.png
!/textures/segment2/segment2.double_exclamation.rgba16.png
!/textures/segment2/segment2.question.rgba16.png
!/textures/segment2/segment2.ampersand.rgba16.png
!/textures/segment2/segment2.percent.rgba16.png
!/textures/segment2/segment2.minus.rgba16.png
!/textures/segment2/segment2.minus2.rgba16.png
!/textures/segment2/segment2.yellow_coin.rgba16.png
!/textures/segment2/segment2.blue_coin.rgba16.png
!/textures/segment2/segment2.red_coin.rgba16.png
!/textures/segment2/segment2.silver_coin.*.png
!/textures/segment2/shadow_quarter_circle_64.ia8.png
!/textures/segment2/shadow_quarter_square_64.ia8.png
# libultra
!/lib/**/*.o
!/lib/*.a
lib/libs2d_engine.a
!/lib/gcclib/*.a

View File

@@ -6,6 +6,7 @@
"${workspaceFolder}/include/n64/**",
"${workspaceFolder}/include/**",
"${workspaceFolder}/textures/**",
"${workspaceFolder}/build/us_n64/**",
"${workspaceFolder}/**"
],
"forcedInclude": [
@@ -17,13 +18,14 @@
"${workspaceFolder}/include/geo_commands.h",
"${workspaceFolder}/include/level_commands.h",
"${workspaceFolder}/include/segment_symbols.h",
"${workspaceFolder}/include/command_macros_base.h"
"${workspaceFolder}/include/command_macros_base.h",
"${workspaceFolder}/include/object_constants.h"
],
"defines": [
"TARGET_N64=1",
"VERSION_US=1",
"F3DEX_GBI_2=1",
"F3DZEX_GBI_2=1",
"F3DZEX_NON_GBI_2=1",
"F3DEX_GBI_SHARED=1",
"NON_MATCHING=1",
"AVOID_UB=1"

10
CHANGES
View File

@@ -1,3 +1,13 @@
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)

13
CODEOWNERS Normal file
View File

@@ -0,0 +1,13 @@
# Lines starting with '#' are comments.
# 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
* @thecozies
* @Mr-Wiseguy
# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners
# will be requested to review.
# You can also use email addresses if you prefer.

221
Makefile
View File

@@ -67,25 +67,6 @@ 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
@@ -95,22 +76,18 @@ VERSION ?= us
$(eval $(call validate-option,VERSION,jp us eu sh))
ifeq ($(VERSION),jp)
DEFINES += VERSION_JP=1
GRUCODE ?= f3dzex
DEFINES += VERSION_JP=1
else ifeq ($(VERSION),us)
DEFINES += VERSION_US=1
GRUCODE ?= f3dzex
DEFINES += VERSION_US=1
else ifeq ($(VERSION),eu)
DEFINES += VERSION_EU=1
GRUCODE ?= f3dzex
DEFINES += VERSION_EU=1
else ifeq ($(VERSION),sh)
DEFINES += VERSION_SH=1
GRUCODE ?= f3dzex
DEFINES += VERSION_SH=1
endif
DEBUG_MAP_STACKTRACE_FLAG := -D DEBUG_MAP_STACKTRACE
TARGET := sm64.$(VERSION)
TARGET := sm64
# GRUCODE - selects which RSP microcode to use.
@@ -119,6 +96,7 @@ TARGET := sm64.$(VERSION)
# l3dex2 - F3DEX2 version that only renders in wireframe
# f3dzex - newer, experimental microcode used in Animal Crossing
# super3d - extremely experimental version of Fast3D lacking many features for speed
GRUCODE ?= f3dzex
$(eval $(call validate-option,GRUCODE,f3dex f3dex2 f3dex2pl f3dzex super3d l3dex2))
ifeq ($(GRUCODE),f3dex) # Fast3DEX
@@ -130,7 +108,7 @@ else ifeq ($(GRUCODE),l3dex2) # Line3DEX2
else ifeq ($(GRUCODE),f3dex2pl) # Fast3DEX2_PosLight
DEFINES += F3DEX2PL_GBI=1 F3DEX_GBI_2=1 F3DEX_GBI_SHARED=1
else ifeq ($(GRUCODE),f3dzex) # Fast3DZEX (2.08J / Animal Forest - Dōbutsu no Mori)
DEFINES += F3DZEX_GBI_2=1 F3DEX_GBI_2=1 F3DEX_GBI_SHARED=1
DEFINES += F3DZEX_NON_GBI_2=1 F3DEX_GBI_2=1 F3DEX_GBI_SHARED=1
else ifeq ($(GRUCODE),super3d) # Super3D
$(warning Super3D is experimental. Try at your own risk.)
DEFINES += SUPER3D_GBI=1 F3D_NEW=1
@@ -150,15 +128,78 @@ 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 := -Os
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)
else ifeq ($(COMPILER),clang)
NON_MATCHING := 1
# clang doesn't support ABI 'o32' for 'mips3'
MIPSISET := -mips2
OPT_FLAGS := -Os
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)
endif
@@ -174,25 +215,14 @@ endif
ifeq ($(NON_MATCHING),1)
DEFINES += NON_MATCHING=1 AVOID_UB=1
COMPARE := 0
endif
# COMPARE - whether to verify the SHA-1 hash of the ROM after building
# 1 - verifies the SHA-1 hash of the selected version of the game
# 0 - does not verify the hash
COMPARE ?= 0
$(eval $(call validate-option,COMPARE,0 1))
TARGET_STRING := sm64.$(VERSION).$(CONSOLE).$(GRUCODE)
# If non-default settings were chosen, disable COMPARE
ifeq ($(filter $(TARGET_STRING), sm64.jp.f3d_old sm64.us.f3d_old sm64.eu.f3d_new sm64.sh.f3d_new),)
COMPARE := 0
endif
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)
@@ -204,7 +234,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)
@@ -222,7 +252,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)
@@ -230,9 +260,34 @@ 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)
@@ -248,27 +303,6 @@ endif
# Whether to colorize build messages
COLOR ?= 1
# display selected options unless 'make clean' or 'make distclean' is run
ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
$(info ==== Build Options ====)
$(info Version: $(VERSION))
$(info Microcode: $(GRUCODE))
$(info Console: $(CONSOLE))
$(info Target: $(TARGET))
ifeq ($(COMPARE),1)
$(info Compare ROM: yes)
else
$(info Compare ROM: no)
endif
ifeq ($(NON_MATCHING),1)
$(info Build Matching: no)
else
$(info Build Matching: yes)
endif
$(info =======================)
endif
#==============================================================================#
# Universal Dependencies #
#==============================================================================#
@@ -314,7 +348,7 @@ endif
BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
ROM := $(BUILD_DIR)/$(TARGET_STRING).z64
ELF := $(BUILD_DIR)/$(TARGET_STRING).elf
LIBZ := $(BUILD_DIR)/libz.a
@@ -394,8 +428,8 @@ export LD_LIBRARY_PATH=./tools
AS := $(CROSS)as
ifeq ($(COMPILER),gcc)
CC := $(CROSS)gcc
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -Os -mlong-calls
$(BUILD_DIR)/levels/%.o: OPT_FLAGS := -Os -mlong-calls
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -Ofast -mlong-calls
$(BUILD_DIR)/levels/%.o: OPT_FLAGS := -Ofast -mlong-calls
else ifeq ($(COMPILER),clang)
CC := clang
endif
@@ -430,9 +464,11 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
# C compiler options
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
ifeq ($(COMPILER),gcc)
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-missing-braces -fno-jump-tables
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else ifeq ($(COMPILER),clang)
CFLAGS += -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
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
endif
@@ -475,7 +511,7 @@ else
RSPASM := $(TOOLS_DIR)/armips
endif
ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
EMULATOR = ~/Downloads/mupen64plus/mupen64plus-gui
EMULATOR = mupen64plus
EMU_FLAGS =
LOADER = loader64
LOADER_FLAGS = -vwf
@@ -488,7 +524,7 @@ RED := \033[0;31m
GREEN := \033[0;32m
BLUE := \033[0;34m
YELLOW := \033[0;33m
BLINK := \033[33;5m
BLINK := \033[32;5m
endif
# For non-IDO, use objcopy instead of extract_data_for_mio
@@ -506,13 +542,12 @@ endef
#==============================================================================#
all: $(ROM)
ifeq ($(COMPARE),1)
@$(PRINT) "$(GREEN)Checking if ROM matches.. $(NO_COL)\n"
@$(SHA1SUM) --quiet -c $(TARGET).sha1 && $(PRINT) "$(TARGET): $(GREEN)OK$(NO_COL)\n" || ($(PRINT) "$(YELLOW)Building the ROM file has succeeded, but does not match the original ROM.\nThis is expected, and not an error, if you are making modifications.\nTo silence this message, use 'make COMPARE=0.' $(NO_COL)\n" && false)
else
@$(SHA1SUM) $(ROM)
@$(PRINT) "${GREEN}Build succeeded.$(NO_COL)\n"
endif
@$(PRINT) "${BLINK}Build succeeded.\n$(NO_COL)"
@$(PRINT) "==== Build Options ====$(NO_COL)\n"
@$(PRINT) "${GREEN}Version: $(BLUE)$(VERSION)$(NO_COL)\n"
@$(PRINT) "${GREEN}Microcode: $(BLUE)$(GRUCODE)$(NO_COL)\n"
@$(PRINT) "${GREEN}Console: $(BLUE)$(CONSOLE)$(NO_COL)\n"
clean:
$(RM) -r $(BUILD_DIR_BASE)
@@ -525,6 +560,10 @@ distclean: clean
test: $(ROM)
$(EMULATOR) $(EMU_FLAGS) $<
test-pj64: $(ROM)
wine ~/Desktop/new64/Project64.exe $<
# someone2639
load: $(ROM)
$(LOADER) $(LOADER_FLAGS) $<
@@ -534,7 +573,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/rsp.o: $(BUILD_DIR)/rsp/rspboot.bin $(BUILD_DIR)/rsp/audio.bin
$(BUILD_DIR)/lib/aspMain.o: $(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
@@ -576,6 +615,17 @@ $(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))
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)
@@ -586,7 +636,8 @@ $(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
#==============================================================================#
@@ -801,7 +852,7 @@ $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
# Link SM64 ELF file
$(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc -lrtc
# Build ROM
$(ROM): $(ELF)
@@ -810,7 +861,7 @@ ifeq ($(CONSOLE),n64)
$(V)$(OBJCOPY) --pad-to=0x101000 --gap-fill=0xFF $< $@ -O binary
else ifeq ($(CONSOLE),bb)
$(V)$(OBJCOPY) --gap-fill=0x00 $< $@ -O binary
$(V)dd if=$@ of=tmp bs=16K conv=sync
$(V)dd if=$@ of=tmp bs=16K conv=sync status=none
$(V)mv tmp $@
endif
$(V)$(N64CKSUM) $@

View File

@@ -66,7 +66,7 @@ KING_BOBOMB_DIRS := king_bobomb water_bubble
BOO_DIRS := bookend book chair small_key mad_piano boo haunted_cage
MR_I_DIRS := mr_i_eyeball mr_i_iris swoop snufit dorrie scuttlebug
HOOT_DIRS := yellow_sphere_small hoot yoshi_egg thwomp bullet_bill heave_ho
COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree
COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves mario_cap breath_meter power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree
BUBBA_DIRS := bubba wiggler wiggler_body_part lakitu_enemy spiny_egg spiny
SKEETER_DIRS := skeeter seaweed water_mine cyan_fish bub water_ring treasure_chest
KLEPTO_DIRS := klepto eyerok pokey tornado
@@ -76,7 +76,7 @@ MOLE_DIRS := monty_mole_hole monty_mole smoke ukiki fwoosh
LAKITU_DIRS := lakitu_cameraman toad mips boo_castle
PEACH_DIRS := bird peach yoshi
BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke
MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation
MARIO_DIRS := mario bubble walk_smoke burn_smoke small_water_splash water_wave sparkle water_splash white_particle_small sparkle_animation
# Actor Textures
AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png))

View File

@@ -1,33 +1,55 @@
# ![](https://i.imgur.com/CeOukzk.gif) HackerSM64 ![](https://i.imgur.com/s0LUbTo.gif)
**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.**
**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.**
HackerSM64 now has a discord server! https://discord.gg/brETAakcXr
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 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 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 `config.h`):
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):
**Credits**
- **ArcticJaguar725**: Most audio configuration and layout changes, colored ia4 text, floombas, various 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, reonucam, 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
- **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
- **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.
- 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.
- 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 toogle it in config.h. *
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
**Collision:**
- Slope fix and exposed ceilings fix
- No false ledgegrabs fix *
- Jump kick fix *
- 46 degree wallkicks *
- Pole 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:**
@@ -40,8 +62,8 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- 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 me. 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 Reonu. 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
@@ -50,33 +72,34 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- 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.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`.
- 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`.
- 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 `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 `include/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.h` to make it simpler
- The internal ROM name is now set with a define in `config/config_rom.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.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. *
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
- The clown font includes the entire English alphabet.
- Colored ia4 text support. Format: `"@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.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/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *
**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) *
- 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.*
- 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.
- A couple vanilla texture fixes
- Smoke fix (the smoke texture uses the correct texture format)
@@ -85,11 +108,14 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- 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 coins (64x64), the vanilla coin texture is upgraded to accomodate. *
- 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). *
- 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.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/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 *
- 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 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) *
- 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) *
- 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.
@@ -172,7 +198,9 @@ To switch to no compression, run make with the ``COMPRESS=uncomp`` argument.
Q: Why in the hell are you bundling your own build of ``ld``?
A: Newer binutils (Like the one bundled with Ubuntu, 2.34) break linking with libultra builds due to local asm symbols.
This puts me at a crossroads of either touching leaked code and requiring GCC, or just using an older linker that works just fine.
I went with the latter.
Thanks to "someone2639" for this hacky-ass idea

1
VERSION.txt Normal file
View File

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

View File

@@ -4,7 +4,7 @@ const GeoLayout boo_geo[] = {
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 26214),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_update_layer_transparency),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, 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(0, geo_update_layer_transparency),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, 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(0, geo_update_layer_transparency),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, 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(0, geo_update_layer_transparency),
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
GEO_SWITCH_CASE(3, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),

View File

@@ -120,7 +120,7 @@ const Gfx flame_seg6_dl_0601C108[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06000000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06000000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -132,7 +132,7 @@ const Gfx flame_seg6_dl_0601C1A8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06002000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06002000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06002000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -144,7 +144,7 @@ const Gfx flame_seg6_dl_0601C248[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06004000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06004000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06004000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -156,7 +156,7 @@ const Gfx flame_seg6_dl_0601C2E8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06006000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06006000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06006000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -168,7 +168,7 @@ const Gfx flame_seg6_dl_0601C388[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06008000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06008000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06008000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -180,7 +180,7 @@ const Gfx flame_seg6_dl_0601C428[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0600A000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0600A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -192,7 +192,7 @@ const Gfx flame_seg6_dl_0601C4C8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0600C000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600C000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0600C000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -204,7 +204,7 @@ const Gfx flame_seg6_dl_0601C568[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0600E000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600E000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0600E000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -216,7 +216,7 @@ const Gfx flame_seg6_dl_0601C608[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06010000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06010000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06010000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -228,7 +228,7 @@ const Gfx flame_seg6_dl_0601C6A8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06012000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06012000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06012000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -240,7 +240,7 @@ const Gfx flame_seg6_dl_0601C748[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06014000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06014000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06014000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -252,7 +252,7 @@ const Gfx flame_seg6_dl_0601C7E8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06016000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06016000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06016000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -264,7 +264,7 @@ const Gfx flame_seg6_dl_0601C888[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06018000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06018000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06018000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -276,7 +276,7 @@ const Gfx flame_seg6_dl_0601C928[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0601A000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0601A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0601A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),

View File

@@ -1,7 +1,7 @@
// Breakable Box
// 0x08012D70 - 0x08012DF4
const Collision breakable_box_seg8_collision_08012D70[] = {
const Collision breakable_box_seg8_collision[] = {
COL_INIT(),
COL_VERTEX_INIT(0x8),
COL_VERTEX(-100, 0, -100),
@@ -29,3 +29,6 @@ const Collision breakable_box_seg8_collision_08012D70[] = {
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

@@ -2,12 +2,12 @@
const GeoLayout breakable_box_geo[] = {
GEO_CULLING_RADIUS(500),
GEO_OPEN_NODE(),
GEO_SHADOW(SHADOW_SQUARE_PERMANENT, 0xB4, 240),
GEO_SHADOW(SHADOW_SQUARE_PERMANENT, 0xA0, 240),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_08012D20),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_08012D48),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_crazy_box),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_cork_box),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
@@ -15,13 +15,13 @@ const GeoLayout breakable_box_geo[] = {
};
// 0x0F000610
const GeoLayout breakable_box_small_geo[] = {
const GeoLayout breakable_box_no_shadow_geo[] = {
GEO_CULLING_RADIUS(500),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_08012D20),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_08012D48),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_crazy_box),
GEO_DISPLAY_LIST(LAYER_OPAQUE, breakable_box_seg8_dl_cork_box),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),

View File

@@ -1,7 +1,7 @@
// Breakable Box
// 0x08011A78
static const Lights1 breakable_box_seg8_lights_08011A80 = gdSPDefLights1(
static const Lights1 breakable_box_seg8_lights_default = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
@@ -17,7 +17,7 @@ ALIGNED8 static const Texture breakable_box_seg8_texture_08012290[] = {
};
// 0x08012A90
static const Vtx breakable_box_seg8_vertex_08012A90[] = {
static const Vtx breakable_box_seg8_vertex[] = {
{{{ -100, 0, -100}, 0, { 992, 0}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -100, 0, 100}, 0, { 992, 992}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -100, 200, 100}, 0, { 0, 992}, {0x81, 0x00, 0x00, 0xff}}},
@@ -33,10 +33,6 @@ static const Vtx breakable_box_seg8_vertex_08012A90[] = {
{{{ 100, 200, 100}, 0, { 0, 992}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 100, 0, 100}, 0, { 992, 992}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 100, 0, -100}, 0, { 992, 0}, {0x7f, 0x00, 0x00, 0xff}}},
};
// 0x08012B80
static const Vtx breakable_box_seg8_vertex_08012B80[] = {
{{{ -100, 200, 100}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 100, 200, -100}, 0, { 992, 992}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ -100, 200, -100}, 0, { 992, 0}, {0x00, 0x7f, 0x00, 0xff}}},
@@ -51,18 +47,16 @@ static const Vtx breakable_box_seg8_vertex_08012B80[] = {
};
// 0x08012C30 - 0x08012CD8
const Gfx breakable_box_seg8_dl_08012C30[] = {
gsSPLight(&breakable_box_seg8_lights_08011A80.l, 1),
gsSPLight(&breakable_box_seg8_lights_08011A80.a, 2),
gsSPVertex(breakable_box_seg8_vertex_08012A90, 15, 0),
const Gfx breakable_box_seg8_sub_dl_end[] = {
gsSPLight(&breakable_box_seg8_lights_default.l, 1),
gsSPLight(&breakable_box_seg8_lights_default.a, 2),
gsSPVertex(breakable_box_seg8_vertex, 26, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0),
gsSP1Triangle(11, 13, 14, 0x0),
gsSPVertex(breakable_box_seg8_vertex_08012B80, 11, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSP1Triangle( 8, 9, 10, 0x0),
gsSP2Triangles(11, 13, 14, 0x0, 15, 16, 17, 0x0),
gsSP2Triangles(15, 18, 16, 0x0, 19, 20, 21, 0x0),
gsSP2Triangles(19, 21, 22, 0x0, 23, 24, 25, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
@@ -71,9 +65,9 @@ const Gfx breakable_box_seg8_dl_08012C30[] = {
};
// 0x08012CD8 - 0x08012D20
const Gfx breakable_box_seg8_dl_08012CD8[] = {
const Gfx breakable_box_seg8_sub_dl_begin[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE),
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),
@@ -84,19 +78,19 @@ const Gfx breakable_box_seg8_dl_08012CD8[] = {
};
// 0x08012D20 - 0x08012D48
const Gfx breakable_box_seg8_dl_08012D20[] = {
gsSPDisplayList(breakable_box_seg8_dl_08012CD8),
const Gfx breakable_box_seg8_dl_crazy_box[] = {
gsSPDisplayList(breakable_box_seg8_sub_dl_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, breakable_box_seg8_texture_08011A90),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPBranchList(breakable_box_seg8_dl_08012C30),
gsSPBranchList(breakable_box_seg8_sub_dl_end),
};
// 0x08012D20 - 0x08012D70
const Gfx breakable_box_seg8_dl_08012D48[] = {
gsSPDisplayList(breakable_box_seg8_dl_08012CD8),
const Gfx breakable_box_seg8_dl_cork_box[] = {
gsSPDisplayList(breakable_box_seg8_sub_dl_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, breakable_box_seg8_texture_08012290),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPBranchList(breakable_box_seg8_dl_08012C30),
gsSPBranchList(breakable_box_seg8_sub_dl_end),
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

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