From e2c552f1df045719652e1d91fb6a6ad67d00a045 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jul 2019 16:11:20 -0400 Subject: [PATCH] Static decl/def; gfx dump --- asm/clear_save_data_screen.s | 6 +- data/graphics.s | 20 +- data/graphics/title_screen/unk_83bf64c.png | Bin 188 -> 188 bytes data/graphics/title_screen/unk_83bf77c.pal | 19 ++ data/graphics/title_screen/unk_83bf79c.png | Bin 539 -> 539 bytes graphics/title_screen/unk_8eab6c4.pal | 259 +++++++++++++++++ graphics/title_screen/unk_8eab8c4.png | Bin 0 -> 5614 bytes graphics/title_screen/unk_8ead390.bin | Bin 0 -> 1280 bytes graphics/title_screen/unk_8ead5e8.pal | 19 ++ graphics/title_screen/unk_8ead608.png | Bin 0 -> 1802 bytes graphics/title_screen/unk_8eadee4.bin | Bin 0 -> 1280 bytes graphics/title_screen/unk_8eae094.pal | 19 ++ graphics/title_screen/unk_8eae0b4.png | Bin 0 -> 597 bytes graphics/title_screen/unk_8eae374.bin | Bin 0 -> 1280 bytes graphics/title_screen/unk_8eae488.pal | 19 ++ graphics/title_screen/unk_8eae4a8.png | Bin 148 -> 148 bytes graphics_file_rules.mk | 4 + include/clear_save_data_screen.h | 2 +- src/title_screen.c | 312 ++++++++++----------- sym_ewram.txt | 5 +- 20 files changed, 512 insertions(+), 172 deletions(-) create mode 100644 data/graphics/title_screen/unk_83bf77c.pal create mode 100644 graphics/title_screen/unk_8eab6c4.pal create mode 100644 graphics/title_screen/unk_8eab8c4.png create mode 100644 graphics/title_screen/unk_8ead390.bin create mode 100644 graphics/title_screen/unk_8ead5e8.pal create mode 100644 graphics/title_screen/unk_8ead608.png create mode 100644 graphics/title_screen/unk_8eadee4.bin create mode 100644 graphics/title_screen/unk_8eae094.pal create mode 100644 graphics/title_screen/unk_8eae0b4.png create mode 100644 graphics/title_screen/unk_8eae374.bin create mode 100644 graphics/title_screen/unk_8eae488.pal diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index f6cd11410..5d9d2ac03 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -26,8 +26,8 @@ sub_80F558C: @ 80F558C bx r0 thumb_func_end sub_80F558C - thumb_func_start sub_80F55A0 -sub_80F55A0: @ 80F55A0 + thumb_func_start CB2_SaveClearScreen_Init +CB2_SaveClearScreen_Init: @ 80F55A0 push {r4,lr} ldr r4, _080F55D0 @ =gUnknown_203AB54 movs r0, 0x4 @@ -52,7 +52,7 @@ sub_80F55A0: @ 80F55A0 _080F55D0: .4byte gUnknown_203AB54 _080F55D4: .4byte sub_80F55DC _080F55D8: .4byte sub_80F5574 - thumb_func_end sub_80F55A0 + thumb_func_end CB2_SaveClearScreen_Init thumb_func_start sub_80F55DC sub_80F55DC: @ 80F55DC diff --git a/data/graphics.s b/data/graphics.s index f62234529..189826238 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16352,34 +16352,34 @@ gUnknown_8EAAB98:: @ 8EAAB98 gUnknown_8EAB30C:: @ 8EAB30C .incbin "baserom.gba", 0xEAB30C, 0x3B8 + @ title_screen gUnknown_8EAB6C4:: @ 8EAB6C4 - .incbin "baserom.gba", 0xEAB6C4, 0x200 @UNKNOWN + .incbin "graphics/title_screen/unk_8eab6c4.gbapal" gUnknown_8EAB8C4:: @ 8EAB8C4 - .incbin "baserom.gba", 0xEAB8C4, 0x1ACC + .incbin "graphics/title_screen/unk_8eab8c4.8bpp.lz" gUnknown_8EAD390:: @ 8EAD390 - .incbin "baserom.gba", 0xEAD390, 0x258 + .incbin "graphics/title_screen/unk_8ead390.bin.lz" gUnknown_8EAD5E8:: @ 8EAD5E8 - .incbin "baserom.gba", 0xEAD5E8, 0x20 @UNKNOWN + .incbin "graphics/title_screen/unk_8ead5e8.gbapal" gUnknown_8EAD608:: @ 8EAD608 - .incbin "baserom.gba", 0xEAD608, 0x8DC + .incbin "graphics/title_screen/unk_8ead608.4bpp.lz" gUnknown_8EADEE4:: @ 8EADEE4 - .incbin "baserom.gba", 0xEADEE4, 0x1B0 + .incbin "graphics/title_screen/unk_8eadee4.bin.lz" gUnknown_8EAE094:: @ 8EAE094 - .incbin "baserom.gba", 0xEAE094, 0x20 @UNKNOWN + .incbin "graphics/title_screen/unk_8eae094.gbapal" gUnknown_8EAE0B4:: @ 8EAE0B4 - .incbin "baserom.gba", 0xEAE0B4, 0x2C0 + .incbin "graphics/title_screen/unk_8eae0b4.4bpp.lz" gUnknown_8EAE374:: @ 8EAE374 - .incbin "baserom.gba", 0xEAE374, 0x114 + .incbin "graphics/title_screen/unk_8eae374.bin.lz" - @ title_screen gUnknown_8EAE488:: @ 8EAE488 .incbin "graphics/title_screen/unk_8eae488.gbapal" diff --git a/data/graphics/title_screen/unk_83bf64c.png b/data/graphics/title_screen/unk_83bf64c.png index 3c9b7630d1d497bf1d2494ea565af24d8554cbf3..260e00a01b6ed780516a948a570892bb1d2b5ce9 100644 GIT binary patch delta 59 zcmV-B0L1^i0lWc_EHS;s&7`EPdxL}3)!zU1O8?a$q=Ojtq!@!*5NcvtK{+YrQV`84 R0E-9+_V)IWRv3SgU0hFoM F@c;`O7sdbp diff --git a/data/graphics/title_screen/unk_83bf77c.pal b/data/graphics/title_screen/unk_83bf77c.pal new file mode 100644 index 000000000..815547f37 --- /dev/null +++ b/data/graphics/title_screen/unk_83bf77c.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 205 180 +0 0 0 +255 255 189 +255 246 139 +255 213 65 +255 172 0 +197 164 49 +115 180 139 +98 189 156 +90 197 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 205 180 diff --git a/data/graphics/title_screen/unk_83bf79c.png b/data/graphics/title_screen/unk_83bf79c.png index 246252bed50ec3b06752c410ddd0361c5a5037cb..66a57a89977e1f0516885e69090b64fad25688a0 100644 GIT binary patch delta 60 zcmbQuGMihF!Q G`xpThMi>eJ delta 60 zcmV-C0K@;A1e*kqEHS;s&7`EPdxL}3)!zU1O8?a$q=Ojtq!@!*5NcvtK{+YrQV`84 S0E-9+_V)IWRv3S=UA_UWr5#rQ diff --git a/graphics/title_screen/unk_8eab6c4.pal b/graphics/title_screen/unk_8eab6c4.pal new file mode 100644 index 000000000..48c794761 --- /dev/null +++ b/graphics/title_screen/unk_8eab6c4.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 255 41 +0 0 0 +255 238 16 +246 222 41 +246 238 246 +255 246 24 +246 246 41 +246 246 246 +246 255 255 +255 246 255 +32 0 255 +106 65 156 +32 0 238 +246 222 24 +246 222 32 +255 238 41 +255 238 49 +255 255 16 +255 255 24 +255 255 246 +255 255 255 +123 106 156 +24 41 32 +32 32 74 +32 0 230 +115 82 164 +16 0 246 +106 82 172 +246 238 32 +255 230 24 +246 230 41 +246 238 41 +246 230 49 +246 238 49 +255 246 32 +255 246 41 +255 255 32 +255 255 41 +32 24 32 +32 32 41 +197 156 41 +197 164 41 +156 156 156 +164 164 156 +172 172 172 +180 189 180 +41 0 230 +189 189 189 +197 189 189 +197 197 197 +205 205 213 +8 8 197 +246 230 24 +246 230 32 +255 238 24 +255 238 32 +32 32 32 +32 41 32 +41 32 32 +41 41 32 +49 32 32 +49 41 32 +41 32 41 +49 32 41 +24 41 41 +32 32 90 +16 24 106 +24 32 98 +41 32 82 +41 32 98 +41 41 82 +41 41 98 +0 0 115 +8 8 131 +32 24 115 +32 24 131 +32 41 115 +41 41 115 +32 41 131 +41 41 131 +57 41 41 +57 41 49 +57 49 41 +57 57 57 +65 41 41 +74 41 41 +65 57 57 +74 57 57 +57 74 74 +65 65 74 +82 74 82 +82 57 131 +82 90 82 +90 90 90 +90 98 98 +98 98 106 +115 106 106 +131 98 115 +139 98 106 +139 115 98 +180 139 57 +172 131 65 +156 115 90 +156 131 82 +115 82 139 +123 82 131 +115 98 131 +131 98 123 +115 123 123 +123 123 131 +139 131 139 +148 123 131 +205 172 24 +213 172 16 +205 164 32 +213 172 32 +222 189 24 +230 189 16 +213 189 32 +222 189 32 +230 205 24 +230 205 32 +230 213 32 +238 222 32 +180 148 57 +189 156 49 +180 148 74 +180 172 90 +156 148 123 +139 148 139 +164 148 115 +172 156 106 +197 156 49 +205 180 49 +197 172 90 +205 189 82 +222 205 49 +230 222 49 +205 205 74 +222 213 65 +49 0 230 +213 213 213 +222 230 230 +222 230 230 +255 0 246 +255 0 255 +16 8 197 +16 16 189 +32 16 164 +41 16 164 +32 16 180 +41 16 189 +8 8 205 +8 16 205 +24 8 213 +24 16 205 +41 8 213 +41 16 213 +49 8 213 +57 16 213 +16 8 230 +24 8 230 +24 16 230 +24 24 230 +8 8 246 +8 16 246 +16 8 246 +16 16 246 +32 8 230 +32 16 230 +32 8 238 +32 8 246 +41 8 230 +41 16 230 +49 16 230 +49 8 238 +32 32 156 +24 32 172 +41 41 156 +41 32 164 +74 49 180 +82 49 172 +82 65 164 +90 74 164 +24 32 189 +57 41 189 +41 32 213 +57 32 213 +74 41 189 +90 57 189 +74 49 197 +74 41 205 +49 49 49 +197 197 197 +189 189 189 +156 156 156 +172 172 172 +139 139 139 +115 115 115 +255 255 255 +16 16 16 +98 98 98 +246 246 246 +82 82 82 +230 230 230 +213 213 213 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/title_screen/unk_8eab8c4.png b/graphics/title_screen/unk_8eab8c4.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9cd68f18f2081d419d547e253a9c45f4f36752 GIT binary patch literal 5614 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 literal 0 HcmV?d00001 diff --git a/graphics/title_screen/unk_8ead390.bin b/graphics/title_screen/unk_8ead390.bin new file mode 100644 index 0000000000000000000000000000000000000000..2987c5cfa5183e27f56463f24737a7b4b7bea77d GIT binary patch literal 1280 zcmeIuMOT#p6a~<2U|<&**exn126lIMCw7b7-Gv=spkiPT0N|mfGs5tDgEAh}BRd zjm2rAsb-pMp=A))NoQSj)lGLj^wdjlee~5&e*+9O$Y4VZHO%lpKgncMOf}7PiDsB- zmf7Z*Yo7TQSZI;OmRKq&&~LEOCYx=s)i&Ghu+uKP?XlNB`yFu5A;}Iq66nu5=e!Hj zTy)80>8`lyn(H#$aMLZf-Er4F_XGU{4?XhO6Hh&p>A4rOy!6UzZ@l%+dmnuCNp_(B z?28;r0Km7E|Z+`-P=rLX^t+mlsf_B>Lpkrtpb{}D+QAQhM xtZ~MhU}9JkT3BYe6;@hhwKdjSXMJcKc0cNv<4!o~l+(^gks8+gFZ|md_zQqST)hAQ literal 0 HcmV?d00001 diff --git a/graphics/title_screen/unk_8ead5e8.pal b/graphics/title_screen/unk_8ead5e8.pal new file mode 100644 index 000000000..0832e8306 --- /dev/null +++ b/graphics/title_screen/unk_8ead5e8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +82 205 180 +255 0 255 +255 0 255 +255 0 255 +32 0 0 +49 0 0 +65 0 0 +90 0 0 +123 32 0 +156 32 0 +180 49 0 +205 65 0 +222 90 0 +230 123 0 diff --git a/graphics/title_screen/unk_8ead608.png b/graphics/title_screen/unk_8ead608.png new file mode 100644 index 0000000000000000000000000000000000000000..a0baa966ca4ba2497951f17bd0310656486d1592 GIT binary patch literal 1802 zcmV+l2le=gP)z?+004U+0GuEIv@rn9K>*%b0OorD(K<`G000J+ zNkl6vyWj11@U+M4xb?sH#saCQ{1@2BTI!ncc-!eG2T5HN82oa*map zY@(bR89d?KROZ+=tzV?0(`(n-N8`do$3BC>`4pAiS74c5F!OV%&7T(Q%w-Mxw^RtJUfbA`hL0G^712 z+Q<&VgMds&tq`Q5lp05unE;HZ8+lgL2GD-CvDC^2Aon+y8eZmekg~HW5neVr1qp{F z_VR$-l=y0^o=;D*2j&ggZsbahzaCAesbshSJ;(mF8)=0C11|$K0CnoaPhuBp3B`Kk z$!;2>q9Lgc^1CpTbNaNTq4;VqKALz)HafYG{FWdXj`Vam7Ahi7wVhLX7Hrl3+)gc_RUtfln9^ zN7!U#$FO053N;ylQV-gkA~THPB0%dPk@B$+;DeDo!ZYi+?IIZ|(Kc5hTcsvRJSKp4 z8W*U`1){dWL)GP)D@nkR05>Zjj4!q3QfB~46aZZnyqgCGaPt7w6@ddGdP6qW7O)h& zlwAWrj0~t+1!+Ps&`JTZv_LBZ+&oZS>#RII+$ZC4pC2gUL*!t=eG;YVw1?FT8eCo} zxp)~c_IlLkJ|AMG?qJA(2~q;95&#nP#b7a{T_lqCwnr{Ex=(=83f~^wM$Jr@V+2kM z=jZr_vukCbG+>F778+Q=>#=14lZS8YSVLe40DYSlCo!&P_{f}50RmnZfNBw_;3-BY zObY02V8$nHm$z}X0En@Xpc)YXz1KQf-vdC6((W(U`XC3)Mk?1^0uoac1M~`a07QyF zbhQvIaW;dZ90+65BA^#yBnD8`2Y>+ps^udfQeb|b1K?Vv0^b`lKxuvrFE1=q1}NX_ zJG?dwPzm)yor@5F$>&1=qza@3$X-aylpbGwO4c{>NX(8D9N7oC)dHa}^?0?K>-k_L zpje*Q&jVryt~2ux-p6M%cu_>^2>RI;+oPiDf!_oGPYri(88`eAV1h#K#CdjK1Sf~Y@tR+vS*|^9=@k(;O@Ry-Q8%| z08&Rr!gaDifL^1$!CiJePM#1KcaycE3+c?J+sPB4Fvoei4A=!1fNxV%BOKZ54>HOt1bZEK03aP z0Nl(B@cN_9fOZ4d@x?X1A0Ph$T`TVV0eH&_rb>pn`A<0l>@Tep`Up;EvDr?qALGx-{Tasdb!Xn3_J zWNR#`k7gF?MI2>-)1_-Db+GLDXc*Ws_+GF;L-M}ctKe?%+?wDmlLB_^O?W? z&&}6`N~^72@ee|&Hnmn8UV{Qr)B02I1$^R>P)TL1t607*qoM6N<$fqQ!`HNnGd~UluPxq9j)&OK~-D;hI!wu1l98Q6Ot`PFnck9vXmDl?8dt<;`gN8zNhK(5Y&U<6VeK29tREWYy(`L+?GjG8s zpM9|y!bdDw_SH8lR;~H&ho7PRFY7k^wrR_@9lQR7@_+q1ncwr@z5|D$^x1#h5rCa5 AfB*mh literal 0 HcmV?d00001 diff --git a/graphics/title_screen/unk_8eae094.pal b/graphics/title_screen/unk_8eae094.pal new file mode 100644 index 000000000..f7f14d45d --- /dev/null +++ b/graphics/title_screen/unk_8eae094.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 139 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +65 180 164 +139 0 0 +172 24 0 +213 57 0 +255 90 0 diff --git a/graphics/title_screen/unk_8eae0b4.png b/graphics/title_screen/unk_8eae0b4.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4e6901590cefe72d88629dbb18229dc4008680 GIT binary patch literal 597 zcmV-b0;>IqP)if&VQbas`pn03Q^<&$)oCTfi-Vbp=RnAS+P__lG*t#_o(C z35h}^Hv73p8GJIfN4DqKJ9#s9{{{Y$!2Cuefr(90<)6v;ex?Tbl={*jBcbPR3%_G* z-om4Z)G9=3eQXk_s_F-zfHGm5fXd4Nr4lv?oYem4aXKl0?QxTU*7~3`t+d~Lb|6*+ zmYyyIFb&fWUMONsfYzEv0ab{ohj_h$k8%8EI(&f9W;vn`Ufwpzdd^_jb;S$jf`ZVX=6pK?ZH~E01O7&o`db;46OZWI4OZrfk*UB5I{DQZa_4lCkagQ za2rWQ{x0a+y!d}t2Y>Y*ye|O5M?M(lMm{f@SY%u_;<^PB44=m9-XUJ_?y$2<&3K j7T^gKbv*r;uL%4Be~-qp_@Nol00000NkvXXu0mjfVU!U< literal 0 HcmV?d00001 diff --git a/graphics/title_screen/unk_8eae374.bin b/graphics/title_screen/unk_8eae374.bin new file mode 100644 index 0000000000000000000000000000000000000000..9bab57cc0507d2b5174996cf4e7c0a47feca2813 GIT binary patch literal 1280 zcmeIxH*P{<5Jh1!m}J5u*p&$;+L-7hd;i<{mVgj?uci2rXwWI9xknmZ%|xOg+QLW) z<4+j>?%W%=T?1j)e@(litEcbDvx84xzWw+O{Lf1pw#1}mWaZ=)6qP(EtEj4}d(_ZO ilCg1`F9`!fBV(^7re@|AmfpNu`LMRJwX;w1XY&YkAGs0$ literal 0 HcmV?d00001 diff --git a/graphics/title_screen/unk_8eae488.pal b/graphics/title_screen/unk_8eae488.pal new file mode 100644 index 000000000..7a29ab72c --- /dev/null +++ b/graphics/title_screen/unk_8eae488.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 205 180 +189 197 205 +164 164 172 +123 131 131 +213 213 222 +255 246 74 +255 213 32 +164 131 24 +246 164 24 +131 90 16 +106 98 90 +65 57 41 +230 82 16 +205 41 0 +139 8 8 +246 246 246 diff --git a/graphics/title_screen/unk_8eae4a8.png b/graphics/title_screen/unk_8eae4a8.png index d98563aef5cbdc5ea9bd4bc032f0e3d309567c5f..682c224323a44b4aca64afba080b8004fee8aa5c 100644 GIT binary patch delta 66 zcmbQjIE7KMGr-TCmrII^fq{Y7)59eQNGkxb0}C^d>|BsBccNmn1k)!51{Mbf#>@YW RR|16@JYD@<);T3K0RXQy4!i&W delta 66 zcmbQjIE7KMGr-TCmrII^fq{Y7)59eQNOLeSFfy<(16eh!T8R@Cqa~Uqax$<2MXzp- RP6G-vc)I$ztaD0e0swhX495Tf diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index dfe15881a..df3a46c59 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -22,6 +22,7 @@ TEXTWINDOWGFXDIR := graphics/text_window TEACHYTVGFXDIR := graphics/teachy_tv SSANNEGFXDIR := graphics/ss_anne ITEMPCGFXDIR := graphics/item_pc +TITLESCREENGFXDIR := graphics/title_screen types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough @@ -486,3 +487,6 @@ $(SSANNEGFXDIR)/unk_8479A38.4bpp: %.4bpp: %.png $(ITEMPCGFXDIR)/unk_8E85090.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 82 + +$(TITLESCREENGFXDIR)/unk_8ead608.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 135 diff --git a/include/clear_save_data_screen.h b/include/clear_save_data_screen.h index 7edf7d03e..d5d2665ae 100644 --- a/include/clear_save_data_screen.h +++ b/include/clear_save_data_screen.h @@ -1,6 +1,6 @@ #ifndef GUARD_CLEAR_SAVE_DATA_SCREEN_H #define GUARD_CLEAR_SAVE_DATA_SCREEN_H -void sub_80F55A0(void); +void CB2_SaveClearScreen_Init(void); #endif //GUARD_CLEAR_SAVE_DATA_SCREEN_H diff --git a/src/title_screen.c b/src/title_screen.c index 492f0e378..3e801c72f 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -38,51 +38,51 @@ enum TitleScreenScene #define TITLE_SPECIES SPECIES_VENUSAUR #endif -EWRAM_DATA u8 gUnknown_2037F30 = 0; +static EWRAM_DATA u8 sTitleScreenTimerTaskId = 0; -void sub_8078B34(void); -void sub_8078B9C(void); -void sub_8078BB4(void); -void sub_8078BEC(u8 taskId); -void sub_8078C24(u8 taskId); -void sub_8078C90(s16 * data, u8 a1); -void sub_8078C9C(s16 * data); -void sub_8078D24(s16 * data); -void sub_8078DA4(s16 * data); -void sub_8078FC4(s16 * data); -void sub_80790A0(void); -void sub_80790CC(s16 * data); -void sub_80791C0(s16 * data); -void sub_80792C8(u8 taskId); -void sub_807941C(u8 taskId); -void sub_8079528(void); -void sub_8079550(s16 a0); -void sub_8079620(void); -void sub_8079648(void); -void sub_80796CC(void); -void sub_80796E8(void); -void sub_8079708(void); -void sub_8079840(u8 taskId); -void sub_807999C(u8 taskId, u8 field, u16 seed); -u16 sub_80799B4(u8 taskId, u8 field); -u32 sub_80799F0(void); -void sub_8079A10(bool32 a0); -u8 sub_8079A40(void); -void sub_8079A88(u8 spriteId); -bool32 sub_8079AA8(u8 spriteId); -void sub_8079AD8(struct Sprite * sprite); +static void ResetGpuRegs(void); +static void CB2_TitleScreenRun(void); +static void VBlankCB(void); +static void Task_TitleScreenTimer(u8 taskId); +static void Task_TitleScreenMain(u8 taskId); +static void SetTitleScreenScene(s16 * data, u8 a1); +static void SetTitleScreenScene_Init(s16 * data); +static void SetTitleScreenScene_FlashSprite(s16 * data); +static void SetTitleScreenScene_FadeIn(s16 * data); +static void SetTitleScreenScene_Run(s16 * data); +static void SetGpuRegsForTitleScreenRun(void); +static void SetTitleScreenScene_Restart(s16 * data); +static void SetTitleScreenScene_Cry(s16 * data); +static void Task_TitleScreen_SlideWin0(u8 taskId); +static void Task_TitleScreen_PaletteSomething(u8 taskId); +static void SignalEndTitleScreenPaletteSomethingTask(void); +static void UpdateScanlineEffectRegBuffer(s16 a0); +static void ScheduleStopScanlineEffect(void); +static void LoadMainTitleScreenPalsAndResetBgs(void); +static void CB2_FadeOutTransitionToSaveClearScreen(void); +static void CB2_FadeOutTransitionToBerryFix(void); +static void LoadSpriteGfxAndPals(void); +static void Task_FlameOrLeafSpawner(u8 taskId); +static void TitleScreen_srand(u8 taskId, u8 field, u16 seed); +static u16 TitleScreen_rand(u8 taskId, u8 field); +static u32 CreateBlankSprite(void); +static void sub_8079A10(bool32 a0); +static u8 CreateSlashSprite(void); +static void ScheduleHideSlashSprite(u8 spriteId); +static bool32 IsSlashSpriteHidden(u8 spriteId); +static void SpriteCallback_Slash(struct Sprite * sprite); // bg3 -const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz"); -const u8 gUnknown_83BF5A8[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz"); +static const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz"); +static const u8 gUnknown_83BF5A8[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz"); //sprites -const u8 gUnknown_83BF64C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz"); -const u16 gUnknown_83BF77C[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal"); -const u8 gUnknown_83BF79C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz"); -const u8 gUnknown_83BFA14[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz"); +static const u8 gUnknown_83BF64C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz"); +static const u16 gUnknown_83BF77C[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal"); +static const u8 gUnknown_83BF79C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz"); +static const u8 gUnknown_83BFA14[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz"); -const struct OamData gOamData_83BFAB4 = { +static const struct OamData gOamData_83BFAB4 = { .objMode = ST_OAM_OBJ_NORMAL, .shape = ST_OAM_SQUARE, .size = ST_OAM_SIZE_1, @@ -91,7 +91,7 @@ const struct OamData gOamData_83BFAB4 = { .paletteNum = 0 }; -const union AnimCmd gSpriteAnims_83BFABC[] = { +static const union AnimCmd gSpriteAnims_83BFABC[] = { ANIMCMD_FRAME(0x00, 3), ANIMCMD_FRAME(0x04, 6), ANIMCMD_FRAME(0x08, 6), @@ -105,7 +105,7 @@ const union AnimCmd gSpriteAnims_83BFABC[] = { ANIMCMD_END }; -const union AnimCmd gSpriteAnims_83BFAE8[] = { +static const union AnimCmd gSpriteAnims_83BFAE8[] = { ANIMCMD_FRAME(0x18, 6), ANIMCMD_FRAME(0x1c, 6), ANIMCMD_FRAME(0x20, 6), @@ -113,12 +113,12 @@ const union AnimCmd gSpriteAnims_83BFAE8[] = { ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = { +static const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = { gSpriteAnims_83BFABC, gSpriteAnims_83BFAE8 }; -const struct SpriteTemplate gUnknown_83BFB04 = { +static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = { .tileTag = 0, .paletteTag = 0, .oam = &gOamData_83BFAB4, @@ -128,7 +128,7 @@ const struct SpriteTemplate gUnknown_83BFB04 = { .callback = SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_83BFB1C = { +static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = { .tileTag = 1, .paletteTag = 0, .oam = &gOamData_83BFAB4, @@ -138,7 +138,7 @@ const struct SpriteTemplate gUnknown_83BFB1C = { .callback = SpriteCallbackDummy }; -const struct OamData gOamData_83BFB34 = { +static const struct OamData gOamData_83BFB34 = { .objMode = ST_OAM_OBJ_NORMAL, .shape = ST_OAM_V_RECTANGLE, .size = ST_OAM_SIZE_3, @@ -147,7 +147,7 @@ const struct OamData gOamData_83BFB34 = { .paletteNum = 0 }; -const struct SpriteTemplate gUnknown_83BFB3C = { +static const struct SpriteTemplate sUnknownEmptySprite = { .tileTag = 2, .paletteTag = 2, .oam = &gOamData_83BFB34, @@ -157,7 +157,7 @@ const struct SpriteTemplate gUnknown_83BFB3C = { .callback = SpriteCallbackDummy }; -const struct OamData gOamData_83BFB54 = { +static const struct OamData gOamData_83BFB54 = { .objMode = ST_OAM_OBJ_WINDOW, .shape = ST_OAM_SQUARE, .size = ST_OAM_SIZE_3, @@ -166,7 +166,7 @@ const struct OamData gOamData_83BFB54 = { .paletteNum = 0 }; -const struct SpriteTemplate gUnknown_83BFB5C = { +static const struct SpriteTemplate sSlashSpriteTemplate = { .tileTag = 3, .paletteTag = 2, .oam = &gOamData_83BFB54, @@ -176,7 +176,7 @@ const struct SpriteTemplate gUnknown_83BFB5C = { .callback = SpriteCallbackDummy }; -const struct BgTemplate gUnknown_83BFB74[] = { +static const struct BgTemplate gUnknown_83BFB74[] = { { .bg = 0, .charBaseIndex = 0, @@ -212,29 +212,29 @@ const struct BgTemplate gUnknown_83BFB74[] = { } }; -void (*const gUnknown_83BFB84[])(s16 * data) = { - sub_8078C9C, - sub_8078D24, - sub_8078DA4, - sub_8078FC4, - sub_80790CC, - sub_80791C0 +static void (*const gUnknown_83BFB84[])(s16 * data) = { + SetTitleScreenScene_Init, + SetTitleScreenScene_FlashSprite, + SetTitleScreenScene_FadeIn, + SetTitleScreenScene_Run, + SetTitleScreenScene_Restart, + SetTitleScreenScene_Cry }; -const struct CompressedSpriteSheet gUnknown_83BFB9C[] = { +static const struct CompressedSpriteSheet gUnknown_83BFB9C[] = { {(const void *)gUnknown_83BF79C, 0x500, 0}, {(const void *)gUnknown_83BFA14, 0x500, 1}, {(const void *)gUnknown_8EAE4A8, 0x400, 2}, {(const void *)gUnknown_83BF64C, 0x800, 3} }; -const struct SpritePalette gUnknown_83BFBBC[] = { +static const struct SpritePalette gUnknown_83BFBBC[] = { {gUnknown_83BF77C, 0}, {gUnknown_8EAE488, 2}, {} }; -const u8 gUnknown_83BFBD4[] = { +static const u8 gUnknown_83BFBD4[] = { 0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90 }; @@ -253,14 +253,14 @@ void CB2_InitTitleScreen(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetPaletteFade(); - sub_8078B34(); + ResetGpuRegs(); DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); DmaFill32(3, 0, (void *)OAM, OAM_SIZE); DmaFill16(3, 0, (void *)PLTT, PLTT_SIZE); ResetBgsAndClearDma3BusyFlags(FALSE); InitBgsFromTemplates(0, gUnknown_83BFB74, NELEMS(gUnknown_83BFB74)); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); - gUnknown_2037F30 = 0xFF; + sTitleScreenTimerTaskId = 0xFF; break; case 1: LoadPalette(gUnknown_8EAB6C4, 0, 0x1A0); @@ -275,16 +275,16 @@ void CB2_InitTitleScreen(void) LoadPalette(gUnknown_8EAE094, 0xE0, 0x20); DecompressAndCopyTileDataToVram(3, gUnknown_83BF58C, 0, 0, 0); DecompressAndCopyTileDataToVram(3, gUnknown_83BF5A8, 0, 0, 1); - sub_8079708(); + LoadSpriteGfxAndPals(); break; case 2: if (!FreeTempTileDataBuffersIfPossible()) { BlendPalettes(0x0000FFFF, 0x10, RGB_BLACK); - CreateTask(sub_8078C24, 4); - gUnknown_2037F30 = CreateTask(sub_8078BEC, 2); - SetVBlankCallback(sub_8078BB4); - SetMainCallback2(sub_8078B9C); + CreateTask(Task_TitleScreenMain, 4); + sTitleScreenTimerTaskId = CreateTask(Task_TitleScreenTimer, 2); + SetVBlankCallback(VBlankCB); + SetMainCallback2(CB2_TitleScreenRun); m4aSongNumStart(BGM_FRLG_TITLE); } return; @@ -292,7 +292,7 @@ void CB2_InitTitleScreen(void) gMain.state++; } -void sub_8078B34(void) +static void ResetGpuRegs(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -308,7 +308,7 @@ void sub_8078B34(void) SetGpuReg(REG_OFFSET_BG3VOFS, 0); } -void sub_8078B9C(void) +static void CB2_TitleScreenRun(void) { RunTasks(); AnimateSprites(); @@ -316,39 +316,39 @@ void sub_8078B9C(void) UpdatePaletteFade(); } -void sub_8078BB4(void) +static void VBlankCB(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); ScanlineEffect_InitHBlankDmaTransfer(); - if (gUnknown_2037F30 != 0xFF) - gTasks[gUnknown_2037F30].data[0]++; + if (sTitleScreenTimerTaskId != 0xFF) + gTasks[sTitleScreenTimerTaskId].data[0]++; } -void sub_8078BEC(u8 taskId) +static void Task_TitleScreenTimer(u8 taskId) { s16 * data = gTasks[taskId].data; if (data[0] >= 2700) { - gUnknown_2037F30 = 0xFF; + sTitleScreenTimerTaskId = 0xFF; DestroyTask(taskId); } } -void sub_8078C24(u8 taskId) +static void Task_TitleScreenMain(u8 taskId) { s16 * data = gTasks[taskId].data; if (JOY_NEW(A_BUTTON | B_BUTTON | START_BUTTON) && data[0] != 3 && data[0] != 4 && data[0] != 5) { - sub_8079620(); - sub_8079648(); + ScheduleStopScanlineEffect(); + LoadMainTitleScreenPalsAndResetBgs(); sub_8079A10(data[5]); - sub_8078C90(data, TITLESCREENSCENE_RUN); + SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } else { @@ -356,13 +356,13 @@ void sub_8078C24(u8 taskId) } } -void sub_8078C90(s16 * data, u8 a1) +static void SetTitleScreenScene(s16 * data, u8 a1) { data[1] = 0; data[0] = a1; } -void sub_8078C9C(s16 * data) +static void SetTitleScreenScene_Init(s16 * data) { struct ScanlineEffectParams params; @@ -381,10 +381,10 @@ void sub_8078C9C(s16 * data) ScanlineEffect_SetParams(params); - sub_8078C90(data, TITLESCREENSCENE_FLASHSPRITE); + SetTitleScreenScene(data, TITLESCREENSCENE_FLASHSPRITE); } -void sub_8078D24(s16 * data) +static void SetTitleScreenScene_FlashSprite(s16 * data) { switch (data[1]) { @@ -392,12 +392,12 @@ void sub_8078D24(s16 * data) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 0); data[2] = 0x80; - sub_8079550(0x80); + UpdateScanlineEffectRegBuffer(data[2]); data[1]++; break; case 1: data[2] -= 4; - sub_8079550(data[2]); + UpdateScanlineEffectRegBuffer(data[2]); if (data[2] < 0) { gScanlineEffect.state = 3; @@ -407,11 +407,11 @@ void sub_8078D24(s16 * data) case 2: SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - sub_8078C90(data, TITLESCREENSCENE_FADEIN); + SetTitleScreenScene(data, TITLESCREENSCENE_FADEIN); } } -void sub_8078DA4(s16 * data) +static void SetTitleScreenScene_FadeIn(s16 * data) { u32 r4; switch (data[1]) @@ -440,7 +440,7 @@ void sub_8078DA4(s16 * data) data[2]++; if (data[2] > 36) { - CreateTask(sub_80792C8, 3); + CreateTask(Task_TitleScreen_SlideWin0, 3); sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); data[2] = 0; data[1]++; @@ -482,7 +482,7 @@ void sub_8078DA4(s16 * data) if (!sub_807185C(0)) { data[5] = 1; - r4 = (0x10000 << sub_80799F0()) | 0x00001FFF; + r4 = (0x10000 << CreateBlankSprite()) | 0x00001FFF; BlendPalettes(r4, 0x10, RGB(30, 30, 31)); BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31)); ShowBg(0); @@ -494,7 +494,7 @@ void sub_8078DA4(s16 * data) case 9: if (!sub_807185C(0) && !gPaletteFade.active) { - sub_8078C90(data, TITLESCREENSCENE_RUN); + SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } break; } @@ -503,45 +503,45 @@ void sub_8078DA4(s16 * data) #define KEYSTROKE_DELSAVE (B_BUTTON | SELECT_BUTTON | DPAD_UP) #define KEYSTROKE_BERRY_FIX (B_BUTTON | SELECT_BUTTON) -void sub_8078FC4(s16 * data) +static void SetTitleScreenScene_Run(s16 * data) { switch (data[1]) { case 0: HelpSystem_SetSomeVariable2(1); - CreateTask(sub_807941C, 0); - CreateTask(sub_8079840, 5); - sub_80790A0(); - data[6] = sub_8079A40(); + CreateTask(Task_TitleScreen_PaletteSomething, 0); + CreateTask(Task_FlameOrLeafSpawner, 5); + SetGpuRegsForTitleScreenRun(); + data[6] = CreateSlashSprite(); sub_812B484(); data[1]++; // fallthrough case 1: if (JOY_HELD(KEYSTROKE_DELSAVE) == KEYSTROKE_DELSAVE) { - sub_8079A88(data[6]); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); - SetMainCallback2(sub_80796CC); + ScheduleHideSlashSprite(data[6]); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); + SetMainCallback2(CB2_FadeOutTransitionToSaveClearScreen); } else if (JOY_HELD(KEYSTROKE_BERRY_FIX) == KEYSTROKE_BERRY_FIX) { - sub_8079A88(data[6]); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); - SetMainCallback2(sub_80796E8); + ScheduleHideSlashSprite(data[6]); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); + SetMainCallback2(CB2_FadeOutTransitionToBerryFix); } else if (JOY_NEW(A_BUTTON | START_BUTTON)) { - sub_8078C90(data, TITLESCREENSCENE_CRY); + SetTitleScreenScene(data, TITLESCREENSCENE_CRY); } - else if (!FuncIsActiveTask(sub_8078BEC)) + else if (!FuncIsActiveTask(Task_TitleScreenTimer)) { - sub_8078C90(data, TITLESCREENSCEEN_RESTART); + SetTitleScreenScene(data, TITLESCREENSCEEN_RESTART); } break; } } -void sub_80790A0(void) +static void SetGpuRegsForTitleScreenRun(void) { SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x3F, 0x1F)); @@ -549,27 +549,27 @@ void sub_80790A0(void) SetGpuReg(REG_OFFSET_BLDY, 13); } -void sub_80790CC(s16 * data) +static void SetTitleScreenScene_Restart(s16 * data) { switch (data[1]) { case 0: - sub_8079A88(data[6]); + ScheduleHideSlashSprite(data[6]); data[1]++; break; case 1: - if (!gPaletteFade.active && !sub_8079AA8(data[6])) + if (!gPaletteFade.active && !IsSlashSpriteHidden(data[6])) { FadeOutMapMusic(10); BeginNormalPaletteFade(0xFFFFFFFF, 3, 0, 0x10, RGB_BLACK); - sub_8079528(); + SignalEndTitleScreenPaletteSomethingTask(); data[1]++; } break; case 2: if (IsNotWaitingForBGMStop() && !gPaletteFade.active) { - DestroyTask(FindTaskIdByFunc(sub_807941C)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreen_PaletteSomething)); data[2] = 0; data[1]++; } @@ -578,19 +578,19 @@ void sub_80790CC(s16 * data) data[2]++; if (data[2] >= 20) { - DestroyTask(FindTaskIdByFunc(sub_807941C)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreen_PaletteSomething)); data[1]++; } break; case 4: sub_812B478(); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); SetMainCallback2(sub_80EC864); break; } } -void sub_80791C0(s16 * data) +static void SetTitleScreenScene_Cry(s16 * data) { switch (data[1]) { @@ -598,7 +598,7 @@ void sub_80791C0(s16 * data) if (!gPaletteFade.active) { PlayCry1(TITLE_SPECIES, 0); - sub_8079A88(data[6]); + ScheduleHideSlashSprite(data[6]); data[2] = 0; data[1]++; } @@ -606,10 +606,10 @@ void sub_80791C0(s16 * data) case 1: if (data[2] < 90) data[2]++; - else if (!sub_8079AA8(data[6])) + else if (!IsSlashSpriteHidden(data[6])) { BeginNormalPaletteFade(0x0FFFFFFF, 0, 0, 0x10, RGB_WHITE); - sub_8079528(); + SignalEndTitleScreenPaletteSomethingTask(); FadeOutBGM(4); data[1]++; } @@ -627,13 +627,13 @@ void sub_80791C0(s16 * data) SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); InitHeap(gHeap, HEAP_SIZE); SetMainCallback2(sub_800C300); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); } break; } } -void sub_80792C8(u8 taskId) +static void Task_TitleScreen_SlideWin0(u8 taskId) { s16 * data = gTasks[taskId].data; @@ -692,7 +692,7 @@ void sub_80792C8(u8 taskId) } } -void sub_807941C(u8 taskId) +static void Task_TitleScreen_PaletteSomething(u8 taskId) { s16 * data = gTasks[taskId].data; s32 i; @@ -736,13 +736,13 @@ void sub_807941C(u8 taskId) } } -void sub_8079528(void) +static void SignalEndTitleScreenPaletteSomethingTask(void) { - u8 taskId = FindTaskIdByFunc(sub_807941C); + u8 taskId = FindTaskIdByFunc(Task_TitleScreen_PaletteSomething); gTasks[taskId].data[15] = TRUE; } -void sub_8079550(s16 a0) +static void UpdateScanlineEffectRegBuffer(s16 a0) { s32 i; @@ -778,7 +778,7 @@ void sub_8079550(s16 a0) } } -void sub_8079620(void) +static void ScheduleStopScanlineEffect(void) { if (gScanlineEffect.state) gScanlineEffect.state = 3; @@ -786,11 +786,11 @@ void sub_8079620(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -void sub_8079648(void) +static void LoadMainTitleScreenPalsAndResetBgs(void) { u8 taskId; - taskId = FindTaskIdByFunc(sub_80792C8); + taskId = FindTaskIdByFunc(Task_TitleScreen_SlideWin0); if (taskId != 0xFF) DestroyTask(taskId); @@ -808,13 +808,13 @@ void sub_8079648(void) ShowBg(3); } -void sub_80796CC(void) +static void CB2_FadeOutTransitionToSaveClearScreen(void) { if (!UpdatePaletteFade()) - SetMainCallback2(sub_80F55A0); + SetMainCallback2(CB2_SaveClearScreen_Init); } -void sub_80796E8(void) +static void CB2_FadeOutTransitionToBerryFix(void) { if (!UpdatePaletteFade()) { @@ -823,7 +823,7 @@ void sub_80796E8(void) } } -void sub_8079708(void) +static void LoadSpriteGfxAndPals(void) { s32 i; @@ -832,7 +832,7 @@ void sub_8079708(void) LoadSpritePalettes(gUnknown_83BFBBC); } -void sub_8079730(struct Sprite * sprite) +static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite) { s16 * data = sprite->data; sprite->data[0] -= data[1]; @@ -876,16 +876,16 @@ void sub_8079730(struct Sprite * sprite) #endif } -bool32 sub_80797AC(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) +static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) { u8 spriteId; if (templateId) { - spriteId = CreateSprite(&gUnknown_83BFB04, x, y, 0); + spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State1, x, y, 0); } else { - spriteId = CreateSprite(&gUnknown_83BFB1C, x, y, 0); + spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State0, x, y, 0); } if (spriteId != MAX_SPRITES) { @@ -896,13 +896,13 @@ bool32 sub_80797AC(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) gSprites[spriteId].data[4] = 0; gSprites[spriteId].data[5] = (xspeed * yspeed) % 16; gSprites[spriteId].data[6] = templateId; - gSprites[spriteId].callback = sub_8079730; + gSprites[spriteId].callback = SpriteCallback_TitleScreenFlameOrLeaf; return TRUE; } return FALSE; } -void sub_8079840(u8 taskId) +static void Task_FlameOrLeafSpawner(u8 taskId) { s16 * data = gTasks[taskId].data; s32 x, y, xspeed, yspeed, templateId; @@ -911,7 +911,7 @@ void sub_8079840(u8 taskId) switch (data[0]) { case 0: - sub_807999C(taskId, 3, 0x7878); + TitleScreen_srand(taskId, 3, 30840); data[0]++; break; case 1: @@ -919,30 +919,30 @@ void sub_8079840(u8 taskId) if (data[1] >= data[2]) { data[1] = 0; - sub_80799B4(taskId, 3); + TitleScreen_rand(taskId, 3); data[2] = 18; - xspeed = (sub_80799B4(taskId, 3) % 4) - 2; - yspeed = (sub_80799B4(taskId, 3) % 8) - 16; - y = (sub_80799B4(taskId, 3) % 3) + 0x74; - x = sub_80799B4(taskId, 3) % 240; - sub_80797AC( + xspeed = (TitleScreen_rand(taskId, 3) % 4) - 2; + yspeed = (TitleScreen_rand(taskId, 3) % 8) - 16; + y = (TitleScreen_rand(taskId, 3) % 3) + 0x74; + x = TitleScreen_rand(taskId, 3) % 240; + CreateFlameOrLeafSprite( x, y, xspeed, yspeed, - (sub_80799B4(taskId, 3) % 16) < 8 ? 0 : 1 + (TitleScreen_rand(taskId, 3) % 16) < 8 ? 0 : 1 ); for (i = 0; i < 15; i++) { - sub_80797AC( + CreateFlameOrLeafSprite( data[5] + gUnknown_83BFBD4[i], y, xspeed, yspeed, 1 ); - xspeed = (sub_80799B4(taskId, 3) % 4) - 2; - yspeed = (sub_80799B4(taskId, 3) % 8) - 16; + xspeed = (TitleScreen_rand(taskId, 3) % 4) - 2; + yspeed = (TitleScreen_rand(taskId, 3) % 8) - 16; } data[5]++; if (data[5] > 3) @@ -951,12 +951,12 @@ void sub_8079840(u8 taskId) } } -void sub_807999C(u8 taskId, u8 field, u16 seed) +static void TitleScreen_srand(u8 taskId, u8 field, u16 seed) { SetWordTaskArg(taskId, field, seed); } -u16 sub_80799B4(u8 taskId, u8 field) +static u16 TitleScreen_rand(u8 taskId, u8 field) { u32 rngval; @@ -966,13 +966,13 @@ u16 sub_80799B4(u8 taskId, u8 field) return rngval >> 16; } -u32 sub_80799F0(void) +static u32 CreateBlankSprite(void) { - CreateSprite(&gUnknown_83BFB3C, 0x18, 0x90, 0); + CreateSprite(&sUnknownEmptySprite, 0x18, 0x90, 0); return IndexOfSpritePaletteTag(2); } -void sub_8079A10(bool32 mode) +static void sub_8079A10(bool32 mode) { u32 palIdx; @@ -982,27 +982,27 @@ void sub_8079A10(bool32 mode) LoadPalette(gUnknown_8EAE488, palIdx * 16 + 0x100, 0x20); } else - sub_80799F0(); + CreateBlankSprite(); } -u8 sub_8079A40(void) +static u8 CreateSlashSprite(void) { - u8 spriteId = CreateSprite(&gUnknown_83BFB5C, -0x20, 0x1B, 1); + u8 spriteId = CreateSprite(&sSlashSpriteTemplate, -0x20, 0x1B, 1); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].callback = sub_8079AD8; + gSprites[spriteId].callback = SpriteCallback_Slash; gSprites[spriteId].data[1] = 540; } return spriteId; } -void sub_8079A88(u8 spriteId) +static void ScheduleHideSlashSprite(u8 spriteId) { if (spriteId != MAX_SPRITES) gSprites[spriteId].data[2] = TRUE; } -bool32 sub_8079AA8(u8 spriteId) +static bool32 IsSlashSpriteHidden(u8 spriteId) { if (spriteId != MAX_SPRITES) return gSprites[spriteId].data[0] ^ 2 ? TRUE : FALSE; @@ -1010,7 +1010,7 @@ bool32 sub_8079AA8(u8 spriteId) return FALSE; } -void sub_8079AD8(struct Sprite * sprite) +static void SpriteCallback_Slash(struct Sprite * sprite) { switch (sprite->data[0]) { diff --git a/sym_ewram.txt b/sym_ewram.txt index 3797720d5..c859d8eb9 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -769,9 +769,10 @@ gUnknown_2037F24: @ 2037F24 gUnknown_2037F28: @ 2037F28 .space 0x8 -gUnknown_2037F30: @ 2037F30 - .space 0x4 + .align 2 + .include "src/title_screen.o" + .align 2 gUnknown_2037F34: @ 2037F34 .space 0x200