From 1e5150742e6dc4ab61b8a6d6bc321916f1ffc07c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Apr 2020 18:14:03 -0400 Subject: [PATCH] Apply pals to bg tiles in intro.c --- graphics/intro/unk_8402650.png | Bin 81 -> 138 bytes graphics/intro/unk_840272C.png | Bin 448 -> 380 bytes graphics/intro/unk_8402D54.png | Bin 4239 -> 4249 bytes graphics/intro/unk_84048EC.png | Bin 1406 -> 1293 bytes graphics/intro/unk_8405414.png | Bin 1049 -> 1069 bytes graphics/intro/unk_8405B28.png | Bin 385 -> 426 bytes graphics/intro/unk_8406654.png | Bin 2463 -> 2298 bytes graphics/intro/unk_8407470.png | Bin 1355 -> 1383 bytes graphics_file_rules.mk | 10 ++ src/intro.c | 220 ++++++++++++++++----------------- 10 files changed, 118 insertions(+), 112 deletions(-) diff --git a/graphics/intro/unk_8402650.png b/graphics/intro/unk_8402650.png index 1ed1b6dc56f25557821257f9fc7258438b4d2daa..6dd63c6d6e04fad5991e645843513a95c41d14df 100644 GIT binary patch literal 138 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 VG>NnL??1l=V0_6!zfqTv@IRFVf6V{@ literal 4239 zcmV;A5OD8_P)%eJv000nHNklRjppIPEXia#Qg%%3sBrGLa@@N5K~2;5)^1j6rvM{t2#Kqxhqw+cZ6 zK_8Zk8&J|!=pV5x%bP?{(q|IOvN|qcEK5RJLto0eJY7WnwCb~^d9M1lQten)f0qAW zSaSL{tbAxCn+Po25z&wnLa-WACS&i-#$(qrR13;VIz#)L&f86ieWQa*9CEAEv(yM4 z)K5k32`}&&bAnsJufX*;3@iLnW2s^5cdKfsv=n7q2t;@VA#AO0Cu;ti0d>zs7&8CWIrg76D+^k{< zruvY+IzVM3j%%YB<_1(nG_#6?UK}eJN6&u;8%2!+P(VMs?mHp#yFdtwphAC=2coRE z`V%^}feg|BAn=%016z&mI{Wu-l@~{plyn(%LGcp`#zCVn(Dl=rO5#$DVIZNO|6Gk{ z49Z$pT& z{pVSu5q>{@9%}tss`cvk%7RUG=^YMAcGs4v3kSL7xE7u@>_kBvLo1f9hCYtPaUkMk z;*fNck};{^OvGnkRF-F`Mi`&RVmt!QBL<0h9-T!w8jZwLU+Mh<KfuR3jL0%bf)I0)LAOc4GALiB)x9*-b| z#9zi@^w%?Eq%iu+NR&^|fKdwi=a<0$l@*@wDIFt&Nr04*16#swPuTB(G=XX>Qm9z1 z2=DJW?Y*=9-ivo7>}o}atXA*9>Ya4PxkNhdcpNBn;15&-UGa^s*Rt{`6_KDna)L7}Qmd>0MO3zVHK>*0A1fO<9S*%*M z@lLzN`|7<)EpHuHeF@EgC?e!BK1=#<81!!>G8_^oStxVq83U1v;hSfk8_7Co-5Wh@ z9k5lnv_JM=DOZV zu-;o0$X%cq_VF&KKa(w$S&SXq)^Uw2Boc8dw(*|oYR?zgo%$yV6MB9*%F-LCKeMDN z9QC|W@6F>l6j>Zo`Q#yx5war0-psrd;*FB1pz@)g5pEKkyD3Dr3ExDqLH#9J-1!SK zJ(%Jm%ETr~a`82pexbdeQbL*x+^5&msrdBcV=dx*_aRRC30j@<=5cZc`9%2mJK?nb z{2}uEZ-1w~tZt&t=q;q*ej}twx})?^YOA^wzpE&Io}x$_pGEq3Y<$VLVhX5s=Uqg`2o_QS%2?2<2zn)7^0d zIdhWzf#cNk8l#*lJZrcNr#5izO>Tj5!RX+?r|HlG+<-ABc#MYaVEPd=1=F&%JhE=5 zqjE!G?v<6DT58`%J7YJ)9W2|fpEiW~hB&mrSZK6-?+b#t zXoX5F3LS|_ASQtmh{dA3?*_2;ZmH|kLRF_I z>iY8a_ev|m(3BSB$~T)opo_8>0|&+`V*)#MQW>j_y5eBiQm(AiC4M+VTk=cOp}#3} zrLSo0TrTCy5+CsJZ9d#uPdceRreax{Nq7A%Jb1%7<&9SDYDPaq9sevSfwue7YR+bJ*3m!kBTp969!{$`1dE;Tk&E?===3X!*~V z4ooy=T|qB2CV(@uV7PhG!<$vGyf0}pmxd(;`>sN5;0)9YTuB^q)&6rOCqv!K6y&Q4 z&;0fGCd>Oi+|09Grpjt^+{$xfT-aBshsKr7xGvk(4AAM1{E_*zx}W>}l9gu*PeBbA z%Os*;e3UH|Ld8z7<=`_1@j8fi0pIZ|t;EV+G)Lpyz+9ChJI7Z5wd?ZKH?Q1U^MN~x`oLT4ls{kFkQVy1^1~b` z^!dIYc4pOT=_D%sB+ga+X){ykf_t)+EQ&aiUQkiwwGdh78nIqR(!!k(6QVGQL>3eB zO+2u0uhYZpGB(KzwwhXgv6-H(dj;Qn4nW~n7r1+OQKylHpMh})MjEJ7IKpPJ>WY;( zOWDnGgslXR@t3rUHL#bZOEnCaIFU%`&lBmFVI`b}FkC_;AmJ>8)p|Npx~ME9ge+01 zh+`~$LrP%4#E9|Yf^(6^cRn0@^n^vJ8jh2|J6KSO+Bb zk6;~$-1{KR5=y{FLV1gm868*r349Es;!7TgFZm3o(VrwDNqi=d;Ox*VSa!^~vvwtZ zN#RwY@Avz}M%?MY)RD(JDg5V_a#3Z5wl-0?5m5mvtcW#2_#ja|QbMuO<3kRT4XPbU zVP`B(Hn2P5d#+2QFCd2tCbB#UF*rlyGTUfNB~qu&d|!m=msjye@%0shIH6I7>_>${ zkwwb4^*p$>YuZ{LXzOS0`64f7D2uN==st9z51Z~|V?q%|QmPSv59Bb|rD-m9yY!wZ zR%>u#Bq^n0o3fpHQl9EQ-_y^HsV0G<*kn2jtw~E}0SPEJY-eGrg3A|R2ai8#MGy&wBVuR^$13Nm`GhvOqm3W=~H_WGT zPE&K9$`hUJ20|cmvpb@DZ0<9SL;8{nrD9^7*@V zs3*bBE>Ux3vqbZf4+OV*b*Gnj8l366zf(1NVpZN~aKv#2)Q*;)$UTNPENP|frFxWF zs86d+qN?<2r>NU^R4skR1@8Hiw{CxJ(BG9SVfv-MSA(9eeN4zcp3!|D>&7|OjY}*U zZ^!~LuYpI&Wru#K5*48LrX)=y$WQ?6}_TR>3^3uF0Ef8f~do)ka;#x|+Jm#~my#hBsg_SiYm#1`m7hy#vN!e@-%gmgN1wv|TmLI=p` zc!$A`dU^BU-}|V8hTp_x!G`J8G~KWG;Q*V#2I`35!(Gt>c|}KPiC+{|_(u|C12D(Btnq5mB}yOUb-w>)4aV?SMVOVt{zz8$)y681yNS$6#;i$#q}aRlZ$i~XAQCQBqtP% z;stxvxtZ}i9{eQao_HzN0c8fx*gAmMLI^$SUzO?tC0`gClSTKFPj0l!aXz zW7Qi9cMujUcZ7DR(c`m*8UqSt8SRb2h?lgG4Shjw#~k)kBL_}D=|=FW>DqrHe8wa*Ms18gDU?X^8LsJBS_tK>>%CNXCzN2p`I$Y*DFo?CHn(HHqhU$g3v9F48lAtT+w zJswFY$L4|irOL+%9m!ixO2Z*-_nV=cnd|ffHTDUgdrDzZ@1&K}p9MY_ozVIIZnl!5 zFuhj=_Dha+N8^CC@s76I<2(A%S4TETj+ON?cv`^+uL|)M|4l=2_{v%RVI6EW${Fdw z{k-@(otklcCt>sN#efe-Gyh(kFlB7>BJFsEW1=YXtsDWvEvkDpRppP=K^(KcR}+v002ovPDHLkV1mn=KPdnJ diff --git a/graphics/intro/unk_84048EC.png b/graphics/intro/unk_84048EC.png index 577f1926dd606952f652479ff486c685003513b5..0665222d5ac8d53c01d8912c7529e0478f469a4a 100644 GIT binary patch literal 1293 zcmV+o1@iidP)^&ep1MruoN(O{8@Hdk&9{52{WCp}Z)y6#xb% zsW%lnl>w{o$=fqvxB%Xjk`XZ5m~RBGQ#j~M5-@c%Snk=GOJHR4&+Y~wgSTx4;E{R& zM_24^2K4)|2m4l5V&%{F3gCX~I;J=$C;@)f!WymJ=ne5I0)3&$op>v89-*-k2! zh&Tt($K6Op7?mzgXZUetZIaC{z2S^}rg0BL`kA z$c$E)`yRkO4iRw2=`aBD*Yu$ZUyFSX&bx7Q1g}txt^#g8lARIcE&w(Hwuwv4^Tyr; zz{u=@QBhRZ;Ed7IWzPawmF^0lzTE~eTDbF1fiNio;4;W+EZ!~xELXUoVxYI?HsF2& z(04I=%2ys9RFwf%N8ow;FfdvVFi|rwwh?dy_#|J+*F7810JO$3aBXrCC{Qwxo0Sa9 zYi>t*s7ZCz9|NXhVdeNFGIEF;4@s>^* zFdE~#z9Si1082K^bJDoUD87oF*8OB@a5i{{{e27rf4`YNM~9)P}b6Tr3s zp(e$ON#lVAPQU{-ZVq!PTrbedp?R^^&{=!|3FIRz(oO6s}*s3sNYhtyXkoipLkbO98@dx18v<~& zG@S2GR{_BQZXp0%xDEC4`+&NqyN3s?Pu?7Gu^VTAW$ah7x@; zspI6p*c#5E%3swG@cL=ck!yhbo&Yi6d`xsHE&&~L_bIq}8=!)nI4JOVtr~F^0XKDd z6F?27x|qV{Pps6Q0KR4ufQyZ7xHPZAE#y7`*P%cWK*X8>Xb5M3;%r!zJsZ#u03jsP z&-RTw!?Rax-c=FnaccQaqUr!VJqUngv+)1z@=7mK!H&DA>+k7hs0f$3I{<&?DE5tt z!dP5;Gh!)cq99ez2J$BXkfBwUMdyGxc%?28Q*fzy902L2D{*)(ffw6SB`TC|gGP|T z9bu@y0w4w;-MTF#I z;9%I!eSn+Y?B8<_A;L2i2rM1`|KNc|1j(|LUjzRG4Wp^&ygcLT00000NkvXXu0mjf D)f`dL literal 1406 zcmV-^1%djBP)a zyKX%w#;Sl<^FwyXQUvq^(*9U#(ZIx%_<{ zvjl$F-$H)8Z*pQu$xj<5<=c_foe+!*A(u_kw#HRB6C>D3`0+oj+l18|K7|Fq1b&!6 zlWCsk&GV&*9PtDYJxg- zIQb0`*;S_i{A>^i@oIsRWP?FIDCaF9z6^>z_eVq$-~({|Z2&6^Z+VRd(MbaO2zHyHp@qsv79BK0mlRX~{ zYD7nn2EruqDx7B?yKjN{HYw;Vo0l=q{hP+MKi}Z;h8eH&oCi>079ywo*eZe!6+i2; zxoMZ8I2j_x;_)BEIxDNNj`3;8vF=h7RDSRKF520h~A zq2gg08j6@jbyI;Z?P`<5@#duY8vI^HmyYT^L4~q82kjP7HSStT@8YjoXk0SOE~CN2x>0jr$?KYKSlvC zqYe=oJ5?EAu)3ouK<-*MB63`>G$`IBgLXbCz)Zw7!qZ2ynGpTi!)S34;H`^*{y_kz z2#pK@>7((44bs9z&fvDxm`rU~1>SzJH8+ts8p&Fz0(@2wIfQ)z?PSXzZk&$hU5oS; z)PUm(JgIO4?!u&X5s;i0oJ9#EPki)6qGyY&!RmwKfsk6mo2k zd1v74p!g(yHV#2}!z!%?J~+fcCSK-E3Kfc7DcQwM_3`s^tNM8Pkc^-BxgtU& zyH|aphtu>}*rqQvJTua|(@3fsuXQpo_l1r>VWsXApxM{Pm|*PY>o-PIZ_xedyAZ`L5pJU_V#M5IlaBrl+{vdv?-*6DRW{mQc5}A-sT`dS{QRdw#w2Y000BH zNkln#oJY*+GXYrM#R=iA{abhgTmyi0$T=QjV~xwSINbT5K*Lpt72y5Eo%7 z5;l=27i`JJ+$EagzcCqT|%JCbj-aizRqu%?^pZxPU-c3{L#>f#B) zxRly6;_*{mkiygiXIjr{P&w{q6W|&nIrNlL!f}EyJk|PTSqA$hz=`9!0b22L zH1zfhfPUX`P62-328O}OiQ_0zgdV_hCD0V5i|X=g1epU^=Vb941cMx)0Jv9BBk9^- zAwB`_7!)0#IzS(RJ1D4a{eJ(H%!RM1$;LeD^?G{(ZeYR9P45u{2eT7}ozFf;xyl>? z?{fXtiyLTB};o0q?G-jUulVSgvqEtr}yW0*fQSJ<;n9 zP#v)N7%V$rPXMkh@CV7j$HT{y0)Ur^?>E5z7&y#zQ{&@b=crk%f{8_v(@6NB2y7L0RnimF{ zn>h&lzdU~*)gZB8f=fnz1Ey*^iQ^j3k@55Iqc}|;02__F04`cb&?ws~-pS}Lwo^5L zbv&^V^A)J45q-~6t3YzW-)jZUp#~&KDSHDlq>4Fv14zYB!R?Cd+<25!jBd;N7NC4F zk1}HC?1`@+xVo*JrZFWY&KX&ni4@sVdp}#Yb{;owTE_kz430oDNU|)Ub&@3s0KIfp z=F^@?e609`mjHVNu)rsy`2+ClF~Dn@(QFf6*cSh19|`+FdMZLY)(0D~z^?&$!FEO! n;R9!UI^@$WEPw;@$%=mfu8abE*Eh{100000NkvXXu0mjfY31dB literal 1049 zcmV+!1m^pRP)zya2g}FIIm1dAkCriap~=Rgb_j2HWJ(2I$Ic{W--LL^`$WL z0o3Rkv0Ios-F|{3aJ}QNko=#~o4uBoB?JEPjOUr>rV6yttaUjWm!9=cVCM(z57axvA500 zCct`4!m?6WX`2&`$<|k6>U7`Q)V&^Sx}MmY-r8EzR0FoHSJYYR??~%2L3)WIHJ7HZ z02qRPLws_CH3inF${`1E3bYy1_kjLG8n~pd0ebc98NDJbz@v8zeJ&DFG^QWl1J^&O;id+il{!k`Zrxs_ow0wSXQ^@=q$!Xi9=4TyL(t^I1eWNb^Yy4D2e zmQBWFW$P{yMH9NuAoga1l=t_5ZFg^}(}^4!cWxc(My^AXJ0yxEaL14g2L%$k0;Y^5 z4&dCjBRXH=kbmf)s`Ck|T1ki)RY;|j)EY8IHHHHgQ38FJ+#JYJqDQiV)3dH{f@rXJ z(C;q(#Gua@x%C%DBbqfmsld|{W94#w$*o>h!2@hIn>*TWw=H_P{nBFR2aq{rrKExD z?t?p*jL8{-t|K7h2WD}Ow6>~#jfkg=!Dv)tSYQC0!sMW$fLmfHE4VI0J|gS`{DVP% zW8@Y(-!`ID@`SCE(&`zV3+u(j?Buwx&OT}-574UNa)X7EvJdoY$UQu*-xjq75H`oI z&XPtsh6SV}#UAmvldX5#tfg1!w^NZxMb z0uJ97gCF_QcrzeWGaxWf3x-!c=hJ-*O0-7w>&-8Vog0Ds;SvmkfJXBBkVZexfjRQ_ zUFS95#Mk6V=M7^{GdY{n;?3{7?TZ&T7bH+QJ?H-vBM2BCw;C{b)#uaqSxNt?C+Jsb zScTw);%Hw%5aFp7Q_XgZ0W?TXLc{%E4s-{hVu()QXeJ{v`XjVw6 z81V5-6~9$K!GA!UKcNF>Us0@hRVjWmv4P(Z+5DIAju<<9_^Bj0@beK5xmEE&@pB}H z^>I8dP386Z1&k!MbBtvKh*jAKEL@kS&f^?0ca-opKi>EA%lZ^2GHUpyNLc>?=s$IT TJIxvg00000NkvXXu0mjfFRbv^ diff --git a/graphics/intro/unk_8405B28.png b/graphics/intro/unk_8405B28.png index 45400d46d36d4f8741908b5e19b3a44e93238278..dce86264f889ebcd54ab9d849281b684601d0d4a 100644 GIT binary patch literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yE!VDyH*`KZgQU(D&A+A8W`CW0)UN6ffmc>_- z1gZs={BQox@E;4B!m#9C(u;$OB^VeOO+8&4Lo_BXooJnR*g(MLddGvhUouQ< z^O4O|eGxB;ldr<_p6z}1N@Y`!xxlN7 z?Vt5}W=~nVY|n(X%4VYP&=dyR-^V^3WOL1M& zdZ^-izFSVbbi=BO>1u)5EqDGi1WYtJ@XPh-6Nlf;jI76Q%klEEJWC0mWxY@1BJW1u z&!Q7b13wq7h?g64(}gcPV_kVo5#6lZp#@bmHp1P>V|bS zmtH;S@TfmAFM!=c`1TFUfVY2DZ5AeXODLMiE>rwRStHihe0LMrpo z%L~Qj}NOe4=caWInK^-`YGd-oi>f1!awjjDuw)iyLn*-Fwhx1 MUHx3vIVCg!0FL^?a{vGU literal 385 zcmV-{0e=38P)_*4&73i$bN~PUYQ1w>DN^3F&Ao%Yi&~V;&EA89gAfo9FQFYS000Pu zNkl!))z>TD!5}u zAjKkZWv_uN+zovY4s2o$0ph^sEHU6GIHXLgT^hHs#DID4&G3&TZ*aIagI!ss=BM}G z{3FfSb{mTjUX2A~y;;&;9tmo4@eILFvFmaQNNk~?i})sr0A)dodI;80FZjH98(~)p zG71)5lt{UjUQaxWIz2`rcszLnDBMK7&+#pyCA=6jKvjd}UuRS$U^B5;`@ z5H4sS*-RuS(7H$sGaF6uErePkDgl*ZL07RPLV;9;Kq|%zY93K7;t@YQr4N^q+5(eX zpC3rQ`kjaus&=fmM#fyBd>fS_2sFwvg}&X$ zPUTIghv@Z0p^{8CC*-c7KqE)olRP<@AcBNeQpSL?q&E{X>7uelp+XR7GC5Ug50fHo1V-?U)t1V=qeTRfFBm&d$_w zKy-e7e)c8wLlmx|dQ*+o&}a%7UBIu15}7Jg{sMG|&mdUXc~w>lMJ>YfCZRwZs5e6-3+|SLf~KU*ogtz?ZAqV9K`RJ_Wmc@#A`Ndc z7t2da*&qZrcnmB@Y=Q%xy7NeIsc+xV?ys(J@cA6GQ|MY3or@9sineJu7hJ_sDjHq` zN?qBObge(UzKz)9DuE+dx*6P6ZX1V^CV*EfI?fd|mh>5$j+4n7Tzrs;=(IpaxH8~G zqvO0@=PUd^HVwj`-vnWiNjdK#3>DNv*^asafhD^|B$J1^3?s1-sx|GX8)buT9;6(r zN0JuR^Sp*Y-7`4y!*L7<1I0~-eAFRp2quitH-s0dXHlmpN2By|SXHGSL_}@bI0?F}AP^WRtwTLr zUDhKHTjRP-D8U$YhEb#jd#$;wMpc9GRc9B#%wk1O*Q7KU#*B&SPxTU5iOx(#QM?t1 ztFb7U_|IQf9n>Tn$oZDhj~{?O)@a&6xS8UOP@GpP(uhs}T%+Y(7sd1Wrg5(b^#uD) zMRLWoyINu7I)PH|KB?S(OP{jo$3NlEyVbG|5|LROHU7jEQqSfr{};Upa(u-(if8yl zyph-?=bRp1uvg5gLbT{ss6{KCZWutEQ>Y$wb(yOs^RCG*%V4*x#euWyQX$+4A}N{f z8!yEjoo`-o{Pi*L1!CFa{;-8s_LD-sf0Ch>W#$J znuQ=(l3jhMQS&FRYT`cQ7RH-X|JIeP9KF*$_^Ia@LMbh7Cfdm(C8(+$CV-J zjxetysW#+KxPv}$$0cO*3SS!(LOL#Xe8LDfS&HdhK2dfs)Gn3;sIZ#`(@QmAlpG~& z4ao1o)yv@}6$9ucr}Sz>cdNWXw91F|ezFUVP;}8eR-tm-%2z248JPhhmwy1Hx_1#B z!nw}z0nuAtqrI0n;Dckk+W_4(sK8-^n!Y&PhyJes9q$c_Zj1(9tK%NRl#b&JVWPe$ z%o>@4!rp3#)ZG<}O4D>$q}=DP_6ZF>jRf5(b4TqwSOFgA5b6lfk%^hHZhQCFzr&-> z4FCF}1Cqbr$2)|DXuzTW;Arm|6ax|}62@^Mz+3MBZ{!iuk$%|cmATKYe zo5VyTsJL~8uKVK0D$1CPpA(eEqLkg_&`h; z8-=hPnS1O<2xT1tAY}T7a1~Ow`j(F=sqR3VW+U<-yTe`IgiQLBz|kJ_`#uEe?|RJi zJxZX1j%+{&KfuRu)%R4^HXzf-0okQ0v1fz!Oqgz#`6eK^+I$-#3ocRp=Gq7VI#S5P z@A36lLPfT{W6?KwZS_stvk@IAWOb2Q|FVVl)V$f|#@hNN?bo5bUxPN6{{JcZFMbqL UQk74E{{R3007*qoM6N<$f?aUP$$KFJ0UUZS!a``sn-2?kt&>sYP(U|r(Nhoo0?vMd zcrQJ~hrkyClHAKE$p;W!14f~XLkVabUlg;?Gec5;?AXb+PV&o09Ff%f&b%|UWcZO^ z#Nrl)D_t}R--2jKyWoy9FW!Pd2aG!9Nk;{Xpd>07M){dr1>pv&HkT-DRV16&aE(d_ z1Ym*QmI^weOPrG}nk^6kHw2@w22@SvO~Ow&8u169ExVXa4Ce4r+@@oqwU?HkbYL-FCNJg!-ysfaq6SRwa#+QC1 zh(k%|1n(JIC67*4zIo2;L%~0A2wq!WzLaBrX$yiNKSf~);(UlV<;8K7f9Y)AAgaIt zwXK5o7EW*@2Cggk=Za4>i3WU+UmDQ>t%3$|TZ?8+9fLYr$(G@J!qKTXPSs8g__h0| zsV-;F9sS;t&X-L4MTlSz$*6PkdXs=49k1o^#fuk$fWKtx2(60G1C+v*oU9PX4uy`EHS}8I(m5wj@J1( zS|L((cM}A+z$Y!YE)@p5f>HybC1FW~d_;M$osyQp0ql;PqcEx=J`sjKGwr)u}ZDf zds9!hNP{U;ETyKP_$(u??I-2MeJ%uU$?{%`Q{6X1BhI`EX-1D;<4!R{vnJ|fRzU&9 zH{g<5>0mZ8(}qI>CnuULkuPkqJo(#KhxyFQrzB?Ru|<)#9AY-HY_?F+kYuF1ERn&>^9ID_~I(nKycat5`bcfhMD3h_1s(R21TY*W#3c9(BlEu-K4fgJzJw@ zxUUrOIA$K}(7a+&yLC?mDZaVljbhk3X0zk$;OK`gyX;$bBE)5fo%bz*Kb^0^ul~Fx z(L>Pr3tM*97Q^h5sJ7e4=W2)*!V;;if)1%X6Q7;8%0f|``Nrve7sCfb11m|BnEmM; zcMyJ}6{;0Nj_e>{lCjdG#brk|m_gsi)!5<&!*{)98V9$e_Dk>%*xJ6Q->IO|b`Nen zs(}Vt$K}WYSj>bQ713N`VzU6T)vejVu)kIh%p*WnEy?#Fzc-nF_}574zrmU;RfI0S zZLUU9OrEW$%)Im&UF@48Zk{^KFZKagoeL_KXH9g$D2YO{JTvnf?Jh4gGz0~vPy{R# z&9YFqkvv-^%vT6ywgK&YpBQq-7@FNWX`68R{{N866+9$>N!du0XA{*GeR`lpAK>Mw z2A+-|fCqRl<^g`T+hq$Kfj%WXz=Rr*RuGryn&p7wAj|$;K3@jK^X1S!WEKoJrdgh=;R0bCE{Z4MY|#G~Op;ByEjE{9Ljq!;tI6ipAYNy}shh+r75!sL0zQ)DAA&}~FxusI z5CwidVwJD9IoZwcT4ZHi*t;=+8+Z>zI_^qM*wgkiNj5Z86-)W)mcr2=)*hSZYWqg{ z&-Z4li>9e&c*5n@eurCo)7oaW#W+CObvPRxX_!`CBJX7*-8q9CPk+Ju%}2y7N6mya z1LX93(GL!E`3aBL5Ie5SZv!;1i!CxU{aB-cbmP^yL`!T60K2$k5ZeJVk%=BpBpD}K zk_3#C39&CH#0;9T=rIPhWW@- z!VFu7R84Cz7)agoJRI-_ECt$DfiBr5r>+4>I<0ypZ>$2_Tscu_2Oe@cc#bZAKfeUk zR7+34xs(St=JcfC%{pUq;2lXy-t&MV6+Iy_vTtU5mBjjSBJVghCQR9qWU|4yAQ>ks z`7oJ&r}=W6tRA?H@j7>Rz8fSNE6Imu2)L$vh&Ean2S5DtJ5Fc*n!t5eTjdb&OWZmi z8di$*(@RM&`j}Dab5x&i`d~VpN!?`O$t9;1a-=1_M3K7gtDf{`h7_b0BqhU9 zLu$D0fs{;fwRGCgnWa36Hvv97<7d;HbcKtO^Yo1GAs=a)!Jb2NLdpH)KgU5_>qG0q48wXDOJaf}6)}l=KdyAZ`L5pJU_V#M5IlaBrl+{vdv?-*6DRW{mQc5}A-sT`dS{QRdw#w2Y000E? zNklLxs%-mPw&%!7!+Z4|kUf9Bzc7!qK@qb{khB z?EVRn`UGo5nm|mrv0NCTCMt|bWLuXxFdNbwH~GFdyL&&d6T=PqF&};3y!U3_TkQ&g z;dx%8A*B=y4KEC92qg&)U=!BBGbtkmS&mOaM3c~?5r!WB>Ty&+6gdh>DGD+S*;GW9 z3>&mC6c$6WmqvrZ%81A*wtyHyA+IvB1uY_wk}N$25^PZrG#U(6Qc&72DHKcaeqCfK zq{ql4LeEJ=!kAM%GdwmoL06Cqb9#COZYZZ$mD7(a)2Y@$V9aDR8Z)d+1sV#$1ds!0 z!Fxy|pE}q~Mw41`a8kkua8kmAV4U;Z@J_G8bb1x?OUShY9GtCz4z-34s!4F-;6c+; z>1{c1yj+88P(%g3gpH)DHvvAQLb{dYpeXCWAPWrZ0Fx+!uzKVguhE2y!kNi1B2hZv zP=yq=EA*16Vz6TCM6t%!1KzAxXAOXzF*B|!x3Zy<6Cj(26bEqj_Ss>nAjgCF_!%uC zGaJY8v6-=hh#)>DApZo(V*oWnRWQINKgmA<(-No?(FxNUFmv!;n0Lqfzv>eHjI%gB zECJ1sR|ONJ>oC3!Wi};D_0Q(*<7W6!$C&CXX)9fJVa|f)wEPc zafXi_)p+n_6A;*ovkyB>6w$7P*$t?@)=$sOS{UCf%zCY!UYG%$j&FLsjxlQhzRX&6 z@mpV5v)l3ie&C9Au~OYX{%P)DuHj7`bsn*xMPGH+1GV>sJwLZ%u8syuy~afeWx4oi zuJ!`DcC}bMfk5sFp7iHR9U&A!)euxKh6{5>kOIyvR?HwkIk&H9IRq%L&d(VVD6g#6 zYo%wbz~gN9At1>zhShy-;tY_a`*gB#oE>VB(NS`XFr+19`+$;?EEP!!_)cmC5Cf8g z&F~vJa7qH;|Ald$9Oj1y4)WjP{pa71f`5-64|tjQ{_zj{BR5Y3hh_&zl$=s}X?h6| z$SffPj+qFGzuGfq)$0VZpq&nud+K*>T1rqi&F72z z8o{upzgRB2TDKIy?+*sc`&z?`Soy8RqKivwPjy7^p{6l2dgcrDRnD-P{?a3$zwFrw zJP7rK;bb~ncSI*=$Wi7a(PhBpM2Qki$%-JzogMEd-eHPp&=$n^8$Ap10hXS%ewEitdaMK2+{9nj(Vez)Jh=itp< zzt!sI4z{+peg9qscklXsUc#I0?d^LN+}YaN+SJOMtve3Nd-jIz(&FWO-rbB{!NkkG zPOup<%*2aj*AV0cFZ%&tJYnd+HWe7r!vEL%3VinjFo6dn$|nE^|8>0WD==&ivusH7 zp~z%=*mklMLy1p*4ci25*~Tjy(v5ORfZuR${J%1`t2i76?qw!8Ciw;mj!9AQ7IFwp z!cMjsBmr)|&fC`*WX|v{hD08higeK4$KdCXYk<_V8j$)WU^iD31c2M}F%MgV@EXL=EJ>+iuFSOq`vn#D7*)bjP$4@&m?|oKyLfa2(VyumM-YnMZrT9wSMR)Z)xZ zo_;-A?e>0-7VsD$Ra@;=jyBL@?7Oze;W!LepyU$v?kTi{XvI=6O>UQn9;qwf^oq(S z!=S+Y)P}1Rb1Riw9;@&`lds5J;UPf~nDiQER8U+9N(rnFYoz5Uc{*cNGZq;KMXGte zrN(Mm0Nc9~@j8k~FNrFpk>(b{s`49%mrGG;1!zJvwg0wF^z_Z~Hl1`2-cYyOJz#VV zw7KjhH2D-52aL`;b13Yv>H-enG8`0oaxkKAyRvJ{wddY~?G*TlP3Rr-ZLo6Y3wu8< z0p@b4ZLq%vP=LTO=2`$M0LOmG3SN@!+OHTV>kaqx-5U}fcH;?eiDWF=79*jJEfNKdIR%J^FN|Pq#**R#PMfg9#!v%#FwR`^rQXz1eeH`4ygf=Y95Etr@`f5_6hC1v~edl$9c8+?Aj`|Hn>DQ-3-+guUi6$SAucyZU zkW$YDsWC(=(ZuY*kPi{unlSo zy%!$=>kNC3J?t<%pu>@esI!Qqq^<-y-bj#?yzSCsNRK)UX@D6BJo4s_{Q~5%jr1CF z#L)RV4DLmZP6vSIR)K1petY-ph?PptQh?>cT!8ySm)gIa04Jz1n!7~uDz*A!_xOZH zuih`Tpd_!-^LUk#$9ei1dOIF3m1RgzuY7@G`PP`9&xy8ZFCl9HGXM#R>15$u8`mZY zP3yyNXxdMnQ<~N=L=3q%xo!06l!Rq*Z&KrHh3l+7{G9fCWTn#`dfiZp1`232)P(9| z^*y4UGpg5zHudUfHth^?$4@xv@5q2hhBW}DifjlZdy2XCfH6jb!AICf{pD&nq>g}z z3k>H-T-Pl*tiT?FJN6vB%QUoOn<-VDp9i?bQPOGFCU{<1hvv!EoUd21xgG@LFunKP zyT|3H>ameJY)o(cIFGa7;JX~%Qx~bU!`L8qq$*)Cjy+5s6xw)y*vzyQP8Mnt#7&b2)51 zw+xZPDNx>~5b#5vWCZvTt^pz5$$q%Hr@o|6a<7zlcZZ>dzh>|CwTNegnBilbjG~os zKJuZqL>7#Te1m9JALnCf(&+PZEaeN)jRc`A)`19LGwZw&8ic%}h^P4>@FyDmfo7r+ z+FBU7VZ_^Hu=1Ig1Dk_jfjh>9cP99s@b6VsLYNo7SAoy!{XDvR+<(WnNq>UwwW$CA N002ovPDHLkV1gZ@ma_l= diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index cf6563219..3d0d323d5 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -26,6 +26,7 @@ ITEMPCGFXDIR := graphics/item_pc TITLESCREENGFXDIR := graphics/title_screen CREDITSGFXDIR := graphics/credits ITEMMENUGFXDIR := graphics/item_menu +INTROGFXDIR := graphics/intro 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 @@ -537,3 +538,12 @@ graphics/misc/emoticons.4bpp: %.4bpp: %.png $(ITEMMENUGFXDIR)/bag_tiles.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 55 + +$(INTROGFXDIR)/unk_8402D54.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 397 + +$(INTROGFXDIR)/unk_8406654.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 170 + +$(INTROGFXDIR)/unk_8405B28.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 17 diff --git a/src/intro.c b/src/intro.c index 7d2bbc7bb..aa9f7eeac 100644 --- a/src/intro.c +++ b/src/intro.c @@ -29,12 +29,9 @@ struct IntroSequenceData { IntroCallback callback; u8 state; - u8 field_0005; - u8 field_0006; - u16 field_0008; - u16 field_000A; - u8 filler_000C[6]; - u16 timer; + u8 taskId; + bool8 gengarAttackLanded; + u16 data[6]; struct Sprite * gameFreakLogoArtSprite; struct Sprite * nidorinoAnimSprite; struct Sprite * gengarStaticSprite; @@ -42,8 +39,8 @@ struct IntroSequenceData struct Sprite * grassSprite; struct Sprite * gengarBackSpriteArray[4]; u8 filler_0038[0x4]; - u8 field_003C[0x400]; - u8 field_043C[0x400]; + u8 gamefreakLogoArtSpriteTiles[0x400]; + u8 gamefreakTextBitmap[0x400]; u8 filler_083C[0x2080]; }; // size: 0x28BC @@ -67,11 +64,6 @@ static EWRAM_DATA u16 gUnknown_203AB1E = 0; static EWRAM_DATA u16 gUnknown_203AB20 = 0; static EWRAM_DATA u16 gUnknown_203AB22 = 0; static EWRAM_DATA u16 gUnknown_203AB24 = 0; -static EWRAM_DATA u16 gUnknown_203AB26 = 0; -static EWRAM_DATA u32 gUnknown_203AB28 = 0; -static EWRAM_DATA s16 gUnknown_203AB2C = 0; -static EWRAM_DATA u16 gUnknown_203AB2E = 0; -static EWRAM_DATA u32 gUnknown_203AB30 = 0; static void CB2_SetUpIntro(void); static void CB2_Intro(void); @@ -146,11 +138,11 @@ extern const u32 gMultiBootProgram_PokemonColosseum_Start[]; static const u16 sCopyrightGraphicsPal[] = INCBIN_U16("graphics/intro/unk_8402260.gbapal"); static const u8 sCopyrightGraphicsTiles[] = INCBIN_U8("graphics/intro/unk_8402280.4bpp.lz"); static const u8 sCopyrightGraphicsMap[] = INCBIN_U8("graphics/intro/unk_84024E4.bin.lz"); -static const u16 gUnknown_8402630[] = INCBIN_U16("graphics/intro/unk_8402630.gbapal"); -static const u8 gUnknown_8402650[] = INCBIN_U8("graphics/intro/unk_8402650.4bpp.lz"); -static const u8 gUnknown_8402668[] = INCBIN_U8("graphics/intro/unk_8402668.bin.lz"); +static const u16 sBg3Pal_GameFreakPresents[] = INCBIN_U16("graphics/intro/unk_8402630.gbapal"); +static const u8 sBg3Tiles_GameFreakPresents[] = INCBIN_U8("graphics/intro/unk_8402650.4bpp.lz"); +static const u8 sBg3Map_GameFreakPresents[] = INCBIN_U8("graphics/intro/unk_8402668.bin.lz"); static const u16 sSpritePals_GameFreakPresents[] = INCBIN_U16("graphics/intro/unk_840270C.gbapal"); -static const u8 gUnknown_840272C[] = INCBIN_U8("graphics/intro/unk_840272C.4bpp.lz"); +static const u8 sBlit_GameFreakText[] = INCBIN_U8("graphics/intro/unk_840272C.4bpp.lz"); static const u32 sSpriteTiles_GameFreakLogoArt[] = INCBIN_U32("graphics/intro/unk_84028F8.4bpp.lz"); static const u16 sSpritePals_LargeStar[] = INCBIN_U16("graphics/intro/unk_8402A64.gbapal"); static const u32 sSpriteTiles_LargeStar[] = INCBIN_U32("graphics/intro/unk_8402A64.4bpp.lz"); @@ -158,25 +150,25 @@ static const u16 sSpritePals_Sparkles[] = INCBIN_U16("graphics/intro/unk_8402ADC static const u32 sSpriteTiles_TrailingSparkles[] = INCBIN_U32("graphics/intro/unk_8402ADC.4bpp.lz"); static const u32 sSpriteTiles_RevealGameFreakTextSparkles[] = INCBIN_U32("graphics/intro/unk_8402B2C.4bpp.lz"); static const u32 sSpriteTiles_PresentsText[] = INCBIN_U32("graphics/intro/unk_8402CD4.4bpp.lz"); -static const u16 gUnknown_8402D34[] = INCBIN_U16("graphics/intro/unk_8402D34.gbapal"); +static const u16 sBg0Pal_FightScene1[] = INCBIN_U16("graphics/intro/unk_8402D34.gbapal"); static const u8 sBg0Tiles_FightScene1[] = INCBIN_U8("graphics/intro/unk_8402D54.4bpp.lz"); static const u8 sBg0Map_FightScene1[] = INCBIN_U8("graphics/intro/unk_8403FE8.bin.lz"); -static const u16 gUnknown_84048CC[] = INCBIN_U16("graphics/intro/unk_84048CC.gbapal"); +static const u16 sBg1Pal_FightScene1[] = INCBIN_U16("graphics/intro/unk_84048CC.gbapal"); static const u8 sBg1Tiles_FightScene1[] = INCBIN_U8("graphics/intro/unk_84048EC.4bpp.lz"); static const u8 sBg1Map_FightScene1[] = INCBIN_U8("graphics/intro/unk_8404F7C.bin.lz"); -static const u16 gUnknown_84053B4[] = INCBIN_U16("graphics/intro/unk_84053B4.gbapal"); +static const u16 sBg3Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_84053B4.gbapal"); static const u8 sBg3Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405414.4bpp.lz"); static const u8 sBg3Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405890.bin.lz"); -static const u16 gUnknown_8405B08[] = INCBIN_U16("graphics/intro/unk_8405B08.gbapal"); +static const u16 sBg0Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_8405B08.gbapal"); static const u8 sBg0Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405B28.4bpp.lz"); static const u8 sBg0Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405CDC.bin.lz"); static const u16 sSpritePals_Gengar[] = INCBIN_U16("graphics/intro/unk_8405DA4.gbapal"); static const u8 sBg2Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405DC4.4bpp.lz"); static const u8 sBg2Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_840644C.bin.lz"); -static const u16 gUnknown_8406634[] = INCBIN_U16("graphics/intro/unk_8406634.gbapal"); +static const u16 sBg1Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_8406634.gbapal"); static const u8 sBg1Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8406654.4bpp.lz"); static const u8 sBg1Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_84071D0.bin.lz"); -static const u16 gUnknown_8407430[] = INCBIN_U16("graphics/intro/unk_8407430.gbapal"); +static const u16 sBg1Pal_FightScene3[] = INCBIN_U16("graphics/intro/unk_8407430.gbapal"); static const u8 sBg1Tiles_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407470.4bpp.lz"); static const u8 sBg1Map_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407A50.bin.lz"); static const u8 sBg0Tiles_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407B9C.4bpp.lz"); @@ -220,7 +212,7 @@ static const struct WindowTemplate sWindowTemplate[] = { DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_840BBB8[][2] = { +static const u8 sGengarBackSpritePos2UpdateMods[][2] = { {0x3f, 0x3f}, {0x00, 0x3f}, {0x3f, 0x00}, @@ -620,9 +612,9 @@ static void CB2_SetUpIntro(void) InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, NELEMS(sBgTemplates_GameFreakScene)); break; case 1: - LoadPalette(gUnknown_8402630, 0x00, 0x20); - DecompressAndCopyTileDataToVram(3, gUnknown_8402650, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, gUnknown_8402668, 0, 0, 1); + LoadPalette(sBg3Pal_GameFreakPresents, 0x00, 0x20); + DecompressAndCopyTileDataToVram(3, sBg3Tiles_GameFreakPresents, 0, 0, 0); + DecompressAndCopyTileDataToVram(3, sBg3Map_GameFreakPresents, 0, 0, 1); LoadPalette(sSpritePals_GameFreakPresents, 0xD0, 0x20); break; case 2: @@ -674,8 +666,8 @@ static void StartIntroSequence(void) { struct IntroSequenceData * ptr = Alloc(sizeof(struct IntroSequenceData)); SetIntroCB(ptr, IntroCB_Init); - ptr->field_0005 = CreateTask(Task_CallIntroCallback, 3); - SetWordTaskArg(ptr->field_0005, 0, (uintptr_t)ptr); + ptr->taskId = CreateTask(Task_CallIntroCallback, 3); + SetWordTaskArg(ptr->taskId, 0, (uintptr_t)ptr); } static void SetIntroCB(struct IntroSequenceData * ptr, IntroCallback cb) @@ -698,11 +690,11 @@ static void IntroCB_Init(struct IntroSequenceData * this) { case 0: InitWindows(sWindowTemplate); - LZ77UnCompWram(gUnknown_840272C, this->field_043C); - LZ77UnCompWram(sSpriteTiles_GameFreakLogoArt, this->field_003C); + LZ77UnCompWram(sBlit_GameFreakText, this->gamefreakTextBitmap); + LZ77UnCompWram(sSpriteTiles_GameFreakLogoArt, this->gamefreakLogoArtSpriteTiles); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); FillWindowPixelBuffer(0, 0x00); - BlitBitmapToWindow(0, this->field_043C, 0, 40, 144, 16); + BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16); PutWindowTilemap(0); CopyWindowToVram(0, 3); this->state++; @@ -724,7 +716,7 @@ static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * this) SetGpuReg(REG_OFFSET_WINOUT, 0x0000); SetGpuReg(REG_OFFSET_WIN1H, 0x00F0); SetGpuReg(REG_OFFSET_WIN1V, 0x0000); - this->timer = 0; + this->data[5] = 0; this->state++; break; case 1: @@ -733,11 +725,11 @@ static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * this) this->state++; break; case 2: - this->timer += 8; - if (this->timer >= 0x30) - this->timer = 0x30; - SetGpuReg(REG_OFFSET_WIN1V, ((0x50 - this->timer) << 8) | (0x50 + this->timer)); - if (this->timer == 0x30) + this->data[5] += 8; + if (this->data[5] >= 0x30) + this->data[5] = 0x30; + SetGpuReg(REG_OFFSET_WIN1V, ((0x50 - this->data[5]) << 8) | (0x50 + this->data[5])); + if (this->data[5] == 0x30) SetIntroCB(this, IntroCB_GameFreakStar); break; } @@ -750,21 +742,21 @@ static void IntroCB_GameFreakStar(struct IntroSequenceData * this) case 0: PlaySE(MUS_TITLEROG); GameFreakScene_LoadGfxCreateStar(); - this->timer = 0; + this->data[5] = 0; this->state++; break; case 1: - this->timer++; - if (this->timer == 30) + this->data[5]++; + if (this->data[5] == 30) { GameFreakScene_StartTrailingSparkleSpawner(); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 2: - this->timer++; - if (this->timer == 90) + this->data[5]++; + if (this->data[5] == 90) SetIntroCB(this, IntroCB_GameFreakScene_RevealGameFreakText); break; } @@ -776,12 +768,12 @@ static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData { case 0: GameFreakScene_StartRevealGameFreakTextSparklesSpawner(); - this->timer = 0; + this->data[5] = 0; this->state++; break; case 1: - this->timer++; - if (this->timer >= 40) + this->data[5]++; + if (this->data[5] >= 40) this->state++; break; case 2: @@ -797,13 +789,13 @@ static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData if (!IsBlendTaskActive()) { SetGpuReg(REG_OFFSET_BLDCNT, 0); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 5: - this->timer++; - if (this->timer > 50) + this->data[5]++; + if (this->data[5] > 50) SetIntroCB(this, IntroCB_GameFreakScene_CreateGameFreakLogo); break; } @@ -816,9 +808,9 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 0: SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); StartBlendTask(0, 16, 16, 0, 16, 0); - this->field_0008 = 0; - this->field_000A = 16; - this->timer = 0; + this->data[0] = 0; + this->data[1] = 16; + this->data[5] = 0; this->state++; break; case 1: @@ -828,8 +820,8 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 2: if (!IsBlendTaskActive()) { - BlitBitmapToWindow(0, this->field_003C, 0x38, 0x06, 0x20, 0x40); - BlitBitmapToWindow(0, this->field_043C, 0x00, 0x28, 0x90, 0x10); + BlitBitmapToWindow(0, this->gamefreakLogoArtSpriteTiles, 0x38, 0x06, 0x20, 0x40); + BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0x00, 0x28, 0x90, 0x10); CopyWindowToVram(0, 2); this->state++; } @@ -839,13 +831,13 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData { DestroySprite(this->gameFreakLogoArtSprite); Rev1_GameFreakScene_CreatePresentsText(); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 4: - this->timer++; - if (this->timer > 90) + this->data[5]++; + if (this->data[5] > 90) { SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2); StartBlendTask(16, 0, 0, 16, 20, 0); @@ -862,12 +854,12 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 6: ResetSpriteData(); FreeAllSpritePalettes(); - this->timer = 0; + this->data[5] = 0; this->state++; break; case 7: - this->timer++; - if (this->timer > 20) + this->data[5]++; + if (this->data[5] > 20) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetIntroCB(this, IntroCB_FightScene); @@ -882,9 +874,9 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) { case 0: SetVBlankCallback(NULL); - LoadPalette(gUnknown_8402D34, 0x10, 0x20); - LoadPalette(gUnknown_84048CC, 0x20, 0x20); - BlendPalettes(0x06, 0x10, RGB_WHITE); + LoadPalette(sBg0Pal_FightScene1, 0x10, 0x20); + LoadPalette(sBg1Pal_FightScene1, 0x20, 0x20); + BlendPalettes(0x00000006, 0x10, RGB_WHITE); InitBgsFromTemplates(0, sBgTemplates_FightScene1, NELEMS(sBgTemplates_FightScene1)); DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene1, 0, 0, 0); DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene1, 0, 0, 1); @@ -919,20 +911,20 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) if (!gPaletteFade.active) { m4aSongNumStart(MUS_DEMO); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 4: - this->timer++; - if (this->timer == 20) + this->data[5]++; + if (this->data[5] == 20) { CreateTask(Task_FightScene1_ZoomEffect, 0); FightScene1_SignalEndGrassyFieldAnim(); } - if (this->timer >= 30) + if (this->data[5] >= 30) { - BlendPalettes(-2, 16, RGB_WHITE); + BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); DestroyTask(FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim)); DestroyTask(FindTaskIdByFunc(Task_FightScene1_ZoomEffect)); SetIntroCB(this, IntroCB_FightScene2); @@ -1005,9 +997,9 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) if (!FreeTempTileDataBuffersIfPossible()) { SetVBlankCallback(NULL); - LoadPalette(gUnknown_84053B4, 0x10, 0x60); + LoadPalette(sBg3Pal_FightScene2, 0x10, 0x60); LoadPalette(sSpritePals_Gengar, 0x50, 0x20); - LoadPalette(gUnknown_8406634, 0x60, 0x20); + LoadPalette(sBg1Pal_FightScene2, 0x60, 0x20); BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene2, 0, 0, 0); DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene2, 0, 0, 1); @@ -1038,15 +1030,15 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) case 3: if (!gPaletteFade.active) { - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 4: - this->timer++; - if (this->timer >= 60) + this->data[5]++; + if (this->data[5] >= 60) { - this->timer = 0; + this->data[5] = 0; DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraHorizPanEffect)); DestroyStaticMonSprites(this); CreateTask(Task_FightScene2_CameraVertPanEffect, 0); @@ -1061,13 +1053,13 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) case 5: if (!IsDma3ManagerBusyWithBgCopy()) { - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 6: - this->timer++; - if (this->timer >= 60) + this->data[5]++; + if (this->data[5] >= 60) { DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraVertPanEffect)); SetIntroCB(this, IntroCB_FightScene3); @@ -1117,7 +1109,7 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) switch (this->state) { case 0: - LoadPalette(gUnknown_8407430, 0x10, 0x40); + LoadPalette(sBg1Pal_FightScene3, 0x10, 0x40); LoadPalette(sSpritePals_Gengar, 0x50, 0x20); BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); InitBgsFromTemplates(0, sBgTemplates_FightScene3, NELEMS(sBgTemplates_FightScene3)); @@ -1158,13 +1150,13 @@ static void IntroCB_FightScene3(struct IntroSequenceData * this) StartNidorinoAnimSpriteSlideIn(this->nidorinoAnimSprite, 0, 0xB4, 0x34); CreateTask(Task_FightScene3_Bg0Scroll, 0); FightScene3_StartBg1Scroll(); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 3: - this->timer++; - if (this->timer == 16) + this->data[5]++; + if (this->data[5] == 16) CreateGrassSprite(this); if (!IsNidorinoAnimSpriteSlideInRunning(this) && !FuncIsActiveTask(Task_FightScene3_Bg0Scroll)) SetIntroCB(this, IntroCB_FightScene4); @@ -1274,12 +1266,12 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) switch (this->state) { case 0: - this->timer = 0; + this->data[5] = 0; this->state++; break; case 1: - this->timer++; - if (this->timer > 30) + this->data[5]++; + if (this->data[5] > 30) { FightScene4_NidorinoRearsUp(this); this->state++; @@ -1288,22 +1280,22 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) case 2: if (!FightScene4_NidorinoAnimIsRunning(this)) { - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 3: - this->timer++; - if (this->timer > 30) + this->data[5]++; + if (this->data[5] > 30) { FightScene3_PauseForestBgScroll(); FightScene4_StartGengarAttack(this); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 4: - if (this->field_0006) + if (this->gengarAttackLanded) { FightScene4_StartNidorinoRecoilAnim(this); this->state++; @@ -1313,13 +1305,13 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) if (!FightScene4_NidorinoAnimIsRunning(this)) { FightScene3_ResumeForestBgScroll(); - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 6: - this->timer++; - if (this->timer > 16) + this->data[5]++; + if (this->data[5] > 16) { StartSpriteHopToPosAnim(this->nidorinoAnimSprite, 8, 12, 5); this->state++; @@ -1335,16 +1327,16 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) case 8: if (!FightScene4_NidorinoAnimIsRunning(this)) { - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 9: - this->timer++; - if (this->timer > 20) + this->data[5]++; + if (this->data[5] > 20) { StartNidorinoAnim_LaunchSelfAtGengarAnim(this); - this->timer = 0; + this->data[5] = 0; this->state++; } break; @@ -1358,24 +1350,24 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) break; case 11: HideBg(0); - this->timer = 0; + this->data[5] = 0; this->state++; break; case 12: - this->timer++; - if (this->timer == 48) + this->data[5]++; + if (this->data[5] == 48) BeginNormalPaletteFade(0x00000006, 2, 0, 16, RGB_WHITE); - if (this->timer > 120) + if (this->data[5] > 120) { FightScene4_StartNidorinoAffineAnim(this); FightScene4_StartGengarAffineAnim(this); this->state++; - this->timer = 0; + this->data[5] = 0; } break; case 13: - this->timer++; - if (this->timer > 8) + this->data[5]++; + if (this->data[5] > 8) { CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64); BeginNormalPaletteFade(0xFFFFFFFE, -2, 0, 16, RGB_BLACK); @@ -1385,13 +1377,13 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) case 14: if (!gPaletteFade.active) { - this->timer = 0; + this->data[5] = 0; this->state++; } break; case 15: - this->timer++; - if (this->timer > 60) + this->data[5]++; + if (this->data[5] > 60) SetIntroCB(this, IntroCB_CleanUp); break; default: @@ -1401,7 +1393,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this) this->nidorinoAnimSprite->pos2.x = 0; this->nidorinoAnimSprite->pos1.x = 0xB4; this->state = 1; - this->timer = 30; + this->data[5] = 30; } break; } @@ -1454,7 +1446,7 @@ static void FightScene4_StartGengarAffineAnim(struct IntroSequenceData * this) { StartSpriteAffineAnim(this->gengarBackSpriteArray[i], 1); this->gengarBackSpriteArray[i]->callback = SpriteCB_DummyButNotDummy; - obj_pos2_update_enable(this->gengarBackSpriteArray[i], gUnknown_840BBB8[i][0], gUnknown_840BBB8[i][1]); + obj_pos2_update_enable(this->gengarBackSpriteArray[i], sGengarBackSpritePos2UpdateMods[i][0], sGengarBackSpritePos2UpdateMods[i][1]); } } @@ -1469,7 +1461,7 @@ static void IntroCB_CleanUp(struct IntroSequenceData * this) case 1: if (!FreeTempTileDataBuffersIfPossible()) { - DestroyTask(this->field_0005); + DestroyTask(this->taskId); Free(this); DisableInterrupts(INTR_FLAG_HBLANK); SetHBlankCallback(NULL); @@ -1483,6 +1475,7 @@ static void GameFreakScene_LoadGfxCreateStar(void) { int i; u8 spriteId; + static EWRAM_DATA u32 gUnknown_203AB28 = 0; for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++) { @@ -1515,6 +1508,8 @@ static void GameFreakScene_LoadGfxCreateStar(void) static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2) { + static EWRAM_DATA s16 gUnknown_203AB2C = 0; + u8 spriteId; s16 r4 = (a2 & gUnknown_203AB12) + 2; s16 r2 = gUnknown_203AB2C; @@ -1618,7 +1613,7 @@ static void Rev1_GameFreakScene_CreatePresentsText(void) static void FightScene4_StartGengarAttack(struct IntroSequenceData * this) { u8 taskId; - this->field_0006 = 0; + this->gengarAttackLanded = FALSE; taskId = CreateTask(Task_FightScene4_GengarAttack, 4); SetWordTaskArg(taskId, 5, (uintptr_t)this); gTasks[taskId].data[3] = 64; @@ -1659,7 +1654,7 @@ static void Task_FightScene4_GengarAttack(u8 taskId) case 2: data[1]++; if (data[1] == 14) - ((struct IntroSequenceData *)GetWordTaskArg(taskId, 5))->field_0006 = 1; + ((struct IntroSequenceData *)GetWordTaskArg(taskId, 5))->gengarAttackLanded = TRUE; if (data[1] > 15) { data[1] = 0; @@ -1728,6 +1723,7 @@ static void SpriteCB_GengarSwipe(struct Sprite * sprite) static void Task_FightScene3_Bg0Scroll(u8 taskId) { s16 * data = gTasks[taskId].data; + static EWRAM_DATA u32 gUnknown_203AB30 = 0; switch (data[0]) {