You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
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
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -38,6 +38,9 @@
|
||||
# datadump
|
||||
/tools/ddump/*
|
||||
|
||||
# python cache in tools/
|
||||
/tools/__pycache__/*
|
||||
|
||||
# Text editor remnants
|
||||
*.swp
|
||||
.vscode/*
|
||||
|
||||
4
.vscode/c_cpp_properties.json
vendored
4
.vscode/c_cpp_properties.json
vendored
@@ -26,9 +26,7 @@
|
||||
"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",
|
||||
|
||||
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
|
||||
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,21 +119,17 @@ 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
|
||||
$(eval $(call validate-option,TEXT_ENGINE,none s2dex_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/
|
||||
SRC_DIRS += src/s2d_engine
|
||||
endif
|
||||
# add more text engines here
|
||||
|
||||
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Optimization flags #
|
||||
#==============================================================================#
|
||||
@@ -190,14 +191,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)
|
||||
@@ -206,39 +205,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)
|
||||
@@ -248,15 +234,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)
|
||||
@@ -289,15 +278,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)
|
||||
@@ -325,23 +305,23 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
|
||||
# Make sure assets exist
|
||||
NOEXTRACT ?= 0
|
||||
ifeq ($(NOEXTRACT),0)
|
||||
DUMMY != $(PYTHON) extract_assets.py $(VERSION) >&2 || echo FAIL
|
||||
DUMMY != $(PYTHON) extract_assets.py us >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets from US ROM)
|
||||
endif
|
||||
ifneq (,$(wildcard baserom.jp.z64))
|
||||
ifneq (,$(shell python3 tools/detect_baseroms.py jp))
|
||||
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))
|
||||
ifneq (,$(shell python3 tools/detect_baseroms.py eu))
|
||||
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))
|
||||
ifneq (,$(shell python3 tools/detect_baseroms.py sh))
|
||||
DUMMY != $(PYTHON) extract_assets.py sh >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to extract assets from SH ROM)
|
||||
@@ -389,7 +369,8 @@ include Makefile.split
|
||||
# Source code files
|
||||
LEVEL_C_FILES := $(wildcard levels/*/leveldata.c) $(wildcard levels/*/script.c) $(wildcard levels/*/geo.c)
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES)
|
||||
LIBZ_C_FILES := $(foreach dir,$(LIBZ_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
|
||||
LIBZ_C_FILES := $(foreach dir,$(LIBZ_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
|
||||
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
|
||||
@@ -410,6 +391,7 @@ SOUND_SEQUENCE_FILES := \
|
||||
|
||||
# Object files
|
||||
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
$(foreach file,$(CPP_FILES),$(BUILD_DIR)/$(file:.cpp=.o)) \
|
||||
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
|
||||
$(foreach file,$(GENERATED_C_FILES),$(file:.c=.o)) \
|
||||
lib/PR/hvqm/hvqm2sp1.o lib/PR/hvqm/hvqm2sp2.o
|
||||
@@ -441,15 +423,21 @@ else
|
||||
$(error Unable to detect a suitable MIPS toolchain installed)
|
||||
endif
|
||||
|
||||
LIBRARIES := nustd hvqm2 z goddard
|
||||
|
||||
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
|
||||
export LD_LIBRARY_PATH=./tools
|
||||
|
||||
AS := $(CROSS)as
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CC := $(CROSS)gcc
|
||||
CXX := $(CROSS)g++
|
||||
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -Ofast -mlong-calls
|
||||
$(BUILD_DIR)/levels/%.o: OPT_FLAGS := -Ofast -mlong-calls
|
||||
else ifeq ($(COMPILER),clang)
|
||||
CC := clang
|
||||
CXX := clang++
|
||||
endif
|
||||
# Prefer gcc's cpp if installed on the system
|
||||
ifneq (,$(call find-command,cpp-10))
|
||||
@@ -466,6 +454,13 @@ AR := $(CROSS)ar
|
||||
OBJDUMP := $(CROSS)objdump
|
||||
OBJCOPY := $(CROSS)objcopy
|
||||
|
||||
ifeq ($(LD), tools/mips64-elf-ld)
|
||||
ifeq ($(shell ls -la tools/mips64-elf-ld | awk '{print $1}' | grep x),)
|
||||
$(warning [ERROR]: A required file in this repository is no longer executable.)
|
||||
$(error * Please run: 'chmod +x tools/mips64-elf-ld', then run `make` again)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_N64),1)
|
||||
TARGET_CFLAGS := -nostdinc -DTARGET_N64 -D_LANGUAGE_C
|
||||
CC_CFLAGS := -fno-builtin
|
||||
@@ -506,7 +501,6 @@ CPPFLAGS := -P -Wno-trigraphs $(DEF_INC_CFLAGS)
|
||||
YAY0TOOL := $(TOOLS_DIR)/slienc
|
||||
MIO0TOOL := $(TOOLS_DIR)/mio0
|
||||
RNCPACK := $(TOOLS_DIR)/rncpack
|
||||
ROMALIGN := $(TOOLS_DIR)/romalign
|
||||
FILESIZER := $(TOOLS_DIR)/filesizer
|
||||
N64CKSUM := $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
|
||||
@@ -517,6 +511,8 @@ 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
|
||||
FLIPS := $(TOOLS_DIR)/flips
|
||||
ifeq ($(GZIPVER),std)
|
||||
GZIP := gzip
|
||||
else
|
||||
@@ -528,11 +524,15 @@ ifneq (,$(call find-command,armips))
|
||||
else
|
||||
RSPASM := $(TOOLS_DIR)/armips
|
||||
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
|
||||
|
||||
@@ -569,7 +569,10 @@ all: $(ROM)
|
||||
|
||||
clean:
|
||||
$(RM) -r $(BUILD_DIR_BASE)
|
||||
make -C src/s2d_engine clean
|
||||
|
||||
rebuildtools:
|
||||
$(MAKE) -C tools distclean
|
||||
$(MAKE) -C tools
|
||||
|
||||
distclean: clean
|
||||
$(PYTHON) extract_assets.py --clean
|
||||
@@ -582,13 +585,26 @@ 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
|
||||
|
||||
patch: $(ROM)
|
||||
$(FLIPS) --create --bps $(shell python3 tools/detect_baseroms.py $(VERSION)) $(ROM) $(BUILD_DIR)/$(TARGET_STRING).bps
|
||||
|
||||
# Extra object file dependencies
|
||||
$(BUILD_DIR)/asm/boot.o: $(IPL3_RAW_FILES)
|
||||
$(BUILD_DIR)/asm/ipl3.o: $(IPL3_RAW_FILES)
|
||||
$(BUILD_DIR)/src/game/crash_screen.o: $(CRASH_TEXTURE_C_FILES)
|
||||
$(BUILD_DIR)/src/game/version.o: $(BUILD_DIR)/src/game/version_data.h
|
||||
$(BUILD_DIR)/lib/aspMain.o: $(BUILD_DIR)/rsp/audio.bin
|
||||
@@ -710,17 +726,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
|
||||
|
||||
#==============================================================================#
|
||||
@@ -735,17 +751,9 @@ $(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff
|
||||
$(call print,Encoding ADPCM:,$(word 2,$^),$@)
|
||||
$(V)$(VADPCM_ENC) -c $^ $@
|
||||
|
||||
$(ENDIAN_BITWIDTH): $(TOOLS_DIR)/determine-endian-bitwidth.c
|
||||
@$(PRINT) "$(GREEN)Generating endian-bitwidth $(NO_COL)\n"
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@.dummy2 $< 2>$@.dummy1; true
|
||||
$(V)grep -o 'msgbegin --endian .* --bitwidth .* msgend' $@.dummy1 > $@.dummy2
|
||||
$(V)head -n1 <$@.dummy2 | cut -d' ' -f2-5 > $@
|
||||
$(V)$(RM) $@.dummy1
|
||||
$(V)$(RM) $@.dummy2
|
||||
|
||||
$(SOUND_BIN_DIR)/sound_data.ctl: sound/sound_banks/ $(SOUND_BANK_FILES) $(SOUND_SAMPLE_AIFCS) $(ENDIAN_BITWIDTH)
|
||||
$(SOUND_BIN_DIR)/sound_data.ctl: sound/sound_banks/ $(SOUND_BANK_FILES) $(SOUND_SAMPLE_AIFCS)
|
||||
@$(PRINT) "$(GREEN)Generating: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(PYTHON) $(TOOLS_DIR)/assemble_sound.py $(BUILD_DIR)/sound/samples/ sound/sound_banks/ $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/ctl_header $(SOUND_BIN_DIR)/sound_data.tbl $(SOUND_BIN_DIR)/tbl_header $(C_DEFINES) $$(cat $(ENDIAN_BITWIDTH))
|
||||
$(V)$(PYTHON) $(TOOLS_DIR)/assemble_sound.py $(BUILD_DIR)/sound/samples/ sound/sound_banks/ $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/ctl_header $(SOUND_BIN_DIR)/sound_data.tbl $(SOUND_BIN_DIR)/tbl_header $(C_DEFINES)
|
||||
|
||||
$(SOUND_BIN_DIR)/sound_data.tbl: $(SOUND_BIN_DIR)/sound_data.ctl
|
||||
@true
|
||||
@@ -756,9 +764,9 @@ $(SOUND_BIN_DIR)/ctl_header: $(SOUND_BIN_DIR)/sound_data.ctl
|
||||
$(SOUND_BIN_DIR)/tbl_header: $(SOUND_BIN_DIR)/sound_data.ctl
|
||||
@true
|
||||
|
||||
$(SOUND_BIN_DIR)/sequences.bin: $(SOUND_BANK_FILES) sound/sequences.json $(SOUND_SEQUENCE_DIRS) $(SOUND_SEQUENCE_FILES) $(ENDIAN_BITWIDTH)
|
||||
$(SOUND_BIN_DIR)/sequences.bin: $(SOUND_BANK_FILES) sound/sequences.json $(SOUND_SEQUENCE_DIRS) $(SOUND_SEQUENCE_FILES)
|
||||
@$(PRINT) "$(GREEN)Generating: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(PYTHON) $(TOOLS_DIR)/assemble_sound.py --sequences $@ $(SOUND_BIN_DIR)/sequences_header $(SOUND_BIN_DIR)/bank_sets sound/sound_banks/ sound/sequences.json $(SOUND_SEQUENCE_FILES) $(C_DEFINES) $$(cat $(ENDIAN_BITWIDTH))
|
||||
$(V)$(PYTHON) $(TOOLS_DIR)/assemble_sound.py --sequences $@ $(SOUND_BIN_DIR)/sequences_header $(SOUND_BIN_DIR)/bank_sets sound/sound_banks/ sound/sequences.json $(SOUND_SEQUENCE_FILES) $(C_DEFINES)
|
||||
|
||||
$(SOUND_BIN_DIR)/bank_sets: $(SOUND_BIN_DIR)/sequences.bin
|
||||
@true
|
||||
@@ -813,16 +821,24 @@ $(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
|
||||
# Generate version_data.h
|
||||
$(BUILD_DIR)/src/game/version_data.h: tools/make_version.sh
|
||||
@$(PRINT) "$(GREEN)Generating: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)tools/make_version.sh $(CROSS) > $@
|
||||
$(V)sh tools/make_version.sh $(CROSS) > $@
|
||||
|
||||
#==============================================================================#
|
||||
# Compilation Recipes #
|
||||
#==============================================================================#
|
||||
|
||||
# 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 != $(PYTHON) $(FIXLIGHTS_PY) actors
|
||||
DUMMY != $(PYTHON) $(FIXLIGHTS_PY) levels
|
||||
endif
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
$(call print,Compiling:,$<,$@)
|
||||
$(V)$(CC) -c $(CFLAGS) -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
$(BUILD_DIR)/%.o: %.cpp
|
||||
$(call print,Compiling (C++):,$<,$@)
|
||||
$(V)$(CXX) -c $(CFLAGS) -std=c++17 -Wno-register -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c
|
||||
$(call print,Compiling:,$<,$@)
|
||||
$(V)$(CC) -c $(CFLAGS) -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
@@ -840,7 +856,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)
|
||||
@@ -855,11 +871,11 @@ $(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"
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $< -Map $(BUILD_DIR)/sm64_prelim.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 $< -Map $(BUILD_DIR)/sm64_prelim.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
|
||||
|
||||
$(BUILD_DIR)/goddard.txt: $(BUILD_DIR)/sm64_prelim.elf
|
||||
$(call print,Getting Goddard size...)
|
||||
@@ -867,13 +883,13 @@ $(BUILD_DIR)/goddard.txt: $(BUILD_DIR)/sm64_prelim.elf
|
||||
|
||||
$(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
|
||||
$(call print,Assembling:,$<,$@)
|
||||
$(V)python3 tools/mapPacker.py $(BUILD_DIR)/sm64_prelim.map $(BUILD_DIR)/bin/addr.bin $(BUILD_DIR)/bin/name.bin
|
||||
$(V)python3 tools/mapPacker.py $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/bin/addr.bin $(BUILD_DIR)/bin/name.bin
|
||||
$(V)$(CROSS)gcc -c $(ASMFLAGS) $(foreach i,$(INCLUDE_DIRS),-Wa,-I$(i)) -x assembler-with-cpp -MMD -MF $(BUILD_DIR)/$*.d -o $@ $<
|
||||
|
||||
# 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
|
||||
$(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T 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
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc -lrtc
|
||||
|
||||
# Build ROM
|
||||
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))
|
||||
@@ -898,7 +914,7 @@ endif
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(ELF)
|
||||
$(OBJDUMP) -D $< > $@
|
||||
|
||||
.PHONY: all clean distclean default diff test load
|
||||
.PHONY: all clean distclean default test load rebuildtools
|
||||
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
|
||||
.SECONDARY:
|
||||
|
||||
|
||||
13
README.md
13
README.md
@@ -21,15 +21,16 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
||||
- **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
|
||||
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
|
||||
- **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
|
||||
- **falcobuster**: Original coordinate overflow fix (world scale), ASM version of extended bounds, emulator detector
|
||||
- **anonymous_moose**: porting falco's extended bounds to decomp
|
||||
- **tuxlovesyou**: `LOAD_MIO0_TEXTURE` macro and moral support
|
||||
- **devwizard**: the PJ64 pre-v3.0 detection part of the emulator detector
|
||||
|
||||
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
|
||||
@@ -82,7 +83,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
- 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/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.
|
||||
- There is a `gEmulator` variable to detect console or specific emulators and emulator versions
|
||||
- Expanded audio heap allows for a larger concurrent note count and the importing of more m64 sequences and sound banks (By ArcticJaguar725) *
|
||||
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
|
||||
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
|
||||
@@ -105,7 +106,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
|
||||
**Neat Misc. Changes:**
|
||||
- Instant Input patch by Wiseguy (Removes all input lag caused by plugins supporting framebuffer)
|
||||
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gIsConsole` variable to check for console when doing your framebuffer effects.
|
||||
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gEmulator` variable to check for console when doing your framebuffer effects.
|
||||
- Widescreen (16:9) support toggleable by pressing `L` in the pause menu. *
|
||||
- S2DEX engine by someone2639! To use it, compile with `make TEXT_ENGINE=s2dex_text_engine` or just set `TEXT_ENGINE` to `s2dex_text_engine` in the makefile.
|
||||
- ia8 (64x64) coins, the vanilla coin texture is upgraded to accomodate. *
|
||||
@@ -121,7 +122,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
- Use `render_multi_image` to draw large texture rectangles consisting of multiple images on the screen.
|
||||
- More info in `puppyprint.c`
|
||||
- Wiseguy's Farcall TLB mapping allows to store executable code inside uncompressed segments, that can be loaded and ran as needed, instead of it having to be loaded at all times. See `farcall.h` in the include folder for instructions and details.
|
||||
|
||||
- Red Coin Stars now support up to 99 red coins! In addition, multi-area red coin missions can now be created by setting the 2nd behavior paramater of the red coin star to the number of reds required for the star to spawn.
|
||||
# UltraSM64
|
||||
|
||||
- This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH).
|
||||
@@ -135,7 +136,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
- It has been patched with someone2639's shiftable segments patch
|
||||
- Wiseguy's instant input patch has been added to allow for less input lag on emulation (Does not affect console)
|
||||
This does mean that any framebuffer effects will have to be done on buffer 0 if targeting emulators
|
||||
- Automatic console and emulator detection: Use the `gIsConsole` variable to wrap your code in an emulator check.
|
||||
- Automatic console and emulator detection: Use the `gEmulator` variable to wrap your code in an emulator check.
|
||||
- Separate defines for emulator and console black border height.
|
||||
- Getting HVQM FMV support to work with the game is WIP.
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
v2.0.9
|
||||
v2.1.0
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -1,28 +1,12 @@
|
||||
// Bookend
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bookend_lights_unused1 = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bookend_lights_unused2 = gdSPDefLights1(
|
||||
0x03, 0x19, 0x09,
|
||||
0x0c, 0x66, 0x26, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bookend_lights_unused3 = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bookend_lights_unused4 = gdSPDefLights1(
|
||||
0x3f, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05000060
|
||||
ALIGNED8 static const Texture bookend_seg5_texture_05000060[] = {
|
||||
@@ -50,10 +34,6 @@ ALIGNED8 static const Texture bookend_seg5_texture_05001060[] = {
|
||||
};
|
||||
|
||||
// 0x05001860
|
||||
static const Lights1 bookend_seg5_lights_05001860 = gdSPDefLights1(
|
||||
0x66, 0x66, 0x66,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05001878
|
||||
static const Vtx bookend_seg5_vertex_05001878[] = {
|
||||
@@ -76,8 +56,8 @@ const Gfx bookend_seg5_dl_050018F8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000060),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bookend_seg5_lights_05001860.l, 1),
|
||||
gsSPLight(&bookend_seg5_lights_05001860.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x666666ff),
|
||||
gsSPVertex(bookend_seg5_vertex_05001878, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -116,10 +96,6 @@ const Gfx bookend_seg5_dl_05001978[] = {
|
||||
};
|
||||
|
||||
// 0x05001A08
|
||||
static const Lights1 bookend_seg5_lights_05001A08 = gdSPDefLights1(
|
||||
0x66, 0x66, 0x66,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05001A20
|
||||
static const Vtx bookend_seg5_vertex_05001A20[] = {
|
||||
@@ -142,8 +118,8 @@ const Gfx bookend_seg5_dl_05001AA0[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000060),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bookend_seg5_lights_05001A08.l, 1),
|
||||
gsSPLight(&bookend_seg5_lights_05001A08.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x666666ff),
|
||||
gsSPVertex(bookend_seg5_vertex_05001A20, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -182,10 +158,6 @@ const Gfx bookend_seg5_dl_05001B20[] = {
|
||||
};
|
||||
|
||||
// 0x05001BB0
|
||||
static const Lights1 bookend_seg5_lights_05001BB0 = gdSPDefLights1(
|
||||
0x66, 0x66, 0x66,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05001BC8
|
||||
static const Vtx bookend_seg5_vertex_05001BC8[] = {
|
||||
@@ -216,8 +188,8 @@ const Gfx bookend_seg5_dl_05001CC8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000860),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bookend_seg5_lights_05001BB0.l, 1),
|
||||
gsSPLight(&bookend_seg5_lights_05001BB0.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x666666ff),
|
||||
gsSPVertex(bookend_seg5_vertex_05001BC8, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -255,10 +227,6 @@ const Gfx bookend_seg5_dl_05001D68[] = {
|
||||
};
|
||||
|
||||
// 0x05001DE0
|
||||
static const Lights1 bookend_seg5_lights_05001DE0 = gdSPDefLights1(
|
||||
0x66, 0x66, 0x66,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05001DF8
|
||||
static const Vtx bookend_seg5_vertex_05001DF8[] = {
|
||||
@@ -289,8 +257,8 @@ const Gfx bookend_seg5_dl_05001EF8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000860),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bookend_seg5_lights_05001DE0.l, 1),
|
||||
gsSPLight(&bookend_seg5_lights_05001DE0.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x666666ff),
|
||||
gsSPVertex(bookend_seg5_vertex_05001DF8, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -328,10 +296,6 @@ const Gfx bookend_seg5_dl_05001F98[] = {
|
||||
};
|
||||
|
||||
// 0x05002010
|
||||
static const Lights1 bookend_seg5_lights_05002010 = gdSPDefLights1(
|
||||
0x66, 0x66, 0x66,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x05002028
|
||||
static const Vtx bookend_seg5_vertex_05002028[] = {
|
||||
@@ -354,8 +318,8 @@ const Gfx bookend_seg5_dl_050020E8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000460),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bookend_seg5_lights_05002010.l, 1),
|
||||
gsSPLight(&bookend_seg5_lights_05002010.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x666666ff),
|
||||
gsSPVertex(bookend_seg5_vertex_05002028, 12, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
|
||||
@@ -381,10 +345,6 @@ const Gfx bookend_seg5_dl_05002140[] = {
|
||||
};
|
||||
|
||||
// 0x050021B0
|
||||
static const Lights1 bookend_seg5_lights_050021B0 = gdSPDefLights1(
|
||||
0x66, 0x66, 0x66,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x050021C8
|
||||
static const Vtx bookend_seg5_vertex_050021C8[] = {
|
||||
@@ -407,8 +367,8 @@ const Gfx bookend_seg5_dl_05002288[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bookend_seg5_texture_05000460),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bookend_seg5_lights_050021B0.l, 1),
|
||||
gsSPLight(&bookend_seg5_lights_050021B0.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x666666ff),
|
||||
gsSPVertex(bookend_seg5_vertex_050021C8, 12, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
|
||||
|
||||
@@ -148,22 +148,10 @@ ALIGNED8 static const Texture bowser_seg6_texture_06037C38[] = {
|
||||
};
|
||||
|
||||
// 0x06038C38
|
||||
static const Lights1 bowser_seg6_lights_06038C38 = gdSPDefLights1(
|
||||
0x3f, 0x3f, 0x3f,
|
||||
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bowser_lights_unused1 = gdSPDefLights1(
|
||||
0x33, 0x31, 0x00,
|
||||
0xce, 0xc7, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// Unreferenced light group
|
||||
UNUSED static const Lights1 bowser_lights_unused2 = gdSPDefLights1(
|
||||
0x34, 0x34, 0x00,
|
||||
0xd2, 0xd2, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x06038C80
|
||||
static const Vtx bowser_seg6_vertex_06038C80[] = {
|
||||
@@ -267,8 +255,8 @@ const Gfx bowser_seg6_dl_06039110[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_06038C80, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 4, 6, 5, 0x0, 7, 8, 9, 0x0),
|
||||
@@ -439,8 +427,8 @@ const Gfx bowser_seg6_dl_06039808[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_06039368, 15, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0),
|
||||
@@ -671,8 +659,8 @@ const Gfx bowser_seg6_dl_0603A210[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_06039A60, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
|
||||
gsSP2Triangles( 4, 0, 2, 0x0, 2, 1, 5, 0x0),
|
||||
@@ -947,8 +935,8 @@ const Gfx bowser_seg6_dl_0603AED8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603A568, 14, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 4, 6, 5, 0x0, 7, 5, 8, 0x0),
|
||||
@@ -1132,8 +1120,8 @@ const Gfx bowser_seg6_dl_0603B718[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603B288, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
|
||||
gsSP2Triangles( 1, 4, 3, 0x0, 5, 3, 4, 0x0),
|
||||
@@ -1308,8 +1296,8 @@ const Gfx bowser_seg6_dl_0603BDF8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603B948, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 3, 5, 0x0, 7, 6, 5, 0x0),
|
||||
@@ -1481,8 +1469,8 @@ const Gfx bowser_seg6_dl_0603C500[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603C050, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 6, 7, 0x0, 3, 7, 4, 0x0),
|
||||
@@ -1716,8 +1704,8 @@ const Gfx bowser_seg6_dl_0603CF28[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603C758, 15, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0),
|
||||
gsSP2Triangles( 5, 0, 4, 0x0, 0, 2, 6, 0x0),
|
||||
@@ -2007,8 +1995,8 @@ const Gfx bowser_seg6_dl_0603DC70[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603D280, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 4, 6, 7, 0x0, 4, 7, 8, 0x0),
|
||||
@@ -2197,8 +2185,8 @@ const Gfx bowser_seg6_dl_0603E500[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603E030, 15, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0),
|
||||
@@ -2676,8 +2664,8 @@ const Gfx bowser_seg6_dl_0603FBA8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06023C38),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_0603E718, 9, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
@@ -3388,8 +3376,8 @@ const Gfx bowser_seg6_dl_06041A28[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06028438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_060402D8, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
|
||||
@@ -3945,8 +3933,8 @@ const Gfx bowser_seg6_dl_06042EE0[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06020C38),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_06042660, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 5, 6, 0x0, 6, 7, 3, 0x0),
|
||||
@@ -4103,8 +4091,8 @@ const Gfx bowser_seg6_dl_06043548[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bowser_seg6_texture_06022438),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.l, 1),
|
||||
gsSPLight(&bowser_seg6_lights_06038C38.a, 2),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(bowser_seg6_vertex_06043278, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0),
|
||||
gsSP2Triangles( 0, 2, 3, 0x0, 0, 5, 1, 0x0),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user