Compare commits
411 Commits
fix_hardco
...
old/arceve
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3de225999b | ||
|
|
e421771c86 | ||
|
|
6c05ca1923 | ||
|
|
c3c0dd41d5 | ||
|
|
366f045227 | ||
|
|
a23a0cf0f1 | ||
|
|
5beb731dc7 | ||
|
|
f5678a7441 | ||
|
|
a54da956de | ||
|
|
74987cb87b | ||
|
|
15bca0c169 | ||
|
|
44da182c74 | ||
|
|
1cdb6c1c8e | ||
|
|
eb100db4b6 | ||
|
|
55a2f83aac | ||
|
|
e71df2afe0 | ||
|
|
642845e2e1 | ||
|
|
355375f49a | ||
|
|
ddc8442a36 | ||
|
|
dfe1da80af | ||
|
|
8f4c94b9e4 | ||
|
|
49d2d7f664 | ||
|
|
0d4da2e686 | ||
|
|
f3438cd72d | ||
|
|
2a72ff4359 | ||
|
|
1e7995084e | ||
|
|
86cf5d223f | ||
|
|
c9010c4668 | ||
|
|
71b32d6a67 | ||
|
|
0e5e9b1851 | ||
|
|
e643f259da | ||
|
|
781341d315 | ||
|
|
d7cb11b8b3 | ||
|
|
886b9a7d0b | ||
|
|
e593b40e55 | ||
|
|
e6b215b423 | ||
|
|
9a850c5c49 | ||
|
|
f077fa3904 | ||
|
|
ff93c2faa4 | ||
|
|
26d8b24f2b | ||
|
|
d0b49494f8 | ||
|
|
cc4c8fc3f7 | ||
|
|
ee4d459962 | ||
|
|
b321c003c3 | ||
|
|
3716627c20 | ||
|
|
dd2e802aa4 | ||
|
|
b4886e9867 | ||
|
|
549b919469 | ||
|
|
0920511950 | ||
|
|
4e3cc571a1 | ||
|
|
0fb3278e2f | ||
|
|
233b1d59fe | ||
|
|
1c660e3f7f | ||
|
|
b5f9b663ed | ||
|
|
7fb4da9634 | ||
|
|
c424e1398a | ||
|
|
1a83a96a86 | ||
|
|
45064e15d2 | ||
|
|
9d3c6bee3c | ||
|
|
267e10dec2 | ||
|
|
db4143afb8 | ||
|
|
83ccfe1464 | ||
|
|
70daaf7378 | ||
|
|
9a953cfdce | ||
|
|
1d9a8acb93 | ||
|
|
86ed5cf9a6 | ||
|
|
2b53cc64be | ||
|
|
ac029bb0c9 | ||
|
|
79a6619cc3 | ||
|
|
78ae7d1258 | ||
|
|
ae7019bbe2 | ||
|
|
aa8dee8ce7 | ||
|
|
4e07c43500 | ||
|
|
b99a7d2268 | ||
|
|
722dfa1554 | ||
|
|
bd978586bc | ||
|
|
e1ad774ac0 | ||
|
|
e72e3e18b0 | ||
|
|
11ed6ee740 | ||
|
|
728536e1eb | ||
|
|
806141f8dc | ||
|
|
2299dfb176 | ||
|
|
c422d281fb | ||
|
|
fb3b62a780 | ||
|
|
1c3de529f6 | ||
|
|
3ef93d5322 | ||
|
|
a79ba0a64c | ||
|
|
a2049f7aa0 | ||
|
|
0469f4e472 | ||
|
|
f2742758d4 | ||
|
|
302c2be4ea | ||
|
|
7ba23b9985 | ||
|
|
0bae1fd248 | ||
|
|
077f2fcfa0 | ||
|
|
18b1e81bd2 | ||
|
|
f803833b47 | ||
|
|
17d03b7547 | ||
|
|
103c12382b | ||
|
|
033395d1cb | ||
|
|
222930f745 | ||
|
|
4d48528d8e | ||
|
|
69cddd59c9 | ||
|
|
3a38121139 | ||
|
|
11ace63da5 | ||
|
|
524e3f052c | ||
|
|
3793d9ac5a | ||
|
|
aaeeea12d4 | ||
|
|
8f910e8f1d | ||
|
|
1761fc6faf | ||
|
|
0a75e483d5 | ||
|
|
fa112ccf44 | ||
|
|
951bf21dba | ||
|
|
f47b9bc1a1 | ||
|
|
d8ab1be8fa | ||
|
|
4cc5323962 | ||
|
|
504ca7a62a | ||
|
|
c3fb6b19e9 | ||
|
|
11da2ddd1e | ||
|
|
45ce38343f | ||
|
|
42c04ce127 | ||
|
|
752632a507 | ||
|
|
bb0f78f61f | ||
|
|
8b5717d0c9 | ||
|
|
fe07ecb773 | ||
|
|
5591f995b9 | ||
|
|
2c69722607 | ||
|
|
ea6ce08131 | ||
|
|
63134a3f6a | ||
|
|
672cc94f53 | ||
|
|
cdd0cb3827 | ||
|
|
dfa9e7ad99 | ||
|
|
1636fbe471 | ||
|
|
b9404bc198 | ||
|
|
2bf1768271 | ||
|
|
f4a38cd018 | ||
|
|
a61073312f | ||
|
|
dd624c23b5 | ||
|
|
a45063261d | ||
|
|
0b93f6d731 | ||
|
|
772130c4d9 | ||
|
|
1ac65d19fc | ||
|
|
d55bfcdf43 | ||
|
|
e007332ef6 | ||
|
|
d8091017a4 | ||
|
|
3ad1f38cc7 | ||
|
|
5685660c8b | ||
|
|
349f54d52e | ||
|
|
9cee33cd26 | ||
|
|
4816561e71 | ||
|
|
358a4a09c9 | ||
|
|
888f384300 | ||
|
|
2d7bca6b4e | ||
|
|
726ce9075b | ||
|
|
3a264f57e3 | ||
|
|
64d39e516f | ||
|
|
49f5befae3 | ||
|
|
89a15ce885 | ||
|
|
235e8a950c | ||
|
|
da0ca0bff6 | ||
|
|
54844e0a41 | ||
|
|
a178a2106a | ||
|
|
737820e668 | ||
|
|
7c018a6a11 | ||
|
|
6b7a38a335 | ||
|
|
ca99245856 | ||
|
|
b5cb9dbddd | ||
|
|
88a3dd76da | ||
|
|
7af6e44099 | ||
|
|
4d6e3ae2a1 | ||
|
|
662542b59c | ||
|
|
b2f0471dd4 | ||
|
|
d2d258a7ca | ||
|
|
186c69de77 | ||
|
|
aa6e175509 | ||
|
|
4b6575fe05 | ||
|
|
f59f0d892b | ||
|
|
9059813bc1 | ||
|
|
951a1f0f9c | ||
|
|
f49d29ac4e | ||
|
|
d7e0aff39c | ||
|
|
e6ec840176 | ||
|
|
0fbf07c34a | ||
|
|
649a26ab7e | ||
|
|
340d3a6c1b | ||
|
|
9f6c8dd8d7 | ||
|
|
b57fdd483e | ||
|
|
e95f4ca96f | ||
|
|
bf2b44597b | ||
|
|
9826432170 | ||
|
|
834055c06a | ||
|
|
1ee167e80b | ||
|
|
420ede64a3 | ||
|
|
f5ef22afa6 | ||
|
|
a70fb1b28e | ||
|
|
4fdb958492 | ||
|
|
0a454773e5 | ||
|
|
b9d5170377 | ||
|
|
549f07b634 | ||
|
|
476b5de97c | ||
|
|
a9084ede68 | ||
|
|
042104ab68 | ||
|
|
dab1db181e | ||
|
|
c93156fc3e | ||
|
|
d4185210e2 | ||
|
|
7bcd96c9c1 | ||
|
|
074c2a68f8 | ||
|
|
32d849df59 | ||
|
|
f891c0ec44 | ||
|
|
f2bd69e0e0 | ||
|
|
865b6a592a | ||
|
|
f0fc8f653e | ||
|
|
c2169629b9 | ||
|
|
34fdd2d51f | ||
|
|
d0794110e5 | ||
|
|
c8a713a345 | ||
|
|
a0786f33fa | ||
|
|
2aaa897cb7 | ||
|
|
49db267b20 | ||
|
|
07f20e7687 | ||
|
|
f5b167df9d | ||
|
|
e954899da5 | ||
|
|
e362d430a6 | ||
|
|
c1e9cb6dae | ||
|
|
7ef2e300bc | ||
|
|
c3aebc4b77 | ||
|
|
0a6ca89318 | ||
|
|
07b29711a3 | ||
|
|
48da6beac4 | ||
|
|
645258b66d | ||
|
|
4910ef7bcb | ||
|
|
24243ae905 | ||
|
|
9c58299d0a | ||
|
|
1ef949fab6 | ||
|
|
89e28d5d90 | ||
|
|
0fdb7b2a95 | ||
|
|
f576e98243 | ||
|
|
5ea8f704ec | ||
|
|
404421c73f | ||
|
|
c7f14f0d39 | ||
|
|
90df5f6980 | ||
|
|
26c2c5ab2c | ||
|
|
bed0ceb63f | ||
|
|
9601207aa4 | ||
|
|
5d34ddbb5e | ||
|
|
d6863ae59d | ||
|
|
422f234010 | ||
|
|
f47357ce12 | ||
|
|
7eb4c96aa3 | ||
|
|
0e1f9f6474 | ||
|
|
4727ef63ab | ||
|
|
93f6d988b5 | ||
|
|
5427bdfbc2 | ||
|
|
38e66e92f8 | ||
|
|
03e5c4b997 | ||
|
|
d1f6aa63b0 | ||
|
|
18c84f2116 | ||
|
|
dd804b627e | ||
|
|
ea729175bc | ||
|
|
9d99d79843 | ||
|
|
7eaeb051ab | ||
|
|
e409e1d43b | ||
|
|
087603ea47 | ||
|
|
ff26270962 | ||
|
|
7b8bbc740a | ||
|
|
4e907d5469 | ||
|
|
dcb3b311ad | ||
|
|
18213eca12 | ||
|
|
bc1fdc954b | ||
|
|
a7edd8b0b4 | ||
|
|
8d8496a5c9 | ||
|
|
dc53c0b7df | ||
|
|
0e4d4d8f25 | ||
|
|
b410e61df7 | ||
|
|
f4725f3126 | ||
|
|
1bf76dffbb | ||
|
|
9158aad000 | ||
|
|
5a67358edb | ||
|
|
41e8988655 | ||
|
|
8e2e98a022 | ||
|
|
cad29520ff | ||
|
|
f1de65a147 | ||
|
|
7cdaa8a7ef | ||
|
|
2e61899d87 | ||
|
|
d5cc31e4cd | ||
|
|
0306ded434 | ||
|
|
21041e27ff | ||
|
|
f79e7394bd | ||
|
|
9384b53bd0 | ||
|
|
c5f7683c05 | ||
|
|
2ba2be9473 | ||
|
|
a95b17f341 | ||
|
|
859e0b8ea1 | ||
|
|
b1760e7f5d | ||
|
|
5a962bf8dc | ||
|
|
f266185819 | ||
|
|
67c00141d8 | ||
|
|
7a48d23df1 | ||
|
|
ff86fe6428 | ||
|
|
170ca0f5a8 | ||
|
|
48e4b5ce83 | ||
|
|
c468258b8b | ||
|
|
5b04c181a5 | ||
|
|
9a4446d377 | ||
|
|
316357fbe8 | ||
|
|
a72c99b519 | ||
|
|
bd4fd3c3ca | ||
|
|
4d2116a683 | ||
|
|
be2898cd43 | ||
|
|
18d736f3ac | ||
|
|
a7ac7b7418 | ||
|
|
2ef5160dd9 | ||
|
|
f4ef135126 | ||
|
|
76532aaf96 | ||
|
|
06abd9419c | ||
|
|
4b5a8d839f | ||
|
|
ece967bebb | ||
|
|
4e75ab4a9b | ||
|
|
885af8671a | ||
|
|
b685b81914 | ||
|
|
67a0195ada | ||
|
|
6fc13856c3 | ||
|
|
27e7d905f3 | ||
|
|
f40619630d | ||
|
|
f30506d17d | ||
|
|
67cc35d428 | ||
|
|
ffa69662d4 | ||
|
|
fcd79fa6a5 | ||
|
|
881d75e3dd | ||
|
|
388e5cf517 | ||
|
|
dc6a173357 | ||
|
|
f066facc04 | ||
|
|
f1c10c0039 | ||
|
|
b195482afe | ||
|
|
de00603f6f | ||
|
|
f6c08bad7e | ||
|
|
4d4068c42b | ||
|
|
c071df0c32 | ||
|
|
25e4bf1d85 | ||
|
|
76723d741f | ||
|
|
1e65059b6c | ||
|
|
33b2cd9bdd | ||
|
|
f8676a6549 | ||
|
|
cebe1ade2e | ||
|
|
fea6930f0c | ||
|
|
41cf013d2c | ||
|
|
79f0cc60f7 | ||
|
|
68d8507d4b | ||
|
|
9399bd5caa | ||
|
|
1fad890c89 | ||
|
|
bf8b7990ed | ||
|
|
33f20577a7 | ||
|
|
80f150fc58 | ||
|
|
ce6a9baae5 | ||
|
|
2bb756c951 | ||
|
|
330cea65a8 | ||
|
|
51b6643058 | ||
|
|
bd3c9f4dc4 | ||
|
|
f00fdabc0c | ||
|
|
cca07d7fe7 | ||
|
|
be78e1a6e0 | ||
|
|
e628dc9f4d | ||
|
|
e15fc97426 | ||
|
|
06a2826fc7 | ||
|
|
9090882f0a | ||
|
|
8be5a6f12d | ||
|
|
d4b9f474d7 | ||
|
|
fe8b1b9071 | ||
|
|
90d15c29cd | ||
|
|
56f59fedb5 | ||
|
|
4c40248411 | ||
|
|
08ac5f96fa | ||
|
|
56f875485e | ||
|
|
2755ce64cf | ||
|
|
0b8541275f | ||
|
|
b02f3b6894 | ||
|
|
c79cc991b3 | ||
|
|
d1c87d9bd0 | ||
|
|
50c61d45bb | ||
|
|
9d9956d209 | ||
|
|
527d79202b | ||
|
|
033d80ca55 | ||
|
|
854af8cf7b | ||
|
|
325b7d9a0d | ||
|
|
82aa19e4cc | ||
|
|
4206b517d0 | ||
|
|
20136f6f72 | ||
|
|
110efebb24 | ||
|
|
16b901d099 | ||
|
|
d017628a78 | ||
|
|
402f4a16c0 | ||
|
|
384bc10312 | ||
|
|
0dcf4109b6 | ||
|
|
502677bcac | ||
|
|
2ba5d423e8 | ||
|
|
2f6f6c7a5c | ||
|
|
f6a2999134 | ||
|
|
98426c0f22 | ||
|
|
4c9920fbc6 | ||
|
|
1a43df6bf2 | ||
|
|
a349f944ee | ||
|
|
88388c1ecf | ||
|
|
5ffa0ba3cd | ||
|
|
8760a58ce2 | ||
|
|
2e432cb343 | ||
|
|
6dea5dff8a | ||
|
|
256f662fb1 | ||
|
|
8831dcf5ff | ||
|
|
208d526bb6 | ||
|
|
d8c7afebc2 | ||
|
|
eb466b2caf | ||
|
|
ef22ecf730 |
2
.gitignore
vendored
@@ -99,9 +99,9 @@ build/*
|
||||
!/textures/segment2/shadow_quarter_square_64.ia8.png
|
||||
|
||||
|
||||
|
||||
# libultra
|
||||
|
||||
!/lib/**/*.o
|
||||
!/lib/*.a
|
||||
lib/libs2d_engine.a
|
||||
!/lib/gcclib/*.a
|
||||
|
||||
167
Makefile
@@ -6,9 +6,9 @@ include util.mk
|
||||
default: all
|
||||
|
||||
# Preprocessor definitions
|
||||
DEFINES :=
|
||||
DEFINES :=
|
||||
|
||||
SRC_DIRS :=
|
||||
SRC_DIRS :=
|
||||
USE_DEBUG := 0
|
||||
|
||||
#==============================================================================#
|
||||
@@ -22,7 +22,7 @@ USE_DEBUG := 0
|
||||
TARGET_N64 ?= 1
|
||||
|
||||
# CONSOLE - selects the console to target
|
||||
# bb - Targets the iQue Player (codenamed BB)
|
||||
# bb - Targets the iQue Player (codenamed BB)
|
||||
# n64 - Targets the N64
|
||||
CONSOLE ?= n64
|
||||
$(eval $(call validate-option,CONSOLE,n64 bb))
|
||||
@@ -37,24 +37,24 @@ else ifeq ($(CONSOLE),bb)
|
||||
endif
|
||||
|
||||
# COMPILER - selects the C compiler to use
|
||||
# gcc - uses the GNU C Compiler
|
||||
# gcc - uses the GNU C Compiler
|
||||
# clang - uses clang C/C++ frontend for LLVM
|
||||
COMPILER ?= gcc
|
||||
$(eval $(call validate-option,COMPILER,gcc clang))
|
||||
|
||||
|
||||
# LIBGCCDIR - selects the libgcc configuration for checking for dividing by zero
|
||||
# trap - GCC default behavior, uses teq instructions which some emulators don't like
|
||||
# LIBGCCDIR - selects the libgcc configuration for checking for dividing by zero
|
||||
# trap - GCC default behavior, uses teq instructions which some emulators don't like
|
||||
# divbreak - this is similar to IDO behavior, and is default.
|
||||
# nocheck - never checks for dividing by 0. Technically fastest, but also UB so not recommended
|
||||
# nocheck - never checks for dividing by 0. Technically fastest, but also UB so not recommended
|
||||
LIBGCCDIR ?= divbreak
|
||||
$(eval $(call validate-option,LIBGCCDIR,trap divbreak nocheck))
|
||||
|
||||
|
||||
# SAVETYPE - selects the save type
|
||||
# eep4k - uses EEPROM 4kbit
|
||||
# eep4k - uses EEPROM 4kbit
|
||||
# eep16k - uses EEPROM 16kbit (There aren't any differences in syntax, but this is provided just in case)
|
||||
# sram - uses SRAM 256Kbit
|
||||
# sram - uses SRAM 256Kbit
|
||||
SAVETYPE ?= eep4k
|
||||
$(eval $(call validate-option,SAVETYPE,eep4k eep16k sram))
|
||||
ifeq ($(SAVETYPE),eep4k)
|
||||
@@ -67,25 +67,6 @@ endif
|
||||
|
||||
DEFINES += NO_ERRNO_H=1 NO_GZIP=1
|
||||
|
||||
COMPRESS ?= rnc1
|
||||
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
|
||||
ifeq ($(COMPRESS),gzip)
|
||||
DEFINES += GZIP=1
|
||||
else ifeq ($(COMPRESS),rnc1)
|
||||
DEFINES += RNC1=1
|
||||
else ifeq ($(COMPRESS),rnc2)
|
||||
DEFINES += RNC2=1
|
||||
else ifeq ($(COMPRESS),yay0)
|
||||
DEFINES += YAY0=1
|
||||
else ifeq ($(COMPRESS),mio0)
|
||||
DEFINES += MIO0=1
|
||||
else ifeq ($(COMPRESS),uncomp)
|
||||
DEFINES += UNCOMPRESSED=1
|
||||
endif
|
||||
|
||||
GZIPVER ?= std
|
||||
$(eval $(call validate-option,GZIPVER,std libdef))
|
||||
|
||||
# VERSION - selects the version of the game to build
|
||||
# jp - builds the 1996 Japanese version
|
||||
# us - builds the 1996 North American version
|
||||
@@ -106,7 +87,7 @@ endif
|
||||
|
||||
DEBUG_MAP_STACKTRACE_FLAG := -D DEBUG_MAP_STACKTRACE
|
||||
|
||||
TARGET := sm64.$(VERSION)
|
||||
TARGET := sm64
|
||||
|
||||
|
||||
# GRUCODE - selects which RSP microcode to use.
|
||||
@@ -139,7 +120,7 @@ LIBRARIES := nustd hvqm2 z goddard
|
||||
# s2dex_text_engine - Text Engine by someone2639
|
||||
TEXT_ENGINE := none
|
||||
ifeq ($(TEXT_ENGINE), s2dex_text_engine)
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
|
||||
LIBRARIES += s2d_engine
|
||||
DUMMY != make -C src/s2d_engine COPY_DIR=$(shell pwd)/lib/
|
||||
endif
|
||||
@@ -150,7 +131,12 @@ LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
ifeq ($(COMPILER),gcc)
|
||||
NON_MATCHING := 1
|
||||
MIPSISET := -mips3
|
||||
OPT_FLAGS := -Ofast
|
||||
OPT_FLAGS := \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=10 \
|
||||
--param max-unrolled-insns=10 \
|
||||
-finline-limit=1
|
||||
else ifeq ($(COMPILER),clang)
|
||||
NON_MATCHING := 1
|
||||
# clang doesn't support ABI 'o32' for 'mips3'
|
||||
@@ -171,21 +157,10 @@ endif
|
||||
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
DEFINES += NON_MATCHING=1 AVOID_UB=1
|
||||
COMPARE := 0
|
||||
endif
|
||||
|
||||
|
||||
# COMPARE - whether to verify the SHA-1 hash of the ROM after building
|
||||
# 1 - verifies the SHA-1 hash of the selected version of the game
|
||||
# 0 - does not verify the hash
|
||||
COMPARE ?= 0
|
||||
$(eval $(call validate-option,COMPARE,0 1))
|
||||
|
||||
TARGET_STRING := sm64.$(VERSION).$(CONSOLE).$(GRUCODE)
|
||||
# If non-default settings were chosen, disable COMPARE
|
||||
ifeq ($(filter $(TARGET_STRING), sm64.jp.f3d_old sm64.us.f3d_old sm64.eu.f3d_new sm64.sh.f3d_new),)
|
||||
COMPARE := 0
|
||||
endif
|
||||
TARGET_STRING := sm64
|
||||
|
||||
# UNF - whether to use UNFLoader flashcart library
|
||||
# 1 - includes code in ROM
|
||||
@@ -193,7 +168,7 @@ endif
|
||||
UNF ?= 0
|
||||
$(eval $(call validate-option,UNF,0 1))
|
||||
ifeq ($(UNF),1)
|
||||
DEFINES += UNF=1
|
||||
DEFINES += UNF=1
|
||||
SRC_DIRS += src/usb
|
||||
USE_DEBUG := 1
|
||||
endif
|
||||
@@ -223,10 +198,31 @@ endif
|
||||
HVQM ?= 0
|
||||
$(eval $(call validate-option,HVQM,0 1))
|
||||
ifeq ($(HVQM),1)
|
||||
DEFINES += HVQM=1
|
||||
DEFINES += HVQM=1
|
||||
SRC_DIRS += src/hvqm
|
||||
endif
|
||||
|
||||
COMPRESS ?= rnc1
|
||||
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
|
||||
ifeq ($(COMPRESS),gzip)
|
||||
DEFINES += GZIP=1
|
||||
LIBZRULE := $(BUILD_DIR)/libz.a
|
||||
LIBZLINK := -lz
|
||||
else ifeq ($(COMPRESS),rnc1)
|
||||
DEFINES += RNC1=1
|
||||
else ifeq ($(COMPRESS),rnc2)
|
||||
DEFINES += RNC2=1
|
||||
else ifeq ($(COMPRESS),yay0)
|
||||
DEFINES += YAY0=1
|
||||
else ifeq ($(COMPRESS),mio0)
|
||||
DEFINES += MIO0=1
|
||||
else ifeq ($(COMPRESS),uncomp)
|
||||
DEFINES += UNCOMPRESSED=1
|
||||
endif
|
||||
|
||||
GZIPVER ?= std
|
||||
$(eval $(call validate-option,GZIPVER,std libdef))
|
||||
|
||||
# GODDARD - whether to use libgoddard (Mario Head)
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
@@ -245,27 +241,6 @@ endif
|
||||
# Whether to colorize build messages
|
||||
COLOR ?= 1
|
||||
|
||||
# display selected options unless 'make clean' or 'make distclean' is run
|
||||
ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
|
||||
$(info ==== Build Options ====)
|
||||
$(info Version: $(VERSION))
|
||||
$(info Microcode: $(GRUCODE))
|
||||
$(info Console: $(CONSOLE))
|
||||
$(info Target: $(TARGET))
|
||||
ifeq ($(COMPARE),1)
|
||||
$(info Compare ROM: yes)
|
||||
else
|
||||
$(info Compare ROM: no)
|
||||
endif
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
$(info Build Matching: no)
|
||||
else
|
||||
$(info Build Matching: yes)
|
||||
endif
|
||||
$(info =======================)
|
||||
endif
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Universal Dependencies #
|
||||
#==============================================================================#
|
||||
@@ -311,7 +286,7 @@ endif
|
||||
|
||||
BUILD_DIR_BASE := build
|
||||
# BUILD_DIR is the location where all build artifacts are placed
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
|
||||
ROM := $(BUILD_DIR)/$(TARGET_STRING).z64
|
||||
ELF := $(BUILD_DIR)/$(TARGET_STRING).elf
|
||||
LIBZ := $(BUILD_DIR)/libz.a
|
||||
@@ -334,7 +309,7 @@ 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))
|
||||
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
|
||||
@@ -359,7 +334,7 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
$(foreach file,$(GENERATED_C_FILES),$(file:.c=.o)) \
|
||||
lib/PR/hvqm/hvqm2sp1.o lib/PR/hvqm/hvqm2sp2.o
|
||||
|
||||
LIBZ_O_FILES := $(foreach file,$(LIBZ_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
LIBZ_O_FILES := $(foreach file,$(LIBZ_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
# Automatic dependency files
|
||||
@@ -485,7 +460,7 @@ RED := \033[0;31m
|
||||
GREEN := \033[0;32m
|
||||
BLUE := \033[0;34m
|
||||
YELLOW := \033[0;33m
|
||||
BLINK := \033[33;5m
|
||||
BLINK := \033[32;5m
|
||||
endif
|
||||
|
||||
# For non-IDO, use objcopy instead of extract_data_for_mio
|
||||
@@ -503,13 +478,12 @@ endef
|
||||
#==============================================================================#
|
||||
|
||||
all: $(ROM)
|
||||
ifeq ($(COMPARE),1)
|
||||
@$(PRINT) "$(GREEN)Checking if ROM matches.. $(NO_COL)\n"
|
||||
@$(SHA1SUM) --quiet -c $(TARGET).sha1 && $(PRINT) "$(TARGET): $(GREEN)OK$(NO_COL)\n" || ($(PRINT) "$(YELLOW)Building the ROM file has succeeded, but does not match the original ROM.\nThis is expected, and not an error, if you are making modifications.\nTo silence this message, use 'make COMPARE=0.' $(NO_COL)\n" && false)
|
||||
else
|
||||
@$(SHA1SUM) $(ROM)
|
||||
@$(PRINT) "${GREEN}Build succeeded.$(NO_COL)\n"
|
||||
endif
|
||||
@$(PRINT) "${BLINK}Build succeeded.\n$(NO_COL)"
|
||||
@$(PRINT) "==== Build Options ====$(NO_COL)\n"
|
||||
@$(PRINT) "${GREEN}Version: $(BLUE)$(VERSION)$(NO_COL)\n"
|
||||
@$(PRINT) "${GREEN}Microcode: $(BLUE)$(GRUCODE)$(NO_COL)\n"
|
||||
@$(PRINT) "${GREEN}Console: $(BLUE)$(CONSOLE)$(NO_COL)\n"
|
||||
|
||||
clean:
|
||||
$(RM) -r $(BUILD_DIR_BASE)
|
||||
@@ -534,7 +508,7 @@ libultra: $(BUILD_DIR)/libultra.a
|
||||
$(BUILD_DIR)/asm/boot.o: $(IPL3_RAW_FILES)
|
||||
$(BUILD_DIR)/src/game/crash_screen.o: $(CRASH_TEXTURE_C_FILES)
|
||||
$(BUILD_DIR)/src/game/version.o: $(BUILD_DIR)/src/game/version_data.h
|
||||
$(BUILD_DIR)/lib/rsp.o: $(BUILD_DIR)/rsp/rspboot.bin $(BUILD_DIR)/rsp/audio.bin
|
||||
$(BUILD_DIR)/lib/aspMain.o: $(BUILD_DIR)/rsp/audio.bin
|
||||
$(SOUND_BIN_DIR)/sound_data.o: $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/sound_data.tbl $(SOUND_BIN_DIR)/sequences.bin $(SOUND_BIN_DIR)/bank_sets
|
||||
$(BUILD_DIR)/levels/scripts.o: $(BUILD_DIR)/include/level_headers.h
|
||||
|
||||
@@ -572,13 +546,33 @@ else
|
||||
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
|
||||
$(BUILD_DIR)/src/usb/debug.o: CFLAGS += -Wno-unused-parameter -Wno-maybe-uninitialized
|
||||
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
|
||||
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := -Ofast -fno-unroll-loops -fno-peel-loops --param case-values-threshold=20
|
||||
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := -Ofast --param case-values-threshold=20
|
||||
$(BUILD_DIR)/src/usb/usb.o: OPT_FLAGS := -O0
|
||||
$(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wno-unused-function
|
||||
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
|
||||
$(BUILD_DIR)/src/usb/debug.o: CFLAGS += -Wno-unused-parameter -Wno-maybe-uninitialized
|
||||
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
|
||||
# Surface Collision
|
||||
$(BUILD_DIR)/src/engine/surface_collision.o: OPT_FLAGS := \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
-finline-limit=0
|
||||
|
||||
# Math Util
|
||||
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := \
|
||||
-Ofast \
|
||||
-fno-unroll-loops \
|
||||
-fno-peel-loops \
|
||||
--param case-values-threshold=20
|
||||
# - setting any sort of -finline-limit has shown to worsen performance, lower values were the worst, the higher you go - the closer performance gets to not setting it at all
|
||||
|
||||
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
-finline-limit=0
|
||||
|
||||
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)
|
||||
|
||||
@@ -589,8 +583,7 @@ $(BUILD_DIR)/include/text_strings.h: $(BUILD_DIR)/include/text_menu_strings.h
|
||||
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
|
||||
|
||||
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
@@ -814,7 +807,7 @@ ifeq ($(CONSOLE),n64)
|
||||
$(V)$(OBJCOPY) --pad-to=0x101000 --gap-fill=0xFF $< $@ -O binary
|
||||
else ifeq ($(CONSOLE),bb)
|
||||
$(V)$(OBJCOPY) --gap-fill=0x00 $< $@ -O binary
|
||||
$(V)dd if=$@ of=tmp bs=16K conv=sync
|
||||
$(V)dd if=$@ of=tmp bs=16K conv=sync status=none
|
||||
$(V)mv tmp $@
|
||||
endif
|
||||
$(V)$(N64CKSUM) $@
|
||||
|
||||
@@ -178,7 +178,9 @@ To switch to no compression, run make with the ``COMPRESS=uncomp`` argument.
|
||||
Q: Why in the hell are you bundling your own build of ``ld``?
|
||||
|
||||
A: Newer binutils (Like the one bundled with Ubuntu, 2.34) break linking with libultra builds due to local asm symbols.
|
||||
|
||||
This puts me at a crossroads of either touching leaked code and requiring GCC, or just using an older linker that works just fine.
|
||||
|
||||
I went with the latter.
|
||||
Thanks to "someone2639" for this hacky-ass idea
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ const GeoLayout fish_shadow_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_body),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_tail),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
@@ -22,9 +22,9 @@ const GeoLayout fish_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_body),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_tail),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
||||
@@ -12,48 +12,44 @@ ALIGNED8 static const Texture blue_fish_seg3_texture_0301B5E0[] = {
|
||||
};
|
||||
|
||||
// 0x0301BDE0
|
||||
static const Vtx blue_fish_seg3_vertex_0301BDE0[] = {
|
||||
{{{ -108, 1, 0}, 0, { 14, 566}, {0x89, 0x00, 0xd7, 0xff}}},
|
||||
{{{ -44, -13, -31}, 0, { 286, 688}, {0xeb, 0x89, 0xdc, 0xff}}},
|
||||
{{{ -62, -19, 12}, 0, { 210, 502}, {0xe8, 0x84, 0x0a, 0xff}}},
|
||||
{{{ -44, 16, -31}, 0, { 286, 688}, {0xea, 0x77, 0xdc, 0xff}}},
|
||||
{{{ -62, 21, 12}, 0, { 210, 502}, {0xe8, 0x7c, 0x0b, 0xff}}},
|
||||
{{{ -47, 1, -64}, 0, { 274, 830}, {0xbd, 0xff, 0x95, 0xff}}},
|
||||
{{{ -97, 1, 23}, 0, { 62, 462}, {0xa2, 0x00, 0x54, 0xff}}},
|
||||
{{{ 55, 1, 127}, 0, { 712, -8}, {0x1a, 0x00, 0x7c, 0xff}}},
|
||||
{{{ 41, 16, 56}, 0, { 656, 298}, {0x43, 0x67, 0x1b, 0xff}}},
|
||||
{{{ 50, 16, -43}, 0, { 692, 722}, {0x35, 0x6f, 0xe6, 0xff}}},
|
||||
{{{ 41, -14, 56}, 0, { 656, 298}, {0x43, 0x99, 0x1b, 0xff}}},
|
||||
{{{ 50, -13, -43}, 0, { 692, 722}, {0x35, 0x91, 0xe6, 0xff}}},
|
||||
{{{ 62, 1, -92}, 0, { 742, 930}, {0x42, 0xff, 0x94, 0xff}}},
|
||||
{{{ 101, 1, 1}, 0, { 910, 520}, {0x7e, 0x00, 0x01, 0xff}}},
|
||||
static const Vtx blue_fish_seg3_vertex_body[] = {
|
||||
{{{ -108, 1, 0}, 0, { 14, 566}, {0x89, 0x00, 0xd7, 0xff}}}, // 0
|
||||
{{{ -62, -19, 12}, 0, { 210, 502}, {0xe8, 0x84, 0x0a, 0xff}}}, // 1
|
||||
{{{ -62, 21, 12}, 0, { 210, 502}, {0xe8, 0x7c, 0x0b, 0xff}}}, // 2
|
||||
{{{ -47, 1, -64}, 0, { 274, 830}, {0xbd, 0xff, 0x95, 0xff}}}, // 3
|
||||
{{{ -97, 1, 23}, 0, { 62, 462}, {0xa2, 0x00, 0x54, 0xff}}}, // 4
|
||||
{{{ 55, 1, 127}, 0, { 712, -8}, {0x1a, 0x00, 0x7c, 0xff}}}, // 5
|
||||
{{{ 41, 16, 56}, 0, { 656, 298}, {0x43, 0x67, 0x1b, 0xff}}}, // 6
|
||||
{{{ 50, 16, -43}, 0, { 692, 722}, {0x35, 0x6f, 0xe6, 0xff}}}, // 7
|
||||
{{{ 41, -14, 56}, 0, { 656, 298}, {0x43, 0x99, 0x1b, 0xff}}}, // 8
|
||||
{{{ 50, -13, -43}, 0, { 692, 722}, {0x35, 0x91, 0xe6, 0xff}}}, // 9
|
||||
{{{ 62, 1, -92}, 0, { 742, 930}, {0x42, 0xff, 0x94, 0xff}}}, // 10
|
||||
{{{ 101, 1, 1}, 0, { 910, 520}, {0x7e, 0x00, 0x01, 0xff}}}, // 11
|
||||
};
|
||||
|
||||
// 0x0301BEC0 - 0x0301BFB8
|
||||
const Gfx blue_fish_seg3_dl_0301BEC0[] = {
|
||||
const Gfx blue_fish_seg3_sub_dl_body[] = {
|
||||
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),
|
||||
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),
|
||||
gsSP2Triangles( 0, 6, 4, 0x0, 5, 1, 0, 0x0),
|
||||
gsSP2Triangles( 4, 6, 7, 0x0, 6, 2, 7, 0x0),
|
||||
gsSP2Triangles( 7, 8, 4, 0x0, 9, 4, 8, 0x0),
|
||||
gsSP2Triangles( 9, 3, 4, 0x0, 2, 10, 7, 0x0),
|
||||
gsSP2Triangles( 1, 11, 2, 0x0, 11, 10, 2, 0x0),
|
||||
gsSP2Triangles( 1, 5, 12, 0x0, 12, 5, 3, 0x0),
|
||||
gsSP2Triangles( 9, 11, 12, 0x0, 3, 9, 12, 0x0),
|
||||
gsSP2Triangles(12, 11, 1, 0x0, 8, 7, 10, 0x0),
|
||||
gsSP2Triangles(13, 9, 8, 0x0, 9, 13, 11, 0x0),
|
||||
gsSP2Triangles(11, 13, 10, 0x0, 10, 13, 8, 0x0),
|
||||
gsSPVertex(blue_fish_seg3_vertex_body, 12, 0),
|
||||
gsSP2Triangles( 3, 0, 2, 0x0, 1, 4, 0, 0x0),
|
||||
gsSP2Triangles( 0, 4, 2, 0x0, 3, 1, 0, 0x0),
|
||||
gsSP2Triangles( 2, 4, 5, 0x0, 4, 1, 5, 0x0),
|
||||
gsSP2Triangles( 5, 6, 2, 0x0, 7, 2, 6, 0x0),
|
||||
gsSP2Triangles( 1, 8, 5, 0x0, 9, 8, 1, 0x0),
|
||||
gsSP2Triangles( 1, 3, 10, 0x0, 10, 3, 2, 0x0),
|
||||
gsSP2Triangles( 7, 9, 10, 0x0, 2, 7, 10, 0x0),
|
||||
gsSP2Triangles(10, 9, 1, 0x0, 6, 5, 8, 0x0),
|
||||
gsSP2Triangles(11, 7, 6, 0x0, 7, 11, 9, 0x0),
|
||||
gsSP2Triangles( 9, 11, 8, 0x0, 8, 11, 6, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0301BFB8 - 0x0301C018
|
||||
const Gfx blue_fish_seg3_dl_0301BFB8[] = {
|
||||
const Gfx blue_fish_seg3_dl_body[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
|
||||
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),
|
||||
@@ -61,7 +57,7 @@ const Gfx blue_fish_seg3_dl_0301BFB8[] = {
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsSPDisplayList(blue_fish_seg3_dl_0301BEC0),
|
||||
gsSPDisplayList(blue_fish_seg3_sub_dl_body),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
@@ -69,48 +65,42 @@ const Gfx blue_fish_seg3_dl_0301BFB8[] = {
|
||||
};
|
||||
|
||||
// 0x0301C018
|
||||
static const Vtx blue_fish_seg3_vertex_0301C018[] = {
|
||||
{{{ 67, 0, -58}, 0, { 736, 728}, {0x7a, 0x00, 0xde, 0xff}}},
|
||||
{{{ 67, -3, -28}, 0, { 704, 574}, {0x53, 0xa3, 0x14, 0xff}}},
|
||||
{{{ 0, 1, -3}, 0, { 1022, 356}, {0xa1, 0xf9, 0xad, 0xff}}},
|
||||
{{{ 67, 4, 27}, 0, { 644, 290}, {0x3f, 0x6d, 0xf3, 0xff}}},
|
||||
{{{ 53, 0, 0}, 0, { 744, 414}, {0x7e, 0x00, 0xfe, 0xff}}},
|
||||
{{{ 67, -3, 27}, 0, { 644, 290}, {0x40, 0x95, 0xeb, 0xff}}},
|
||||
{{{ 0, 0, 5}, 0, { 1016, 312}, {0x9e, 0xfd, 0x50, 0xff}}},
|
||||
{{{ 67, 4, -28}, 0, { 704, 574}, {0x54, 0x5c, 0x15, 0xff}}},
|
||||
{{{ 67, 0, 57}, 0, { 612, 138}, {0x7a, 0x00, 0x22, 0xff}}},
|
||||
static const Vtx blue_fish_seg3_vertex_tail[] = {
|
||||
{{{ 67, 0, -58}, 0, { 736, 728}, {0x7a, 0x00, 0xde, 0xff}}}, // 0 bottom tip
|
||||
{{{ 67, 0, -28}, 0, { 704, 574}, {0x54, 0x7f, 0x14, 0xff}}}, // 1 lower
|
||||
{{{ 0, 0, 0}, 0, { 1019, 336}, {0xa0, 0xfb, 0x7e, 0xff}}}, // 2 joint
|
||||
{{{ 53, 0, 0}, 0, { 744, 414}, {0x7e, 0x00, 0xfe, 0xff}}}, // 3 middle
|
||||
{{{ 67, 0, 27}, 0, { 644, 290}, {0x40, 0x7f, 0xef, 0xff}}}, // 4 upper
|
||||
{{{ 67, 0, 57}, 0, { 612, 138}, {0x7a, 0x00, 0x22, 0xff}}}, // 5 top tip
|
||||
};
|
||||
|
||||
// 0x0301C0A8 - 0x0301C150
|
||||
const Gfx blue_fish_seg3_dl_0301C0A8[] = {
|
||||
const Gfx blue_fish_seg3_sub_dl_tail[] = {
|
||||
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),
|
||||
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),
|
||||
gsSP2Triangles( 2, 1, 4, 0x0, 2, 6, 3, 0x0),
|
||||
gsSP2Triangles( 4, 7, 2, 0x0, 2, 7, 0, 0x0),
|
||||
gsSP2Triangles( 6, 8, 3, 0x0, 3, 8, 5, 0x0),
|
||||
gsSP2Triangles( 3, 5, 4, 0x0, 4, 1, 7, 0x0),
|
||||
gsSP2Triangles( 6, 5, 8, 0x0, 1, 0, 7, 0x0),
|
||||
gsSPVertex(blue_fish_seg3_vertex_tail, 6, 0),
|
||||
gsSP2Triangles( 2, 4, 3, 0x0, 3, 1, 2, 0x0),
|
||||
gsSP2Triangles( 2, 1, 0, 0x0, 2, 5, 4, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0301C150 - 0x0301C1B0
|
||||
const Gfx blue_fish_seg3_dl_0301C150[] = {
|
||||
const Gfx blue_fish_seg3_dl_tail[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
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(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsSPDisplayList(blue_fish_seg3_dl_0301C0A8),
|
||||
gsSPDisplayList(blue_fish_seg3_sub_dl_tail),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -4,7 +4,7 @@ const GeoLayout boo_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 26214),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_update_layer_transparency),
|
||||
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, boo_seg5_dl_0500C1B0),
|
||||
|
||||
@@ -4,7 +4,7 @@ const GeoLayout boo_castle_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 26214),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_update_layer_transparency),
|
||||
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, boo_castle_seg6_dl_06017CE0),
|
||||
|
||||
@@ -332,7 +332,7 @@ const GeoLayout bowser_shadow_geo[] = {
|
||||
const GeoLayout bowser_geo[] = {
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_update_layer_transparency),
|
||||
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(3, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
@@ -362,7 +362,7 @@ const GeoLayout bowser_geo[] = {
|
||||
const GeoLayout bowser_geo_no_shadow[] = {
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_update_layer_transparency),
|
||||
GEO_ASM(GEO_TRANSPARENCY_MODE_NORMAL, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(3, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
|
||||
@@ -67,7 +67,7 @@ const Gfx breakable_box_seg8_sub_dl_end[] = {
|
||||
// 0x08012CD8 - 0x08012D20
|
||||
const Gfx breakable_box_seg8_sub_dl_begin[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE),
|
||||
gsSPClearGeometryMode(G_SHADING_SMOOTH),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
const GeoLayout burn_smoke_geo[] = {
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, burn_smoke_seg4_dl_04022070),
|
||||
#ifdef BURN_SMOKE_FIX
|
||||
GEO_ASM(GEO_TRANSPARENCY_MODE_INTER, geo_update_layer_transparency),
|
||||
#endif
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, burn_smoke_seg4_dl),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Burn Smoke
|
||||
|
||||
// 0x040217C0
|
||||
static const Vtx burn_smoke_seg4_vertex_040217C0[] = {
|
||||
static const Vtx burn_smoke_seg4_vertex[] = {
|
||||
{{{ -50, -50, 0}, 0, { 0, 992}, {0x14, 0x0a, 0x0a, 0xff}}},
|
||||
{{{ 50, -50, 0}, 0, { 992, 992}, {0x14, 0x0a, 0x0a, 0xff}}},
|
||||
{{{ 50, 50, 0}, 0, { 992, 0}, {0x14, 0x0a, 0x0a, 0xff}}},
|
||||
@@ -12,15 +12,15 @@ static const Vtx burn_smoke_seg4_vertex_040217C0[] = {
|
||||
// as a transparent black burn smoke. Probably meant to show up as white-ish
|
||||
// burn smoke, but mistakened for being intended as black smoke.
|
||||
// 0x04021800
|
||||
ALIGNED8 static const Texture burn_smoke_seg4_texture_04021800[] = {
|
||||
ALIGNED8 static const Texture burn_smoke_seg4_sub_dl_texture[] = {
|
||||
#include "actors/burn_smoke/burn_smoke.ia16.inc.c"
|
||||
};
|
||||
|
||||
// 0x04022000 - 0x04022028
|
||||
const Gfx burn_smoke_seg4_dl_04022000[] = {
|
||||
const Gfx burn_smoke_seg4_sub_dl_begin[] = {
|
||||
gsDPPipeSync(),
|
||||
#ifdef BURN_SMOKE_FIX
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIFADEA, G_CC_MODULATEIFADEA),
|
||||
#else
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
|
||||
#endif
|
||||
@@ -30,14 +30,14 @@ const Gfx burn_smoke_seg4_dl_04022000[] = {
|
||||
};
|
||||
|
||||
// 0x04022028 - 0x04022048
|
||||
const Gfx burn_smoke_seg4_dl_04022028[] = {
|
||||
gsSPVertex(burn_smoke_seg4_vertex_040217C0, 4, 0),
|
||||
const Gfx burn_smoke_seg4_sub_dl_model[] = {
|
||||
gsSPVertex(burn_smoke_seg4_vertex, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x04022048 - 0x04022070
|
||||
const Gfx burn_smoke_seg4_dl_04022048[] = {
|
||||
const Gfx burn_smoke_seg4_sub_dl_end[] = {
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
@@ -46,14 +46,14 @@ const Gfx burn_smoke_seg4_dl_04022048[] = {
|
||||
};
|
||||
|
||||
// 0x04022070 - 0x040220C8
|
||||
const Gfx burn_smoke_seg4_dl_04022070[] = {
|
||||
gsSPDisplayList(burn_smoke_seg4_dl_04022000),
|
||||
const Gfx burn_smoke_seg4_dl[] = {
|
||||
gsSPDisplayList(burn_smoke_seg4_sub_dl_begin),
|
||||
#ifdef BURN_SMOKE_FIX
|
||||
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock(burn_smoke_seg4_sub_dl_texture, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
#else
|
||||
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock(burn_smoke_seg4_sub_dl_texture, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
#endif
|
||||
gsSPDisplayList(burn_smoke_seg4_dl_04022028),
|
||||
gsSPDisplayList(burn_smoke_seg4_dl_04022048),
|
||||
gsSPDisplayList(burn_smoke_seg4_sub_dl_model),
|
||||
gsSPDisplayList(burn_smoke_seg4_sub_dl_end),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1007 B After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 14 KiB |
@@ -165,8 +165,8 @@ extern const Gfx heart_seg8_dl_0800DFE0[];
|
||||
|
||||
// koopa_shell
|
||||
extern const GeoLayout koopa_shell_geo[];
|
||||
extern const GeoLayout koopa_shell2_geo[];
|
||||
extern const GeoLayout koopa_shell3_geo[];
|
||||
// extern const GeoLayout koopa_shell2_geo[];
|
||||
// extern const GeoLayout koopa_shell3_geo[];
|
||||
extern const Gfx koopa_shell_seg8_dl_08027108[];
|
||||
extern const Gfx koopa_shell_seg8_dl_08027170[];
|
||||
extern const Gfx koopa_shell_seg8_dl_08027258[];
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
// blue_fish
|
||||
extern const GeoLayout fish_shadow_geo[];
|
||||
extern const GeoLayout fish_geo[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301BEC0[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301BFB8[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301C0A8[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301C150[];
|
||||
extern const Gfx blue_fish_seg3_sub_dl_body[];
|
||||
extern const Gfx blue_fish_seg3_dl_body[];
|
||||
extern const Gfx blue_fish_seg3_sub_dl_tail[];
|
||||
extern const Gfx blue_fish_seg3_dl_tail[];
|
||||
extern const struct Animation *const blue_fish_seg3_anims_0301C2B0[];
|
||||
|
||||
// bowser_key
|
||||
|
||||
@@ -13,14 +13,14 @@ const GeoLayout red_flame_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(8, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B3B0),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B3C8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B3E0),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B3F8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B410),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B428),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B440),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B458),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B3B0),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B3C8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B3E0),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B3F8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B410),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B428),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B440),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B458),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
@@ -32,14 +32,14 @@ const GeoLayout blue_flame_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(8, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B500),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B518),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B530),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B548),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B560),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B578),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B590),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, flame_seg3_dl_0301B5A8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B500),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B518),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B530),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B548),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B560),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B578),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B590),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, flame_seg3_dl_0301B5A8),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
|
||||
@@ -11,10 +11,10 @@ extern const Gfx bubble_seg4_dl_0401DDE0[];
|
||||
|
||||
// burn_smoke
|
||||
extern const GeoLayout burn_smoke_geo[];
|
||||
extern const Gfx burn_smoke_seg4_dl_04022000[];
|
||||
extern const Gfx burn_smoke_seg4_dl_04022028[];
|
||||
extern const Gfx burn_smoke_seg4_dl_04022048[];
|
||||
extern const Gfx burn_smoke_seg4_dl_04022070[];
|
||||
extern const Gfx burn_smoke_seg4_sub_dl_begin[];
|
||||
extern const Gfx burn_smoke_seg4_sub_dl_model[];
|
||||
extern const Gfx burn_smoke_seg4_sub_dl_end[];
|
||||
extern const Gfx burn_smoke_seg4_dl[];
|
||||
|
||||
// mario
|
||||
extern const GeoLayout mario_geo_face_and_wings[];
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
|
||||
// penguin
|
||||
extern const GeoLayout penguin_geo[];
|
||||
extern const Gfx penguin_seg5_dl_05006188[];
|
||||
extern const Gfx penguin_seg5_dl_050061C8[];
|
||||
extern const Gfx penguin_seg5_dl_050061F8[];
|
||||
extern const Gfx penguin_seg5_dl_05006380[];
|
||||
extern const Gfx penguin_seg5_dl_050063C8[];
|
||||
extern const Gfx penguin_seg5_dl_05006428[];
|
||||
extern const Gfx penguin_seg5_dl_05006458[];
|
||||
extern const Gfx penguin_seg5_dl_05006488[];
|
||||
extern const Gfx penguin_seg5_dl_050064B8[];
|
||||
extern const Gfx penguin_seg5_dl_050064E8[];
|
||||
extern const Gfx penguin_seg5_sub_dl_eyes_model[];
|
||||
extern const Gfx penguin_seg5_sub_dl_beak_model[];
|
||||
extern const Gfx penguin_seg5_sub_dl_head_model[];
|
||||
extern const Gfx penguin_seg5_sub_dl_head_begin[];
|
||||
extern const Gfx penguin_seg5_dl_head[];
|
||||
extern const Gfx penguin_seg5_dl_head_eyes_open[];
|
||||
extern const Gfx penguin_seg5_dl_head_eyes_half_closed[];
|
||||
extern const Gfx penguin_seg5_dl_head_eyes_closed[];
|
||||
extern const Gfx penguin_seg5_dl_head_eyes_angry[];
|
||||
extern const Gfx penguin_seg5_dl_head_eyes_sad[];
|
||||
extern const Gfx penguin_seg5_dl_05007198[];
|
||||
extern const Gfx penguin_seg5_dl_050071E8[];
|
||||
extern const Gfx penguin_seg5_dl_05007238[];
|
||||
|
||||