You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
Compare commits
237 Commits
develop/2.
...
fast64-npr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cadcdf4d55 | ||
|
|
6987bd6d1c | ||
|
|
68ea64189a | ||
|
|
1e5a6f6d45 | ||
|
|
338591eb1e | ||
|
|
8ed0d64a2d | ||
|
|
ccb1419adb | ||
|
|
8c268ce97f | ||
|
|
c08d70bc19 | ||
|
|
749057b47b | ||
|
|
f40a69ab8c | ||
|
|
3f1f7f41be | ||
|
|
bf70500b4d | ||
|
|
27fedee76f | ||
|
|
a918785a92 | ||
|
|
10720ea056 | ||
|
|
8dc47095e2 | ||
|
|
797bb63f1a | ||
|
|
9ef945296b | ||
|
|
e1c00d4bef | ||
|
|
aacf2c5e6d | ||
|
|
4500ffb579 | ||
|
|
a6782e6912 | ||
|
|
750ba10cb1 | ||
|
|
500507509b | ||
|
|
7381e35db4 | ||
|
|
6a3e7e7a87 | ||
|
|
9adb8c6de8 | ||
|
|
03ba81b5e3 | ||
|
|
98b6231216 | ||
|
|
252a900b91 | ||
|
|
92822c6412 | ||
|
|
0221d4ddf0 | ||
|
|
dcd58b2aad | ||
|
|
7ffa9a3bd7 | ||
|
|
dbba4871e1 | ||
|
|
520a6f3aed | ||
|
|
4d260f6885 | ||
|
|
aedae64e8b | ||
|
|
f3e1496d29 | ||
|
|
0005bbbd6a | ||
|
|
e494069b0a | ||
|
|
f852ff4359 | ||
|
|
2ae3426957 | ||
|
|
ca937d23ee | ||
|
|
e32b0ea960 | ||
|
|
219f4683f7 | ||
|
|
7353db562c | ||
|
|
82e0fdf391 | ||
|
|
14140887dd | ||
|
|
d29a552813 | ||
|
|
3e5d14e650 | ||
|
|
197d8074e3 | ||
|
|
c5d9f535ee | ||
|
|
8257f77c57 | ||
|
|
78747e9836 | ||
|
|
c96118bcd8 | ||
|
|
4c8233fe6a | ||
|
|
524e35c974 | ||
|
|
fc5ffa7438 | ||
|
|
d07e6383f6 | ||
|
|
1de4b9144b | ||
|
|
88c2cdb0a0 | ||
|
|
3a5a2f14dd | ||
|
|
b9ba17a4d6 | ||
|
|
4af18b6fc9 | ||
|
|
5064fcfb69 | ||
|
|
05bbe16e29 | ||
|
|
9cf3753d6e | ||
|
|
325ee7c5ec | ||
|
|
bf924a8ec3 | ||
|
|
c39b289441 | ||
|
|
5ba00edf20 | ||
|
|
15a81037ef | ||
|
|
b2707990f2 | ||
|
|
1d7a690361 | ||
|
|
08f0e3efa4 | ||
|
|
6148582f5e | ||
|
|
913cda93b8 | ||
|
|
d7c840b8f1 | ||
|
|
b73d8dd178 | ||
|
|
9fc928ed70 | ||
|
|
76dae5e8dd | ||
|
|
7df16608a7 | ||
|
|
1646702393 | ||
|
|
dcfcf50a80 | ||
|
|
4f2c48c733 | ||
|
|
72f8ea130f | ||
|
|
36c98b6cd1 | ||
|
|
db2a739b8a | ||
|
|
78cc957d31 | ||
|
|
7de18d10fc | ||
|
|
01c3f20c6f | ||
|
|
38f25d2b83 | ||
|
|
48bea33052 | ||
|
|
b8f770ae48 | ||
|
|
31d46d4479 | ||
|
|
5d45c1d46f | ||
|
|
37093031da | ||
|
|
af3b538ed9 | ||
|
|
e5bcf95703 | ||
|
|
c39fb6f333 | ||
|
|
ed1465247a | ||
|
|
b6ba2b58ad | ||
|
|
b1ef06fcd1 | ||
|
|
3545b4658c | ||
|
|
00b4475427 | ||
|
|
bf1cd9091f | ||
|
|
cd2e639206 | ||
|
|
4397811b92 | ||
|
|
c890838b24 | ||
|
|
5f8c17ca74 | ||
|
|
ff953bea63 | ||
|
|
f29fe44135 | ||
|
|
48fed9878e | ||
|
|
c9533d18ff | ||
|
|
544fcaf038 | ||
|
|
3a312e101c | ||
|
|
42cbaed631 | ||
|
|
e61bf8fbc1 | ||
|
|
60bb21693b | ||
|
|
da3a7e826a | ||
|
|
a64be21db8 | ||
|
|
44b48ffacd | ||
|
|
c3f300be9f | ||
|
|
63ddb28641 | ||
|
|
0a7e44de0e | ||
|
|
ab0cebab7a | ||
|
|
8a83359ed1 | ||
|
|
973eec3c93 | ||
|
|
db85886294 | ||
|
|
620b7cdded | ||
|
|
c21fd01977 | ||
|
|
90d313b4e2 | ||
|
|
8f9c1856a7 | ||
|
|
ca4757639e | ||
|
|
8105fde1f5 | ||
|
|
50b4ebf051 | ||
|
|
d105eff491 | ||
|
|
90a9e978cc | ||
|
|
d13f0cb2fc | ||
|
|
683bb80c72 | ||
|
|
5e9f8c7ee0 | ||
|
|
1e0498ba68 | ||
|
|
ca0e373a2c | ||
|
|
1fd8930881 | ||
|
|
febcb71ea3 | ||
|
|
0138b8ea53 | ||
|
|
d0e5bf665b | ||
|
|
7c32cf8b63 | ||
|
|
4dc17a32a2 | ||
|
|
37787dffc9 | ||
|
|
e2cf2d5119 | ||
|
|
1eba347c07 | ||
|
|
13b8339560 | ||
|
|
823101164d | ||
|
|
16e55ad952 | ||
|
|
73fad6195d | ||
|
|
8240262c07 | ||
|
|
fffebd1065 | ||
|
|
7f08d3d963 | ||
|
|
5764ae0ece | ||
|
|
4c9a91c2be | ||
|
|
8f6fde697f | ||
|
|
0c7f44a51a | ||
|
|
91af40e72a | ||
|
|
7cdb0764a5 | ||
|
|
57f7338e6a | ||
|
|
42cf450ba8 | ||
|
|
50b023ef21 | ||
|
|
3fc7b50488 | ||
|
|
d1c56b60a3 | ||
|
|
dde6e7da1a | ||
|
|
81c0a8ae61 | ||
|
|
580fd45079 | ||
|
|
351f6f8961 | ||
|
|
aabad79e46 | ||
|
|
ea818c2ec0 | ||
|
|
daf53f85aa | ||
|
|
c4441e8ee6 | ||
|
|
af53a42b0b | ||
|
|
0d14f6bb58 | ||
|
|
f80acbbefc | ||
|
|
62772067d5 | ||
|
|
e9054a6b6b | ||
|
|
34b97c9249 | ||
|
|
23e01e712b | ||
|
|
a34c2f4cb0 | ||
|
|
b6d83b3291 | ||
|
|
9717d89fb8 | ||
|
|
38e9b08695 | ||
|
|
f795173176 | ||
|
|
312496d769 | ||
|
|
d68233a1c0 | ||
|
|
93b5832d8c | ||
|
|
6317475853 | ||
|
|
7348ba8976 | ||
|
|
18d8c51e3d | ||
|
|
16f1dc41b4 | ||
|
|
51fb2d9e93 | ||
|
|
171f377412 | ||
|
|
f7bdca7533 | ||
|
|
851ba192f6 | ||
|
|
c09103d456 | ||
|
|
17498e081d | ||
|
|
f85b0c6946 | ||
|
|
a3eaccedd4 | ||
|
|
ef38abb1c0 | ||
|
|
97f7e78175 | ||
|
|
397e687a6c | ||
|
|
169e9cff2e | ||
|
|
c76c5824e3 | ||
|
|
81e1cb38da | ||
|
|
8d8812ab1b | ||
|
|
4c67e48456 | ||
|
|
be753ae220 | ||
|
|
337dac828f | ||
|
|
1fadb78632 | ||
|
|
52a7aedaf4 | ||
|
|
7fdb5af8fd | ||
|
|
d702f188c6 | ||
|
|
35dffd9b4e | ||
|
|
dc71aef024 | ||
|
|
65d29dc337 | ||
|
|
683ac0b2bf | ||
|
|
818da65ae6 | ||
|
|
7551748a35 | ||
|
|
7ef2077353 | ||
|
|
a15db3c56b | ||
|
|
e87dfa74d8 | ||
|
|
e3e1aa02ac | ||
|
|
d3d2bb9247 | ||
|
|
dc1a824ce9 | ||
|
|
efd4e3f9dc | ||
|
|
b1146308a7 | ||
|
|
b8e22f2fbd | ||
|
|
1a71619f47 |
141
.gitignore
vendored
141
.gitignore
vendored
@@ -38,6 +38,9 @@
|
||||
# datadump
|
||||
/tools/ddump/*
|
||||
|
||||
# python cache in tools/
|
||||
/tools/__pycache__/*
|
||||
|
||||
# Text editor remnants
|
||||
*.swp
|
||||
.vscode/*
|
||||
@@ -525,21 +528,26 @@ assets/demos/pss.bin
|
||||
assets/demos/unused.bin
|
||||
assets/demos/wf.bin
|
||||
levels/bbh/0.rgba16.png
|
||||
actors/vanilla_actors/bbh/0.rgba16.png
|
||||
levels/bbh/1.rgba16.png
|
||||
levels/bbh/2.rgba16.png
|
||||
levels/bbh/3.rgba16.png
|
||||
levels/bbh/4.rgba16.png
|
||||
levels/bbh/5.rgba16.png
|
||||
levels/bbh/6.rgba16.png
|
||||
actors/vanilla_actors/bbh/4.rgba16.png
|
||||
actors/vanilla_actors/bbh/5.rgba16.png
|
||||
actors/vanilla_actors/bbh/6.rgba16.png
|
||||
actors/vanilla_actors/bitdw/0.rgba16.png
|
||||
levels/bitdw/0.rgba16.png
|
||||
levels/bitdw/1.rgba16.png
|
||||
levels/bitdw/2.rgba16.png
|
||||
levels/bitdw/3.rgba16.png
|
||||
actors/vanilla_actors/bitfs/0.rgba16.png
|
||||
levels/bitfs/0.rgba16.png
|
||||
actors/vanilla_actors/bitfs/1.rgba16.png
|
||||
levels/bitfs/1.rgba16.png
|
||||
levels/bitfs/2.rgba16.png
|
||||
levels/bits/0.rgba16.png
|
||||
levels/bits/1.rgba16.png
|
||||
actors/vanilla_actors/bits/2.rgba16.png
|
||||
levels/bits/2.rgba16.png
|
||||
levels/bob/0.rgba16.png
|
||||
levels/bob/1.rgba16.png
|
||||
@@ -556,9 +564,9 @@ levels/bowser_3/2.rgba16.png
|
||||
levels/castle_grounds/0.rgba16.png
|
||||
levels/castle_grounds/1.rgba16.png
|
||||
levels/castle_grounds/2.rgba16.png
|
||||
levels/castle_grounds/3.rgba16.png
|
||||
levels/castle_grounds/4.rgba16.png
|
||||
levels/castle_grounds/5.ia8.png
|
||||
actors/vanilla_actors/castle_grounds/3.rgba16.png
|
||||
actors/vanilla_actors/castle_grounds/4.rgba16.png
|
||||
actors/vanilla_actors/castle_grounds/5.ia8.png
|
||||
levels/castle_inside/1.rgba16.png
|
||||
levels/castle_inside/10.rgba16.png
|
||||
levels/castle_inside/11.rgba16.png
|
||||
@@ -596,22 +604,25 @@ levels/castle_inside/38.rgba16.png
|
||||
levels/castle_inside/39.rgba16.png
|
||||
levels/castle_inside/4.rgba16.png
|
||||
levels/castle_inside/40.rgba16.png
|
||||
levels/castle_inside/5.rgba16.png
|
||||
levels/castle_inside/6.rgba16.png
|
||||
levels/castle_inside/7.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/5.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/6.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/7.rgba16.png
|
||||
levels/castle_inside/8.rgba16.png
|
||||
levels/castle_inside/9.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/castle_light.ia16.png
|
||||
levels/castle_inside/castle_light.ia16.png
|
||||
levels/ccm/0.rgba16.png
|
||||
levels/ccm/1.rgba16.png
|
||||
actors/vanilla_actors/ccm/1.rgba16.png
|
||||
levels/ccm/10.rgba16.png
|
||||
levels/ccm/11.rgba16.png
|
||||
levels/ccm/12.rgba16.png
|
||||
actors/vanilla_actors/ccm/12.rgba16.png
|
||||
levels/ccm/2.rgba16.png
|
||||
levels/ccm/3.rgba16.png
|
||||
actors/vanilla_actors/ccm/2.rgba16.png
|
||||
actors/vanilla_actors/ccm/3.rgba16.png
|
||||
levels/ccm/4.rgba16.png
|
||||
levels/ccm/5.rgba16.png
|
||||
levels/ccm/6.rgba16.png
|
||||
actors/vanilla_actors/ccm/5.rgba16.png
|
||||
actors/vanilla_actors/ccm/6.rgba16.png
|
||||
levels/ccm/7.rgba16.png
|
||||
levels/ccm/8.ia16.png
|
||||
levels/ccm/9.ia16.png
|
||||
@@ -620,11 +631,12 @@ levels/cotmc/1.rgba16.png
|
||||
levels/cotmc/2.rgba16.png
|
||||
levels/cotmc/3.rgba16.png
|
||||
levels/cotmc/4.rgba16.png
|
||||
levels/ddd/0.rgba16.png
|
||||
actors/vanilla_actors/ddd/0.rgba16.png
|
||||
levels/ddd/1.rgba16.png
|
||||
levels/ddd/2.rgba16.png
|
||||
actors/vanilla_actors/ddd/2.rgba16.png
|
||||
levels/ddd/3.rgba16.png
|
||||
levels/ddd/4.rgba16.png
|
||||
actors/vanilla_actors/ddd/4.rgba16.png
|
||||
levels/ending/cake.png
|
||||
levels/ending/cake_eu.png
|
||||
levels/ending/eu_023000.rgba16.png
|
||||
@@ -636,10 +648,10 @@ levels/ending/eu_028000.rgba16.png
|
||||
levels/hmc/0.rgba16.png
|
||||
levels/hmc/1.rgba16.png
|
||||
levels/hmc/2.rgba16.png
|
||||
levels/hmc/3.rgba16.png
|
||||
levels/hmc/4.rgba16.png
|
||||
levels/hmc/5.rgba16.png
|
||||
levels/hmc/6.rgba16.png
|
||||
actors/vanilla_actors/hmc/3.rgba16.png
|
||||
actors/vanilla_actors/hmc/4.rgba16.png
|
||||
actors/vanilla_actors/hmc/5.rgba16.png
|
||||
actors/vanilla_actors/hmc/6.rgba16.png
|
||||
levels/hmc/7.rgba16.png
|
||||
levels/intro/0.rgba16.png
|
||||
levels/intro/1.rgba16.png
|
||||
@@ -650,40 +662,41 @@ levels/intro/3_sh_tm.rgba16.png
|
||||
levels/intro/3_tm.rgba16.png
|
||||
levels/jrb/0.rgba16.png
|
||||
levels/jrb/1.rgba16.png
|
||||
levels/jrb/2.rgba16.png
|
||||
levels/jrb/3.rgba16.png
|
||||
levels/lll/0.rgba16.png
|
||||
levels/lll/1.rgba16.png
|
||||
levels/lll/10.rgba16.png
|
||||
levels/lll/11.rgba16.png
|
||||
levels/lll/12.rgba16.png
|
||||
levels/lll/13.rgba16.png
|
||||
levels/lll/14.rgba16.png
|
||||
levels/lll/15.rgba16.png
|
||||
levels/lll/16.rgba16.png
|
||||
levels/lll/17.rgba16.png
|
||||
levels/lll/18.rgba16.png
|
||||
levels/lll/19.rgba16.png
|
||||
levels/lll/2.rgba16.png
|
||||
levels/lll/20.rgba16.png
|
||||
levels/lll/21.rgba16.png
|
||||
levels/lll/22.rgba16.png
|
||||
levels/lll/23.rgba16.png
|
||||
levels/lll/24.rgba16.png
|
||||
levels/lll/25.rgba16.png
|
||||
actors/vanilla_actors/jrb/2.rgba16.png
|
||||
actors/vanilla_actors/jrb/3.rgba16.png
|
||||
actors/vanilla_actors/lll/0.rgba16.png
|
||||
actors/vanilla_actors/lll/1.rgba16.png
|
||||
actors/vanilla_actors/lll/10.rgba16.png
|
||||
actors/vanilla_actors/lll/11.rgba16.png
|
||||
actors/vanilla_actors/lll/12.rgba16.png
|
||||
actors/vanilla_actors/lll/13.rgba16.png
|
||||
actors/vanilla_actors/lll/14.rgba16.png
|
||||
actors/vanilla_actors/lll/15.rgba16.png
|
||||
actors/vanilla_actors/lll/16.rgba16.png
|
||||
actors/vanilla_actors/lll/17.rgba16.png
|
||||
actors/vanilla_actors/lll/18.rgba16.png
|
||||
actors/vanilla_actors/lll/19.rgba16.png
|
||||
actors/vanilla_actors/lll/2.rgba16.png
|
||||
actors/vanilla_actors/lll/20.rgba16.png
|
||||
actors/vanilla_actors/lll/21.rgba16.png
|
||||
actors/vanilla_actors/lll/22.rgba16.png
|
||||
actors/vanilla_actors/lll/23.rgba16.png
|
||||
actors/vanilla_actors/lll/24.rgba16.png
|
||||
actors/vanilla_actors/lll/25.rgba16.png
|
||||
levels/lll/26.rgba16.png
|
||||
levels/lll/27.ia16.png
|
||||
levels/lll/28.rgba16.png
|
||||
levels/lll/29.rgba16.png
|
||||
actors/vanilla_actors/lll/29.rgba16.png
|
||||
levels/lll/3.rgba16.png
|
||||
levels/lll/30.rgba16.png
|
||||
levels/lll/31.rgba16.png
|
||||
levels/lll/32.rgba16.png
|
||||
levels/lll/4.rgba16.png
|
||||
levels/lll/5.rgba16.png
|
||||
levels/lll/6.rgba16.png
|
||||
actors/vanilla_actors/lll/6.rgba16.png
|
||||
levels/lll/7.rgba16.png
|
||||
levels/lll/8.rgba16.png
|
||||
actors/vanilla_actors/lll/8.rgba16.png
|
||||
levels/lll/9.rgba16.png
|
||||
levels/menu/main_menu_seg7.00018.rgba16.png
|
||||
levels/menu/main_menu_seg7.00818.rgba16.png
|
||||
@@ -918,59 +931,64 @@ levels/menu/main_menu_seg7_us.0B800.ia8.png
|
||||
levels/pss/0.rgba16.png
|
||||
levels/pss/1.ia16.png
|
||||
levels/pss/2.rgba16.png
|
||||
levels/rr/1.rgba16.png
|
||||
actors/vanilla_actors/rr/1.rgba16.png
|
||||
levels/rr/2.rgba16.png
|
||||
levels/rr/quarter_flying_carpet.rgba16.png
|
||||
actors/vanilla_actors/rr/quarter_flying_carpet.rgba16.png
|
||||
levels/sl/0.rgba16.png
|
||||
levels/sl/1.rgba16.png
|
||||
levels/sl/2.rgba16.png
|
||||
actors/vanilla_actors/sl/2.rgba16.png
|
||||
levels/sl/3.rgba16.png
|
||||
levels/sl/4.rgba16.png
|
||||
levels/ssl/0.rgba16.png
|
||||
levels/ssl/1.ia16.png
|
||||
levels/ssl/10.rgba16.png
|
||||
levels/ssl/11.rgba16.png
|
||||
actors/vanilla_actors/ssl/10.rgba16.png
|
||||
actors/vanilla_actors/ssl/11.rgba16.png
|
||||
levels/ssl/2.rgba16.png
|
||||
levels/ssl/3.rgba16.png
|
||||
levels/ssl/4.rgba16.png
|
||||
levels/ssl/5.rgba16.png
|
||||
levels/ssl/6.rgba16.png
|
||||
actors/vanilla_actors/ssl/5.rgba16.png
|
||||
actors/vanilla_actors/ssl/6.rgba16.png
|
||||
levels/ssl/7.rgba16.png
|
||||
levels/ssl/8.rgba16.png
|
||||
levels/ssl/9.rgba16.png
|
||||
actors/vanilla_actors/ssl/8.rgba16.png
|
||||
actors/vanilla_actors/ssl/9.rgba16.png
|
||||
levels/thi/0.rgba16.png
|
||||
levels/thi/1.rgba16.png
|
||||
actors/vanilla_actors/thi/1.rgba16.png
|
||||
levels/totwc/0.rgba16.png
|
||||
levels/totwc/1.rgba16.png
|
||||
levels/totwc/2.rgba16.png
|
||||
levels/totwc/3.ia16.png
|
||||
levels/ttc/0.rgba16.png
|
||||
actors/vanilla_actors/ttc/0.rgba16.png
|
||||
actors/vanilla_actors/ttc/1.rgba16.png
|
||||
levels/ttc/1.rgba16.png
|
||||
levels/ttc/2.rgba16.png
|
||||
levels/ttm/0.ia16.png
|
||||
levels/ttm/1.rgba16.png
|
||||
levels/ttm/2.rgba16.png
|
||||
levels/ttm/3.rgba16.png
|
||||
levels/ttm/4.rgba16.png
|
||||
actors/vanilla_actors/ttm/4.rgba16.png
|
||||
levels/ttm/5.rgba16.png
|
||||
levels/ttm/6.rgba16.png
|
||||
levels/ttm/7.rgba16.png
|
||||
levels/ttm/8.rgba16.png
|
||||
actors/vanilla_actors/ttm/8.rgba16.png
|
||||
levels/vcutm/0.rgba16.png
|
||||
levels/vcutm/1.rgba16.png
|
||||
levels/vcutm/2.rgba16.png
|
||||
actors/vanilla_actors/vcutm/2.rgba16.png
|
||||
levels/vcutm/3.rgba16.png
|
||||
levels/wdw/0.rgba16.png
|
||||
levels/wdw/1.rgba16.png
|
||||
levels/wdw/2.rgba16.png
|
||||
levels/wdw/3.rgba16.png
|
||||
actors/vanilla_actors/wdw/1.rgba16.png
|
||||
actors/vanilla_actors/wdw/2.rgba16.png
|
||||
actors/vanilla_actors/wdw/3.rgba16.png
|
||||
levels/wdw/4.rgba16.png
|
||||
actors/vanilla_actors/wf/0.rgba16.png
|
||||
levels/wf/0.rgba16.png
|
||||
levels/wf/1.rgba16.png
|
||||
actors/vanilla_actors/wf/2.rgba16.png
|
||||
levels/wf/2.rgba16.png
|
||||
levels/wf/3.rgba16.png
|
||||
levels/wf/4.rgba16.png
|
||||
levels/wf/5.ia8.png
|
||||
actors/vanilla_actors/wf/3.rgba16.png
|
||||
actors/vanilla_actors/wf/4.rgba16.png
|
||||
actors/vanilla_actors/wf/5.ia8.png
|
||||
levels/wmotr/0.rgba16.png
|
||||
levels/wmotr/1.rgba16.png
|
||||
levels/wmotr/2.rgba16.png
|
||||
@@ -2146,3 +2164,6 @@ lib/libs2d_engine.a
|
||||
|
||||
# :Zone_Identifier files
|
||||
*Zone.Identifier
|
||||
|
||||
# user-specific config file
|
||||
include/config/config_local.h
|
||||
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "lib/libpl2"]
|
||||
path = lib/libpl2
|
||||
url = https://gitlab.com/parallel-launcher/libpl2.git
|
||||
3
.vscode/c_cpp_properties.json
vendored
3
.vscode/c_cpp_properties.json
vendored
@@ -26,7 +26,8 @@
|
||||
"VERSION_US=1",
|
||||
"F3DEX_GBI_2=1",
|
||||
"F3DZEX_NON_GBI_2=1",
|
||||
"F3DEX_GBI_SHARED=1"
|
||||
"F3DEX_GBI_SHARED=1",
|
||||
"LIBPL=1"
|
||||
],
|
||||
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
|
||||
"cStandard": "gnu17",
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
# Each line is a file pattern followed by one or more owners.
|
||||
|
||||
# These owners will be the default owners for everything in the repo.
|
||||
* @Reonu
|
||||
* @thecozies
|
||||
* @gheskett
|
||||
* @Reonu @gheskett @arthurtilly
|
||||
|
||||
# Order is important. The last matching pattern has the most precedence.
|
||||
# So if a pull request only touches javascript files, only these owners
|
||||
|
||||
15
Dockerfile
15
Dockerfile
@@ -1,17 +1,18 @@
|
||||
FROM ubuntu:18.04 as build
|
||||
FROM ubuntu:22.04 as build
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y \
|
||||
binutils-mips-linux-gnu \
|
||||
bsdmainutils \
|
||||
bsdextrautils \
|
||||
build-essential \
|
||||
gcc-mips-linux-gnu \
|
||||
libcapstone-dev \
|
||||
pkgconf \
|
||||
python3
|
||||
|
||||
RUN mkdir /sm64
|
||||
WORKDIR /sm64
|
||||
ENV PATH="/sm64/tools:${PATH}"
|
||||
RUN mkdir /hackersm64
|
||||
WORKDIR /hackersm64
|
||||
ENV PATH="/hackersm64/tools:${PATH}"
|
||||
|
||||
CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=us -j4\n' \
|
||||
'see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage'
|
||||
CMD echo 'Usage: docker run --rm -v ${PWD}:/hackersm64 hackersm64 make VERSION=us -j4\n' \
|
||||
'See https://github.com/HackerN64/HackerSM64/blob/master/README.md for more information'
|
||||
|
||||
211
Makefile
211
Makefile
@@ -124,12 +124,18 @@ endif
|
||||
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
|
||||
SRC_DIRS += src/s2d_engine
|
||||
endif
|
||||
# add more text engines here
|
||||
|
||||
#==============================================================================#
|
||||
# Optimization flags #
|
||||
#==============================================================================#
|
||||
|
||||
# Default non-gcc opt flags
|
||||
DEFAULT_OPT_FLAGS = -Ofast
|
||||
DEFAULT_OPT_FLAGS = -Ofast -falign-functions=32
|
||||
# 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
|
||||
@@ -213,7 +219,6 @@ endif
|
||||
ifeq ($(UNF),1)
|
||||
DEFINES += UNF=1
|
||||
SRC_DIRS += src/usb
|
||||
USE_DEBUG := 1
|
||||
endif
|
||||
|
||||
# ISVPRINT - whether to fake IS-Viewer presence,
|
||||
@@ -229,10 +234,13 @@ 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
|
||||
@@ -245,11 +253,23 @@ ifeq ($(HVQM),1)
|
||||
SRC_DIRS += src/hvqm
|
||||
endif
|
||||
|
||||
# LIBPL - whether to include libpl library for interfacing with Parallel Launcher
|
||||
# (library will be pulled into repo after building with this enabled for the first time)
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
LIBPL ?= 0
|
||||
LIBPL_DIR := lib/libpl2
|
||||
$(eval $(call validate-option,LIBPL,0 1))
|
||||
ifeq ($(LIBPL),1)
|
||||
DEFINES += LIBPL=1
|
||||
SRC_DIRS += $(LIBPL_DIR)
|
||||
endif
|
||||
|
||||
BUILD_DIR_BASE := build
|
||||
# BUILD_DIR is the location where all build artifacts are placed
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
|
||||
|
||||
COMPRESS ?= rnc1
|
||||
COMPRESS ?= yay0
|
||||
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
|
||||
ifeq ($(COMPRESS),gzip)
|
||||
DEFINES += GZIP=1
|
||||
@@ -297,23 +317,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)
|
||||
@@ -327,6 +347,18 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
|
||||
# Clone any needed submodules
|
||||
ifeq ($(LIBPL),1)
|
||||
ifeq ($(wildcard $(LIBPL_DIR)/*.h),)
|
||||
$(info Cloning libpl2 submodule...)
|
||||
DUMMY != git submodule update --init $(LIBPL_DIR) > /dev/null || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to clone libpl2 submodule)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
$(info Building ROM...)
|
||||
|
||||
endif
|
||||
@@ -348,9 +380,10 @@ SOUND_BIN_DIR := $(BUILD_DIR)/sound
|
||||
TEXTURE_DIR := textures
|
||||
ACTOR_DIR := actors
|
||||
LEVEL_DIRS := $(patsubst levels/%,%,$(dir $(wildcard levels/*/header.h)))
|
||||
VNL_ACTRS_DIRS := $(patsubst actors/vanilla_actors/%,%,$(dir $(wildcard actors/vanilla_actors/*/header.h)))
|
||||
|
||||
# Directories containing source files
|
||||
SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers actors levels bin data assets asm lib sound
|
||||
SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers lib/librtc actors levels bin data assets asm lib sound
|
||||
LIBZ_SRC_DIRS := src/libz
|
||||
GODDARD_SRC_DIRS := src/goddard src/goddard/dynlists
|
||||
BIN_DIRS := bin bin/$(VERSION)
|
||||
@@ -360,12 +393,17 @@ 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))
|
||||
VNL_ACTRS_C_FILES := $(wildcard actors/vanilla_actors/*/data.c) $(wildcard actors/vanilla_actors/*/geo.c)
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES) $(VNL_ACTRS_C_FILES)
|
||||
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
|
||||
|
||||
# Ignore all .inc.c files
|
||||
C_FILES := $(filter-out %.inc.c,$(C_FILES))
|
||||
|
||||
# Sound files
|
||||
SOUND_BANK_FILES := $(wildcard sound/sound_banks/*.json)
|
||||
SOUND_SAMPLE_DIRS := $(wildcard sound/samples/*)
|
||||
@@ -382,6 +420,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
|
||||
@@ -399,12 +438,16 @@ 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),)
|
||||
CROSS := mips-linux-gnu-
|
||||
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
|
||||
CROSS := mips64-linux-gnu-
|
||||
else ifneq ($(call find-command,mips64-none-elf-ld),)
|
||||
CROSS := mips64-none-elf-
|
||||
else ifneq ($(call find-command,mips-ld),)
|
||||
CROSS := mips-
|
||||
else
|
||||
@@ -413,14 +456,6 @@ 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
|
||||
@@ -428,10 +463,12 @@ 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))
|
||||
@@ -448,6 +485,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
|
||||
@@ -464,15 +508,15 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
|
||||
# C compiler options
|
||||
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
|
||||
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
|
||||
CFLAGS += -Wno-missing-braces
|
||||
else ifeq ($(COMPILER),clang)
|
||||
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
|
||||
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
|
||||
CFLAGS += -Wno-missing-braces
|
||||
else
|
||||
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
|
||||
endif
|
||||
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
|
||||
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
|
||||
|
||||
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
|
||||
@@ -488,18 +532,17 @@ 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
|
||||
N64GRAPHICS_CI := $(TOOLS_DIR)/n64graphics_ci
|
||||
BINPNG := $(TOOLS_DIR)/BinPNG.py
|
||||
TEXTCONV := $(TOOLS_DIR)/textconv
|
||||
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
|
||||
@@ -511,8 +554,13 @@ ifneq (,$(call find-command,armips))
|
||||
else
|
||||
RSPASM := $(TOOLS_DIR)/armips
|
||||
endif
|
||||
ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
|
||||
EMULATOR = mupen64plus
|
||||
|
||||
ifneq (,$(call find-command,wslview))
|
||||
EMULATOR = "/mnt/c/Program Files (x86)/parallel-launcher/parallel-launcher.exe"
|
||||
else
|
||||
EMULATOR = parallel-launcher
|
||||
endif
|
||||
|
||||
EMU_FLAGS =
|
||||
|
||||
ifneq (,$(call find-command,wslview))
|
||||
@@ -535,7 +583,7 @@ endif
|
||||
|
||||
# For non-IDO, use objcopy instead of extract_data_for_mio
|
||||
ifneq ($(COMPILER),ido)
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data --only-section=.rodata
|
||||
endif
|
||||
|
||||
# Common build print status function
|
||||
@@ -557,7 +605,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
|
||||
@@ -585,8 +636,11 @@ unf: $(ROM) $(LOADER)
|
||||
|
||||
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
|
||||
@@ -604,29 +658,6 @@ $(BUILD_DIR)/src/libz/%.o: OPT_FLAGS := -Os
|
||||
$(BUILD_DIR)/src/libz/%.o: CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-pointer-sign
|
||||
endif
|
||||
|
||||
ifeq ($(VERSION),eu)
|
||||
TEXT_DIRS := text/de text/us text/fr
|
||||
|
||||
# EU encoded text inserted into individual segment 0x19 files,
|
||||
# and course data also duplicated in leveldata.c
|
||||
$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c
|
||||
$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c
|
||||
$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/us/define_courses.inc.c
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/de/define_courses.inc.c
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/fr/define_courses.inc.c
|
||||
else
|
||||
ifeq ($(VERSION),sh)
|
||||
TEXT_DIRS := text/jp
|
||||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/jp/define_text.inc.c
|
||||
else
|
||||
TEXT_DIRS := text/$(VERSION)
|
||||
# non-EU encoded text inserted into segment 0x02
|
||||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
|
||||
endif
|
||||
endif
|
||||
|
||||
$(BUILD_DIR)/src/usb/usb.o: OPT_FLAGS := -O0
|
||||
$(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wno-unused-function
|
||||
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
|
||||
@@ -644,17 +675,11 @@ $(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAG
|
||||
# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
|
||||
# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
|
||||
|
||||
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
|
||||
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) $(addprefix actors/vanilla_actors/,$(VNL_ACTRS_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
|
||||
|
||||
# Make sure build directory exists before compiling anything
|
||||
DUMMY != mkdir -p $(ALL_DIRS)
|
||||
|
||||
$(BUILD_DIR)/include/text_strings.h: $(BUILD_DIR)/include/text_menu_strings.h
|
||||
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
@@ -691,9 +716,16 @@ $(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 $@ $<
|
||||
|
||||
.SECONDEXPANSION:
|
||||
$(VANILLA_ACTORS_ELF_FILES): $(BUILD_DIR)/actors/vanilla_actors/%/data.elf: $(BUILD_DIR)/actors/vanilla_actors/%/data.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 $@ $<
|
||||
|
||||
@@ -725,23 +757,15 @@ endif
|
||||
|
||||
$(BUILD_DIR)/%.table: %.aiff
|
||||
$(call print,Extracting codebook:,$<,$@)
|
||||
$(V)$(AIFF_EXTRACT_CODEBOOK) $< >$@
|
||||
$(V)$(AIFF_EXTRACT_CODEBOOK) $< $@
|
||||
|
||||
$(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
|
||||
@@ -752,9 +776,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
|
||||
@@ -787,20 +811,6 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*
|
||||
@$(PRINT) "$(GREEN)Generating demo data $(NO_COL)\n"
|
||||
$(V)$(PYTHON) $(TOOLS_DIR)/demo_data_converter.py assets/demo_data.json $(DEF_INC_CFLAGS) > $@
|
||||
|
||||
# Encode in-game text strings
|
||||
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
|
||||
$(call print,Encoding:,$<,$@)
|
||||
$(V)$(TEXTCONV) charmap.txt $< $@
|
||||
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
|
||||
$(call print,Encoding:,$<,$@)
|
||||
$(V)$(TEXTCONV) charmap_menu.txt $< $@
|
||||
$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
|
||||
$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
|
||||
|
||||
# Level headers
|
||||
$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
|
||||
$(call print,Preprocessing level headers:,$<,$@)
|
||||
@@ -809,7 +819,7 @@ $(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 #
|
||||
@@ -818,12 +828,15 @@ $(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
|
||||
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 $@ $<
|
||||
@@ -841,7 +854,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)
|
||||
@@ -856,11 +869,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...)
|
||||
@@ -868,13 +881,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
|
||||
|
||||
# Build ROM
|
||||
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))
|
||||
@@ -899,7 +912,7 @@ endif
|
||||
$(BUILD_DIR)/$(TARGET).objdump: $(ELF)
|
||||
$(OBJDUMP) -D $< > $@
|
||||
|
||||
.PHONY: all clean distclean default test load
|
||||
.PHONY: all clean distclean default test load rebuildtools
|
||||
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
|
||||
.SECONDARY:
|
||||
|
||||
|
||||
@@ -39,15 +39,23 @@ ACTOR_GROUPS := \
|
||||
|
||||
LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
|
||||
|
||||
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
|
||||
|
||||
VANILLA_ACTORS_FILES := $(addsuffix data,$(VNL_ACTRS_DIRS))
|
||||
|
||||
VANILLA_ACTORS_ELF_FILES := $(foreach level_dir,$(VNL_ACTRS_DIRS),$(BUILD_DIR)/actors/vanilla_actors/$(level_dir)data.elf)
|
||||
|
||||
SEG_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf)
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf) \
|
||||
$(VANILLA_ACTORS_FILES:%=$(BUILD_DIR)/actors/vanilla_actors/%.elf)
|
||||
|
||||
YAY0_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.szp) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.szp) \
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp)
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp) \
|
||||
$(VANILLA_ACTORS_FILES:%=$(BUILD_DIR)/actors/vanilla_actors/%.szp)
|
||||
|
||||
YAY0_OBJ_FILES := $(YAY0_FILES:.szp=.szp.o)
|
||||
|
||||
@@ -241,9 +249,11 @@ $(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
# EU segment 19 translations
|
||||
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/translation_de.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
|
||||
# --------------------------------------
|
||||
# Skybox Rules
|
||||
@@ -268,3 +278,36 @@ IPL3_RAW_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(IP
|
||||
|
||||
CRASH_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/crash_custom/*.png)
|
||||
CRASH_TEXTURE_C_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(CRASH_TEXTURE_FILES)))
|
||||
|
||||
# --------------------------------------
|
||||
# Vanilla Objects Rules
|
||||
# --------------------------------------
|
||||
|
||||
define vanilla_objects_rules =
|
||||
VANILLA_ACTORS_$(1)_TEXTURE_FILES := $$(patsubst %.png,%.inc.c,$$(wildcard actors/vanilla_actors/$(1)/*.png))
|
||||
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.o: $$(addprefix $$(BUILD_DIR)/,$$(VANILLA_ACTORS_$(1)_TEXTURE_FILES))
|
||||
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.elf: SEGMENT_ADDRESS := 0x0e000000
|
||||
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.elf: TEXTURE_BIN := $(2)
|
||||
endef
|
||||
|
||||
$(eval $(call vanilla_objects_rules,bob,generic))
|
||||
$(eval $(call vanilla_objects_rules,wf,grass))
|
||||
$(eval $(call vanilla_objects_rules,jrb,water))
|
||||
$(eval $(call vanilla_objects_rules,ccm,snow))
|
||||
$(eval $(call vanilla_objects_rules,bbh,spooky))
|
||||
$(eval $(call vanilla_objects_rules,hmc,cave))
|
||||
$(eval $(call vanilla_objects_rules,lll,fire))
|
||||
$(eval $(call vanilla_objects_rules,ssl,generic))
|
||||
$(eval $(call vanilla_objects_rules,ddd,water))
|
||||
$(eval $(call vanilla_objects_rules,sl,snow))
|
||||
$(eval $(call vanilla_objects_rules,wdw,grass))
|
||||
$(eval $(call vanilla_objects_rules,ttm,mountain))
|
||||
$(eval $(call vanilla_objects_rules,thi,grass))
|
||||
$(eval $(call vanilla_objects_rules,ttc,machine))
|
||||
$(eval $(call vanilla_objects_rules,rr,sky))
|
||||
$(eval $(call vanilla_objects_rules,bitdw,sky))
|
||||
$(eval $(call vanilla_objects_rules,bitfs,sky))
|
||||
$(eval $(call vanilla_objects_rules,bits,sky))
|
||||
$(eval $(call vanilla_objects_rules,vcutm,outside))
|
||||
$(eval $(call vanilla_objects_rules,castle_inside,inside))
|
||||
$(eval $(call vanilla_objects_rules,castle_grounds,outside))
|
||||
|
||||
36
README.md
36
README.md
@@ -17,35 +17,25 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
|
||||
- **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
|
||||
- **Arthurtilly**: ASCII / UTF-8 support, Multilang, Platform Displacement 2
|
||||
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
|
||||
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
|
||||
- **Reonu**: Starting the project + widescreen, reonucam, various defines for hacker QoL, and a custom Spanish (Spain) translation of the game.
|
||||
- **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
|
||||
|
||||
**Lighting Engine by Wiseguy**
|
||||
- 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.
|
||||
|
||||
- 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.
|
||||
|
||||
**Puppycam**
|
||||
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
|
||||
@@ -92,14 +82,14 @@ 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. *
|
||||
- The clown font includes the entire English alphabet.
|
||||
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
|
||||
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
|
||||
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
|
||||
- Colored ia4 text support. Format: `"@XXXXXX[YOUR TEXT]@--------"` (By Arthurtilly)
|
||||
- Example Text: `"@FF0000RED @00FF00GREEN @0000FFBLUE @FFFFFFWHITE"`
|
||||
- NOTE: Text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset. The text will use gDialogTextAlpha as the alpha value when changing the color.
|
||||
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
|
||||
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *
|
||||
|
||||
@@ -115,7 +105,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. *
|
||||
@@ -131,7 +121,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).
|
||||
@@ -145,7 +135,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
- It has been patched with someone2639's shiftable segments patch
|
||||
- Wiseguy's instant input patch has been added to allow for less input lag on emulation (Does not affect console)
|
||||
This does mean that any framebuffer effects will have to be done on buffer 0 if targeting emulators
|
||||
- Automatic console and emulator detection: Use the `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.8
|
||||
v2.3.0
|
||||
|
||||
@@ -44,6 +44,8 @@ static const Vtx breakable_box_seg8_vertex[] = {
|
||||
|
||||
// 0x08012C30 - 0x08012CD8
|
||||
const Gfx breakable_box_seg8_sub_dl_end[] = {
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
|
||||
gsSPVertex(breakable_box_seg8_vertex, 26, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
|
||||
|
||||
@@ -44,7 +44,8 @@ const Gfx bully_seg5_dl_050002E0[] = {
|
||||
// 0x05000398 - 0x05000408
|
||||
const Gfx bully_seg5_dl_05000398[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI),
|
||||
gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB),
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
@@ -54,6 +55,7 @@ const Gfx bully_seg5_dl_05000398[] = {
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -294,10 +296,9 @@ static const Vtx bully_seg5_vertex_05003608[] = {
|
||||
|
||||
// 0x05003708 - 0x050037A0
|
||||
const Gfx bully_seg5_dl_05003708[] = {
|
||||
gsSPLightColor(LIGHT_1, 0xe300ff),
|
||||
gsSPLightColor(LIGHT_2, 0x3800ff),
|
||||
gsSPVertex(bully_seg5_vertex_05002C68, 14, 0),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetPrimColor(0, 0, 0, 227, 00, 255),
|
||||
gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, 1, PRIMITIVE, 0, SHADE, 0, 0, 0, 0, 1),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
|
||||
gsSP2Triangles( 2, 3, 4, 0x0, 1, 5, 6, 0x0),
|
||||
gsSP2Triangles( 1, 6, 7, 0x0, 0, 5, 1, 0x0),
|
||||
@@ -311,6 +312,8 @@ const Gfx bully_seg5_dl_05003708[] = {
|
||||
|
||||
// 0x050037A0 - 0x05003838
|
||||
const Gfx bully_seg5_dl_050037A0[] = {
|
||||
gsSPLightColor(LIGHT_1, 0xff00ff),
|
||||
gsSPLightColor(LIGHT_2, 0x3f00ff),
|
||||
gsSPVertex(bully_seg5_vertex_05002D88, 14, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0),
|
||||
gsSP2Triangles( 3, 1, 0, 0x0, 5, 6, 7, 0x0),
|
||||
@@ -325,6 +328,8 @@ const Gfx bully_seg5_dl_050037A0[] = {
|
||||
|
||||
// 0x05003878 - 0x05003C50
|
||||
const Gfx bully_seg5_dl_05003878[] = {
|
||||
gsSPLightColor(LIGHT_1, 0xff),
|
||||
gsSPLightColor(LIGHT_2, 0xff),
|
||||
gsSPVertex(bully_seg5_vertex_05002F08, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
|
||||
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
|
||||
@@ -431,7 +436,8 @@ const Gfx bully_seg5_dl_05003D08[] = {
|
||||
// 0x05003D40 - 0x05003DB8
|
||||
const Gfx bully_seg5_dl_05003D40[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
@@ -442,6 +448,7 @@ const Gfx bully_seg5_dl_05003D40[] = {
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -484,7 +491,8 @@ const Gfx bully_seg5_dl_05003E70[] = {
|
||||
// 0x05003EA8 - 0x05003F20
|
||||
const Gfx bully_seg5_dl_05003EA8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
@@ -495,6 +503,7 @@ const Gfx bully_seg5_dl_05003EA8[] = {
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -522,7 +531,8 @@ const Gfx bully_seg5_dl_05003F80[] = {
|
||||
// 0x05003FC8 - 0x05004038
|
||||
const Gfx bully_seg5_dl_05003FC8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
@@ -532,5 +542,6 @@ const Gfx bully_seg5_dl_05003FC8[] = {
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -155,10 +155,8 @@ static const Vtx goomba_seg8_vertex_0801B238[] = {
|
||||
|
||||
// 0x0801B2E8 - 0x0801B560
|
||||
const Gfx goomba_seg8_dl_0801B2E8[] = {
|
||||
// gsSPLight(&goomba_seg8_lights_0801AD30.l, 1),
|
||||
// gsSPLight(&goomba_seg8_lights_0801AD30.a, 2),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetEnvColor(0xFF, 0xFF, 0xFF, 0xFF),
|
||||
gsSPLightColor(LIGHT_1, 0xffffffff),
|
||||
gsSPLightColor(LIGHT_2, 0x7f7f7fff),
|
||||
gsSPVertex(goomba_seg8_vertex_0801AD48, 15, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 5, 4, 0x0, 5, 7, 3, 0x0),
|
||||
@@ -222,7 +220,7 @@ const Gfx goomba_seg8_dl_0801B5A0[] = {
|
||||
gsSPDisplayList(goomba_seg8_dl_0801B2E8),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE, ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -264,10 +262,10 @@ const Gfx floomba_seg8_dl_blink[] = {
|
||||
|
||||
// 0x0801B618
|
||||
static const Vtx goomba_seg8_vertex_0801B618[] = {
|
||||
{{{ 18, 18, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ -18, 18, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ -18, -18, 0}, 0, { 0, 990}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 18, -18, 0}, 0, { 990, 990}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 18, 18, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -18, 18, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -18, -18, 0}, 0, { 0, 990}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 18, -18, 0}, 0, { 990, 990}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x0801B658 - 0x0801B690
|
||||
@@ -283,8 +281,8 @@ const Gfx goomba_seg8_dl_0801B658[] = {
|
||||
// 0x0801B690 - 0x0801B700
|
||||
const Gfx goomba_seg8_dl_0801B690[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA),
|
||||
// gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
@@ -293,7 +291,7 @@ const Gfx goomba_seg8_dl_0801B690[] = {
|
||||
gsSPDisplayList(goomba_seg8_dl_0801B658),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE, ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
@@ -774,10 +772,8 @@ static const Vtx goomba_seg8_vertex_0801CDF0[] = {
|
||||
|
||||
// 0x0801CE20 - 0x0801CF78
|
||||
const Gfx goomba_seg8_dl_0801CE20[] = {
|
||||
// gsSPLight(&goomba_seg8_lights_080194D0.l, 1),
|
||||
// gsSPLight(&goomba_seg8_lights_080194D0.a, 2),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetEnvColor(0x54, 0x2e, 0x10, 0xFF),
|
||||
gsSPLightColor(LIGHT_1, 0x542e10ff),
|
||||
gsSPLightColor(LIGHT_2, 0x150b04ff),
|
||||
gsSPVertex(goomba_seg8_vertex_0801B700, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
@@ -805,10 +801,8 @@ const Gfx goomba_seg8_dl_0801CE20[] = {
|
||||
|
||||
// 0x0801CF78 - 0x0801D0D0
|
||||
const Gfx goomba_seg8_dl_0801CF78[] = {
|
||||
// gsSPLight(&goomba_seg8_lights_080194E8.l, 1),
|
||||
// gsSPLight(&goomba_seg8_lights_080194E8.a, 2),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetEnvColor(0x61, 0x34, 0x13, 0xFF),
|
||||
gsSPLightColor(LIGHT_1, 0x613413ff),
|
||||
gsSPLightColor(LIGHT_2, 0x180d04ff),
|
||||
gsSPVertex(goomba_seg8_vertex_0801BA50, 15, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0),
|
||||
@@ -836,10 +830,8 @@ const Gfx goomba_seg8_dl_0801CF78[] = {
|
||||
|
||||
// 0x0801D0D0 - 0x0801D360
|
||||
const Gfx goomba_seg8_dl_0801D0D0[] = {
|
||||
// gsSPLight(&goomba_seg8_lights_08019500.l, 1),
|
||||
// gsSPLight(&goomba_seg8_lights_08019500.a, 2),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetEnvColor(0x77, 0x42, 0x20, 0xFF),
|
||||
gsSPLightColor(LIGHT_1, 0x774220ff),
|
||||
gsSPLightColor(LIGHT_2, 0x1d1008ff),
|
||||
gsSPVertex(goomba_seg8_vertex_0801BDC0, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
||||
@@ -890,10 +882,8 @@ const Gfx goomba_seg8_dl_0801D0D0[] = {
|
||||
|
||||
// 0x0801D360 - 0x0801D760
|
||||
const Gfx goomba_seg8_dl_0801D360[] = {
|
||||
// gsSPLight(&goomba_seg8_lights_08019518.l, 1),
|
||||
// gsSPLight(&goomba_seg8_lights_08019518.a, 2),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetEnvColor(0xde, 0xb4, 0x4e, 0xFF),
|
||||
gsSPLightColor(LIGHT_1, 0xdeb44eff),
|
||||
gsSPLightColor(LIGHT_2, 0x372d13ff),
|
||||
gsSPVertex(goomba_seg8_vertex_0801C620, 16, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 4, 5, 1, 0x0, 4, 1, 0, 0x0),
|
||||
@@ -967,6 +957,6 @@ const Gfx goomba_seg8_dl_0801D360[] = {
|
||||
|
||||
// 0x0801D760 - 0x0801D770
|
||||
const Gfx goomba_seg8_dl_0801D760[] = {
|
||||
// gsSPNumLights(NUMLIGHTS_1),
|
||||
gsSPNumLights(NUMLIGHTS_1),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#include "sparkle_animation/model.inc.c"
|
||||
|
||||
#ifdef S2DEX_TEXT_ENGINE
|
||||
#include "src/s2d_engine/config.h"
|
||||
#include "src/s2d_engine/s2d_config.h"
|
||||
#include FONT_C_FILE
|
||||
#endif
|
||||
#include "lantern/model.inc.c"
|
||||
|
||||
@@ -331,8 +331,4 @@ extern const Gfx white_particle_small_dl_end[];
|
||||
extern const Gfx white_particle_small_dl[];
|
||||
extern const Gfx white_particle_small_unused_dl[];
|
||||
|
||||
#include "mario/geo_header.h"
|
||||
|
||||
#include "lantern/geo_header.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -16,5 +16,3 @@
|
||||
#include "water_splash/geo.inc.c"
|
||||
#include "sparkle_animation/geo.inc.c"
|
||||
#include "mario/geo.inc.c"
|
||||
|
||||
#include "lantern/geo.inc.c"
|
||||
@@ -105,4 +105,7 @@ extern const struct Animation *const unagi_seg5_anims_05012824[];
|
||||
extern const Gfx whirlpool_seg5_dl_05013B58[];
|
||||
extern const Gfx whirlpool_seg5_dl_05013CB8[];
|
||||
|
||||
extern const Trajectory jrb_seg7_trajectory_unagi_1[];
|
||||
extern const Trajectory jrb_seg7_trajectory_unagi_2[];
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,3 +11,30 @@
|
||||
#include "manta/geo.inc.c"
|
||||
#include "sushi/geo.inc.c"
|
||||
#include "unagi/geo.inc.c"
|
||||
|
||||
#include "surface_terrains.h"
|
||||
|
||||
// 0x0700D20C - 0x0700D23E
|
||||
const Trajectory jrb_seg7_trajectory_unagi_1[] = {
|
||||
TRAJECTORY_POS(0, /*pos*/ 5300, -3800, 1200),
|
||||
TRAJECTORY_POS(1, /*pos*/ 3700, -3600, 1700),
|
||||
TRAJECTORY_POS(2, /*pos*/ 3400, -3400, 3500),
|
||||
TRAJECTORY_POS(3, /*pos*/ 3900, -3600, 4400),
|
||||
TRAJECTORY_POS(4, /*pos*/ 5300, -3800, 4400),
|
||||
TRAJECTORY_POS(5, /*pos*/ 6200, -4000, 2700),
|
||||
TRAJECTORY_END(),
|
||||
};
|
||||
|
||||
// 0x0700D240 - 0x0700D28A
|
||||
const Trajectory jrb_seg7_trajectory_unagi_2[] = {
|
||||
TRAJECTORY_POS(0, /*pos*/ 5381, 0, 2758),
|
||||
TRAJECTORY_POS(1, /*pos*/ 5803, -3130, 3036),
|
||||
TRAJECTORY_POS(2, /*pos*/ 4876, -3045, 2706),
|
||||
TRAJECTORY_POS(3, /*pos*/ 4313, -3246, 2736),
|
||||
TRAJECTORY_POS(4, /*pos*/ 3792, -3413, 3668),
|
||||
TRAJECTORY_POS(5, /*pos*/ 4971, -3130, 3688),
|
||||
TRAJECTORY_POS(6, /*pos*/ 5392, -3130, 3326),
|
||||
TRAJECTORY_POS(7, /*pos*/ 6341, -3130, 2450),
|
||||
TRAJECTORY_POS(8, /*pos*/ 9431, -3130, 1400),
|
||||
TRAJECTORY_END(),
|
||||
};
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#include "src/game/envfx_snow.h"
|
||||
|
||||
const GeoLayout lantern_geo[] = {
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, lantern_Lantern_mesh),
|
||||
GEO_BILLBOARD_WITH_PARAMS_AND_DL(LAYER_TRANSPARENT, 0, 0, 0, lantern_Flame_mesh),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, lantern_Glass_mesh),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, lantern_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, lantern_material_revert_render_settings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
@@ -1,19 +0,0 @@
|
||||
extern const GeoLayout lantern_geo[];
|
||||
extern Vtx lantern_Lantern_mesh_vtx_0[20];
|
||||
extern Gfx lantern_Lantern_mesh_tri_0[];
|
||||
extern Vtx lantern_Lantern_mesh_vtx_1[6];
|
||||
extern Gfx lantern_Lantern_mesh_tri_1[];
|
||||
extern Vtx lantern_Lantern_mesh_vtx_2[18];
|
||||
extern Gfx lantern_Lantern_mesh_tri_2[];
|
||||
extern Vtx lantern_Lantern_mesh_vtx_3[16];
|
||||
extern Gfx lantern_Lantern_mesh_tri_3[];
|
||||
extern Vtx lantern_Flame_mesh_vtx_0[3];
|
||||
extern Gfx lantern_Flame_mesh_tri_0[];
|
||||
extern Vtx lantern_Glass_mesh_vtx_0[13];
|
||||
extern Gfx lantern_Glass_mesh_tri_0[];
|
||||
|
||||
extern Gfx lantern_Lantern_mesh[];
|
||||
extern Gfx lantern_Flame_mesh[];
|
||||
extern Gfx lantern_Glass_mesh[];
|
||||
extern Gfx lantern_material_revert_render_settings[];
|
||||
|
||||
@@ -1,359 +0,0 @@
|
||||
Gfx lantern_sm64lanternfire_i8_aligner[] = {gsSPEndDisplayList()};
|
||||
u8 lantern_sm64lanternfire_i8[] = {
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
|
||||
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x2, 0x6, 0x2, 0x4, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x1, 0x4, 0x18, 0xC, 0x8, 0x7, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x8,
|
||||
0x19, 0x2F, 0x3B, 0xE, 0xB, 0x5, 0x1, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0xC, 0x3, 0x23, 0x43, 0x2E,
|
||||
0x4D, 0x33, 0x10, 0x15, 0x4, 0x1, 0x0, 0x0, 0x0,
|
||||
0x0, 0x1, 0x1E, 0x11, 0x31, 0x67, 0x5F, 0x5F, 0x4E,
|
||||
0x1D, 0x33, 0x18, 0x2, 0x0, 0x0, 0x0, 0x1, 0xD,
|
||||
0xF, 0x36, 0x50, 0x72, 0x72, 0x64, 0x5B, 0x55, 0x5B,
|
||||
0x18, 0x5, 0x1, 0x0, 0x0, 0x2, 0x21, 0x2A, 0x5C,
|
||||
0x7E, 0x7D, 0x8C, 0x7F, 0x65, 0x62, 0x44, 0x3B, 0x18,
|
||||
0x4, 0x0, 0x0, 0x13, 0x39, 0x38, 0x70, 0x87, 0x8C,
|
||||
0x9F, 0x9C, 0x85, 0x96, 0x6A, 0x4A, 0x2F, 0x3, 0x0,
|
||||
0x0, 0x20, 0x44, 0x5C, 0xA4, 0xA4, 0x99, 0xB3, 0xBE,
|
||||
0xC3, 0x7E, 0xA6, 0x92, 0x3F, 0x4, 0x0, 0x0, 0x3,
|
||||
0x6E, 0x98, 0xB3, 0xD7, 0xAD, 0xBD, 0xCA, 0xE5, 0xCE,
|
||||
0xAD, 0x8A, 0x68, 0xA, 0x0, 0x0, 0x1A, 0x7A, 0x9B,
|
||||
0xE1, 0xE3, 0xDD, 0xE0, 0xED, 0xF5, 0xE7, 0xD1, 0xD2,
|
||||
0x83, 0x12, 0x0, 0x0, 0xE, 0x73, 0xC0, 0xF4, 0xF2,
|
||||
0xFD, 0xFA, 0xFB, 0xFB, 0xF1, 0xD5, 0xAE, 0x87, 0x6,
|
||||
0x0, 0x0, 0x2, 0x31, 0x92, 0xD9, 0xF5, 0xFF, 0xFF,
|
||||
0xFE, 0xFB, 0xE0, 0xB6, 0xA9, 0x2A, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x21, 0x4C, 0x72, 0x99, 0x9F, 0xA1, 0x8B,
|
||||
0x66, 0x4F, 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0,
|
||||
};
|
||||
|
||||
Vtx lantern_Lantern_mesh_vtx_cull[8] = {
|
||||
{{{-61, -75, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-61, -75, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-61, 58, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-61, 58, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{61, -75, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{61, -75, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{61, 58, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{61, 58, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
};
|
||||
|
||||
Vtx lantern_Lantern_mesh_vtx_0[20] = {
|
||||
{{{36, -75, 21},0, {-16, 1008},{0x0, 0x71, 0x3A, 0xFF}}},
|
||||
{{{0, -10, 0},0, {-16, 1008},{0x0, 0x71, 0x3A, 0xFF}}},
|
||||
{{{-36, -75, 21},0, {-16, 1008},{0x0, 0x71, 0x3A, 0xFF}}},
|
||||
{{{0, -75, -42},0, {-16, 1008},{0x32, 0x71, 0xE3, 0xFF}}},
|
||||
{{{0, -10, 0},0, {-16, 1008},{0x32, 0x71, 0xE3, 0xFF}}},
|
||||
{{{36, -75, 21},0, {-16, 1008},{0x32, 0x71, 0xE3, 0xFF}}},
|
||||
{{{-36, -75, 21},0, {-16, 1008},{0xCE, 0x71, 0xE3, 0xFF}}},
|
||||
{{{0, -10, 0},0, {-16, 1008},{0xCE, 0x71, 0xE3, 0xFF}}},
|
||||
{{{0, -75, -42},0, {-16, 1008},{0xCE, 0x71, 0xE3, 0xFF}}},
|
||||
{{{-31, -24, 18},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{31, -24, 18},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{0, -24, -36},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{0, -73, 0},0, {832, 832},{0x73, 0x36, 0x0, 0xFF}}},
|
||||
{{{-40, 11, -12},0, {160, 832},{0x7A, 0xDD, 0x0, 0xFF}}},
|
||||
{{{-40, 11, 12},0, {160, 832},{0x7A, 0xDD, 0x0, 0xFF}}},
|
||||
{{{0, 37, 10},0, {160, 160},{0x0, 0x81, 0x0, 0xFF}}},
|
||||
{{{0, 37, -10},0, {160, 160},{0x0, 0x81, 0x0, 0xFF}}},
|
||||
{{{40, 11, 12},0, {832, 160},{0x86, 0xDD, 0x0, 0xFF}}},
|
||||
{{{40, 11, -12},0, {832, 160},{0x86, 0xDD, 0x0, 0xFF}}},
|
||||
{{{0, -73, 0},0, {832, 832},{0x8D, 0x36, 0x0, 0xFF}}},
|
||||
};
|
||||
|
||||
Gfx lantern_Lantern_mesh_tri_0[] = {
|
||||
gsSPVertex(lantern_Lantern_mesh_vtx_0 + 0, 20, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(12, 13, 14, 0, 13, 15, 14, 0),
|
||||
gsSP2Triangles(13, 16, 15, 0, 16, 17, 15, 0),
|
||||
gsSP2Triangles(16, 18, 17, 0, 18, 19, 17, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};Vtx lantern_Lantern_mesh_vtx_1[6] = {
|
||||
{{{0, -75, -42},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{-36, -75, 21},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{36, -75, 21},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{-7, -44, 26},0, {-16, 1008},{0x0, 0xBF, 0x93, 0xFF}}},
|
||||
{{{0, -33, 19},0, {-16, 1008},{0x0, 0xBF, 0x93, 0xFF}}},
|
||||
{{{7, -44, 26},0, {-16, 1008},{0x0, 0xBF, 0x93, 0xFF}}},
|
||||
};
|
||||
|
||||
Gfx lantern_Lantern_mesh_tri_1[] = {
|
||||
gsSPVertex(lantern_Lantern_mesh_vtx_1 + 0, 6, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};Vtx lantern_Lantern_mesh_vtx_2[18] = {
|
||||
{{{0, -73, 0},0, {-16, 1008},{0x0, 0x73, 0xCA, 0xFF}}},
|
||||
{{{-31, -24, 18},0, {-16, 1008},{0x0, 0x73, 0xCA, 0xFF}}},
|
||||
{{{31, -24, 18},0, {-16, 1008},{0x0, 0x73, 0xCA, 0xFF}}},
|
||||
{{{0, -73, 0},0, {-16, 1008},{0x99, 0x2C, 0x3C, 0xFF}}},
|
||||
{{{31, -24, 18},0, {-16, 1008},{0x99, 0x2C, 0x3C, 0xFF}}},
|
||||
{{{0, -24, -36},0, {-16, 1008},{0x99, 0x2C, 0x3C, 0xFF}}},
|
||||
{{{0, -73, 0},0, {-16, 1008},{0x67, 0x2C, 0x3C, 0xFF}}},
|
||||
{{{0, -24, -36},0, {-16, 1008},{0x67, 0x2C, 0x3C, 0xFF}}},
|
||||
{{{-31, -24, 18},0, {-16, 1008},{0x67, 0x2C, 0x3C, 0xFF}}},
|
||||
{{{-7, -44, 26},0, {-16, 1008},{0x0, 0x54, 0xA1, 0xFF}}},
|
||||
{{{7, -44, 26},0, {-16, 1008},{0x0, 0x54, 0xA1, 0xFF}}},
|
||||
{{{0, -73, 0},0, {-16, 1008},{0x0, 0x54, 0xA1, 0xFF}}},
|
||||
{{{7, -44, 26},0, {-16, 1008},{0x98, 0xE0, 0x41, 0xFF}}},
|
||||
{{{0, -33, 19},0, {-16, 1008},{0x98, 0xE0, 0x41, 0xFF}}},
|
||||
{{{0, -73, 0},0, {-16, 1008},{0x98, 0xE0, 0x41, 0xFF}}},
|
||||
{{{0, -33, 19},0, {-16, 1008},{0x68, 0xE0, 0x41, 0xFF}}},
|
||||
{{{-7, -44, 26},0, {-16, 1008},{0x68, 0xE0, 0x41, 0xFF}}},
|
||||
{{{0, -73, 0},0, {-16, 1008},{0x68, 0xE0, 0x41, 0xFF}}},
|
||||
};
|
||||
|
||||
Gfx lantern_Lantern_mesh_tri_2[] = {
|
||||
gsSPVertex(lantern_Lantern_mesh_vtx_2 + 0, 18, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};Vtx lantern_Lantern_mesh_vtx_3[16] = {
|
||||
{{{0, -73, 0},0, {1008, 1008},{0x3B, 0x2B, 0x68, 0xFF}}},
|
||||
{{{-40, 11, -12},0, {160, 832},{0x39, 0xF3, 0x71, 0xFF}}},
|
||||
{{{-61, 11, 0},0, {-16, 1008},{0x39, 0xF7, 0x71, 0xFF}}},
|
||||
{{{0, 58, 0},0, {-16, -16},{0x0, 0xBD, 0x6C, 0xFF}}},
|
||||
{{{0, 37, -10},0, {160, 160},{0x0, 0xBD, 0x6C, 0xFF}}},
|
||||
{{{61, 11, 0},0, {1008, -16},{0xC7, 0xF7, 0x71, 0xFF}}},
|
||||
{{{40, 11, -12},0, {832, 160},{0xC7, 0xF3, 0x71, 0xFF}}},
|
||||
{{{0, -73, 0},0, {832, 832},{0xC5, 0x2B, 0x68, 0xFF}}},
|
||||
{{{0, -73, 0},0, {832, 832},{0x3B, 0x2B, 0x98, 0xFF}}},
|
||||
{{{-61, 11, 0},0, {-16, 1008},{0x39, 0xF6, 0x8F, 0xFF}}},
|
||||
{{{-40, 11, 12},0, {160, 832},{0x39, 0xF3, 0x8F, 0xFF}}},
|
||||
{{{0, 58, 0},0, {-16, -16},{0x0, 0xBD, 0x94, 0xFF}}},
|
||||
{{{0, 37, 10},0, {160, 160},{0x0, 0xBD, 0x94, 0xFF}}},
|
||||
{{{61, 11, 0},0, {1008, -16},{0xC7, 0xF6, 0x8F, 0xFF}}},
|
||||
{{{40, 11, 12},0, {832, 160},{0xC7, 0xF3, 0x8F, 0xFF}}},
|
||||
{{{0, -73, 0},0, {1008, 1008},{0xC5, 0x2B, 0x98, 0xFF}}},
|
||||
};
|
||||
|
||||
Gfx lantern_Lantern_mesh_tri_3[] = {
|
||||
gsSPVertex(lantern_Lantern_mesh_vtx_3 + 0, 16, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSP2Triangles(1, 4, 3, 0, 4, 5, 3, 0),
|
||||
gsSP2Triangles(4, 6, 5, 0, 6, 7, 5, 0),
|
||||
gsSP2Triangles(8, 9, 10, 0, 10, 9, 11, 0),
|
||||
gsSP2Triangles(10, 11, 12, 0, 12, 11, 13, 0),
|
||||
gsSP2Triangles(12, 13, 14, 0, 14, 13, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx lantern_Flame_mesh_vtx_cull[8] = {
|
||||
{{{-24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
};
|
||||
|
||||
Vtx lantern_Flame_mesh_vtx_0[3] = {
|
||||
{{{-24, -16, 0},0, {-172, 495},{0x0, 0x0, 0x7F, 0xFF}}},
|
||||
{{{24, -16, 0},0, {639, 495},{0x0, 0x0, 0x7F, 0xFF}}},
|
||||
{{{0, 46, 0},0, {238, -104},{0x0, 0x0, 0x7F, 0xFF}}},
|
||||
};
|
||||
|
||||
Gfx lantern_Flame_mesh_tri_0[] = {
|
||||
gsSPVertex(lantern_Flame_mesh_vtx_0 + 0, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx lantern_Glass_mesh_vtx_cull[8] = {
|
||||
{{{-25, -35, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-25, -35, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-25, 44, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{-25, 44, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{25, -35, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{25, -35, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{25, 44, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
{{{25, 44, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
|
||||
};
|
||||
|
||||
Vtx lantern_Glass_mesh_vtx_0[13] = {
|
||||
{{{-25, -5, 25},0, {453, 1008},{0x59, 0xC, 0xA7, 0xFF}}},
|
||||
{{{-25, -5, -25},0, {453, 752},{0x59, 0xC, 0x59, 0xFF}}},
|
||||
{{{0, 44, 0},0, {624, 752},{0x0, 0x81, 0x0, 0xFF}}},
|
||||
{{{0, -35, 0},0, {368, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{25, -5, -25},0, {453, 496},{0xA7, 0xC, 0x59, 0xFF}}},
|
||||
{{{0, 44, 0},0, {624, 496},{0x0, 0x81, 0x0, 0xFF}}},
|
||||
{{{0, -35, 0},0, {368, 752},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{25, -5, 25},0, {453, 240},{0xA7, 0xC, 0xA7, 0xFF}}},
|
||||
{{{0, 44, 0},0, {624, 240},{0x0, 0x81, 0x0, 0xFF}}},
|
||||
{{{0, -35, 0},0, {368, 496},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
{{{-25, -5, 25},0, {453, -16},{0x59, 0xC, 0xA7, 0xFF}}},
|
||||
{{{0, 44, 0},0, {624, -16},{0x0, 0x81, 0x0, 0xFF}}},
|
||||
{{{0, -35, 0},0, {368, 240},{0x0, 0x7F, 0x0, 0xFF}}},
|
||||
};
|
||||
|
||||
Gfx lantern_Glass_mesh_tri_0[] = {
|
||||
gsSPVertex(lantern_Glass_mesh_vtx_0 + 0, 13, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0),
|
||||
gsSP2Triangles(1, 4, 5, 0, 6, 4, 1, 0),
|
||||
gsSP2Triangles(4, 7, 8, 0, 9, 7, 4, 0),
|
||||
gsSP2Triangles(7, 10, 11, 0, 12, 10, 7, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx mat_lantern_base_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetEnvColor(112, 43, 44, 255),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx mat_lantern_black_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_CULL_FRONT),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetEnvColor(47, 47, 47, 255),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx mat_revert_lantern_black_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_CULL_FRONT),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx mat_lantern_grey_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_CULL_FRONT),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetEnvColor(175, 175, 175, 255),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx mat_revert_lantern_grey_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_CULL_FRONT),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx mat_lantern_base_f3d_reverse[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1),
|
||||
gsSPSetGeometryMode(G_CULL_FRONT),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetEnvColor(112, 43, 44, 255),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx mat_revert_lantern_base_f3d_reverse[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_CULL_FRONT),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx mat_lantern_flame_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_8b, 16, lantern_sm64lanternfire_i8),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 2, 0, 7, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadTile(7, 0, 0, 60, 60),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 2, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 60, 60),
|
||||
gsDPSetEnvColor(188, 148, 78, 255),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx mat_lantern_glass_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_CULL_FRONT),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetEnvColor(154, 154, 154, 47),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx mat_revert_lantern_glass_f3d[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_CULL_FRONT),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
Gfx lantern_Lantern_mesh[] = {
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsSPVertex(lantern_Lantern_mesh_vtx_cull + 0, 8, 0),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPCullDisplayList(0, 7),
|
||||
gsSPDisplayList(mat_lantern_base_f3d),
|
||||
gsSPDisplayList(lantern_Lantern_mesh_tri_0),
|
||||
gsSPDisplayList(mat_lantern_black_f3d),
|
||||
gsSPDisplayList(lantern_Lantern_mesh_tri_1),
|
||||
gsSPDisplayList(mat_revert_lantern_black_f3d),
|
||||
gsSPDisplayList(mat_lantern_grey_f3d),
|
||||
gsSPDisplayList(lantern_Lantern_mesh_tri_2),
|
||||
gsSPDisplayList(mat_revert_lantern_grey_f3d),
|
||||
gsSPDisplayList(mat_lantern_base_f3d_reverse),
|
||||
gsSPDisplayList(lantern_Lantern_mesh_tri_3),
|
||||
gsSPDisplayList(mat_revert_lantern_base_f3d_reverse),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
|
||||
Gfx lantern_Flame_mesh[] = {
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsSPVertex(lantern_Flame_mesh_vtx_cull + 0, 8, 0),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPCullDisplayList(0, 7),
|
||||
gsSPDisplayList(mat_lantern_flame_f3d),
|
||||
gsSPDisplayList(lantern_Flame_mesh_tri_0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
|
||||
Gfx lantern_Glass_mesh[] = {
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsSPVertex(lantern_Glass_mesh_vtx_cull + 0, 8, 0),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPCullDisplayList(0, 7),
|
||||
gsSPDisplayList(mat_lantern_glass_f3d),
|
||||
gsSPDisplayList(lantern_Glass_mesh_tri_0),
|
||||
gsSPDisplayList(mat_revert_lantern_glass_f3d),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
|
||||
Gfx lantern_material_revert_render_settings[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPClearGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPTexture(65535, 65535, 0, 0, 0),
|
||||
gsDPSetEnvColor(255, 255, 255, 255),
|
||||
gsDPSetAlphaCompare(G_AC_NONE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user