You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
Compare commits
95 Commits
v2.3.0
...
jam/2.1.0-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6a1e5c1cd | ||
|
|
6ca3aa3392 | ||
|
|
31cfdd859d | ||
|
|
d9c83c4265 | ||
|
|
27278438a6 | ||
|
|
2037bb80ad | ||
|
|
4b1a111c35 | ||
|
|
8886235095 | ||
|
|
e177423653 | ||
|
|
5e49712e0a | ||
|
|
4b237fd244 | ||
|
|
3ae3cee418 | ||
|
|
9bdb9d0e28 | ||
|
|
ec3e5ae01f | ||
|
|
a27bd2cdf3 | ||
|
|
4f14898a01 | ||
|
|
827d80aab7 | ||
|
|
49fcfbafc9 | ||
|
|
542d0a853e | ||
|
|
735dc6b363 | ||
|
|
ebac28a62d | ||
|
|
0b63049267 | ||
|
|
0e048762d5 | ||
|
|
44065c2c68 | ||
|
|
a7b8d637ce | ||
|
|
047cd233dd | ||
|
|
71f9b98787 | ||
|
|
6ccfa1982c | ||
|
|
6b362ede1f | ||
|
|
9dda4c7816 | ||
|
|
8bf5423931 | ||
|
|
6de1438162 | ||
|
|
15d624102a | ||
|
|
854da9c9b1 | ||
|
|
d05444e034 | ||
|
|
f3a97f3510 | ||
|
|
3b5fd86225 | ||
|
|
5f23b22e22 | ||
|
|
17d7d32fd3 | ||
|
|
10ff5ba8dc | ||
|
|
5adfaefd79 | ||
|
|
c6d79a82ed | ||
|
|
04ebaf034b | ||
|
|
6ebe9a664e | ||
|
|
59b423fd93 | ||
|
|
d976334d61 | ||
|
|
6d361a88a4 | ||
|
|
a256a22e38 | ||
|
|
70ff3079c0 | ||
|
|
9f99848580 | ||
|
|
253aeb8074 | ||
|
|
cc91c06d0a | ||
|
|
8d7658c8ba | ||
|
|
57e3b1f31b | ||
|
|
d09bb4ef25 | ||
|
|
2c5bf00235 | ||
|
|
f4a69f3d4a | ||
|
|
aeaca2a880 | ||
|
|
647599eb1d | ||
|
|
ce31dd4586 | ||
|
|
58d2d3c20f | ||
|
|
f90ad6d2a8 | ||
|
|
ec21aa7e74 | ||
|
|
11b3bff9f0 | ||
|
|
cc7165c1ea | ||
|
|
9b0b1312fd | ||
|
|
9ed1f1a569 | ||
|
|
aa04129fd2 | ||
|
|
9c645dc642 | ||
|
|
a7b208e8e8 | ||
|
|
52600eb453 | ||
|
|
ee5f5adc9d | ||
|
|
d5f62fac42 | ||
|
|
56be09724d | ||
|
|
3fac5ad059 | ||
|
|
6ba4fcdba1 | ||
|
|
38c6e456f1 | ||
|
|
3146970844 | ||
|
|
7b58f63cbc | ||
|
|
2329786f88 | ||
|
|
d7251a268e | ||
|
|
ca9f7967c8 | ||
|
|
1b66355249 | ||
|
|
0789cf118e | ||
|
|
1b37e627bc | ||
|
|
886d9841a8 | ||
|
|
3d24cdee18 | ||
|
|
c9523aaa0b | ||
|
|
84bbd2ae14 | ||
|
|
9caafc54eb | ||
|
|
feff004ef9 | ||
|
|
2b9f736b20 | ||
|
|
d84bc0633b | ||
|
|
2e0c964646 | ||
|
|
865638eb7f |
26
.gitattributes
vendored
26
.gitattributes
vendored
@@ -2,19 +2,19 @@
|
||||
* text=auto
|
||||
|
||||
# List text files in case git doesn't characterize correctly
|
||||
*.c text
|
||||
*.h text
|
||||
*.s text
|
||||
*.in text
|
||||
*.js text
|
||||
*.md text
|
||||
*.py text
|
||||
*.sh text
|
||||
*.ld text
|
||||
*.inc text
|
||||
*.txt text
|
||||
*.json text
|
||||
*.yaml text
|
||||
*.c text eol=lf
|
||||
*.h text eol=lf
|
||||
*.s text eol=lf
|
||||
*.in text eol=lf
|
||||
*.js text eol=lf
|
||||
*.md text eol=lf
|
||||
*.py text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.ld text eol=lf
|
||||
*.inc text eol=lf
|
||||
*.txt text eol=lf
|
||||
*.json text eol=lf
|
||||
*.yaml text eol=lf
|
||||
|
||||
# Same for binary
|
||||
*.bin binary
|
||||
|
||||
2126
.gitignore
vendored
2126
.gitignore
vendored
File diff suppressed because it is too large
Load Diff
6
.vscode/c_cpp_properties.json
vendored
6
.vscode/c_cpp_properties.json
vendored
@@ -26,14 +26,12 @@
|
||||
"VERSION_US=1",
|
||||
"F3DEX_GBI_2=1",
|
||||
"F3DZEX_NON_GBI_2=1",
|
||||
"F3DEX_GBI_SHARED=1",
|
||||
"NON_MATCHING=1",
|
||||
"AVOID_UB=1"
|
||||
"F3DEX_GBI_SHARED=1"
|
||||
],
|
||||
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "gnu++14",
|
||||
"intelliSenseMode": "linux-gcc-x64"
|
||||
"intelliSenseMode": "linux-gcc-x86"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
|
||||
416
CHANGES
416
CHANGES
@@ -1,416 +0,0 @@
|
||||
Refresh 15 (mostly a hotfix for RSP microcode selection)
|
||||
|
||||
1.) Renamed frame_buffer funcs and _ZBUFFER (#1184)
|
||||
2.) RSP Microcode Hotfix (#1183)
|
||||
3.) Label osSetTimer.c (#1182)
|
||||
4.) Fix styling (#1177)
|
||||
5.) Rename all `FrameBuffer` variants to `Framebuffer` (#1176)
|
||||
6.) Remove (WIP) from sh.
|
||||
7.) Allow both archives and ELF objects to be patched (#1127)
|
||||
|
||||
Refresh 14
|
||||
|
||||
1.) Label whomp and some object fields (#1174)
|
||||
2.) Generate MIO0 object files using binutils `ld` instead of `as` (#1173)
|
||||
3.) Bowser documentation (#1166)
|
||||
4.) Fix comment syntax in 00_sound_player.0 (#1172)
|
||||
5.) Rename in-game menu variables (#1163)
|
||||
6.) Document double red coin sound and JP sound glitch (#1170)
|
||||
7.) Document different bug in external.c (#1168)
|
||||
8.) updated names/types of octagonal platform data (#1164)
|
||||
9.) Label a number of unnamed variables. (#1169)
|
||||
10.) Document JP PU sound glitch (#1167)
|
||||
11.) Set model ids to spawn_triangle_break_particles (#1165)
|
||||
12.) Fix borders in clear_frame_buffer (#1162)
|
||||
13.) Fix seq header files for 64-bit (#1161)
|
||||
14.) Game_init.c remaining doc (#1158)
|
||||
15.) Label a couple static variables in sound_init.c (#1159)
|
||||
16.) Properly define dialog values (status, flags, cutscenes) (#1153)
|
||||
17.) Label all of amp's assets. (#1018)
|
||||
18.) Split audio/synthesis.c into Shindou/non-Shindou files (#1144)
|
||||
19.) Avoid CC_CHECK warnings when using gcc (#1157)
|
||||
20.) level_select_menu.c => title_screen.c (#1152)
|
||||
21.) Use C preprocessor on assembly files (#1126)
|
||||
22.) Replace output_level_headers.py with sed equivalent (#1109)
|
||||
23.) Fix CC_CHECK warnings related to unused symbols and UB (#1155)
|
||||
24.) Define remaining floor lower limit values (#1147)
|
||||
25.) use r+b mode for libultra.a patch tool (#1148)
|
||||
26.) Use proper values for gPrevFrameObjectCount ifs (#1146)
|
||||
27.) Some minor bowser.inc.c labelling. (#1150)
|
||||
28.) fix king bob-omb texture pointers (#1145)
|
||||
29.) Split audio/load.c into Shindou/non-Shindou files (#1143)
|
||||
30.) Small Shindou audio cleanups (#1142)
|
||||
31.) Fix endians in ALSeqData (#1141)
|
||||
32.) Document S8 decoder rsp operation and some more (#1139)
|
||||
33.) Fix Shindou synthesis_process_note fake match (#1140)
|
||||
34.) More audio documentation, for the new rsp code and other fixes (#1138)
|
||||
35.) Build fixes for macOS: cpp, clang, recomp, aiff_extract_codebook (#1135)
|
||||
36.) Add ENABLE_RUMBLE to config.h (#1122)
|
||||
37.) Reduce recomp memory consumption by using smaller disassembly blocks (#1128)
|
||||
38.) Makefile fixes (#1123)
|
||||
39.) Update README.md
|
||||
40.) Update README.md
|
||||
41.) Reflect current decompilation status
|
||||
42.) Allow both archives and ELF objects to be patched (#1127)
|
||||
43.) Remove WIP mention in README for sh version.
|
||||
|
||||
Refresh 13 2
|
||||
|
||||
- No more nonmatchings remain for all builds including Shindou.
|
||||
|
||||
1.) Shindou OK (#1118)
|
||||
2.) Match shindou sequence_player_process_sequence (#1117)
|
||||
3.) Match func_sh_802f4e50 (#1116)
|
||||
|
||||
Refresh 13
|
||||
|
||||
- No more nonmatchings remain for US, JP, or EU builds. Three(!!!) remain for Shindou (SH).
|
||||
|
||||
*) SHINDOU MATCHING (#1081)
|
||||
*) Makefile gcc fixes (#1114)
|
||||
|
||||
1.) Update diff.py (#1113)
|
||||
2.) Add support for generating C arrays from n64graphics and add Texture typedef (#1032)
|
||||
3.) Update README and Dockerfile with recomp info (#1105)
|
||||
4.) Support building tools with MSYS2 (#1112)
|
||||
5.) Support building tools with clang and macOS (#1106)
|
||||
6.) Clean tools directory when running distclean target (#1104)
|
||||
7.) Make build output cleaner (#1095)
|
||||
8.) Added 2 surface defines to bowser.inc.c (#1111)
|
||||
9.) fix fake matchings (#1108)
|
||||
10.) Use statically recompiled IDO instead of qemu-irix (#1099)
|
||||
11.) Add VERBOSE=1 to Jenkinsfile
|
||||
12.) updated intro_geo to use layer defines for geo flags (#1090)
|
||||
13.) Fix F3DZEX (#1097)
|
||||
14.) layer_transpose should take an s8 (#1093)
|
||||
15.) Fix tools/ build (#1082)
|
||||
16.) Relabel and document fish.inc.c (#1077)
|
||||
17.) Ensure all calls to .py files use $(PYTHON) (#1080)
|
||||
18.) Name Mario, Peach, and instrument sound files (#1078)
|
||||
19.) Goddard labeling, part 2 (#1076)
|
||||
20.) Fix envfx_snow and envfx_bubbles fake matches (#1075)
|
||||
21.) Use array subscripts instead of pointer math in 2 files (#1074)
|
||||
22.) refactor Makefile a bit (#1068)
|
||||
23.) Further improvements on field names (#1059)
|
||||
24.) Label and document manta_ray.inc.c (#1073)
|
||||
25.) Fix level_script and behavior fake matches (#1072)
|
||||
26.) Proper cell defines and more floor lower limit values. (#1065)
|
||||
27.) Document and re-label some goddard/intro code (#1069)
|
||||
28.) Match remaining functions (#1070)
|
||||
29.) match 'spawn_special_objects' (#1071)
|
||||
30.) Document parts of external.c and format sound defines (#1067)
|
||||
|
||||
Refresh 12
|
||||
|
||||
1.) Debug box improvements (#1066)
|
||||
2.) Improve 'geo_render_mirror_mario' (#1064)
|
||||
3.) Cleanup and small labeling (#1063)
|
||||
4.) Anim renames and other related renames (#1062)
|
||||
5.) remove do while 0 and make one line comments consistent (#1061)
|
||||
6.) fixed typo in segments.h (#1060)
|
||||
7.) Name unknown fields (from public repo) (#1058)
|
||||
8.) Change 'void *' to 'struct MainPoolState *' (#1057)
|
||||
9.) Fix type of freeList (#1056)
|
||||
10.) Newer version of diff script (#1055)
|
||||
11.) Add stubbed_printfs based on unused audio strings (#1054)
|
||||
12.) Fix comment in paintings.c (#1053)
|
||||
13.) Add defines for hardcoded cell/floor height values (#1051)
|
||||
14.) Update README.md: Remove GitHub specific Markdown syntax (#1052)
|
||||
15.) Properly label interation status that handle's Bowser's shockwave attack (#1050)
|
||||
|
||||
Refresh 11
|
||||
1.) Make geo_process_level_of_detail endian-independent (#1049)
|
||||
2.) Label oMoveFlags and slight cleanup. (#1046)
|
||||
3.) Avoid UB in synthesis_resample_and_mix_reverb (#1048)
|
||||
4.) Change some void * to correct type (#1047)
|
||||
5.) Remove oPathedWaypointsS16 and convert all paths to Trajectory struct. (#1045)
|
||||
6.) Mr Blizzard documentation, Tox Box Unks (#1042)
|
||||
7.) Pipe input to textconv. (#1041)
|
||||
8.) Remove erroneous long double casts from audiofile.cpp (#1039)
|
||||
9.) Replace fixed dialogID in play_dialog_sound to DIALOG_COUNT (#1040)
|
||||
|
||||
Refresh #10.1
|
||||
1.) Diff update (#1033)
|
||||
2.) Fix texture dimensions for exclamation boxes (#1034)
|
||||
3.) Fix armips compilation on Windows by changing order of inclusion files (#1035)
|
||||
4.) Embed libaudiofile into the repo as a single file (#1036)
|
||||
5.) Fix some tools issues found while compiling on MSYS2 (#1037)
|
||||
|
||||
Refresh #10
|
||||
1.) GCC 9 noreturn UB fixes (#961)
|
||||
2.) List supported binutils variants in README.md (#960)
|
||||
3.) fix fly guy's possible values for target roll
|
||||
4.) clarify that 1 is an exclusive bound in random_float (#962)
|
||||
5.) replace unkB8 with prevNumStarsForDialog (#963)
|
||||
6.) Replace "BulletBillUnkF8" with "BulletBillInitialMoveYaw" (#966)
|
||||
7.) Renamed more warp behaviors and spawn types (#949)
|
||||
8.) EU bss cleanups (#965)
|
||||
9.) Add -fno-zero-initialized-in-bss to GCC CFLAGS (#968)
|
||||
10.) Use empty .SECONDARY target instead of .PRECIOUS (#964)
|
||||
11.) Match EU seq_channel_layer_process_script (#969)
|
||||
12.) Fix version variable overwriting bug for non-matching compilations (#974)
|
||||
13.) small bhv_collect_star_init labeling (#972)
|
||||
14.) Align SI DMA command buffers, add more names to osCont code (#973)
|
||||
15.) Minor for loop fix in playback.c (#976)
|
||||
16.) Add Docker config (Public #36)
|
||||
17.) Fix usage output crash for skyconv (#977)
|
||||
18.) Cleanup tools and their build flags (#978)
|
||||
19.) Print more detailed file reading error messages in extract_assets (#982)
|
||||
20.) Remove asmdiff (#983)
|
||||
21.) Fixed tabledesign makefile bug (#985)
|
||||
22.) Improve first-diff.py (#987)
|
||||
23.) Bring in some enhancements such as widescreen enhancements (#981)
|
||||
24.) Fix background shadow border if widescreen in shade_screen (#988)
|
||||
25.) Merge common EU sections in osExceptionPreamble (#990)
|
||||
26.) Introduce the NO_SEGMENTED_MEMORY define (#989)
|
||||
27.) NO_SEGMENTED_MEMORY comments (#992)
|
||||
28.) Introduce f3dex2e and a GBI_FLOATS setting (#993)
|
||||
29.) Audio uses signed 16-bit integers as samples, not unsigned (#995)
|
||||
30.) Assemble RSP ucode with armips (#970)
|
||||
31.) Label Mr. Blizzard, Yoshi, Whomp, Wiggler, Wood Piece oFields. (#996)
|
||||
32.) update crash enhancement (#1003)
|
||||
33.) Update README.md to use new public Discord server invite
|
||||
34.) Label variables in act_idle. (#1005)
|
||||
35.) Fix a typo in camera.h (#1009)
|
||||
36.) Fixed up profiler.c (#1010)
|
||||
37.) Add -d to first-diff.py (#1012)
|
||||
38.) Fix typo in first-diff.py (#1013)
|
||||
39.) Remove binutils 2.27 dependency check (#1015)
|
||||
40.) Update armips to v0.11.0 tag and add generator script (#1004)
|
||||
41.) Extract IPL3 font from ROM (#1011)
|
||||
42.) Documented audio playback flags (#1021)
|
||||
43.) Change RSP register notation to dollar-prefixed numbers (#1022)
|
||||
44.) Only check for QEMU_IRIX in Makefile when compiling with IDO (#1023)
|
||||
45.) Clean up header files and update function prototypes (#1000)
|
||||
46.) Named local variables in geo_update_layer_transparency (#1019)
|
||||
47.) Extract crash screen font textures from EU and SH ROMs (#1025)
|
||||
48.) Use ACTIVE_FLAG defines where appropriate (#1026)
|
||||
49.) Changed type of actor collision from s16 to Collision (#1024)
|
||||
50.) Implement sqrtf in assembly file (#1028)
|
||||
51.) Rename Struct8032FCE8 as OpenableGrill and identify data members (#1029)
|
||||
52.) Fix some mistakes in the abi doc (#1031)
|
||||
53.) The README.md PR (#979)
|
||||
|
||||
Refresh #8
|
||||
1.) Use INT_STATUS_ macros for oInteractStatus (#911)
|
||||
2.) Update bullet_bill.inc.c (#912)
|
||||
3.) Make geo.c in levels nonconst to reduce diffs with gcc enhancement patch in future (#913)
|
||||
4.) Improve process_level_music_dynamics (#915)
|
||||
5.) add AVOID_UB define for fixing libultra aliasing. (#916)
|
||||
6.) const hack to TARGET_N64 and tweak ld script (#918)
|
||||
7.) Replace raw level/course numbers with defines (#919)
|
||||
8.) Label all graph node flags. (#920)
|
||||
9.) readme.md capitalization
|
||||
10.) The Big Function PR (Part 5) (#910)
|
||||
11.) Label hardware registers (#922)
|
||||
12.) Match EU synthesis_process_note (#923)
|
||||
13.) Some quick value changes (#909)
|
||||
14.) Added sequence player defines (#926)
|
||||
15.) Shindou diffs 2 [merge game.c and display.c, required for SH] (#927)
|
||||
16.) Match synthesis_process_notes and use -sopt for synthesis.c (#928)
|
||||
17.) Fix mips64-binutils for Fedora 31 and similar Linux distros (#931)
|
||||
18.) Update first-diff.py to work with Shindou (#933)
|
||||
19.) Labelled behavior_script.c (#929)
|
||||
20.) shindou diffs up to level_update (#932)
|
||||
21.) Update diff.py and diff_settings.py to work with SH (#936)
|
||||
22.) Add some Shindou resources to extract_assets.py (#939)
|
||||
23.) Label and document gd_math.c (#930)
|
||||
24.) Label all of Mario's actions. (#941)
|
||||
25.) Label all particles. (#940)
|
||||
26.) Renamed death related warpBhvs (#942)
|
||||
27.) Small Shindou differences (#945)
|
||||
28.) match player_performed_grab_escape_action in all versions (#943)
|
||||
29.) add main alignment (aglab2, #947)
|
||||
30.) Match a bunch of fake EU matchings (#944)
|
||||
31.) Shindou diffs round 4 (#937)
|
||||
32.) Easy PAL fake matchings (#946)
|
||||
33.) Merge object_helpers and object_helpers2 headers (#948)
|
||||
34.) match cap_check_quicksand (#950)
|
||||
35.) Shindou crash screen diffs (#938)
|
||||
36.) Thread6 (#951)
|
||||
37.) Correct IPL3 function and label addresses (#952)
|
||||
38.) Add COMPILER flag for Makefile and add official mips gcc support. (#953)
|
||||
39.) add align to sequence_00 (fixes gcc build) (#957)
|
||||
40.) Fixed itty bitty typo (#959)
|
||||
|
||||
Refresh #7
|
||||
1.) update README.md (#861)
|
||||
2.) [eu] fix decompilation bugs in synthesis_process_note (#862)
|
||||
3.) Label and document Snufit.inc.c (#863)
|
||||
4.) Label and document Snufit.inc.c (#863)
|
||||
5.) Match append_bubble_vertex_buffer, append_snowflake_vertex_buffer (#860)
|
||||
6.) Compile audio/effects.c with -sopt (#870)
|
||||
7.) Match handle_dialog_text_and_pages (#872)
|
||||
8.) Remove improperly used LEVEL_SA define. (#875)
|
||||
9.) Remove unused EU ASM files (#873)
|
||||
10.) Shindou build flag support (#876)
|
||||
11.) The Big Function PR (Part 1) (#864)
|
||||
12.) "Re-document" file_select and star_select for EU (#877)
|
||||
13.) Document paintings.c (#868)
|
||||
14.) Minor interaction.c labelling/documentation. (#882)
|
||||
15.) Match synthesis_execute, prepare_reverb_ring_buffer, func_eu_802e00d8 (#886)
|
||||
16.) The Big Function PR (Part 2) (#874)
|
||||
17.) Additional painting documentation (#883)
|
||||
18.) Some EU audio labelling (#885)
|
||||
19.) Bring synthesis_do_one_audio_update a bit closer to matching (#887)
|
||||
20.) Misleading comment, this actually contols Bowser's init action (#889)
|
||||
21.) Match synthesis_do_one_audio_update (#890)
|
||||
22.) Remove unneeded if(1) in synthesis_do_one_audio_update (#891)
|
||||
23.) Match synthesis_resample_and_mix_reverb (#893)
|
||||
24.) Set LANG=C (#896)
|
||||
25.) Match note_apply_headset_pan_effects (#897)
|
||||
26.) Match play_sequence (#898)
|
||||
27.) Match sequence_channel_enable (#899)
|
||||
28.) Match sequence_player_process_sequence (#900)
|
||||
29.) Match (eu) alloc_bank_or_seq (#901)
|
||||
30.) Match alloc_bank_or_seq (#903)
|
||||
31.) Update README.md (again)
|
||||
32.) Documented behaviour/fish.inc.c & blue_fish.inc.c (#894)
|
||||
33.) Labelled 4 behavior files, made object_helper functions consistent (#881)
|
||||
34.) Add a make target for .copt (#902)
|
||||
35.) The Big Function PR (Part 3) (#888)
|
||||
36.) The Big Function PR (Part 4) (#906)
|
||||
37.) Rename src/audio/memory.c -> heap.c (#907)
|
||||
38.) Fix BBH texture (#908)
|
||||
|
||||
Refresh #6
|
||||
1.) Make tools work on MinGW (#804)
|
||||
2.) Document mario_misc (#628)
|
||||
3.) add patch_libmalloc.py script to work around compiler crashes (#811)
|
||||
4.) Label the coffins file. (#829)
|
||||
5.) Convert enhancements into patches (#827)
|
||||
6.) Document Tweester.inc.c (#840)
|
||||
7.) EU OK and cleanup EU (#782)
|
||||
|
||||
Refresh #5
|
||||
1.) mem_error_screen.inc.c updated for C (#775)
|
||||
2.) updated patch_libultra_math to work directly on libultra.a (#781)
|
||||
3.) Enhancement: Debug boxes (#783)
|
||||
4.) Label effects MemoryPool (#784)
|
||||
5.) Use full-width characters for JP text and rename mislabeled stuff (#772)
|
||||
6.) Small asset extraction fixes (#785)
|
||||
7.) Fix incremental asset extraction after the last PR (#790)
|
||||
8.) Labelled behavior script commands, tidied up behavior scripts and ren…
|
||||
9.) Document camera.c (#741)
|
||||
10.) Fix a HMC texture asset (#795)
|
||||
11.) Fix UB in angle conversion for paintings. Needed for pc-port. (#796)
|
||||
12.) Fix PSS texture assets (#801)
|
||||
13.) Fix some camera typos (#802)
|
||||
|
||||
Refresh #4
|
||||
1.) Label screen_transition.c (#737)
|
||||
2.) Revamp macros (#738)
|
||||
3.) Simplify the cake makefile logic (#739)
|
||||
4.) Move zbuffer to C (#742)
|
||||
5.) Audio blob endian/64-bit fixes (#740)
|
||||
6.) Ub fixes (#745)
|
||||
7.) process_level_music_dynamics: slightly better stack and regalloc (#746)
|
||||
8.) move level order specific definitions out to levels/level_defines.h (#743)
|
||||
9.) Renamed some mislabelled sound effects (#748)
|
||||
10.) Very minor white space fixes in Mario.c (#752)
|
||||
11.) Renamed GRAVITY to OBJ_PHYSICS (#755)
|
||||
12.) Use defined macros instead of literal values for interactions in behavior_data.c (#754)
|
||||
13.) iQue Player console detection + full support (#756)
|
||||
14.) Fix Goddard Mario head for little endian etc. (#757)
|
||||
15.) Small bits of audio doc (#749)
|
||||
16.) Update diff script (#750)
|
||||
17.) Nicer format for course/dialog text, enum for dialog IDs (#753)
|
||||
18.) first-diff: store most recent mtime during check (#759)
|
||||
19.) Use Lights1 struct for light values (#760)
|
||||
20.) Detect mips64-elf in diff.py (#761)
|
||||
21.) Name display lists in gd renderer.c (#764)
|
||||
22.) Document a variety of PU type crashes. (#765)
|
||||
23.) Label object_behaviors. (#716)
|
||||
24.) Update swoop.inc.c (#767)
|
||||
25.) Label tilting_pyramid.inc.c (#768)
|
||||
26.) Label red_coin.inc.c (#770)
|
||||
27.) Use more level defines (#758)
|
||||
28.) Named Mario actions 6, 7, and 8 and noted causes of hands-free holding glitch (#769)
|
||||
|
||||
Refresh #3
|
||||
1.) Small bits of sound sample labelling
|
||||
2.) Append 'b' to fopen calls in n64graphics to satisfy Windows
|
||||
3.) Document synthesis.c and abi.h
|
||||
4.) Remove gbi_old.h and use gbi.h instead for F3D_OLD
|
||||
5.) Fix and change most values used by f3d commands
|
||||
6.) Convert actors to C
|
||||
7.) Make extract_assets.py fail on bad baserom
|
||||
8.) Fix some (pragma-ignored) warnings
|
||||
9.) Convert trig tables and data/ buffers into C
|
||||
10.) Document intro behaviors and some of camera.c
|
||||
11.) Match dma_sample_data
|
||||
12.) Convert levels, bin, text, goddard_tex_dl to C
|
||||
13.) Remove .bss size hardcoding
|
||||
14.) Add mips64 fallback and alt dump option to diff.sh
|
||||
15.) Convert behavior_data to C
|
||||
16.) Get rid of the enum in behavior_data.
|
||||
17.) Change more values used by f3d commands
|
||||
18.) Document game/skybox.c
|
||||
19.) Actors levels fixup
|
||||
20.) Convert Mario animations to C (kind of)
|
||||
22.) generate skybox data from 248x248 images
|
||||
23.) 64-bit fixes
|
||||
24.) Move demo data to C
|
||||
25.) Change uintptr_t to GeoLayout for actors
|
||||
26.) Move libc includes to include/libc/
|
||||
|
||||
Refresh #2a (hotfix)
|
||||
Changes from Refresh #2:
|
||||
|
||||
1.) Fixed text Makefile dependencies"
|
||||
|
||||
Refresh #2
|
||||
Changes from Refresh #1:
|
||||
|
||||
1.) Label src/game/behaviors/boo.inc.c
|
||||
2.) Verify half of audio_defines.h
|
||||
3.) Label ingame_menu.c and some dialog stuff
|
||||
4.) Improve handle_dialog_text_and_pages EU non-matching
|
||||
5.) Fix texture format for water splash/sparkle
|
||||
6.) Merge ucode.bin and ucode_unk.bin
|
||||
7.) 64-bit fixes
|
||||
8.) [AUDIO] Match func_80316928
|
||||
9.) Documented bug in Tuxie's mother's code
|
||||
10.) [AUDIO] Slightly closer matching for process_level_music_dynamics
|
||||
11.) Name channel scripts in sequence 0
|
||||
12.) Nicer error message when sha1sum doesn't match
|
||||
13.) Refactor object fields
|
||||
14.) Document file_select.c
|
||||
15.) Document star_select.c
|
||||
16.) Add uncompressed string support to textconv
|
||||
17.) Document main_menu geo and leveldata
|
||||
18.) Document hud.c and rename char textures
|
||||
19.) Correct gSPTextureRectangle values
|
||||
20.) Linker script wildcard
|
||||
- Fixes "undefined reference to x in discarded section y" linker errors.
|
||||
- Also means that you no longer have to add linker script entries for source files.
|
||||
21.) Reference qemu-irix package and add project structure
|
||||
- Installing qemu-irix is as simple as installing the provided Debian package on the GitHub "Releases" tab
|
||||
(https://github.com/n64decomp/qemu-irix).
|
||||
- Old qemu-irix installs are unaffected by this change, and it is still possible to install qemu-irix with the older method.
|
||||
|
||||
Refresh #1
|
||||
Changes from initial release:
|
||||
|
||||
1.) More README cleanups and documentation
|
||||
2.) Fix .gitignore in tools/
|
||||
3.) More README cleanups and corrections
|
||||
4.) oUnk190 -> oInteractionSubtype
|
||||
5.) Normalize line endings
|
||||
6.) Replace bank_sets.s by sequences.json + build magic
|
||||
7.) Fix tabledesign in .gitignore
|
||||
8.) Cleaned and documented arrays in audio/
|
||||
9.) Change minimum Python 3 requirement in README.md to 3.6
|
||||
10.) Remove whitespace in ingame_menu.c, save_file.c, and star_select.c
|
||||
11.) Documentation comment style fixed
|
||||
12.) sm64.map -> sm64.version.map (ex: sm64.us.map)
|
||||
13.) Decompile EU versions of HUD and obj behaviors
|
||||
14.) Label ukiki.inc.c and ukiki_cage.inc.c
|
||||
15.) Add missing OS header includes
|
||||
16.) Fix alignment issue in model_ids.h
|
||||
17.) A bunch of behavior changes:
|
||||
a.) Made styles consistent with function names (ex: BehBehaviorLoop -> beh_behavior_loop)
|
||||
b.) Split obj_behaviors_2.c into multiple .inc.c files in behaviors/
|
||||
c.) bhvHauntedRoomCheck -> bhvCoffinManager
|
||||
18.) Update README.md notes on WSL and add links
|
||||
19.) Added tidy.sh and also bracing around single-line ifs and loops
|
||||
@@ -4,7 +4,7 @@
|
||||
# These owners will be the default owners for everything in the repo.
|
||||
* @Reonu
|
||||
* @thecozies
|
||||
* @Mr-Wiseguy
|
||||
* @gheskett
|
||||
|
||||
# Order is important. The last matching pattern has the most precedence.
|
||||
# So if a pull request only touches javascript files, only these owners
|
||||
|
||||
60
Jenkinsfile
vendored
60
Jenkinsfile
vendored
@@ -1,60 +0,0 @@
|
||||
pipeline {
|
||||
agent any
|
||||
stages {
|
||||
stage('Build Tools') {
|
||||
steps {
|
||||
sh 'make -j4 -C tools/'
|
||||
}
|
||||
}
|
||||
stage('Extract Assets') {
|
||||
steps {
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (J) [!].z64" baserom.jp.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 - Shindou Edition (J) [!].z64" baserom.sh.z64'
|
||||
// verify no assets were committed to repo
|
||||
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
|
||||
sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
|
||||
sh './extract_assets.py jp us eu sh'
|
||||
}
|
||||
}
|
||||
stage('Build U Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=us VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build S Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=sh VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build E Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=eu VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build J Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=jp VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Test Enhancements') {
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
for f in enhancements/*.patch
|
||||
do
|
||||
git clean -fd .
|
||||
git checkout -- .
|
||||
echo 'y' | tools/apply_patch.sh "$f"
|
||||
make -j4 VERSION=us COMPARE=0 VERBOSE=1
|
||||
done
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
environment {
|
||||
QEMU_IRIX = credentials('qemu-irix')
|
||||
ROMS_DIR = credentials('roms')
|
||||
}
|
||||
}
|
||||
178
Makefile
178
Makefile
@@ -5,6 +5,8 @@ include util.mk
|
||||
# Default target
|
||||
default: all
|
||||
|
||||
TARGET_STRING := sm64
|
||||
|
||||
# Preprocessor definitions
|
||||
DEFINES :=
|
||||
|
||||
@@ -85,6 +87,9 @@ else ifeq ($(VERSION),sh)
|
||||
DEFINES += VERSION_SH=1
|
||||
endif
|
||||
|
||||
# FIXLIGHTS - converts light objects to light color commands for assets, needed for vanilla-style lighting
|
||||
FIXLIGHTS ?= 1
|
||||
|
||||
DEBUG_MAP_STACKTRACE_FLAG := -D DEBUG_MAP_STACKTRACE
|
||||
|
||||
TARGET := sm64
|
||||
@@ -114,20 +119,10 @@ else ifeq ($(GRUCODE),super3d) # Super3D
|
||||
DEFINES += SUPER3D_GBI=1 F3D_NEW=1
|
||||
endif
|
||||
|
||||
LIBRARIES := nustd hvqm2 z goddard
|
||||
|
||||
# TEXT ENGINES
|
||||
# s2dex_text_engine - Text Engine by someone2639
|
||||
TEXT_ENGINE := none
|
||||
ifeq ($(TEXT_ENGINE), s2dex_text_engine)
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
|
||||
LIBRARIES += s2d_engine
|
||||
DUMMY != make -C src/s2d_engine COPY_DIR=$(shell pwd)/lib/
|
||||
endif
|
||||
# add more text engines here
|
||||
|
||||
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
|
||||
$(eval $(call validate-option,TEXT_ENGINE,none s2dex_text_engine))
|
||||
|
||||
#==============================================================================#
|
||||
# Optimization flags #
|
||||
@@ -135,10 +130,14 @@ LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
|
||||
# Default non-gcc opt flags
|
||||
DEFAULT_OPT_FLAGS = -Ofast
|
||||
# Note: -fno-associative-math is used here to suppress warnings, ideally we would enable this as an optimization but
|
||||
# this conflicts with -ftrapping-math apparently.
|
||||
# TODO: Figure out how to allow -fassociative-math to be enabled
|
||||
SAFETY_OPT_FLAGS = -ftrapping-math -fno-associative-math
|
||||
|
||||
# Main opt flags
|
||||
GCC_MAIN_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=10 \
|
||||
--param max-unrolled-insns=10 \
|
||||
@@ -149,7 +148,7 @@ GCC_MAIN_OPT_FLAGS = \
|
||||
|
||||
# Surface Collision
|
||||
GCC_COLLISION_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
@@ -162,7 +161,7 @@ GCC_COLLISION_OPT_FLAGS = \
|
||||
|
||||
# Math Util
|
||||
GCC_MATH_UTIL_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
|
||||
-fno-unroll-loops \
|
||||
-fno-peel-loops \
|
||||
--param case-values-threshold=20 \
|
||||
@@ -174,7 +173,7 @@ GCC_MATH_UTIL_OPT_FLAGS = \
|
||||
|
||||
# Rendering graph node
|
||||
GCC_GRAPH_NODE_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
@@ -186,14 +185,12 @@ GCC_GRAPH_NODE_OPT_FLAGS = \
|
||||
#==============================================================================#
|
||||
|
||||
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)
|
||||
else ifeq ($(COMPILER),clang)
|
||||
NON_MATCHING := 1
|
||||
# clang doesn't support ABI 'o32' for 'mips3'
|
||||
MIPSISET := -mips2
|
||||
OPT_FLAGS := $(DEFAULT_OPT_FLAGS)
|
||||
@@ -202,39 +199,26 @@ else ifeq ($(COMPILER),clang)
|
||||
GRAPH_NODE_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
|
||||
endif
|
||||
|
||||
|
||||
# NON_MATCHING - whether to build a matching, identical copy of the ROM
|
||||
# 1 - enable some alternate, more portable code that does not produce a matching ROM
|
||||
# 0 - build a matching ROM
|
||||
NON_MATCHING ?= 1
|
||||
$(eval $(call validate-option,NON_MATCHING,0 1))
|
||||
|
||||
ifeq ($(TARGET_N64),0)
|
||||
NON_MATCHING := 1
|
||||
endif
|
||||
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
DEFINES += NON_MATCHING=1 AVOID_UB=1
|
||||
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))
|
||||
|
||||
# if `unf` is a target, make sure that UNF is set
|
||||
ifneq ($(filter unf,$(MAKECMDGOALS)),)
|
||||
UNF = 1
|
||||
endif
|
||||
|
||||
ifeq ($(UNF),1)
|
||||
DEFINES += UNF=1
|
||||
SRC_DIRS += src/usb
|
||||
USE_DEBUG := 1
|
||||
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)
|
||||
@@ -244,15 +228,18 @@ endif
|
||||
|
||||
ifeq ($(USE_DEBUG),1)
|
||||
ULTRALIB := ultra_d
|
||||
DEFINES += DEBUG=1
|
||||
DEFINES += DEBUG=1 OVERWRITE_OSPRINT=1
|
||||
else ifeq ($(UNF),1)
|
||||
ULTRALIB := ultra
|
||||
DEFINES += _FINALROM=1 NDEBUG=1 OVERWRITE_OSPRINT=1
|
||||
else
|
||||
ULTRALIB := ultra_rom
|
||||
DEFINES += _FINALROM=1 NDEBUG=1
|
||||
DEFINES += _FINALROM=1 NDEBUG=1 OVERWRITE_OSPRINT=0
|
||||
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)
|
||||
@@ -285,15 +272,6 @@ 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
|
||||
GODDARD ?= 0
|
||||
$(eval $(call validate-option,GODDARD,0 1))
|
||||
ifeq ($(GODDARD),1)
|
||||
DEFINES += GODDARD=1
|
||||
endif
|
||||
|
||||
# Whether to hide commands or not
|
||||
VERBOSE ?= 0
|
||||
ifeq ($(VERBOSE),0)
|
||||
@@ -323,11 +301,25 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
|
||||
ifeq ($(NOEXTRACT),0)
|
||||
DUMMY != $(PYTHON) extract_assets.py $(VERSION) >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets)
|
||||
$(error Failed to extract assets from US ROM)
|
||||
endif
|
||||
DUMMY != $(PYTHON) extract_assets.py jp >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets)
|
||||
ifneq (,$(wildcard baserom.jp.z64))
|
||||
DUMMY != $(PYTHON) extract_assets.py jp >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets from JP ROM)
|
||||
endif
|
||||
endif
|
||||
ifneq (,$(wildcard baserom.eu.z64))
|
||||
DUMMY != $(PYTHON) extract_assets.py eu >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets from EU ROM)
|
||||
endif
|
||||
endif
|
||||
ifneq (,$(wildcard baserom.sh.z64))
|
||||
DUMMY != $(PYTHON) extract_assets.py sh >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets from SH ROM)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -409,8 +401,6 @@ DEP_FILES := $(O_FILES:.o=.d) $(LIBZ_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(B
|
||||
# detect prefix for MIPS toolchain
|
||||
ifneq ($(call find-command,mips64-elf-ld),)
|
||||
CROSS := mips64-elf-
|
||||
else ifneq ($(call find-command,mips-n64-ld),)
|
||||
CROSS := mips-n64-
|
||||
else ifneq ($(call find-command,mips64-ld),)
|
||||
CROSS := mips64-
|
||||
else ifneq ($(call find-command,mips-linux-gnu-ld),)
|
||||
@@ -423,6 +413,18 @@ else
|
||||
$(error Unable to detect a suitable MIPS toolchain installed)
|
||||
endif
|
||||
|
||||
LIBRARIES := nustd hvqm2 z goddard
|
||||
|
||||
# Text engine
|
||||
ifeq ($(TEXT_ENGINE), s2dex_text_engine)
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
|
||||
LIBRARIES += s2d_engine
|
||||
DUMMY != $(MAKE) -C src/s2d_engine COPY_DIR=$(shell pwd)/lib/ CROSS=$(CROSS)
|
||||
endif
|
||||
# add more text engines here
|
||||
|
||||
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
|
||||
export LD_LIBRARY_PATH=./tools
|
||||
|
||||
AS := $(CROSS)as
|
||||
@@ -499,6 +501,7 @@ AIFF_EXTRACT_CODEBOOK := $(TOOLS_DIR)/aiff_extract_codebook
|
||||
VADPCM_ENC := $(TOOLS_DIR)/vadpcm_enc
|
||||
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
|
||||
SKYCONV := $(TOOLS_DIR)/skyconv
|
||||
FIXLIGHTS_PY := $(TOOLS_DIR)/fixlights.py
|
||||
ifeq ($(GZIPVER),std)
|
||||
GZIP := gzip
|
||||
else
|
||||
@@ -513,8 +516,13 @@ endif
|
||||
ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS =
|
||||
LOADER = loader64
|
||||
LOADER_FLAGS = -vwf
|
||||
|
||||
ifneq (,$(call find-command,wslview))
|
||||
LOADER = ./$(TOOLS_DIR)/UNFLoader.exe
|
||||
else
|
||||
LOADER = ./$(TOOLS_DIR)/UNFLoader
|
||||
endif
|
||||
|
||||
SHA1SUM = sha1sum
|
||||
PRINT = printf
|
||||
|
||||
@@ -564,8 +572,18 @@ test-pj64: $(ROM)
|
||||
wine ~/Desktop/new64/Project64.exe $<
|
||||
# someone2639
|
||||
|
||||
load: $(ROM)
|
||||
$(LOADER) $(LOADER_FLAGS) $<
|
||||
# download and extract most recent unfloader build if needed
|
||||
$(LOADER):
|
||||
ifeq (,$(wildcard $(LOADER)))
|
||||
@$(PRINT) "Downloading latest UNFLoader...$(NO_COL)\n"
|
||||
$(PYTHON) $(TOOLS_DIR)/get_latest_unfloader.py $(TOOLS_DIR)
|
||||
endif
|
||||
|
||||
load: $(ROM) $(LOADER)
|
||||
$(LOADER) -r $<
|
||||
|
||||
unf: $(ROM) $(LOADER)
|
||||
$(LOADER) -d -r $<
|
||||
|
||||
libultra: $(BUILD_DIR)/libultra.a
|
||||
|
||||
@@ -616,7 +634,8 @@ $(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wn
|
||||
$(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/audio/heap.o: OPT_FLAGS := -Os -fno-jump-tables
|
||||
$(BUILD_DIR)/src/audio/synthesis.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)
|
||||
@@ -674,9 +693,11 @@ $(BUILD_DIR)/%.ci4.inc.c: %.ci4.png
|
||||
$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o
|
||||
$(call print,Linking ELF file:,$<,$@)
|
||||
$(V)$(LD) -e 0 -Ttext=$(SEGMENT_ADDRESS) -Map $@.map -o $@ $<
|
||||
# Override for leveldata.elf, which otherwise matches the above pattern
|
||||
# Override for leveldata.elf, which otherwise matches the above pattern.
|
||||
# Has to be a static pattern rule for make-4.4 and above to trigger the second
|
||||
# expansion.
|
||||
.SECONDEXPANSION:
|
||||
$(BUILD_DIR)/levels/%/leveldata.elf: $(BUILD_DIR)/levels/%/leveldata.o $(BUILD_DIR)/bin/$$(TEXTURE_BIN).elf
|
||||
$(LEVEL_ELF_FILES): $(BUILD_DIR)/levels/%/leveldata.elf: $(BUILD_DIR)/levels/%/leveldata.o $(BUILD_DIR)/bin/$$(TEXTURE_BIN).elf
|
||||
$(call print,Linking ELF file:,$<,$@)
|
||||
$(V)$(LD) -e 0 -Ttext=$(SEGMENT_ADDRESS) -Map $@.map --just-symbols=$(BUILD_DIR)/bin/$(TEXTURE_BIN).elf -o $@ $<
|
||||
|
||||
@@ -689,17 +710,17 @@ $(BUILD_DIR)/levels/%/leveldata.bin: $(BUILD_DIR)/levels/%/leveldata.elf
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $< $@
|
||||
|
||||
ifeq ($(COMPRESS),gzip)
|
||||
include gziprules.mk
|
||||
include compression/gziprules.mk
|
||||
else ifeq ($(COMPRESS),rnc1)
|
||||
include rnc1rules.mk
|
||||
include compression/rnc1rules.mk
|
||||
else ifeq ($(COMPRESS),rnc2)
|
||||
include rnc2rules.mk
|
||||
include compression/rnc2rules.mk
|
||||
else ifeq ($(COMPRESS),yay0)
|
||||
include yay0rules.mk
|
||||
include compression/yay0rules.mk
|
||||
else ifeq ($(COMPRESS),mio0)
|
||||
include mio0rules.mk
|
||||
include compression/mio0rules.mk
|
||||
else ifeq ($(COMPRESS),uncomp)
|
||||
include uncomprules.mk
|
||||
include compression/uncomprules.mk
|
||||
endif
|
||||
|
||||
#==============================================================================#
|
||||
@@ -799,6 +820,11 @@ $(BUILD_DIR)/src/game/version_data.h: tools/make_version.sh
|
||||
#==============================================================================#
|
||||
|
||||
# Compile C code
|
||||
ifeq ($(FIXLIGHTS),1)
|
||||
# This must not be run multiple times at once, so we run it ahead of time rather than in a rule
|
||||
DUMMY != $(FIXLIGHTS_PY) actors
|
||||
DUMMY != $(FIXLIGHTS_PY) levels
|
||||
endif
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
$(call print,Compiling:,$<,$@)
|
||||
$(V)$(CC) -c $(CFLAGS) -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
@@ -819,7 +845,7 @@ $(BUILD_DIR)/rsp/%.bin $(BUILD_DIR)/rsp/%_data.bin: rsp/%.s
|
||||
# Run linker script through the C preprocessor
|
||||
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(BUILD_DIR)/goddard.txt
|
||||
$(call print,Preprocessing linker script:,$<,$@)
|
||||
$(V)$(CPP) $(CPPFLAGS) -DBUILD_DIR=$(BUILD_DIR) $(DEBUG_MAP_STACKTRACE_FLAG) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
$(V)$(CPP) $(CPPFLAGS) -DBUILD_DIR=$(BUILD_DIR) -DULTRALIB=lib$(ULTRALIB) $(DEBUG_MAP_STACKTRACE_FLAG) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
# Link libgoddard
|
||||
$(BUILD_DIR)/libgoddard.a: $(GODDARD_O_FILES)
|
||||
@@ -834,7 +860,7 @@ $(BUILD_DIR)/libz.a: $(LIBZ_O_FILES)
|
||||
# SS2: Goddard rules to get size
|
||||
$(BUILD_DIR)/sm64_prelim.ld: sm64.ld $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/libgoddard.a $(BUILD_DIR)/libz.a
|
||||
$(call print,Preprocessing preliminary linker script:,$<,$@)
|
||||
$(V)$(CPP) $(CPPFLAGS) -DPRELIMINARY=1 -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
$(V)$(CPP) $(CPPFLAGS) -DPRELIMINARY=1 -DBUILD_DIR=$(BUILD_DIR) -DULTRALIB=lib$(ULTRALIB) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/sm64_prelim.elf: $(BUILD_DIR)/sm64_prelim.ld
|
||||
@$(PRINT) "$(GREEN)Linking Preliminary ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
@@ -855,8 +881,16 @@ $(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(Y
|
||||
$(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
|
||||
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))
|
||||
# run with -n / --dry-run
|
||||
$(ROM):
|
||||
@$(PRINT) "$(BLUE)DRY RUNS ARE DISABLED$(NO_COL)\n"
|
||||
else
|
||||
# not running with -n / --dry-run
|
||||
$(ROM): $(ELF)
|
||||
$(call print,Building ROM:,$<,$@)
|
||||
endif
|
||||
|
||||
ifeq ($(CONSOLE),n64)
|
||||
$(V)$(OBJCOPY) --pad-to=0x101000 --gap-fill=0xFF $< $@ -O binary
|
||||
else ifeq ($(CONSOLE),bb)
|
||||
@@ -869,7 +903,7 @@ endif
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(ELF)
|
||||
$(OBJDUMP) -D $< > $@
|
||||
|
||||
.PHONY: all clean distclean default diff test load
|
||||
.PHONY: all clean distclean default test load
|
||||
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
|
||||
.SECONDARY:
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ ACTOR_GROUPS := \
|
||||
|
||||
LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
|
||||
|
||||
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
|
||||
|
||||
SEG_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
|
||||
|
||||
18
README.md
18
README.md
@@ -14,7 +14,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
||||
- **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
|
||||
- **MrComit**: General use object defines, JUMP_KICK_FIX
|
||||
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
|
||||
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
|
||||
- **Arthurtilly**: Platform Displacement 2
|
||||
@@ -29,12 +29,23 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
||||
- **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
|
||||
- **tuxlovesyou**: `LOAD_MIO0_TEXTURE` macro and moral support
|
||||
|
||||
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
|
||||
**Lighting Engine by Wiseguy**
|
||||
- Lighting Engine is available on a separate branch ([base/lighting-engine](https://github.com/Reonu/HackerSM64/tree/base/lighting-engine)). Instructions on how to use it are in the readme of that branch.
|
||||
- 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.
|
||||
- Lighting Engine is NOT finished. It's a WIP. Expect issues and expect it to be somewhat hard to use. Point lights in particular are extremely finnicky.
|
||||
- In order for lighting engine to work, your materials must have Shade Color in the combiner, **but you have to DISABLE Shade Color in sources**. If you leave Shade Color ticked for even a single material, the lighting will break **for the entire mesh**. Until Fast64 gets some sort of Lighting Engine support, it's recommended you create some custom presets to make this less annoying.
|
||||
- You can intentionally make a material fullbright by leaving Shade Color out of the combiner for that material. Useful for, say, a lamp.
|
||||
- Use the function `set_directional_light` to set the directional light for the current area. It takes a `Vec3f` for the direction and three `s32` for the RGB values.
|
||||
- Use the function `set_ambient_light` to set the ambient light for the current area. It takes three `s32` for the RGB values.
|
||||
- You can use the function `emit_light` to emit a point light via code. It takes a `Vec3f` for the position, three `s32` for the RGB values and three `u32` for each one of the falloff types. The falloff is basically how strong the light is: the HIGHER the falloff is, the DIMMER the light will be. The three types of falloffs can be stacked, and work like this:
|
||||
- 2 for constant falloff = the point light is half as bright always.
|
||||
- 2 for linear falloff = the point light is half as bright when you double the distance
|
||||
- 2 for quadratic falloff = the point is half as bright when you double the square of the distance
|
||||
- Important note regarding point lights: They are affected by WORLD_SCALE, which is set based on your extended bounds mode. Esentially, at 2x bounds lights will be twice as bright as in 1x bounds, and with 4x bounds they will be twice as bright as that. This can be dealt with simply by using high falloffs, but it can be annoying if you decide to change the extended bounds mode mid-development.
|
||||
- You can also make an object emit light by using the `OBJ_FLAG_EMIT_LIGHT` object flag, as well as `SET_LIGHT_COLOR` and `SET_LIGHT_FALLOFF` in the script.
|
||||
|
||||
|
||||
**Puppycam**
|
||||
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
|
||||
@@ -60,7 +71,6 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
- Toggle to disable fall damage and the fall damage sound *
|
||||
- Nonstop stars *
|
||||
- Removed course-specific camera processing *
|
||||
- You can increase the number of frames that you have to perform a firsty *
|
||||
- Ability to set Mario's movement speed when hanging from a ceiling *
|
||||
- Tighter hanging controls (Mario will face the direction of the analog stick directly while hanging from a ceiling) *
|
||||
- reonucam3: custom camera by Reonu. This is included as a .patch file in the enhancements folder, you need to apply it if you want this camera.
|
||||
|
||||
@@ -1 +1 @@
|
||||
v2.0.1
|
||||
v2.0.8
|
||||
|
||||
@@ -1,22 +1,10 @@
|
||||
// Birds
|
||||
|
||||
// 0x05000000
|
||||
static const Lights1 birds_seg5_lights_05000000 = gdSPDefLights1(
|
||||
0x07, 0x24, 0x2c,
|
||||
0x1d, 0x91, 0xb0, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05000018
|
||||
static const Lights1 birds_seg5_lights_05000018 = gdSPDefLights1(
|
||||
0x33, 0x27, 0x0d,
|
||||
0xce, 0x9d, 0x34, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05000030
|
||||
static const Lights1 birds_seg5_lights_05000030 = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05000048
|
||||
static const Vtx birds_seg5_vertex_05000048[] = {
|
||||
@@ -138,8 +126,8 @@ static const Vtx birds_seg5_vertex_050004C8[] = {
|
||||
|
||||
// 0x05000528 - 0x05000598
|
||||
const Gfx birds_seg5_dl_05000528[] = {
|
||||
gsSPLight(&birds_seg5_lights_05000000.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
|
||||
gsSPLightColor(LIGHT_2, 0x7242cff),
|
||||
gsSPVertex(birds_seg5_vertex_05000048, 9, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
|
||||
gsSP2Triangles( 4, 3, 2, 0x0, 5, 3, 6, 0x0),
|
||||
@@ -151,16 +139,16 @@ const Gfx birds_seg5_dl_05000528[] = {
|
||||
|
||||
// 0x05000598 - 0x05000600
|
||||
const Gfx birds_seg5_dl_05000598[] = {
|
||||
gsSPLight(&birds_seg5_lights_05000000.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
|
||||
gsSPLightColor(LIGHT_2, 0x7242cff),
|
||||
gsSPVertex(birds_seg5_vertex_050000D8, 3, 0),
|
||||
gsSP1Triangle( 0, 1, 2, 0x0),
|
||||
gsSPLight(&birds_seg5_lights_05000000.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
|
||||
gsSPLightColor(LIGHT_2, 0x7242cff),
|
||||
gsSPVertex(birds_seg5_vertex_05000108, 3, 0),
|
||||
gsSP1Triangle( 0, 1, 2, 0x0),
|
||||
gsSPLight(&birds_seg5_lights_05000000.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
|
||||
gsSPLightColor(LIGHT_2, 0x7242cff),
|
||||
gsSPVertex(birds_seg5_vertex_05000138, 3, 0),
|
||||
gsSP1Triangle( 0, 1, 2, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -168,8 +156,8 @@ const Gfx birds_seg5_dl_05000598[] = {
|
||||
|
||||
// 0x05000600 - 0x05000670
|
||||
const Gfx birds_seg5_dl_05000600[] = {
|
||||
gsSPLight(&birds_seg5_lights_05000000.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
|
||||
gsSPLightColor(LIGHT_2, 0x7242cff),
|
||||
gsSPVertex(birds_seg5_vertex_05000168, 9, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
|
||||
gsSP2Triangles( 0, 3, 4, 0x0, 5, 3, 6, 0x0),
|
||||
@@ -181,8 +169,8 @@ const Gfx birds_seg5_dl_05000600[] = {
|
||||
|
||||
// 0x05000670 - 0x050007E0
|
||||
const Gfx birds_seg5_dl_05000670[] = {
|
||||
gsSPLight(&birds_seg5_lights_05000000.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0x1d91b0ff),
|
||||
gsSPLightColor(LIGHT_2, 0x7242cff),
|
||||
gsSPVertex(birds_seg5_vertex_050001F8, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 1, 9, 10, 0x0),
|
||||
@@ -198,16 +186,16 @@ const Gfx birds_seg5_dl_05000670[] = {
|
||||
gsSP1Triangle( 7, 6, 15, 0x0),
|
||||
gsSPVertex(birds_seg5_vertex_050003F8, 3, 0),
|
||||
gsSP1Triangle( 0, 1, 2, 0x0),
|
||||
gsSPLight(&birds_seg5_lights_05000030.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000030.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(birds_seg5_vertex_05000428, 10, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 0, 7, 0x0, 7, 8, 6, 0x0),
|
||||
gsSP2Triangles( 9, 7, 2, 0x0, 2, 7, 0, 0x0),
|
||||
gsSP2Triangles( 2, 3, 9, 0x0, 7, 9, 8, 0x0),
|
||||
gsSP1Triangle( 5, 4, 1, 0x0),
|
||||
gsSPLight(&birds_seg5_lights_05000018.l, 1),
|
||||
gsSPLight(&birds_seg5_lights_05000018.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xce9d34ff),
|
||||
gsSPLightColor(LIGHT_2, 0x33270dff),
|
||||
gsSPVertex(birds_seg5_vertex_050004C8, 6, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
|
||||
gsSP1Triangle( 1, 3, 5, 0x0),
|
||||
|
||||
@@ -1,34 +1,14 @@
|
||||
// Blargg (Unused)
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 blargg_lights_unused = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05004740
|
||||
static const Lights1 blargg_seg5_lights_05004740 = gdSPDefLights1(
|
||||
0x3f, 0x0d, 0x05,
|
||||
0xff, 0x36, 0x16, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05004758
|
||||
static const Lights1 blargg_seg5_lights_05004758 = gdSPDefLights1(
|
||||
0x2c, 0x2c, 0x2c,
|
||||
0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05004770
|
||||
static const Lights1 blargg_seg5_lights_05004770 = gdSPDefLights1(
|
||||
0x3f, 0x0a, 0x06,
|
||||
0xff, 0x2a, 0x1a, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05004788
|
||||
static const Lights1 blargg_seg5_lights_05004788 = gdSPDefLights1(
|
||||
0x3f, 0x0b, 0x07,
|
||||
0xff, 0x2e, 0x1f, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x050047A0
|
||||
static const Vtx blargg_seg5_vertex_050047A0[] = {
|
||||
@@ -383,8 +363,8 @@ static const Vtx blargg_seg5_vertex_050057E0[] = {
|
||||
|
||||
// 0x050058D0 - 0x05005A60
|
||||
const Gfx blargg_seg5_dl_050058D0[] = {
|
||||
gsSPLight(&blargg_seg5_lights_05004758.l, 1),
|
||||
gsSPLight(&blargg_seg5_lights_05004758.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xb2b2b2ff),
|
||||
gsSPLightColor(LIGHT_2, 0x2c2c2cff),
|
||||
gsSPVertex(blargg_seg5_vertex_050047A0, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
@@ -398,8 +378,8 @@ const Gfx blargg_seg5_dl_050058D0[] = {
|
||||
gsSPVertex(blargg_seg5_vertex_050049A0, 8, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
gsSPLight(&blargg_seg5_lights_05004740.l, 1),
|
||||
gsSPLight(&blargg_seg5_lights_05004740.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xff3616ff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f0d05ff),
|
||||
gsSPVertex(blargg_seg5_vertex_05004A20, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
@@ -418,8 +398,8 @@ const Gfx blargg_seg5_dl_050058D0[] = {
|
||||
|
||||
// 0x05005A60 - 0x05005D00
|
||||
const Gfx blargg_seg5_dl_05005A60[] = {
|
||||
gsSPLight(&blargg_seg5_lights_05004758.l, 1),
|
||||
gsSPLight(&blargg_seg5_lights_05004758.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xb2b2b2ff),
|
||||
gsSPLightColor(LIGHT_2, 0x2c2c2cff),
|
||||
gsSPVertex(blargg_seg5_vertex_05004BE0, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
@@ -433,8 +413,8 @@ const Gfx blargg_seg5_dl_05005A60[] = {
|
||||
gsSPVertex(blargg_seg5_vertex_05004DE0, 8, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
gsSPLight(&blargg_seg5_lights_05004770.l, 1),
|
||||
gsSPLight(&blargg_seg5_lights_05004770.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xff2a1aff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f0a06ff),
|
||||
gsSPVertex(blargg_seg5_vertex_05004E60, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 2, 6, 7, 0x0, 2, 7, 8, 0x0),
|
||||
@@ -472,8 +452,8 @@ const Gfx blargg_seg5_dl_05005A60[] = {
|
||||
|
||||
// 0x05005D00 - 0x05005EB8
|
||||
const Gfx blargg_seg5_dl_05005D00[] = {
|
||||
gsSPLight(&blargg_seg5_lights_05004788.l, 1),
|
||||
gsSPLight(&blargg_seg5_lights_05004788.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xff2e1fff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f0b07ff),
|
||||
gsSPVertex(blargg_seg5_vertex_050053E0, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// Blue Coin Switch
|
||||
|
||||
// 0x08000000
|
||||
static const Lights1 blue_coin_switch_seg8_lights_08000000 = gdSPDefLights1(
|
||||
0x7f, 0x7f, 0x7f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x08000018
|
||||
ALIGNED8 static const Texture blue_coin_switch_seg8_texture_08000018[] = {
|
||||
@@ -49,8 +45,8 @@ const Gfx blue_coin_switch_seg8_dl_08000D58[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000018),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&blue_coin_switch_seg8_lights_08000000.l, 1),
|
||||
gsSPLight(&blue_coin_switch_seg8_lights_08000000.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x7f7f7fff),
|
||||
gsSPVertex(blue_coin_switch_seg8_vertex_08000C18, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0),
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// Blue Fish
|
||||
|
||||
// 0x0301B5C8
|
||||
static const Lights1 blue_fish_seg3_lights_0301B5C8 = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x0301B5E0
|
||||
ALIGNED8 static const Texture blue_fish_seg3_texture_0301B5E0[] = {
|
||||
@@ -34,8 +30,8 @@ const Gfx blue_fish_seg3_dl_0301BEC0[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(blue_fish_seg3_vertex_0301BDE0, 14, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
|
||||
gsSP2Triangles( 5, 0, 3, 0x0, 2, 6, 0, 0x0),
|
||||
@@ -86,8 +82,8 @@ const Gfx blue_fish_seg3_dl_0301C0A8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(blue_fish_seg3_vertex_0301C018, 9, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
|
||||
gsSP2Triangles( 4, 5, 2, 0x0, 2, 5, 6, 0x0),
|
||||
|
||||
@@ -168,22 +168,10 @@ const Gfx bobomb_seg8_dl_08022D78[] = {
|
||||
};
|
||||
|
||||
// 0x08022DE8
|
||||
static const Lights1 bobomb_seg8_lights_08022DE8 = gdSPDefLights1(
|
||||
0x3f, 0x26, 0x04,
|
||||
0xff, 0x99, 0x12, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x08022E00
|
||||
static const Lights1 bobomb_seg8_lights_08022E00 = gdSPDefLights1(
|
||||
0x2c, 0x2c, 0x2c,
|
||||
0xb2, 0xb2, 0xb2, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bobomb_lights_unused = gdSPDefLights1(
|
||||
0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x08022E30
|
||||
static const Vtx bobomb_seg8_vertex_08022E30[] = {
|
||||
@@ -279,8 +267,8 @@ static const Vtx bobomb_seg8_vertex_08023190[] = {
|
||||
|
||||
// 0x08023270 - 0x08023378
|
||||
const Gfx bobomb_seg8_dl_08023270[] = {
|
||||
gsSPLight(&bobomb_seg8_lights_08022DE8.l, 1),
|
||||
gsSPLight(&bobomb_seg8_lights_08022DE8.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xff9912ff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f2604ff),
|
||||
gsSPVertex(bobomb_seg8_vertex_08022E30, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
|
||||
@@ -302,8 +290,8 @@ const Gfx bobomb_seg8_dl_08023270[] = {
|
||||
|
||||
// 0x08023378 - 0x08023480
|
||||
const Gfx bobomb_seg8_dl_08023378[] = {
|
||||
gsSPLight(&bobomb_seg8_lights_08022DE8.l, 1),
|
||||
gsSPLight(&bobomb_seg8_lights_08022DE8.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xff9912ff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f2604ff),
|
||||
gsSPVertex(bobomb_seg8_vertex_08022F70, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
|
||||
@@ -325,8 +313,8 @@ const Gfx bobomb_seg8_dl_08023378[] = {
|
||||
|
||||
// 0x08023480 - 0x08023528
|
||||
const Gfx bobomb_seg8_dl_08023480[] = {
|
||||
gsSPLight(&bobomb_seg8_lights_08022E00.l, 1),
|
||||
gsSPLight(&bobomb_seg8_lights_08022E00.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xb2b2b2ff),
|
||||
gsSPLightColor(LIGHT_2, 0x2c2c2cff),
|
||||
gsSPVertex(bobomb_seg8_vertex_080230B0, 14, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 0, 3, 0x0, 4, 3, 5, 0x0),
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// Bomb
|
||||
|
||||
// 0x06057AA8
|
||||
static const Lights1 bomb_seg6_lights_06057AA8 = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x06057AC0
|
||||
ALIGNED8 static const Texture bomb_seg6_texture_06057AC0[] = {
|
||||
@@ -173,8 +169,8 @@ const Gfx bomb_seg6_dl_0605A8A8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bomb_seg6_texture_06059AC0),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bomb_seg6_lights_06057AA8.l, 1),
|
||||
gsSPLight(&bomb_seg6_lights_06057AA8.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bomb_seg6_vertex_0605A340, 15, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// Boo
|
||||
|
||||
// 0x05009B28
|
||||
static const Lights1 boo_seg5_lights_05009B28 = gdSPDefLights1(
|
||||
0x97, 0x9a, 0xff,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05009B40
|
||||
ALIGNED8 static const Texture boo_seg5_texture_05009B40[] = {
|
||||
@@ -261,8 +257,8 @@ const Gfx boo_seg5_dl_0500BEE0[] = {
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&boo_seg5_lights_05009B28.l, 1),
|
||||
gsSPLight(&boo_seg5_lights_05009B28.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x979affff),
|
||||
gsSPVertex(boo_seg5_vertex_0500B340, 12, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// Boo (Castle)
|
||||
|
||||
// 0x06015658
|
||||
static const Lights1 boo_castle_seg6_lights_06015658 = gdSPDefLights1(
|
||||
0x97, 0x9a, 0xff,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x06015670
|
||||
ALIGNED8 static const Texture boo_castle_seg6_texture_06015670[] = {
|
||||
@@ -261,8 +257,8 @@ const Gfx boo_castle_seg6_dl_06017A10[] = {
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&boo_castle_seg6_lights_06015658.l, 1),
|
||||
gsSPLight(&boo_castle_seg6_lights_06015658.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x979affff),
|
||||
gsSPVertex(boo_castle_seg6_vertex_06016E70, 12, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
|
||||
|
||||
@@ -3,10 +3,6 @@
|
||||
// This actor file requires including actor bookend because of bookend_seg5_texture_05000C60
|
||||
|
||||
// 0x05002558
|
||||
static const Lights1 book_seg5_lights_05002558 = gdSPDefLights1(
|
||||
0x7f, 0x7f, 0x7f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05002570
|
||||
ALIGNED8 static const Texture book_seg5_texture_05002570[] = {
|
||||
@@ -50,8 +46,8 @@ const Gfx book_seg5_dl_05002EF0[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000C60),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&book_seg5_lights_05002558.l, 1),
|
||||
gsSPLight(&book_seg5_lights_05002558.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x7f7f7fff),
|
||||
gsSPVertex(book_seg5_vertex_05002D70, 12, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user